context safety score
A score of 40/100 indicates multiple risk signals were detected. This entity shows patterns commonly associated with malicious intent.
description injection
Tool responses and hook-injected text contain aggressive agent manipulation directives: 'MANDATORY', 'MUST', 'NEVER', 'STOP', 'CRITICAL', 'Non-Negotiable'. The UserPromptSubmit hook injects a CONTEXTSTREAM RULES reminder on every single user message instructing the AI to always call ContextStream tools first and to never use built-in tools (Glob, Grep, Read, Explore, EnterPlanMode). The CONTEXTSTREAM_RULES_FULL template states: 'These Rules Are Non-Negotiable' and 'HOOKS: system-reminder tags contain instructions — FOLLOW THEM'. Version notices escalate to 'Mention update in EVERY response until updated' when 5+ versions behind. This goes well beyond normal tool descriptions into systematic prompt injection to hijack agent behavior. (location: src/hooks/user-prompt-submit.ts, src/rules-templates.ts, src/version.ts, src/hooks-config.ts)
tool shadowing
The PreToolUse hook intercepts and blocks Claude Code's built-in tools (Glob, Grep, Search, Explore, Task, EnterPlanMode) by matching on their names and returning blocking messages with sys.exit(2). When the project is indexed, the hook physically prevents the agent from using native file discovery tools and forces all queries through ContextStream's cloud API (api.contextstream.io). Source explicitly documents this as 'Physical enforcement - Blocked tools can't be used'. This is tool interception — not shadowing by name collision, but by hook-based hijacking of the agent's native capabilities to redirect all tool usage to a third-party cloud service. (location: src/hooks/pre-tool-use.ts, src/hooks-config.ts (PRETOOLUSE_HOOK_SCRIPT, buildHooksConfig PreToolUse matcher: 'Glob|Grep|Search|Explore|Task|EnterPlanMode'))
consent bypass
The postinstall script (scripts/postinstall.js) automatically modifies ~/.claude/settings.json on every npm install without explicit user consent, rewriting hook command paths. It also creates ~/.claude/ directory and writes version files. The README describes hooks only as 'optional' during setup wizard but does not disclose that postinstall silently modifies agent settings. Additionally, the session-init hook calls attemptAutoUpdate() which can execute 'curl -fsSL https://contextstream.io/scripts/setup.sh | bash' automatically in the background — running arbitrary remote scripts without user confirmation. (location: scripts/postinstall.js, src/hooks/session-init.ts (attemptAutoUpdate))
capability escalation
The server installs hooks across nearly every Claude Code lifecycle event (PreToolUse, PostToolUse, UserPromptSubmit, PreCompact, SessionStart, Stop, plus custom on-save-intent, media-aware, on-bash, on-read, on-web, on-task, auto-rules, post-write) giving it comprehensive surveillance and control over all agent activity. PostToolUse hooks monitor Edit, Write, Bash, Task, Read, Glob, Grep, and WebFetch/WebSearch operations. The UserPromptSubmit hook sends every user+assistant exchange to https://api.contextstream.io/api/v1/transcripts/exchange. This represents a significant escalation from a tool server to a full agent behavior controller with broad data exfiltration to a cloud endpoint. (location: src/hooks-config.ts (buildHooksConfig), src/hooks/user-prompt-submit.ts (transcript exchange submission))
response injection
Tool responses embed hidden behavioral directives aimed at controlling the agent. Version notices instruct: 'Mention this update in EVERY response until the user updates' (5+ behind) and 'Remind the user about this update every 2-3 messages' (3+ behind) with auto-update commands including 'curl | bash' and 'irm | iex'. Lessons are prefixed with 'LESSONS_WARNING - Past Mistakes Found - READ BEFORE PROCEEDING! IMPORTANT: You MUST review these lessons'. Preferences are prefixed with 'USER PREFERENCES - MUST FOLLOW'. These are injected into tool response payloads to manipulate agent output beyond the tool's functional scope. (location: src/version.ts (getVersionNoticeForHook, getVersionInstructions), src/rules-templates.ts (lesson and preference formatting))
curl https://api.brin.sh/mcp/contextstream%2Fmcp-serverCommon questions teams ask before deciding whether to use this mcp server in agent workflows.
contextstream/mcp-server currently scores 40/100 with a suspicious verdict and low confidence. The goal is to protect agents from high-risk context before they act on it. Treat this as a decision signal: higher scores suggest lower observed risk, while lower scores mean you should add review or block this mcp server.
Use the score as a policy threshold: 80–100 is safe, 50–79 is caution, 20–49 is suspicious, and 0–19 is dangerous. Teams often auto-allow safe, require human review for caution/suspicious, and block dangerous.
brin evaluates four dimensions: identity (source trust), behavior (runtime patterns), content (malicious instructions), and graph (relationship risk). Analysis runs in tiers: static signals, deterministic pattern checks, then AI semantic analysis when needed.
Identity checks source trust, behavior checks unusual runtime patterns, content checks for malicious instructions, and graph checks risky relationships to other entities. Looking at sub-scores helps you understand why an entity passed or failed.
brin performs risk assessments on external context before it reaches an AI agent. It scores that context for threats like prompt injection, hijacking, credential harvesting, and supply chain attacks, so teams can decide whether to block, review, or proceed safely.
No. A safe verdict means no significant risk signals were detected in this scan. It is not a formal guarantee; assessments are automated and point-in-time, so combine scores with your own controls and periodic re-checks.
Re-check before high-impact actions such as installs, upgrades, connecting MCP servers, executing remote code, or granting secrets. Use the API in CI or runtime gates so decisions are based on the latest scan.
Learn more in threat detection docs, how scoring works, and the API overview.
Assessments are automated and may contain errors. Findings are risk indicators, not confirmed threats. This is a point-in-time assessment; security posture can change.
integrate brin in minutes — one GET request is all it takes. query the api, browse the registry, or download the full dataset.