MCP server for EverMint, tamper-evident proof layer for AI agents
EverMint MCP exposes 5 tools with complete input schemas and descriptions. Naming follows verb_noun convention (mint, verify, list_records, get_record, verify_chain). Descriptions are present but brief (10-50 chars), below the 50-200 char baseline for LLM-optimized docs. All parameters have type definitions and descriptions. However, output schemas are not documented, LLMs cannot predict response structure for downstream chaining. Error handling is present but generic (HTTP status codes without recovery guidance). No parameter constraints (enums, ranges) despite several free-form string fields (action_type, agent_id) that could hallucinate invalid values. Missing idempotency guidance for the mint tool, which performs irreversible writes.
Retrieve the full details of a specific record by record_id
List agent records with optional filtering by agent_id, action_type, and time range
Create a tamper-evident record of an action with EverMint
Verify that a record has not been tampered with
Verify the integrity of a chain of records
Output schemas not documented. LLMs cannot predict response structure (fields, types, nesting) for downstream tool chaining. MintResponse, VerifyResponse interfaces exist in code but are not exposed in tool definitions.
Descriptions are too brief (10-50 chars vs. 50-200 char baseline). 'Create a tamper-evident record' and 'Verify that a record has not been tampered with' lack context on WHEN to use each tool, prerequisites, or what happens on success/failure.
No parameter constraints. action_type, agent_id, and record_id accept free-form strings with no enum, pattern, or length limits. LLMs will hallucinate invalid values (e.g. action_type='foo') without validation feedback.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 44 | 2026-07-28+ | v2 |
mint tool lacks idempotency guidance and confirmation step. Irreversible write operations should support dry-run or explicit confirmation to prevent accidental duplicate records.
Error messages are generic HTTP status codes without recovery guidance. 'Verification failed: HTTP 404' tells LLM nothing; should be 'Record not found. Check the Record ID format (EVR-XXXXXXXX) or call list_records() to find valid IDs.'