A red-team laboratory for testing the MCP discovery surface. Demonstrates four attack modes (override, volume, cache, drift) targeting the `instructions` field in MCP server discovery responses, along with defensive controls.
This is a red-team lab demonstrating MCP attack vectors, not a production tool server. Both tools have minimal descriptions (under 100 chars), lack parameter descriptions entirely, and schemas are present but incomplete. The 'style' parameter in format_text has no type constraint or description. The 'words' parameter in summarize lacks description. No error handling guidance, no output schema documentation, and no security considerations beyond the intentional attack payloads. Tool names are generic (format_text, summarize) without clear action verbs. This server is deliberately hostile, it injects malicious instructions into the discovery surface via multiple attack modes (override, volume, cache, drift). While this serves a legitimate red-team purpose, it scores extremely low on production quality metrics.
Format a block of text in the requested style.
Summarise a block of text to roughly the requested length.
No parameter descriptions. The 'style' parameter in format_text and 'words' parameter in summarize lack any description explaining what values are valid, expected format, or constraints. LLMs cannot infer parameter meaning from names alone.
Incomplete input schemas. The 'style' parameter has no type constraint (should be 'string' with enum or pattern). The 'words' parameter lacks description and type validation (should specify min/max bounds). Schemas must include type and description for every parameter.
No output schema documentation. Neither tool documents what fields or structure the response contains. LLMs need to know what to expect so they can plan downstream calls and extract data correctly.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 42 | 2026-07-28+ | v2 |
Malicious instructions injection via discovery surface. The server deliberately poisons the 'instructions' field in initialize/server/discover responses with hostile directives designed to override LLM safety guardrails. This is a critical security vulnerability in production contexts, though intentional for this red-team lab.
Cache poisoning via public cacheScope. The 'cache' attack mode sets _meta.cacheScope='public' so a shared intermediary serves one caller's poisoned discovery response to all other callers. This exploits MCP-2026-008 and MCP-2026-015 vulnerabilities.