MCP Security Methodology

How we score the security of any MCP server

Every finding cites a published taxonomy entry — mcp-scan or SAFE-MCP. No invented rules. This page is the live catalog.

18rules8categories2taxonomies cited23technique IDs
Principles

Four rules our security analyzer must follow

1

No invented rules

Every check we run cites a public taxonomy: mcp-scan (Invariant Labs) or SAFE-MCP (a MITRE ATT&CK-style framework for MCP). If a check has no citation, it doesn't ship. The catalog below is auditable for this reason.

2

Deterministic first, LLM additive

Most rules run as deterministic Python over the tool metadata. The LLM judge layers on top for prompt-injection-shape detection and for context-sensitive checks like third-party origin mismatch. If the LLM judge fails or times out, the deterministic findings still ship — we never block a result on the LLM.

3

Metadata only — never call the tool

The analyzer reads names, descriptions, JSON Schema fields, and annotations. It never invokes a tool to find out what it does. That keeps the audit safe to run against any unverified server.

4

The same engine runs on the analyzer page and on every published listing

Whether you paste a URL into the public analyzer or score one of your own published servers, the rule catalog is identical. There is no privileged scoring path for partners.

How it works

Three layers, one report

Deterministic metadata

Walks the tool's name, description, JSON Schema (full recursion), and annotations. Catches steganography, schema-poisoning instructions, mutating verbs flagged read-only, homoglyph names, consent-fatigue prose, and data-harvest prose.

LLM judge (Anthropic Haiku 4.5)

Runs after the deterministic pass. Looks for instruction-control prose, third-party origin mismatch (server says it's Stripe but the host doesn't match), and credential-setup language directed at the user. Fails open on any error or 25-second timeout.

Cross-server intelligence (coming)

Compares a candidate listing to every claimed listing in our directory: host typosquats, tool-name collisions, and tool-definition drift on claimed listings. Designed; not yet shipped — we'd rather omit it than ship low-precision noise.

Live rule catalog

Every rule we evaluate

Rendered live from the analyzer source. Sorted by default severity, then category. Each citation links to the published entry on GitHub — read the source before you trust the score.

Analyzer: mcp-security-v1 · schema v2

E001Critical

Prompt injection / tool poisoning in tool description

Category: Tool poisoning
MCPB-A002High

Annotation honesty (read-only conflicts with mutating verbs)

Category: Host controls
E002High

Cross-tool reference (tool shadowing)

Category: Tool identity
MCPB-I001High

Tool name contains homoglyph / mixed-script characters

Category: Tool identity
SAFE-T1402High

Instruction steganography (zero-width / HTML-comment hidden text)

Category: Tool poisoning
SAFE-T1501High

Full-schema poisoning (instructions in JSON Schema fields)

Category: Tool poisoning
SAFE-T1007Medium

Tool metadata describes credential setup or token handling

Category: Auth & scope safety
SAFE-T1804Medium

Tool description advertises silent data harvesting

Category: Context injection
W015Medium

Tool exposes agent to untrusted third-party content

Category: Context injection
W017Medium

Tool retrieves highly sensitive private data

Category: Context injection
SAFE-T1403Medium

Consent-fatigue language pressuring auto-approval

Category: Host controls
W019Medium

Tool grants destructive shared-infrastructure capability

Category: Privileged capabilities
SAFE-T1004Medium

Third-party tool origin / server-name mismatch

Category: Supply chain & provenance
MCPB-A003Medium

Duplicate tool display name within server

Category: Tool identity
MCPB-A001Low

Annotation completeness (readOnlyHint / destructiveHint)

Category: Auditability
W018Low

Tool exposes local workspace or source files

Category: Context injection
W020Low

Tool grants local destructive capability

Category: Privileged capabilities
W001Low

Suspicious words in tool description

Category: Tool poisoning
Where the rules come from

Two published taxonomies, one rule catalog

About the MCPB- rule prefix

Three rules use our internal MCPB- namespace (annotation completeness, annotation honesty, duplicate display names, homoglyph names). Every one of them still cites a SAFE-MCP technique — the prefix only signals that the published taxonomy hasn't given the specific check its own ID yet. When SAFE-MCP issues one, we adopt it.

Audit any remote MCP server

Paste a URL. Get the security posture, the quality score, and every finding cited against the published taxonomy.