Wallet MCP is an MCP server with a bunch of tools for managing wallets and contract states
Wallet MCP has critical definition gaps across all dimensions. Tool names lack clear action verbs (getTransactions, getBalance are acceptable but inconsistent with listBuffers/closeBuffer). Descriptions are minimal (10-50 chars, well below the 194-char baseline) and lack context on when to use each tool. Parameter descriptions are sparse or missing entirely. Most critically, the server exposes private keys as array-of-numbers parameters (listBuffers, closeBuffer), a severe security violation. Input schemas are present but descriptions are inadequate. No output schemas documented. Error handling is minimal. The closeBuffer tool is destructive but lacks confirmation or dry-run patterns.
Close a specific program buffer and return funds to the payer
get balance of a wallet
Get transaction logs for a specific Solana program
get transactions of a wallet Limits are to specify the number of transactions to retrieve
List program buffers associated with a specific payer
Private keys exposed as tool parameters. listBuffers and closeBuffer accept payerKey as array-of-numbers, forcing agents to handle raw secrets. This violates secret-injection pattern and risks leaking credentials into logs and prompt history.
Destructive tool (closeBuffer) lacks confirmation or dry-run pattern. No recovery guidance if agent accidentally closes wrong buffer. Agents make mistakes, irreversible operations need safeguards.
Descriptions are critically short (10-50 chars vs 194-char baseline). getBalance is '20 chars', listBuffers is '50 chars'. Too brief to guide LLM tool selection. Missing WHAT, WHEN, and WHY context.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 41 | 2026-07-28+ | v2 |
Parameter descriptions missing or minimal. 'limit' in getTransactions has description but 'payerKey' in listBuffers lacks guidance on format/encoding. LLMs cannot infer parameter meaning from names alone.
No output schemas documented. Tool responses return unstructured text with embedded JSON-like strings. LLMs cannot parse or chain results reliably. Missing documented return types for all tools.