@cryptoapis-io/mcp-utils
OfficialProvides EVM utilities for Binance Smart Chain, including address validation, raw transaction decoding, and HD wallet address derivation.
Provides UTXO utilities for Bitcoin, including address validation, raw transaction decoding, and HD wallet address derivation.
Provides UTXO utilities for Bitcoin Cash, including address validation, raw transaction decoding, address format conversion (legacy/CashAddr), and HD wallet address derivation.
Provides UTXO utilities for Dash, including address validation, raw transaction decoding, and HD wallet address derivation.
Provides UTXO utilities for Dogecoin, including address validation, raw transaction decoding, and HD wallet address derivation.
Provides EVM utilities for Ethereum, including address validation, raw transaction decoding, and HD wallet address derivation.
Provides UTXO utilities for Litecoin, including address validation, raw transaction decoding, and HD wallet address derivation.
Provides XRP utilities, including address validation, X-Address encoding/decoding, and HD wallet address derivation.
Provides UTXO utilities for Zcash, including address validation, raw transaction decoding, and HD wallet address derivation.
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-utilsValidate bitcoin address 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa"
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-utils
MCP server for Crypto APIs Utils product. Validate addresses, decode raw transactions, and XRP X-Address encode/decode.
API Version: Compatible with Crypto APIs version 2024-12-12
Features
UTXO utils: Validate address, decode raw transaction hex (bitcoin, bitcoin-cash, litecoin, dogecoin, dash, zcash)
EVM utils: Validate address, decode raw transaction hex
XRP utils: Validate address, decode X-Address, encode X-Address
Derive addresses: Derive HD wallet (xPub/yPub/zPub) change or receiving addresses without syncing
Related MCP server: @cryptoapis-io/mcp-prepare-transactions
Prerequisites
Installation
npm install @cryptoapis-io/mcp-utilsOr install all Crypto APIs MCP servers: npm install @cryptoapis-io/mcp
Usage
# Run with API key
npx @cryptoapis-io/mcp-utils --api-key YOUR_API_KEY
# Or use environment variable
export CRYPTOAPIS_API_KEY=YOUR_API_KEY
npx @cryptoapis-io/mcp-utils
# HTTP transport (listens on 127.0.0.1; see "Exposing the server beyond localhost")
npx @cryptoapis-io/mcp-utils --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-utils": {
"command": "npx",
"args": ["-y", "@cryptoapis-io/mcp-utils"],
"env": {
"CRYPTOAPIS_API_KEY": "your_api_key_here"
}
}
}
}Cursor
Add to .cursor/mcp.json (project) or ~/.cursor/mcp.json (global):
{
"mcpServers": {
"cryptoapis-utils": {
"command": "npx",
"args": ["-y", "@cryptoapis-io/mcp-utils"],
"env": {
"CRYPTOAPIS_API_KEY": "your_api_key_here"
}
}
}
}MCP Inspector
npx @modelcontextprotocol/inspector npx @cryptoapis-io/mcp-utils --api-key YOUR_API_KEYn8n
Start the server in HTTP mode:
npx @cryptoapis-io/mcp-utils --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
utxo_utils
Action | Description |
| Check if a UTXO address is valid. Requires blockchain, network, address |
| Decode a raw transaction hex. Requires blockchain, network, rawTransactionHex |
| Convert Bitcoin Cash address between legacy and CashAddr formats. Requires network, address (Bitcoin Cash only, no blockchain parameter) |
Supported Blockchains: bitcoin, bitcoin-cash, litecoin, dogecoin, dash, zcash
evm_utils
Action | Description |
| Check if an EVM address is valid. Requires blockchain, network, address |
| Decode a raw transaction hex. Requires blockchain, network, rawTransactionHex |
xrp_utils
Action | Description |
| Check if an XRP address is valid. Requires network, address |
| Decode X-Address to classic address and tag. Requires network, xAddress |
| Encode classic address and tag to X-Address. Requires network, classicAddress, addressTag |
derive_addresses
Derive HD wallet (xPub/yPub/zPub) change or receiving addresses without syncing. Derives up to 10 addresses per call.
Parameter | Description |
| Target blockchain |
| Network name |
| xPub/yPub/zPub for the HD wallet |
| Address format (optional): p2pkh, p2sh, p2wpkh, standard, p2sh-cash, p2pkh-cash, classic, base58 |
| Number of addresses to derive, up to 10 (optional) |
| If true, derive change address(es); if false, derive receiving/deposit (optional, UTXO only) |
| Starting index for derivation (optional) |
Supported Blockchains: bitcoin, bitcoin-cash, litecoin, dogecoin, dash, zcash, ethereum, ethereum-classic, binance-smart-chain, xrp, tron
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-utils --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-utils --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-utils --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
5 toolsderive_addressesA
Utils: derive HD wallet (xPub, yPub, zPub) change or receiving addresses without syncing.
GET /utils/{blockchain}/{network}/xpubs/{extendedPublicKey}/derive-addresses Derives up to 10 addresses. By default creates receiving/deposit address; set isChange=true for change address (UTXO only).
Credits by action (source: OpenAPI): • binance-smart-chain: 25 • bitcoin: 10 • bitcoin-cash: 12 • dash: 11 • dogecoin: 11 • ethereum: 10 • ethereum-classic: 13 • litecoin: 11 • tron: 15 • xrp: 10 • zcash: 13
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 | |
| isChange | No | If true derive change address(es); if false derive receiving/deposit | |
| blockchain | Yes | Blockchain protocol | |
| startIndex | No | Starting index for derivation | |
| addressFormat | No | Address format | |
| addressesCount | No | Number of addresses to derive (up to 10) | |
| extendedPublicKey | Yes | xPub/yPub/zPub for the HD wallet |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and discloses the GET endpoint, a maximum of 10 derived addresses, default receiving behavior, UTXO-only change behavior, per-blockchain credit costs, and that actual credits are returned in response headers. It still omits authentication requirements and error behavior, but it provides substantial behavioral 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?
The purpose is front-loaded and the content is organized with an endpoint line and a credits bullet list. The per-blockchain credit list is long but relevant for a paid API, so most of the text earns its place.
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 purpose, endpoint, default mode, derivation limit, and cost, which is adequate for a utility endpoint. However, with no output schema and no annotations, it does not explain the response shape, authentication needs, or error cases an agent may need before invoking it.
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 documents every parameter including isChange and addressesCount. The description mainly repeats those schema semantics, adding only the UTXO-only restriction for isChange and the up-to-10 derivation limit, which justifies the baseline rather than a higher score.
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 first sentence states a specific verb and resource: deriving HD wallet change or receiving addresses from xPub/yPub/zPub, without syncing. It clearly distinguishes the two address modes. However, it does not explicitly differentiate this tool from sibling utils such as utxo_utils or evm_utils.
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?
Usage guidance is implied through the default receiving address behavior and the isChange=true rule for change addresses (UTXO only). There is no explicit when-to-use versus when-not-to-use guidance, and no alternatives are named among the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
evm_utilsA
EVM utils (Utils product): validate address, decode raw transaction hex.
Actions: • validate-address: Check if an EVM address is valid • decode-raw-transaction: Decode a raw transaction hex
Blockchain → Networks: • ethereum: mainnet, sepolia • ethereum-classic: mainnet, mordor • binance-smart-chain: mainnet, testnet • tron: mainnet, nile
Credits by action (source: OpenAPI): • decode-raw-transaction: binance-smart-chain 25, ethereum 10, ethereum-classic 13, tron 15 • validate-address: binance-smart-chain 25, ethereum 10, ethereum-classic 13, tron 15
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 | |
| address | No | Address (required for validate-address) | |
| context | No | Optional context for the request - echoed back in response | |
| network | Yes | Network name | |
| blockchain | Yes | Blockchain protocol | |
| rawTransactionHex | No | Raw transaction hex (required for decode-raw-transaction) |
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 does add genuinely useful non-schema behavior: per-action/per-chain credit costs, a disclaimer that costs are indicative, and the fact that actual credits are returned in response headers. However it says nothing about auth requirements, rate limits, or the read-only nature of these operations.
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 purpose sentence followed by clearly labeled bullet sections for actions, chain/network mapping, and credits. The credit block is long but earns its place as cost information; nothing is redundant padding.
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?
Covers purpose, actions, supported chain/network combinations, and cost for a 6-parameter multi-action tool with no annotations. But there is no output schema, and the description never indicates what validate-address or decode-raw-transaction return (boolean vs object), which leaves an interpretation gap for an agent.
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 a 3 is the baseline, but the description goes beyond the schema by mapping which networks belong to which blockchain (e.g. tron -> mainnet/nile, ethereum-classic -> mainnet/mordor). That constraint cannot be expressed by the two flat enums, so it adds real selection value.
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?
States specific verbs and resources ('validate address', 'decode raw transaction hex') and explicitly enumerates both actions with one-line glosses. The EVM scope plus the supported blockchain list cleanly separates it from the chain-family siblings utxo_utils and xrp_utils without needing to name them.
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 action list and the per-action credit table implicitly tell the agent which action to pick and which chains each action supports, but there is no explicit when-to-use / when-not-to-use guidance and no routing statement relative to the sibling utils tools. Usage is inferable rather than stated.
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.
utxo_utilsA
UTXO utils (Utils product): validate address, decode raw transaction hex, convert Bitcoin Cash address.
Actions: • validate-address: Check if a UTXO address is valid • decode-raw-transaction: Decode a raw transaction hex • convert-bitcoin-cash-address: Convert Bitcoin Cash address (legacy ↔ cash format); Bitcoin Cash only, no blockchain parameter (network + address)
Blockchain → Networks: • bitcoin: mainnet, testnet • bitcoin-cash: mainnet, testnet • litecoin: mainnet, testnet • dogecoin: mainnet, testnet • dash: mainnet, testnet • zcash: mainnet, testnet
Credits by action (source: OpenAPI): • convert-bitcoin-cash-address: bitcoin-cash 12 • decode-raw-transaction: bitcoin 10, bitcoin-cash 12, dash 11, dogecoin 11, litecoin 11, zcash 13 • validate-address: bitcoin 10, bitcoin-cash 12, dash 11, dogecoin 11, litecoin 11, zcash 13
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 | |
| address | No | Address (required for validate-address and convert-bitcoin-cash-address) | |
| context | No | Optional context for the request - echoed back in response | |
| network | Yes | Network name | |
| blockchain | No | Blockchain protocol (required for validate-address and decode-raw-transaction) | |
| rawTransactionHex | No | Raw transaction hex (required for decode-raw-transaction) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose a non-obvious behavioral trait: per-action credit costs, plus the note that credits are indicative and the actual spend is returned in response headers. It does not describe error behavior, rate limits, or failure modes, so it is strong but not exhaustive.
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 summary followed by tight bulleted actions, then supporting tables. The credit tables add length, but given the absence of annotations that cost detail earns its place. Structure is scannable with no filler prose.
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?
There is no output schema, so the description should ideally sketch return shapes — particularly for decode-raw-transaction, whose usefulness depends on what decoded fields come back. It also says nothing about pagination or response envelope. The operational details it does provide are solid, making this adequate but incomplete for an output-heavy utility.
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%, so the baseline is 3; the description adds value beyond the schema by pairing each blockchain with its supported networks and by restating which parameters each action requires (address, rawTransactionHex, and the convert action's lack of a blockchain parameter). The enum pairings are genuinely new information not encoded in the flat schema.
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 the resource (UTXO utilities) and enumerates three specific actions — validate-address, decode-raw-transaction, convert-bitcoin-cash-address — so the agent knows exactly what the tool does. It does not explicitly contrast itself with the sibling chain-family tools (evm_utils, xrp_utils), leaving sibling differentiation to inference from the name.
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 gets a one-line conditional, including the exception that convert-bitcoin-cash-address is Bitcoin Cash only and takes network + address rather than a blockchain parameter. The blockchain→networks matrix further tells the agent which combinations are legal. There is no explicit statement of when to prefer this tool over evm_utils/xrp_utils, so it stops 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.
xrp_utilsA
XRP utils (Utils product): validate address, decode/encode X-Address.
Actions: • validate-address: Check if an XRP address is valid • decode-x-address: Decode X-Address to classic address and tag • encode-x-address: Encode classic address and tag to X-Address
Networks: mainnet, testnet
Credits by action (source: OpenAPI): • decode-x-address: 10 • encode-x-address: 10 • validate-address: 10
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 | |
| address | No | Address (required for validate-address) | |
| context | No | Optional context for the request - echoed back in response | |
| network | Yes | Network name: mainnet or testnet | |
| xAddress | No | X-Address (required for decode-x-address) | |
| addressTag | No | Destination tag (required for encode-x-address) | |
| classicAddress | No | Classic address (required for encode-x-address) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it does disclose network support (mainnet/testnet) and per-action credit costs. However, it does not state that all three actions are pure read/compute operations, nor describe error behavior, rate limits, or whether credits are consumed on failure — significant omissions for an unannotated tool.
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 with the resource and its actions, then networks, then costs — a logical structure with no filler prose. The credits section is somewhat verbose for a tool description, mainly because it repeats a uniform cost three times, which keeps it just short of a 5.
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?
With no output schema, the description partially compensates by implying return content (validity check, decoded classic address plus tag, encoded X-Address). Networks and credit behavior are covered as well. What is left implicit is the exact return shape and failure modes, so it is strong but not 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%, so the schema already documents every parameter including which fields each action requires. The description's mapping of fields to actions (e.g. address for validate-address) largely repeats the schema, adding no format, encoding, or validation semantics beyond it; 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 names a specific resource (XRP utils) and enumerates the three concrete operations — validate-address, decode-x-address, encode-x-address — with a one-line statement of what each does. The chain-specific naming (XRP) also separates it from sibling tools like evm_utils and utxo_utils.
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?
Per-action descriptions tell the agent which action fits which task, which is useful routing within the tool, but there is no explicit guidance on when to use this tool versus siblings (evm_utils, utxo_utils, derive_addresses) or when not to use it. Usage is therefore implied rather than stated.
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.
5 tool updates
v0.4.0- First observed
derive_addresses - First observed
evm_utils - First observed
system_info - First observed
utxo_utils - First observed
xrp_utils
TDQS
Scored across 5 tools
Tools are mostly separated by blockchain family (utxo, evm, xrp, derive, system docs), which is clear. However, validate-address and decode-raw-transaction appear in both utxo_utils and evm_utils, so the agent must correctly classify the chain; derive_addresses also overlaps conceptually with the chain-specific utils.
utxo_utils, evm_utils, and xrp_utils follow a consistent chain_utils pattern, but system_info is a generic reference tool and derive_addresses uses a verb_noun action style. The mix is readable but not fully consistent.
Five tools is well-scoped for a utility server. Each tool groups related actions by chain family or function, avoiding excessive fragmentation while keeping the surface manageable.
The set covers reference documentation, address validation, raw transaction decoding, X-Address encode/decode, Bitcoin Cash conversion, and HD address derivation. Minor gaps remain, such as raw transaction encoding or broader conversion utilities, but the core Utils domain is well represented.
Maintenance
Related MCP Connectors
Remote MCP server exposing 330 production AI-agent services for web/data processing, validation, AI utilities, blockchain/crypto utilities, and x402 pay-per-use access.
Free MCP server of security & dev API tools -- supply-chain, CVE, DNS, WHOIS, OFAC, Cosmos SDK.
Tenzro Network MCP server: wallet, identity, payments, inference, staking, bridges, verification.
Self-hosted MCP server: 26 deterministic dev, security, and EVM tools.
Related MCP Servers
- AlicenseAqualityAmaintenanceMCP server for Crypto APIs Blockchain Fees product, providing fee recommendations and gas estimates for UTXO, EVM, and XRP blockchains.6224 npmMIT
- 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
- AlicenseNot gradedqualityBmaintenanceMCP server for Crypto APIs HD Wallet (Wallet as a Service) product. Track and manage HD wallets by their extended public key (xPub/yPub/zPub) — no private keys ever leave your device.150 npm1MIT
- AlicenseAqualityBmaintenanceMCP server for Crypto APIs Block Data product. Get block details by height or hash for EVM, UTXO, and XRP blockchains.4347 npmMIT