Model Context Protocol server for Solana blockchain providing tools to query and interact with Devnet & Testnet networks
This Solana MCP server presents well-structured tool definitions with consistent naming conventions and descriptions. All five tools follow verb_noun patterns (search_, get_) and include substantive descriptions explaining purpose and use cases. Input schemas are present and use Zod for validation with regex patterns for blockchain addresses. However, there are notable gaps: output schemas are not documented (tools return JSON.stringify without formal schema declarations), error handling is generic ('Failed to fetch X' without recovery guidance), and parameter descriptions lack detail about constraints and edge cases. The server demonstrates solid foundational quality but falls short of production-grade tooling due to missing output documentation and minimal error classification. Per-tool scores range from 55-72, averaging 68.
Get information about a Solana account by its public key. Returns account balance, owner, data, and executable status.
Get the SOL balance of a Solana account in both lamports and SOL.
Retrieve information about a Solana block by slot number.
Retrieve details of a Solana transaction by its signature.
Search across the Solana documentation to find relevant information, code examples, API references, and guides. Use this tool when you need to answer questions about Solana, find specific documentation, understand how features work, or locate implementation details. The search returns contextual content with titles and direct links to the documentation pages.
Output schemas are not documented. Tools return JSON.stringify(result) but LLMs cannot see what fields/types to expect. Downstream tools requiring specific fields (e.g. owner, lamports) cannot be reliably chained.
Error messages are generic ('Failed to fetch account info', 'Failed to search documentation') without recovery guidance. LLM does not know if the error is retryable, user-fixable (invalid address), or fatal (service down).
Parameter descriptions lack actionable constraints. 'Commitment level (processed | confirmed | finalized)' repeats the enum but does not explain WHEN to use each (processed = latest, may be unstable; finalized = canonical). LLMs cannot reason about tradeoffs.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 60 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 13 | - | v1 |
get_block accepts slot as unbounded integer, no min/max constraint. LLMs could pass negative, zero, or absurdly large slot numbers. Should constrain to valid range (0 to current slot).
get_transaction description is too brief (50 chars). Does not explain that it requires a transaction SIGNATURE (not a transaction ID or hash). Ambiguity invites LLMs to pass wrong input.
search_documentation proxies to external MCP client. If the upstream Solana Docs server is unavailable or times out, error handling does not guide the LLM to retry, fall back, or ask user for manual help.