MCP server for interacting with EVM-compatible blockchains - supports 22 tools and 10 prompts across 60+ networks
Well-structured EVM toolkit with clear verb-first naming, descriptions on all tools, and comprehensive parameter documentation. All 22 tools have registered schemas with Zod validation and descriptions. Tool annotations are present (readOnlyHint, destructiveHint, idempotentHint, openWorldHint). However, there are gaps in output schema documentation (responses are JSON strings without formal schema declaration), and error handling is generic (no recovery guidance or actionable next steps). The server follows most patterns but lacks refinement in response structure and error categorization that would elevate it to A-grade.
Approve a spender (contract or wallet) to spend ERC20 tokens on behalf of the configured wallet
Call a read-only (view/pure) function on a smart contract
Check if an address owns a specific NFT (ERC721)
Fetch contract ABI from the block explorer (Etherscan v2 API)
Get the amount of tokens a spender is approved to spend on behalf of an owner
Get the native token (ETH, MATIC, etc.) balance for an address
Get block details by block number or hash
Output schemas not formally documented. All tools return JSON-stringified responses with type 'text', but the structure of that JSON (fields, types, required properties) is not formally declared. LLMs cannot reliably parse or extract data from undocumented JSON structures without trial-and-error.
Error responses are generic. All tools return 'Error: <message>' without guidance on recovery, retry strategy, or next steps. For example, 'Error fetching gas prices' tells the LLM nothing, is it retryable? Should it try a different network? Is the service down?
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | B | 71 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 0 | - | v1 |
Get information about an EVM network: chain ID, current block number, and RPC endpoint
Get current gas prices (base fee, standard, and fast) for a network
Get the number of NFTs (ERC721) owned by an address for a specific collection
Get a list of all supported EVM networks
Get the balance of an ERC20 token for an address
Get transaction details by hash
Get transaction receipt and status by hash
Get the address of the configured wallet. Use this to verify which wallet is active.
Check if an address is a smart contract or externally owned account (EOA)
List all readable (view/pure) functions available in a contract ABI
Lookup the ENS name for an Ethereum address (reverse resolution)
Resolve an ENS name to an Ethereum address
Transfer ERC20 tokens from the configured wallet to a recipient
Transfer native tokens (ETH, MATIC, etc.) from the configured wallet to a recipient
Wait for a transaction to be confirmed on the blockchain
Transfer tools lack confirmation pattern. 'transfer_native' and 'transfer_erc20' directly execute irreversible blockchain transactions without offering a dry-run, confirmation request, or rollback option. An agent mistake results in permanent fund loss.
call_contract_function has an ambiguous 'abi' parameter. It accepts a JSON string OR the literal string 'auto' to fetch from block explorer, creating a type overload. The description mentions 'requires ETHERSCAN_API_KEY' but does not state how that key is configured or what error occurs if missing.
approve_token_spending accepts 'unlimited' as a literal string in the 'amount' parameter, but the description does not explain how the server interprets this or what max uint256 value it translates to. No enum constraint; LLMs might pass other magic strings.
Pagination not present. Tools like 'get_supported_networks' return all networks without limit. If the supported network list grows to hundreds, LLMs receive bloated responses. No page/offset/limit parameters.
ENS resolution dependency not documented. Many tools accept ENS names (e.g., 'vitalik.eth'), but the description does not explain fallback behavior if resolution fails or which network is used for resolution when multiple networks are supported.