Crypto APIs Market Data MCP Server
Click on "Install 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., "@Crypto APIs Market Data MCP Serverget exchange rate for BTC to USD"
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-market-data
MCP server for Crypto APIs Market Data product. List supported assets, get exchange rates, and get asset details.
API Version: Compatible with Crypto APIs version 2024-12-12
Features
List supported crypto and fiat assets with filtering and pagination
Get exchange rates between any two assets (by symbol or asset ID)
Get asset details by asset ID or symbol
Related MCP server: CoinMarketCap MCP Server
Prerequisites
Node.js 18+
Crypto APIs account and API key (sign up | get API key)
Installation
npm install @cryptoapis-io/mcp-market-dataOr install all Crypto APIs MCP servers: npm install @cryptoapis-io/mcp
Usage
# Run with API key
npx @cryptoapis-io/mcp-market-data --api-key YOUR_API_KEY
# Or use environment variable
export CRYPTOAPIS_API_KEY=YOUR_API_KEY
npx @cryptoapis-io/mcp-market-data
# HTTP transport
npx @cryptoapis-io/mcp-market-data --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-market-data": {
"command": "npx",
"args": ["-y", "@cryptoapis-io/mcp-market-data"],
"env": {
"CRYPTOAPIS_API_KEY": "your_api_key_here"
}
}
}
}Cursor
Add to .cursor/mcp.json (project) or ~/.cursor/mcp.json (global):
{
"mcpServers": {
"cryptoapis-market-data": {
"command": "npx",
"args": ["-y", "@cryptoapis-io/mcp-market-data"],
"env": {
"CRYPTOAPIS_API_KEY": "your_api_key_here"
}
}
}
}MCP Inspector
npx @modelcontextprotocol/inspector npx @cryptoapis-io/mcp-market-data --api-key YOUR_API_KEYn8n
Start the server in HTTP mode:
npx @cryptoapis-io/mcp-market-data --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
All servers default to port 3000. Use
--portto assign different ports when running multiple servers.
Available Tools
market_data_metadata
Action | Description |
| List supported crypto and fiat assets. Optional: |
market_data_exchange_rates
Action | Description |
| Get exchange rate between two assets by symbol (e.g. BTC to USD) |
| Get exchange rate between two assets by asset ID |
market_data_assets
Action | Description |
| Get asset details by unique asset ID |
| Get asset details by symbol (e.g. BTC, ETH) |
CLI Arguments
Argument | Description | Default |
| Crypto APIs API key |
|
| Transport type: |
|
| HTTP host |
|
| 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-market-data --transport http --port 3000
# Clients send x-api-key header with each requestStdio 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
4 toolsmarket_data_assetsB
Market Data assets (asset details).
Actions: • get-asset-details-by-asset-id: Get asset details by unique asset ID • get-asset-details-by-asset-symbol: Get asset details by symbol (e.g. BTC, ETH)
Credits by action (source: OpenAPI): • get-asset-details-by-asset-id: 10 • get-asset-details-by-asset-symbol: 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 | |
| assetId | No | Asset ID - for get-asset-details-by-asset-id | |
| context | No | Optional context for the request - echoed back in response | |
| assetSymbol | No | Asset symbol (e.g. BTC) - for get-asset-details-by-asset-symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It does disclose the credit cost per action and notes that actual credits are returned in headers, which is useful. However, it does not clarify if the operation is read-only, potential errors, or any side effects, leaving a 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 description is well-structured with bullets and front-loads the main purpose. The credit information adds detail but is relevant. It is not overly verbose.
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 should provide more context on the return payload. It mentions asset details but doesn't describe the structure or fields. The two actions are clear, but the lack of response details leaves the tool under-specified.
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?
Input schema has 100% description coverage, with each parameter already described (e.g., assetId and assetSymbol with examples). The description only repeats the action-to-parameter mapping without adding new semantics, so baseline score of 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 clearly states the tool handles 'Market Data assets (asset details)' and enumerates two specific actions for retrieving asset details by ID or symbol. This gives a clear verb+resource. It doesn't explicitly contrast with sibling tools, but the actions are distinct.
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: use get-asset-details-by-asset-id when you have an ID, and get-asset-details-by-asset-symbol when you have a symbol. However, it does not provide explicit guidance on when to choose this tool over siblings or any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
market_data_exchange_ratesA
Market Data exchange rates.
Actions: • get-exchange-rate-by-asset-symbols: Get exchange rate between two assets by symbol (e.g. BTC, USD) • get-exchange-rate-by-asset-ids: Get exchange rate between two assets by asset ID
Credits by action (source: OpenAPI): • get-exchange-rate-by-asset-ids: 10 • get-exchange-rate-by-asset-symbols: 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 | |
| context | No | Optional context for the request - echoed back in response | |
| toAssetId | No | To asset ID - for get-exchange-rate-by-asset-ids | |
| fromAssetId | No | From asset ID - for get-exchange-rate-by-asset-ids | |
| toAssetSymbol | No | To asset symbol (e.g. USD) - for get-exchange-rate-by-asset-symbols | |
| fromAssetSymbol | No | From asset symbol (e.g. BTC) - for get-exchange-rate-by-asset-symbols |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses credit costs per action and notes that credits are indicative, with actual credits returned in response headers. Since no annotations are provided, the description carries the burden, but it does not mention whether the tool is read-only, likely response format, or error behavior.
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 well-structured with bullet points for actions and credits, and front-loaded with 'Market Data exchange rates.' The credit list is slightly redundant since both actions cost the same, but overall it remains concise and 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?
With no annotations and no output schema, the description should provide more context. It lists actions and credits but lacks guidance on parameter grouping, response structure, error handling, or examples. The tool is simple enough that this is acceptable but leaves 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?
The schema already covers all parameters with descriptions, so baseline is 3. The description adds examples like BTC and USD, but does not clarify which parameters are required together or how the action field dictates parameter usage.
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 provides exchange rates, with two specific actions 'get-exchange-rate-by-asset-symbols' and 'get-exchange-rate-by-asset-ids' that list the verb and resource. This differentiates it from sibling tools like market_data_metadata, which focus on metadata.
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 makes it clear that exchange rates are the domain, and the two actions are defined with their parameters. However, it does not explicitly state when to use one action over the other or mention alternative tools for non-exchange-rate needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
market_data_metadataB
Market Data metadata (list supported assets).
Actions: • list-supported-assets: List supported crypto and fiat assets (optional pagination and type filter)
Credits by action (source: OpenAPI): • list-supported-assets: 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 |
|---|---|---|---|
| type | No | Asset type filter (crypto or fiat) | |
| limit | No | Number of items to return (max 50) | |
| action | Yes | Action to perform | |
| offset | No | Pagination offset | |
| 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?
The description discloses credit behavior (indicative credits, actual in response headers) and mentions optional pagination/type filtering. However, without annotations, it does not cover response format, rate limits, or other behavioral traits, leaving a moderate 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 description is concise and well-structured, with a clear action list and credit note. It avoids irrelevant detail, though the action bullet is slightly redundant with the main description.
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 and the schema is fully covered, but the absence of an output schema and lack of description about the returned data leaves ambiguity about what the list will contain. The cost information and action list help, but the response format is not disclosed, so the completeness is moderate.
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?
The input schema provides 100% descriptive coverage for all parameters. The description merely summarizes 'optional pagination and type filter' without adding any information beyond what the schema already documents, so it meets the baseline but adds no extra 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?
The description clearly states the tool lists supported crypto and fiat assets, with a specific action name. However, it does not explicitly differentiate from sibling tools like 'market_data_assets' or 'market_data_exchange_rates', so it is specific but not fully disambiguated.
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?
There is no guidance on when to use this tool versus alternatives. The description only provides the action and credit information without any context for selection or exclusion.
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 must disclose behavior. It states the tool is a reference doc, makes no API call, consumes no credits, and lists the content of each action. This is transparent and honest. It does not describe the response format, but for a documentation lookup the key facts are covered.
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 well-organized with a clear lead statement and bullet points for each action. Every line earns its place, with no redundancy or filler. It is appropriately sized for the complexity.
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?
Given the tool's simplicity, the description covers essentials: what it is, no API call, and the specific content of each action. The schema handles parameters. It could mention the response format or the 'context' echo, but these are minor given the reference nature.
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 both parameters are described. The description adds value by explaining what each action value returns (e.g., 'Complete error code table', 'Credit charging structure'), going beyond bare enum labels. This helps the agent select the correct action.
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 is 'CryptoAPIs reference documentation' and lists specific topics it covers (blockchains, errors, credits, callbacks, limits). This distinguishes it from the sibling market data tools, which are about live data. The resource and scope are unmistakable.
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?
It explicitly says 'no API call, no credits consumed', which immediately signals when to use this for reference lookups. It also details what each action returns, implying the appropriate contexts for choosing this tool over live-data siblings. No explicit exclusions or alternatives are given, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
The four tools have distinct purposes: metadata, exchange rates, asset details, and reference docs. Within exchange rates and assets, there are closely related actions (by symbol vs. by ID) that could cause selection confusion, but the tool-level separation is clear.
Tool names follow a consistent snake_case pattern with the 'market_data_' prefix for data tools, and 'system_info' is a minor deviation. Actions use a consistent kebab-case verb-noun structure (e.g., 'get-exchange-rate-by-asset-symbols'), so overall naming is predictable with only a slight inconsistency.
With 4 tools, the server is on the lean side but not unreasonable for a market data scope. Each tool covers a different aspect (metadata, rates, assets, reference), and the count is within the acceptable range, though it feels minimal rather than comprehensive.
The tool surface is missing common market data operations such as historical price data, market charts, OHLCV, or market cap. It only provides current exchange rates and asset details, which is a significant gap for a market data API and will likely cause agent failures when historical or broader market metrics are needed.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Query cryptocurrency on-chain data, OHLCV prices, market data, and Research & QuickTake insights.
Real-time crypto market data: candles, tickers, orderbooks across 13+ exchanges via MCP.
Real-time and historical price feeds for 500+ crypto, equities, FX, and commodities assets.
Real-time & historical crypto and fiat exchange rates, median-aggregated from multiple sources.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceReal-time access to cryptocurrency data from the CoinMarketCap API.221MIT
- AlicenseBqualityDmaintenanceProvides access to cryptocurrency market data, exchange information, and blockchain metrics through the CoinMarketCap API. Supports price quotes, historical data, trending tokens, global metrics, and DEX information across different subscription tiers.2633MIT
- FlicenseAqualityDmaintenanceProvides access to cryptocurrency market data through the CoinCap API v3, enabling users to retrieve real-time prices, exchange rates, market information, and detailed data for various cryptocurrencies.5
- AlicenseCqualityCmaintenanceEnables querying real-time and historical financial market data for stocks, options, forex, and crypto, including quotes, trades, technical indicators, and reference data through a set of MCP tools.713MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/CryptoAPIs-io/cryptoapis-mcp-market-data'
If you have feedback or need assistance with the MCP directory API, please join our Discord server