Attested Tool-Server Admission: Security extension for the Model Context Protocol
MCP Attest exposes 5 tools with basic descriptions and parameter schemas, but falls short of production quality. Tool names are clear (verify, fingerprint, trust, policy, generate_manifest) and descriptions exist (avg ~80 chars), but lack depth on WHEN to use each tool and what downstream actions they enable. Parameter descriptions are present but minimal (avg ~40 chars). No output schemas are documented, LLMs cannot predict what fields to expect or chain tools. Error handling is absent from visible code. The server appears to be a CLI wrapper around an attestation library (Attester class visible), but tool definitions are inferred from CLI argument parsing rather than explicit MCP tool registration with full schemas.
Generate capability fingerprint for an MCP server.
Generate a manifest from a live MCP server.
Generate MCPGuard access policy for an MCP server.
Calculate trust score for an MCP server.
Verify MCP server identity, integrity, and trust.
No output schemas documented. LLMs cannot predict return types or chain tools. E.g., verify() returns what fields? Does it include a trust_score that policy() can consume?
Tool definitions appear inferred from CLI args rather than explicit MCP registration. No visible tool registration with full schemas in source.
Descriptions are too brief (30 - 40 chars avg). Missing WHEN to use each tool and prerequisites. E.g., 'Verify MCP server identity' doesn't explain: when should I call this vs fingerprint? What does it return?
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | 2026-07-28+ | v2 |
Parameter descriptions are minimal (avg ~40 chars). E.g., 'MCP server URL' for 'server' param doesn't specify format, validation, or whether it must be HTTPS. 'Expected manifest JSON file' doesn't clarify if it's a path or inline JSON.
No error handling guidance visible. If verify() fails (e.g., server unreachable, cert invalid), what should the LLM do next? Retry? Call a different tool? No recovery paths documented.