MCP server to verify AI-agent revenue claims: recompute a Merkle proof and check it against an on-chain anchor.
Dokimo MCP demonstrates good definition quality with clear tool naming, comprehensive descriptions, and well-structured schemas. All three tools follow verb-noun naming conventions (recompute, verify, dokimo_agent_card). Descriptions are detailed (150-400+ chars) and explain purpose, prerequisites, and return values. Input schemas are explicit with proper types and field descriptions. Tool annotations (readOnlyHint, idempotentHint, openWorldHint) are applied correctly. However, output schemas lack explicit documentation in the code, and error handling guidance is minimal. The server shows strong alignment with agentic tool patterns for read-only operations but lacks recovery paths and detailed error classification.
Fetch Dokimo's public A2A agent card — the discovery document describing what it can verify (skills, endpoints, supported A2A versions).
Trustlessly recompute a dokimo-merkle-v1 root — LOCAL, no network, no trust. Hash ``leaf`` in the leaf domain (H(0x00 ‖ leaf)) and replay ``proof_path`` — a list of ``[sibling_hash, side]`` where side is "L" or "R" — hashing internal nodes as H(0x01 ‖ left ‖ right). Compare the returned root to the ``root`` in an evidence package yourself; if it differs, the package was tampered with. Returns ``{recomputed_root, merkle_scheme, steps}``.
Fully verify a Dokimo evidence package against the LIVE on-chain anchor. Sends the package to Dokimo's public A2A endpoint, which recomputes the Merkle proof AND checks the compound commitment (root + rule version) against the anchor on Base. ``package`` must contain: ``leaf`` (str), ``root`` (str), ``proof_path`` (list of [sibling_hash, "L"|"R"]), and ``rule_version_commitment`` (str); ``close_id`` is optional/echoed. Returns the verdict: ``{verified, checks:{recompute, onchain_anchor, rule_version_bound}, ...}``. ``verified`` is true only if the proof recomputes AND the commitment is anchored on-chain.
Output schemas not explicitly documented in code. Return types are mentioned in docstrings but not formally declared with JSON Schema. LLMs cannot reliably parse response structure without explicit schema definition.
Error handling lacks recovery guidance. Tool code uses urllib exceptions but does not provide actionable recovery messages. E.g., timeout or 404 errors should suggest retry strategies or alternative approaches.
verify_evidence_package accepts a dict parameter without strict schema validation. Package structure is documented but not enforced, a malformed package will fail at network call time rather than parameter validation time.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | <=2025-11-25 | v2 |
dokimo_agent_card tool lacks detailed description. Current description is only 62 characters ('Fetch Dokimo's public A2A agent card...'), below the recommended minimum of 100+ for discovery tools. Should explain what skills/endpoints are returned and when to call this vs other verification tools.