@cryptoapis-io/mcp-blockchain-fees
OfficialAn MCP server that wraps the Crypto APIs Blockchain Fees product, returning fee recommendations and gas/compute-unit estimates across UTXO, EVM, XRP, Tezos, and Solana blockchains.
blockchain_fees_utxo— fee recommendations (slow/standard/fast) and smart fee estimation for a target confirmation time on Bitcoin, Bitcoin Cash, Litecoin, Dogecoin, Dash, Zcash (mainnet/testnet).blockchain_fees_evm— gas price tiers, EIP-1559 parameters (base fee, priority fee), and gas estimation for native coin transfers, token (ERC-20/721) transfers, and contract calls on Ethereum, Ethereum Classic, BNB Chain, Tron, Polygon, Avalanche, Arbitrum, Base, Optimism.blockchain_fees_xrp— XRP fee recommendations (mainnet/testnet).blockchain_fees_tezos— mempool fee/cost rates plus fee estimation for native XTZ, FA1.2, and FA2 transfers (mainnet/shadownet).blockchain_fees_solana— priority fee recommendations and compute-unit estimation for native SOL transfers, SPL token transfers, and arbitrary program invocations (mainnet/devnet).system_info— offline reference docs on supported blockchains, error codes, credit costs, webhook callbacks, and throughput limits (no credits consumed).Runs over stdio or HTTP transport with API-key auth (startup key or per-request
x-api-key), so it can plug into Claude Desktop, Cursor, n8n, MCP Inspector, or the official remote server athttps://ai.cryptoapis.io/mcp.
Provides fee recommendations and gas estimates for the Bitcoin blockchain.
Provides fee recommendations and gas estimates for the Bitcoin Cash blockchain.
Provides fee recommendations and gas estimates for the Dash blockchain.
Provides fee recommendations and gas estimates for the Dogecoin blockchain.
Provides fee recommendations and gas estimates for the Litecoin blockchain.
Provides fee recommendations for the XRP Ledger blockchain.
Provides fee recommendations and gas estimates for the Zcash blockchain.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@cryptoapis-io/mcp-blockchain-feesWhat are the current fees for Bitcoin?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@cryptoapis-io/mcp-blockchain-fees
MCP server for Crypto APIs Blockchain Fees product. Fee recommendations and gas estimates for UTXO, EVM, XRP, Tezos, and Solana blockchains.
API Version: Compatible with Crypto APIs version 2024-12-12
Features
UTXO fee recommendations and smart fee estimation (Bitcoin, Bitcoin Cash, Litecoin, Dogecoin, Dash, Zcash)
EVM fee recommendations, EIP-1559 fees, and gas estimation for transfers and contract calls
XRP fee recommendations
Tezos fee recommendations and fee estimation for native XTZ, FA1.2, and FA2 transfers
Solana fee recommendations and compute-unit estimation for native SOL transfers, SPL token transfers, and arbitrary program invocations
Related MCP server: @cryptoapis-io/mcp-address-history
Prerequisites
Node.js 18+
Crypto APIs account and API key (sign up | get API key)
Installation
npm install @cryptoapis-io/mcp-blockchain-feesOr install all Crypto APIs MCP servers: npm install @cryptoapis-io/mcp
Usage
# Run with API key
npx @cryptoapis-io/mcp-blockchain-fees --api-key YOUR_API_KEY
# Or use environment variable
export CRYPTOAPIS_API_KEY=YOUR_API_KEY
npx @cryptoapis-io/mcp-blockchain-fees
# HTTP transport (listens on 127.0.0.1; see "Exposing the server beyond localhost")
npx @cryptoapis-io/mcp-blockchain-fees --transport http --port 3000 --api-key YOUR_API_KEYClaude Desktop
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS, %APPDATA%\Claude\claude_desktop_config.json on Windows):
{
"mcpServers": {
"cryptoapis-blockchain-fees": {
"command": "npx",
"args": ["-y", "@cryptoapis-io/mcp-blockchain-fees"],
"env": {
"CRYPTOAPIS_API_KEY": "your_api_key_here"
}
}
}
}Cursor
Add to .cursor/mcp.json (project) or ~/.cursor/mcp.json (global):
{
"mcpServers": {
"cryptoapis-blockchain-fees": {
"command": "npx",
"args": ["-y", "@cryptoapis-io/mcp-blockchain-fees"],
"env": {
"CRYPTOAPIS_API_KEY": "your_api_key_here"
}
}
}
}MCP Inspector
npx @modelcontextprotocol/inspector npx @cryptoapis-io/mcp-blockchain-fees --api-key YOUR_API_KEYn8n
Start the server in HTTP mode:
npx @cryptoapis-io/mcp-blockchain-fees --transport http --port 3000 --api-key YOUR_API_KEYIn your n8n workflow, add an AI Agent node
Under Tools, add an MCP Client Tool and set the URL to
http://localhost:3000/mcp
n8n in Docker:
localhostinside the container is not your machine. Start the server with--host 0.0.0.0andMCP_AUTH_TOKENset (see Exposing the server beyond localhost), usehttp://host.docker.internal:3000/mcpas the URL, and add anAuthorization: Bearer <token>header to the MCP Client Tool credential.
All servers default to port 3000. Use
--portto assign different ports when running multiple servers.
Available Tools
blockchain_fees_utxo
Fee recommendations for UTXO blockchains (Bitcoin, Bitcoin Cash, Litecoin, Dogecoin, Dash, Zcash).
Action | Description |
| Get fee recommendations (slow, standard, fast) |
| Estimate smart fee for a target confirmation time |
blockchain_fees_evm
Fee recommendations and gas estimation for EVM blockchains.
Action | Description |
| Get fee recommendations (slow, standard, fast) |
| Get EIP-1559 fee recommendations (base fee, priority fee) |
| Estimate gas for native coin transfer |
| Estimate gas for token transfer |
| Estimate gas for contract interaction |
blockchain_fees_xrp
Fee recommendations for XRP (mainnet, testnet).
Action | Description |
| Get XRP fee recommendations |
blockchain_fees_tezos
Fee recommendations and fee estimation for Tezos (mainnet, shadownet).
Action | Description |
| Get current minimal fee/cost rates from the mempool |
| Estimate the fee for a native XTZ transfer |
| Estimate the fee for an FA1.2 token transfer |
| Estimate the fee for an FA2 token transfer |
blockchain_fees_solana
Fee recommendations and compute-unit estimation for Solana (mainnet, devnet).
Action | Description |
| Get current priority fee recommendations from the mempool |
| Estimate compute units for a native SOL transfer |
| Estimate compute units for an SPL token transfer |
| Estimate compute units for an arbitrary program instruction call |
CLI Arguments
Argument | Description | Default |
| Crypto APIs API key |
|
| Transport type: |
|
| HTTP host (use |
|
| Bearer token callers must send ( |
|
| Comma-separated | — |
| HTTP port |
|
| HTTP path |
|
| Enable stateless HTTP mode |
|
HTTP API Key Modes
When using HTTP transport, the server supports two API key modes:
With
--api-key: The key is used for all requests.x-api-keyrequest headers are ignored.Without
--api-key: Each request must include anx-api-keyheader with a valid Crypto APIs key. This enables hosting a public server where each user provides their own key.
# Per-request key mode (multi-tenant)
npx @cryptoapis-io/mcp-blockchain-fees --transport http --port 3000
# Clients send x-api-key header with each requestExposing the server beyond localhost
HTTP mode listens on 127.0.0.1 by default, so only processes on the same machine can reach it.
To accept connections from other machines or containers, bind explicitly and protect the port:
# Startup-key mode: callers must present the token (the server refuses to start without one)
export MCP_AUTH_TOKEN=$(openssl rand -hex 32)
npx @cryptoapis-io/mcp-blockchain-fees --transport http --host 0.0.0.0 --port 3000 --api-key YOUR_API_KEY \
--allowed-hosts mcp.internal.example
# Clients send: Authorization: Bearer $MCP_AUTH_TOKEN
# Per-request key mode: no startup key, every request must carry the caller's own x-api-key
npx @cryptoapis-io/mcp-blockchain-fees --transport http --host 0.0.0.0 --port 3000--allowed-hosts restricts the Host header (DNS rebinding protection) when not bound to loopback. Prefer MCP_AUTH_TOKEN over --auth-token: command-line arguments are visible in the process list.
Stdio transport always requires an API key at startup.
Important: API Key Required
Warning: Making requests without a valid API key — or with an incorrect one — may result in your IP being banned from the Crypto APIs ecosystem. Always ensure a valid API key is configured before starting any server.
Remote MCP Server
Crypto APIs provides an official remote MCP server with all tools available via HTTP Streamable transport at https://ai.cryptoapis.io/mcp. Pass your API key via the x-api-key header — no installation required.
License
MIT
Available Tools
6 toolsblockchain_fees_evmA
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
Credits by action (source: OpenAPI): • estimate-contract-interaction-gas: arbitrum 192, avalanche 216, base 144, binance-smart-chain 300, ethereum 120, ethereum-classic 156, optimism 168, polygon 240, tron 180 • estimate-native-coin-transfer-gas: arbitrum 192, avalanche 216, base 144, binance-smart-chain 300, ethereum 120, ethereum-classic 156, optimism 168, polygon 240, tron 180 • estimate-token-transfer-gas: arbitrum 192, avalanche 216, base 144, binance-smart-chain 300, ethereum 120, ethereum-classic 156, optimism 168, polygon 240, tron 180 • get-eip-1559-fee-recommendations: arbitrum 48, avalanche 54, base 36, binance-smart-chain 75, ethereum 30, ethereum-classic 39, optimism 42, polygon 60, tron 45 • get-fee-recommendations: arbitrum 48, avalanche 54, base 36, binance-smart-chain 75, ethereum 30, ethereum-classic 39, optimism 42, polygon 60, tron 45
Credits are indicative only and may change at any time. The actual credits spent for each API request are returned in the response headers.
| Name | Required | Description | Default |
|---|---|---|---|
| data | No | Hex-encoded calldata (required for estimate-contract-interaction-gas) | |
| value | No | Amount in native coin's smallest unit, e.g. wei (required for estimate-native-coin-transfer-gas; optional for estimate-contract-interaction-gas) | |
| action | Yes | Action to perform | |
| amount | No | Token amount to transfer (required for estimate-token-transfer-gas) | |
| context | No | Optional context for the request - echoed back in response | |
| network | Yes | Network name | |
| toAddress | No | Recipient address (required for native coin and token transfer gas estimation) | |
| blockchain | Yes | Blockchain protocol | |
| fromAddress | No | Sender address (required for gas estimation actions) | |
| contractType | No | Token standard: ERC-20 or ERC-721 (estimate-token-transfer-gas only; defaults to ERC-20) | |
| contractAddress | No | Token contract address (required for estimate-token-transfer-gas and estimate-contract-interaction-gas) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It conveys that the tool performs estimations (read-only) and lists actions, but does not explicitly state that no transaction is signed or submitted. It does add useful context about credits and response headers, which is a behavioral trait. Still, the lack of an explicit read-only/safety disclosure keeps it from a higher score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a clear purpose, but the credits section is excessively long and repetitive, listing the same credit values for multiple actions. This violates the principle that every sentence should earn its place. The core action list is useful, but the redundancy makes the description bloated and less scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 11 parameters and 5 distinct actions, but the description does not guide the agent on which action to choose for a given scenario. The schema hints at required parameters per action, and the action names are self-explanatory, but without an output schema or action-selection guidance, the description is only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and each parameter already includes detailed descriptions, including action-specific requirements. The tool description's action list duplicates some of this information (e.g., which action requires 'data') without adding new meaning beyond the schema. Therefore, it meets the baseline but does not elevate it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb-resource pair: 'Get fee recommendations and estimate gas costs for EVM blockchains.' This clearly distinguishes the tool from its siblings (UTXO, XRP) by explicitly scoping to EVM. The subsequent action list enumerates concrete operations, leaving no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear guidance on when to use the tool: 'Use this before preparing or signing a transaction to determine appropriate gas parameters.' This gives a concrete context. However, it does not mention alternatives or explicit when-not-to-use scenarios, though the sibling tool names (UTXO/XRP) implicitly differentiate by chain type.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blockchain_fees_solanaA
Blockchain Fees Solana: fee recommendations and compute-unit estimation. Solana uses compute units (not gas), so this is a distinct cost model from EVM.
Actions: • get-fee-recommendations: Get current priority fee recommendations from the mempool • estimate-native-coin-transfer-compute-units: Estimate compute units for a native SOL transfer • estimate-token-transfer-compute-units: Estimate compute units for an SPL token transfer • estimate-program-invocation-compute-units: Estimate compute units for an arbitrary program instruction call
Credits by action (source: OpenAPI): • estimate-native-coin-transfer-compute-units: 120 • estimate-program-invocation-compute-units: 120 • estimate-token-transfer-compute-units: 120 • get-fee-recommendations: 90
Credits are indicative only and may change at any time. The actual credits spent for each API request are returned in the response headers.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform | |
| amount | No | Amount in lamports (native) or token base units (token) - required for estimate-native-coin-transfer-compute-units, estimate-token-transfer-compute-units | |
| sender | No | Sender address - required for all estimate actions | |
| context | No | Optional context for the request - echoed back in response | |
| network | Yes | Network name | |
| accounts | No | Accounts referenced by the instruction, in the order the program expects them (estimate-program-invocation-compute-units only; may be empty) | |
| programId | No | On-chain program address to invoke - required for estimate-program-invocation-compute-units | |
| recipient | No | Recipient address - required for estimate-native-coin-transfer-compute-units, estimate-token-transfer-compute-units | |
| tokenStandard | No | SPL token program standard - required for estimate-token-transfer-compute-units | |
| contractAddress | No | SPL token mint address - required for estimate-token-transfer-compute-units | |
| instructionData | No | Base58/base64-encoded instruction data for the program call - required for estimate-program-invocation-compute-units |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full disclosure burden, and it does well: it explains the compute-unit cost model, per-action credit costs, and explicitly notes credits are indicative and actual spend appears in response headers. It omits whether the calls mutate anything (they appear read-only) and any auth or rate-limit context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded one-line statement of purpose followed by scannable action and credit bullets; nothing is redundant. The credit table is somewhat heavy for a description body, though it is structured and actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter, 4-action tool with no output schema and no annotations, the description covers all actions, their purposes, and cost metadata, which is enough for correct invocation. It stops short of describing response shape or per-action parameter requirements, though the schema covers the latter at full coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and every parameter (amount, sender, recipient, tokenStandard, programId, accounts, instructionData, etc.) is documented in the schema, including which action requires it. The description adds no additional parameter semantics beyond what the schema already provides, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource ('fee recommendations and compute-unit estimation') and enumerates the four concrete actions with one-line purposes each. It also explicitly distinguishes the tool from EVM-based siblings by noting Solana uses compute units rather than gas, and the name makes its chain scope unambiguous against Tezos/UTXO/XRP siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Each action line implies when it applies (native SOL transfer vs SPL token transfer vs arbitrary program invocation vs fee lookup), giving an agent clear routing within the tool. It does not, however, state when a caller should NOT use an action (e.g., preconditions for program-invocation estimation) or compare against non-EVM siblings beyond the gas/compute-unit remark.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blockchain_fees_tezosA
Blockchain Fees Tezos: fee recommendations and fee estimation for XTZ, FA1.2, and FA2 transfers.
Actions: • get-fee-recommendations: Get current minimal fee/cost rates from the mempool • estimate-transfer: Estimate the fee for a native XTZ transfer • estimate-fa12-transfer: Estimate the fee for an FA1.2 token transfer • estimate-fa2-transfer: Estimate the fee for an FA2 token transfer
Credits by action (source: OpenAPI): • estimate-fa12-transfer: 52 • estimate-fa2-transfer: 52 • estimate-transfer: 52 • get-fee-recommendations: 52
Credits are indicative only and may change at any time. The actual credits spent for each API request are returned in the response headers.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform | |
| amount | No | Amount in mutez (transfer) or token base units (fa12/fa2) as an integer string - required for all estimate actions | |
| sender | No | Sender address - required for estimate-transfer, estimate-fa12-transfer, estimate-fa2-transfer | |
| context | No | Optional context for the request - echoed back in response | |
| network | Yes | Network name | |
| tokenId | No | FA2 token ID as an integer STRING (e.g. "0") - estimate-fa2-transfer only; the API rejects a number | |
| recipient | No | Recipient address - required for estimate-transfer, estimate-fa12-transfer, estimate-fa2-transfer | |
| contractAddress | No | FA1.2/FA2 token contract address - required for estimate-fa12-transfer, estimate-fa2-transfer | |
| senderPublicKey | No | Sender's public key - required only when the source account is unrevealed (all estimate actions) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden, and it does disclose real cost context: per-action credit costs plus the caveat that they are indicative and that actual credits appear in response headers. That is genuinely useful and non-obvious. It stops short of describing side effects, auth requirements, rate limits, or error behavior, which for a 4-action estimator leaves a meaningful gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is front-loaded with the purpose, then a clean action list, then the credit block. It is appropriately sized, though the credit section repeats the identical value '52' four times and could be collapsed to a single line, which is minor redundancy rather than bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter tool with no output schema and no annotations, the description covers action selection well but says nothing about the shape of the returned fee estimate, the network requirement (mainnet vs shadownet), or failure modes. It is adequate for invocation but not fully complete given the absence of a structured output contract.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains every parameter, including conditional requirements and the tokenId string-format trap. The description contributes no additional parameter semantics beyond mapping actions to purposes, which is the expected baseline when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete resource (Tezos fees) and enumerates four specific actions covering XTZ, FA1.2 and FA2 transfers, so the agent knows exactly what operations are available. The chain-specific scope is unmistakable and cleanly distinguishes it from siblings like blockchain_fees_evm and blockchain_fees_solana.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Each action is paired with a plain-language purpose (e.g. 'get-fee-recommendations: get current minimal fee/cost rates from the mempool'), which effectively routes the agent to the right action for the transfer type at hand. However, there is no explicit when-not-to-use guidance and no cross-reference to the sibling chain tools, so the guidance is clear but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blockchain_fees_utxoA
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
Credits by action (source: OpenAPI): • estimate-transaction-smart-fee: bitcoin 510, bitcoin-cash 612, dash 561, dogecoin 561, litecoin 561, zcash 663 • get-fee-recommendations: bitcoin 510, bitcoin-cash 612, dash 561, dogecoin 561, litecoin 561, zcash 663
Credits are indicative only and may change at any time. The actual credits spent for each API request are returned in the response headers.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform | |
| context | No | Optional context for the request - echoed back in response | |
| network | Yes | Network name | |
| blockchain | Yes | Blockchain protocol | |
| feeRatePriority | No | Fee rate priority: ECONOMICAL or CONSERVATIVE (estimate-transaction-smart-fee only) | |
| confirmationTarget | No | Target number of blocks for confirmation (estimate-transaction-smart-fee only) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the two actions, includes credit costs per action/blockchain, and notes that credits are indicative and actual costs are returned in response headers. This adds meaningful behavioral context beyond the schema, though it doesn't explicitly state read-only behavior or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main purpose in the first sentence, followed by usage guidance and a structured action list. The credits section is somewhat verbose but serves a purpose (cost transparency). Overall, it's well-organized and each section earns its place, though it could be slightly more compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's scope, use cases, available actions, and cost information, which is solid for a fee-recommendation tool. It lacks an output schema but the actions imply the return type. The description is sufficiently complete given the tool's complexity, though it could clarify the meaning of fee tiers or the return structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each parameter has a description. The tool description adds action-to-parameter mapping (e.g., feeRatePriority and confirmationTarget are 'estimate-transaction-smart-fee only') but this is also present in the schema. The description doesn't significantly augment the parameter semantics beyond what the schema already provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get fee recommendations for UTXO blockchains' and lists the specific blockchains (bitcoin, bitcoin-cash, litecoin, dogecoin, dash, zcash). It also differentiates from sibling tools by naming the UTXO scope, which contrasts with the EVM and XRP siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage context: 'Use this before preparing or signing a transaction to determine the appropriate fee rate.' It also breaks down the two actions and their specific use cases. However, it does not explicitly mention when to avoid this tool or name alternative tools, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blockchain_fees_xrpA
Blockchain Fees XRP: get fee recommendations. Networks: mainnet, testnet.
Credits per call: 20
Credits are indicative only and may change at any time. The actual credits spent for each API request are returned in the response headers.
| Name | Required | Description | Default |
|---|---|---|---|
| context | No | Optional context for the request - echoed back in response | |
| network | Yes | Network name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses credit costs and that actual credits are in response headers, which is useful. However, it does not describe the return format or any side effects, though as a read-only fee tool this is less critical.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the purpose. It includes credit info as a separate block, which is relevant but could be considered extraneous. Overall, it is efficient with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one required parameter and no output schema. The description gives network options and credit costs, but does not explain what 'fee recommendations' includes or the structure of the response. For a minimal fee tool, this is adequate but has gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: both 'network' (with enum) and 'context' are fully described in the schema. The description only repeats the network names, adding no new parameter semantics. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'get fee recommendations' for XRP, with specific network options. It distinguishes itself from sibling tools like blockchain_fees_utxo and blockchain_fees_evm by explicitly naming the chain (XRP) and supported networks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: when you need fee recommendations for XRP on mainnet or testnet. However, it does not explicitly state when to prefer this over sibling fee tools or system_info, nor does it mention exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
system_infoA
CryptoAPIs reference documentation — no API call, no credits consumed.
Actions: • blockchains — Supported blockchains, networks, products per chain, denominations, fiat currencies • errors — Complete error code table (HTTP status, error code, message) • credits — Credit charging structure, cost multipliers per blockchain, monitoring & operations taxes (xPub, synced addresses, blockchain events), pay-as-you-go • callbacks — Webhook mechanics: URL requirements, retry strategy (5 retries, exponential backoff), HMAC security, idempotency • limits — Throughput soft/hard limits per plan, 2.1x penalty multiplier, rate limiting behavior
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Reference topic to retrieve | |
| context | No | Optional context for the request - echoed back in response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and explicitly notes 'no API call, no credits consumed,' which is key behavioral information. It also discloses detailed content such as retry strategy, HMAC security, and rate-limit penalty multipliers, going well beyond a generic 'returns info' statement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the critical 'no API call, no credits consumed' caveat and uses a compact bullet list. Each bullet covers a distinct action without wasted prose, making it highly scannable for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a reference-documentation tool with no output schema and no annotations, this description is complete enough: it defines all five actions and gives sufficient detail about their content. It also clarifies side effects (none) and cost implications (none), covering the main contextual risks.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although schema coverage is 100%, the description adds significant meaning by explaining each allowed action enum value in detail (e.g., callbacks covers URL requirements, 5 retries, HMAC). This transforms enum names into actionable context and compensates fully beyond the schema's short parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states this is CryptoAPIs reference documentation with no API call or credits consumed, and enumerates five specific topics (blockchains, errors, credits, callbacks, limits). This clearly identifies it as an informational tool distinct from domain siblings like aml.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The bulleted actions give clear contexts for when to use the tool, such as looking up error codes, credit structures, callback mechanics, or rate limits. It does not explicitly name alternatives or exclusion conditions, so it stops short of a full when/when-not specification.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
v0.5.1- Added
blockchain_fees_solana - Added
blockchain_fees_tezos
4 tool updates
v0.3.0- First observed
blockchain_fees_evm - First observed
blockchain_fees_utxo - First observed
blockchain_fees_xrp - First observed
system_info
TDQS
Scored across 6 tools
Each tool is partitioned by a distinct blockchain family (EVM, Tezos, Solana, UTXO, XRP), plus a separate documentation tool, so an agent can unambiguously route a request. The repeated action names like get-fee-recommendations only appear within different chain namespaces, avoiding true overlap.
Five of six tools follow the predictable blockchain_fees_<chain> pattern with consistent snake_case and matching action verbs (get-, estimate-). The lone system_info tool deviates from the prefix but is clearly a different utility, so the deviation is minor and justifiable.
Six tools is well-scoped: one per chain family plus a reference tool, each earning its place. Splitting by chain family avoids bloating any single tool while keeping the surface compact.
Coverage spans the major chain families with both fee recommendations and estimation, which is broad. The XRP tool only offers fee recommendations (no estimation) and UTXO has just two actions, leaving minor gaps but no dead ends for typical fee-lookup workflows.
Maintenance
Related MCP Connectors
MCP server with quote and live cryptocurrency price tools, local and cloud-deployed transports.
MCP server for Fuse Network: balances, tokens, staking, DeFi data, swaps and on-chain transactions.
Unlock the power of real-time cryptocurrency data with our Crypto Price Insights MCP server.
Related MCP Servers
- AlicenseAqualityBmaintenanceMCP server for Crypto APIs Prepare Transactions product that builds unsigned EVM transactions for native coin, fungible token (ERC-20), and NFT (ERC-721) transfers.895 npmMIT
- AlicenseAqualityBmaintenanceMCP server for Crypto APIs Address History product, enabling querying full blockchain address transaction history for synced addresses across EVM and UTXO blockchains.483 npmMIT
- AlicenseAqualityBmaintenanceMCP server for Crypto APIs Block Data product. Get block details by height or hash for EVM, UTXO, and XRP blockchains.4347 npmMIT

@cryptoapis-io/mcpofficial
AlicenseAqualityBmaintenanceMCP server for Crypto APIs Transactions Data. Enables lookup of transaction details by hash across EVM, UTXO, Solana, XRP, and Kaspa blockchains.674 npmMIT