The Utuh watcher as a Model Context Protocol server: sweep bonded completeness claims on Creditcoin CC3 Testnet against Ethereum, and refute an incomplete one for half its bond. Five tools, no account, no server — an AI agent can hold the watcher role.
5 tools with mixed quality. Tool names lack consistent verb prefixes (tally, list_claims, sweep_claim, refute_claim, audit_attestors). Descriptions range from adequate (list_claims: 127 chars) to vague (tally: 67 chars). Input schemas present for 4/5 tools but tally lacks visible schema. Parameters have descriptions but lack type constraints (enums for 'deployment' would prevent hallucination). No output schemas documented. Error handling absent, no recovery guidance for failed calls. Security concern: refute_claim accepts a 'confirm' boolean but no mention of PRIVATE_KEY validation or permission gating in tool definition.
Check what Creditcoin's attestors signed three ways: against Ethereum itself, against each network's own ChainInfo digest index, and against the other Creditcoin network
A page of claims with status, bond, and remaining challenge window; pass the returned nextCursor for the next page
Prove one omitted event and take half the bond (needs confirm: true and a funded PRIVATE_KEY — everything else needs no key and spends nothing)
Sweep Ethereum across independent endpoints and check a claim's completeness
What both registries have done, read live from Creditcoin CC3 Testnet
tally tool has no visible input schema in source code; cannot verify parameter definitions or constraints
No output schemas documented for any tool; LLMs cannot plan downstream calls or extract required fields (e.g., nextCursor from list_claims)
deployment parameter accepts free-form strings ('mainnet', 'sepolia') instead of enum constraint; LLMs may hallucinate invalid values like 'testnet' or 'mainnet-v2'
refute_claim description does not explain error cases or recovery path; no guidance on what happens if confirm=false or if PRIVATE_KEY is missing/invalid
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2026-07-28+ | v2 |
tally tool name lacks action verb; 'tally' is a noun, not a verb. Should be 'get_tally' or 'read_tally' to signal intent clearly