Local, in-process security lab for MCP 2026-07-28 state-handle ownership and authorization testing
This is a security lab/educational server with 3 fictitious tools. All tools have descriptions and input schemas with proper JSON Schema structure. However, descriptions are extremely terse (10-30 chars), parameter descriptions are minimal, and there is no documented output schema. The tools are intentionally fake ('performs no scan', 'fictitious record'), which limits practical utility. Naming follows verb_noun convention (create_scan, read_scan, complete_scan), but descriptions lack the depth needed for LLM tool selection in production. No error handling guidance, no output structure documentation, and no parameter validation beyond minLength constraints.
Marks a fictitious record as completed.
Creates a fictitious in-memory record. It performs no scan.
Reads a fictitious record.
Descriptions are critically short (10-30 chars). Pattern requires 10-1024 chars with WHAT/WHEN/WHY context. 'Reads a fictitious record' does not explain when to call it vs create_scan or complete_scan, or what the return structure is.
No output schema documented. LLMs cannot plan downstream calls or extract fields without knowing what read_scan returns. Pattern requires documented return types for 100% of A+ tools.
Parameter descriptions are minimal or absent. 'Handle identifier for the scan record' is generic; does not explain format, length, or how to obtain a handle. Pattern requires descriptions that disambiguate each parameter.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
No error handling guidance. If read_scan is called with an invalid handle, what error is returned? Can the agent retry? Should it search for a valid handle first? Pattern requires recovery guidance.
create_scan target parameter is hardcoded enum ['demo.local']. This is intentional for a lab, but in production, accepting only one value defeats the purpose of a parameter. Consider documenting this as a lab constraint.