MCP server for OpenWallet Standard with agent treasury and spending limits
No output schemas documented anywhere, LLMs cannot plan downstream calls or extract structured data. Error handling returns text blobs rather than actionable recovery guidance. Tool names follow verb_noun convention (positive), but descriptions are generic and under 200 chars (baseline 194 chars average). No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite send_transaction being irreversible.
Check current spending limits and policy status
Get wallet balance across all supported chains
Send cryptocurrency to an address (subject to policy limits)
Missing output schemas. No documentation of what fields get_balance, send_transaction, or check_policy return. LLMs cannot plan downstream calls or extract structured data from responses.
Parameter descriptions incomplete. send_transaction's 'to' and 'amount' parameters lack descriptions. Rubric requires every parameter to have a description explaining what it controls.
No tool annotations despite irreversible operations. send_transaction modifies state and is irreversible, but lacks destructiveHint annotation. Agents need explicit signals about which calls are safe to retry.
Error handling returns unstructured text. Errors like 'TRANSACTION DENIED' or 'TRANSACTION FAILED' are human-readable but do not guide LLM recovery. Missing actionable next steps (e.g., 'Try check_policy() first').
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | 2026-07-28+ | v2 |
No confirmation/dry-run pattern for irreversible operations. send_transaction executes immediately without a confirmation step. Agents make mistakes, a dry-run or confirmation pattern prevents catastrophic errors.