context safety score
A score of 38/100 indicates multiple risk signals were detected. This entity shows patterns commonly associated with malicious intent.
credential exposure
Found 3 secret pattern match(es) in repository files
capability escalation
DynamicToolGenerator registers new tools 1 second after server startup via setTimeout in server.ts:1652-1671. The server advertises listChanged:true capability. While current dynamic tools are generated from a hardcoded endpoint list (not externally manipulable), this pattern means the agent's initial tool consent covers a different set of tools than what becomes available shortly after. New tools include manage_teams_resources, manage_security_resources, manage_productivity_resources, and individual endpoint tools across security incidents, Teams, Planner, and analytics. The architecture also contains stub code for parsing Graph API $metadata to discover endpoints dynamically, which if activated would allow the tool surface to be influenced by external API responses. (location: src/server.ts:1652-1671 (setupDynamicTools), src/utils/dynamic-tool-generator.ts, src/utils/graph-metadata-service.ts)
credential exposure
The OAuth handler in oauth-handler.ts returns accessToken and refreshToken as plain text in MCP tool response content via JSON.stringify. These tokens appear directly in the LLM context window where they could be exfiltrated through prompt injection from other sources, logged by the agent framework, or inadvertently included in conversation summaries. The tokens are Microsoft Graph API tokens with potentially broad tenant-level permissions. (location: src/handlers/oauth-handler.ts (exchangeCodeForToken function))
curl https://api.brin.sh/mcp/DynamicEndpoints%2Fm365-core-mcpCommon questions teams ask before deciding whether to use this mcp server in agent workflows.
DynamicEndpoints/m365-core-mcp currently scores 38/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.