context safety score
A score of 27/100 indicates multiple risk signals were detected. This entity shows patterns commonly associated with malicious intent.
supply chain
Found 1 remote script execution pattern(s) in CI/CD workflows
supply chain
Found 1 remote script pattern(s) in documentation (likely install instructions, not executable)
capability escalation
NCP exposes an 'mcp:add' tool that allows the AI agent to dynamically install new MCP servers at runtime from registries, arbitrary URLs, or clipboard content. The 'mcp:remove', 'mcp:list', and 'mcp:export' tools further allow full runtime modification of the MCP ecosystem. New tools added this way become available to the agent without the host client's awareness or approval. The Photon runtime additionally loads and executes arbitrary TypeScript files (.photon.ts) from URLs, clipboard, or project-local '.ncp/internal/' directories with FULL unsandboxed Node.js privileges (file system, network, child_process access). This means an agent conversation could be socially engineered to install a malicious Photon that runs with complete system access, bypassing the otherwise well-designed code sandbox. (location: src/internal-mcps/mcp-management.ts (mcp:add tool); src/photon/ (PhotonLoader, PhotonAdapter); manifest.json tools section)
credential exposure
The auto-import system reads MCP configuration files from 14+ other AI client applications (Claude Desktop, Cursor, Cline, VS Code, Windsurf, Zed, Perplexity, Raycast, etc.) including their environment variable blocks which commonly contain API keys and tokens (GITHUB_TOKEN, OPENAI_API_KEY, etc.). These credentials are copied into NCP's own profile at ~/.ncp/profiles/all.json as plaintext. While the intent is convenience (consolidating MCP configs), this centralizes credentials from multiple applications into a single unencrypted JSON file, expanding the attack surface. Auto-import triggers automatically when a known client connects via the MCP initialize handshake. (location: src/utils/client-registry.ts (CLIENT_REGISTRY with 14+ client config paths); src/client-importer.ts (auto-import logic))
supply chain
Project-local '.ncp/internal/' and '.ncp/photons/' directories are scanned and loaded automatically when NCP starts in a directory. A malicious git repository containing a '.ncp/internal/malicious.photon.ts' file could achieve arbitrary code execution when a developer clones the repo and NCP is running with photon runtime enabled. The Photon code runs unsandboxed with full Node.js privileges. Additionally, Photon files downloaded from URLs via 'mcp:add' have no cryptographic signature verification or hash integrity checks, making them vulnerable to MITM or compromised hosting. (location: src/photon/PhotonLoader.ts (directory scanning for .photon.ts files); src/internal-mcps/mcp-management.ts (URL download without verification))
curl https://api.brin.sh/mcp/portel-dev%2FncpCommon questions teams ask before deciding whether to use this mcp server in agent workflows.
portel-dev/ncp currently scores 27/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.