MCP server for fee recommendations and gas estimation on EVM, UTXO, XRP via Crypto APIs
Server defines 4 tools with reasonable coverage of blockchain fee APIs. All tools have descriptions and schemas visible. However, descriptions lack critical WHEN/WHY guidance and contain multi-action patterns. Parameter descriptions are sparse or absent. Output schemas are not documented. Error handling is generic. Naming follows verb_noun convention but combines multiple actions into single tools (anti-pattern). No tool annotations for idempotency/destructiveness. Schema quality is moderate, types present, but many parameters lack descriptions.
Get fee recommendations and estimate gas costs for EVM blockchains. Use this before preparing or signing a transaction to determine appropriate gas parameters. Actions: • get-fee-recommendations: Get recommended gas price tiers (slow/standard/fast) • get-eip-1559-fee-recommendations: Get EIP-1559 fee parameters (baseFee, maxPriorityFee) for supported chains • estimate-native-coin-transfer-gas: Estimate gas for a native coin transfer (e.g. ETH, BNB) • estimate-token-transfer-gas: Estimate gas for an ERC-20/ERC-721 token transfer • estimate-contract-interaction-gas: Estimate gas for a smart contract call
Get fee recommendations for UTXO blockchains (bitcoin, bitcoin-cash, litecoin, dogecoin, dash, zcash). Use this before preparing or signing a transaction to determine the appropriate fee rate. Actions: • get-fee-recommendations: Get recommended fee-per-byte tiers (slow/standard/fast) from the mempool • estimate-transaction-smart-fee: Estimate the fee rate needed for confirmation within a target number of blocks
Get fee recommendations for XRP Ledger. Use this before preparing or signing a transaction to determine the appropriate transaction fee.
Get system information about the MCP server including version, credits available, and API connectivity status
Multi-action tools combine unrelated operations. blockchain_fees_utxo and blockchain_fees_evm both support multiple sub-actions (get-fee-recommendations, estimate-transaction-smart-fee, etc.) dispatched via 'action' enum. This violates single-responsibility principle, agents cannot compose or retry individual actions, and one action failure blocks others.
Parameter descriptions are absent or minimal. Most parameters (blockchain, network, action, context, confirmationTarget, feeRatePriority, fromAddress, toAddress, contractAddress, value, amount, contractType, data, etc.) lack descriptions explaining what they control, valid formats, or dependencies. LLMs cannot infer meaning from names alone.
Output schemas are not documented. Tools return API responses without declared structure. LLMs cannot plan downstream calls or extract fields reliably. No pagination info, field documentation, or return type schemas visible in code.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 66 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 32 | - | v1 |
No tool annotations for idempotency, destructiveness, or read-only hints. While all tools are READ_ONLY (no state mutation), this is not declared via toolAnnotations. Missing readOnlyHint annotation.
Descriptions lack WHEN/WHY guidance. blockchain_fees_utxo and blockchain_fees_evm describe WHAT the tools do (get recommendations, estimate gas) but not WHEN to call them or which tool to choose among competing options. E.g., 'Use this before preparing or signing a transaction' is vague, does it apply to all sub-actions equally?
Error handling is generic. src/server.ts logs errors to stderr but returns them without recovery guidance or classification. LLMs receive raw error messages without hints on retry-ability, user-fixability, or next steps.
Enum constraints present but lack descriptions. The 'action' parameter in blockchain_fees_utxo and blockchain_fees_evm is an enum, but enum values (get-fee-recommendations, estimate-transaction-smart-fee, etc.) have no descriptions. LLMs must guess which action suits their goal.
No pagination or result-limiting guidance. Tools may return large fee datasets or lists without documented limit, offset, or cursor. No indication if results are paginated or capped.