Crypto Market Data MCP Server
This server provides real-time, read-only cryptocurrency market data from 100+ exchanges (via CCXT) — no API keys required — covering spot and perpetual markets with 13 tools across three categories:
Discovery
list_exchanges: See all supported exchanges.get_capabilities: Check which data types each exchange supports (no network calls).search_symbols: Find the correct symbol format for a coin on a given exchange.
Market Data
get_price: Current price and 24-hour statistics.get_order_book: Bids/asks with configurable depth (up to 50 levels per side).get_ohlcv: Candlestick data across multiple timeframes.get_recent_trades: Latest public trades for any symbol.
Derivatives
get_funding_rate: Current perpetual swap funding rate.get_funding_rate_history: Historical funding rates.compare_funding: Concurrently compares annualized funding rates (APR%) across exchanges to surface arbitrage opportunities, highlighting the highest vs. lowest paying venue and the spread between them.get_open_interest: Current open interest for a perpetual symbol.get_long_short_ratio: Global long/short account ratio (Binance only).get_liquidations: Recent public liquidation events (limited exchange support).
Production features include retries with exponential backoff, per-request timeouts, capability guards, structured errors, TTL caching, and input validation.
Deployment options: local stdio (no auth) or HTTP server with API-key authentication and tiered rate limiting (free/pro/ultra quotas).
Provides live cryptocurrency market data from Binance (spot and perpetual futures), including price, order book, OHLCV candles, recent trades, funding rates, open interest, and more.
Provides live cryptocurrency market data from KuCoin (spot and perpetual futures), including price, order book, OHLCV candles, recent trades, funding rates, open interest, and more.
Provides live cryptocurrency market data from OKX (spot and perpetual futures), including price, order book, OHLCV candles, recent trades, funding rates, open interest, and more.
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 Market Data MCP ServerCompare funding rates for BTC across top exchanges"
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.
Crypto Market Data MCP Server
A read-only Model Context Protocol server that gives any AI agent (Claude, Cursor, Cline, Windsurf…) live cryptocurrency market data across 100+ exchanges via CCXT. No API keys required — everything uses public endpoints.
Supported exchanges: bybit, binance, okx, hyperliquid, gate, kucoin (add more
CCXT ids in SUPPORTED_EXCHANGES).
Connect via MCPize
Use this MCP server instantly with no local installation:
npx -y mcpize connect @eliasfire617/crypto-market-data --client claudeOr connect at: https://mcpize.com/mcp/crypto-market-data
Related MCP server: Crypto MCP Server
Tools (13)
Discovery
Tool | What it does |
| Which exchanges are supported |
| Matrix of which exchange supports which data (no network) |
| Find the exact symbol format for a coin |
Market data
Tool | What it does |
| Last price + 24h stats |
| Top-of-book bids/asks |
| Recent OHLCV candles |
| Latest public trades |
Derivatives
Tool | What it does |
| Current perpetual funding rate |
| Historical funding rates |
| Funding rate across many exchanges + arb spread |
| Current open interest |
| Global long/short account ratio (Binance) |
| Recent public liquidations (limited support) |
compare_funding is the differentiator: it surfaces funding-rate arbitrage
opportunities (which venue pays the most vs least) in one concurrent call.
Rates are annualized (apr_pct) before comparing — venues fund at different
cadences (Hyperliquid hourly vs 8h elsewhere), so raw rates aren't comparable.
Want the analysis, not just the data? The companion server Crypto Derivatives Intelligence builds on this data: funding-carry opportunities netted of fees (breakeven days, executable depth), OI-price divergence, liquidation zones, positioning extremes, and market-regime classification — one tool call each.
Robustness
Built for production, not a demo:
Retries with exponential backoff on transient network errors (3 attempts).
Per-request + overall timeouts (10s / 25s) so a hung exchange can't stall a call.
Capability guards: never calls a method an exchange lacks — returns a clean error listing which exchanges do support it (see
get_capabilities).Structured errors (
{"error": {type, message, retryable, supported_exchanges}}) instead of crashes — agents always get a parseable response.TTL response cache (~660x faster on repeat calls; eases rate limits).
Input validation and clamped limits on every tool.
Guaranteed exchange cleanup; logs to stderr only (safe for stdio transport).
Run locally
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
# stdio transport (Claude Desktop, Cursor, Cline) — local, no auth:
python server.py
# OR streamable HTTP (hosted / remote) — API-key auth + rate limiting ON:
python server.py --http # binds :8000 (override with PORT=8799)Authentication & billing (HTTP mode)
The hosted HTTP transport is gated — this is what makes it billable. Local stdio stays open for single-user dev.
Clients send
Authorization: Bearer <api-key>.Each key maps to a
client_idand a tier; unknown/missing keys get401.Tiers (
auth.py→TIERS) set per-minute rate + monthly quota:Tier
req/min
monthly quota
free
10
1,000
pro
120
100,000
ultra
600
2,000,000
Over the limit → a clean
ToolError(Rate limit exceeded…/Monthly quota exceeded…), never a crash.
Configure keys (either source; file wins):
# inline
export CRYPTO_MCP_API_KEYS="sk_live_abc:acme:pro,sk_live_xyz:jane:free"
# or a file (see api_keys.example.json)
export CRYPTO_MCP_API_KEYS_FILE=./api_keys.jsonIf no keys are set in HTTP mode, a throwaway demo key (tier=pro) is generated and printed to stderr so you can test immediately.
Behind a gateway (e.g. MCPize)
If you deploy behind a platform that already authenticates and rate-limits
subscribers, set CRYPTO_MCP_DISABLE_AUTH=1. The server then trusts the gateway
and skips its own auth + rate limiting — no double authentication, no double
throttling. Only do this when the container is reachable solely through that
gateway.
Use with Claude Desktop
Copy claude_desktop_config.example.json into your Claude Desktop config
(~/Library/Application Support/Claude/claude_desktop_config.json on macOS,
%APPDATA%\Claude\claude_desktop_config.json on Windows), adjusting paths.
Symbols
Spot:
BTC/USDTPerpetual:
BTC/USDT:USDTCommon shorthand is normalized automatically:
btc,BTCUSDT,BTC-USDTall work (funding/OI tools land on the perp form).
Roadmap
Add more exchanges to
SUPPORTED_EXCHANGES.More aggressive caching of hot symbols to cut latency.
Optional websocket streaming for live order book / trades.
Available Tools
13 toolscompare_fundingA
Compare funding rates for one perp symbol across exchanges (concurrent).
Surfaces funding-rate arbitrage: the venue paying the most vs the least, and the spread between them.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | No | Perp symbol, e.g. 'BTC/USDT:USDT'. | BTC/USDT:USDT |
| exchanges | No | List of exchange ids. Defaults to all supported. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses concurrency and that it surfaces the highest and lowest paying venues with spread. However, with no annotations, it lacks details on error handling, rate limits, authentication, or what happens if symbol/exchange not found. Moderate disclosure.
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?
Two sentences, front-loaded with action, no redundant text. Every sentence adds value.
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 simple behavior and existence of output schema, the description is fairly complete. It could mention that exchanges parameter defaults to all, but that is in schema. Minor gaps in not specifying single-symbol constraint explicitly.
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 baseline is 3. The description adds no new meaning beyond the schema; it does not elaborate on parameter defaults or behaviors.
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?
Clearly states it compares funding rates for one perpetual symbol across exchanges, with a specific verb 'compare' and resource. Distinguishes from siblings like get_funding_rate and get_funding_rate_history by focusing on cross-exchange arbitrage.
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?
Implies use for funding rate arbitrage but does not explicitly state when to use versus alternatives, nor does it provide exclusions or prerequisites. No mention of when-not-to-use or specific context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_capabilitiesA
Show which data each supported exchange can return (no network call).
Use this before calling a data tool to pick an exchange that supports it.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Notes 'no network call', disclosing a key behavioral trait. With no annotations, this adds value. No additional behavioral details needed.
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?
Two sentences, front-loaded with main action, no wasted words. Highly concise and structured.
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 simple capability tool, description is sufficient. Output schema likely covers return format, so no need for more detail.
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?
No parameters; schema coverage is 100%, so baseline applies. Description adds nothing about parameters, but none needed.
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 shows which data each exchange can return, distinguishing it from sibling tools that retrieve actual data.
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?
Explicitly instructs to use this before calling a data tool to pick an exchange, providing clear when-to-use guidance. Lacks explicit when-not-to-use or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_funding_rateB
Current perpetual funding rate for a symbol.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Perp symbol, e.g. 'BTC/USDT:USDT'. | |
| exchange | No | Exchange id (default 'bybit'). | bybit |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. Only states it returns current rate; does not disclose whether authentication is needed, rate limits, data freshness, or error cases. Minimal 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?
Single sentence of six words with no superfluous information. Concise and front-loaded with the key action.
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 an output schema exists, return values need not be described. However, among 13 sibling tools, no differentiation context provided. Still, for a simple parameter set, the description covers the essential functionality adequately.
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% with descriptions for both parameters. Description adds no extra meaning beyond schema. Baseline of 3 is appropriate as description does not hinder understanding, but also does not enhance 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?
Description clearly states it gets the current perpetual funding rate for a symbol. Verb 'get', resource 'funding rate', and qualifiers 'current' and 'for a symbol' make purpose specific. Distinguishes from siblings like get_funding_rate_history (history) and compare_funding (comparison).
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?
No guidance on when to use this tool versus alternatives (e.g., compare_funding, get_funding_rate_history). No context about prerequisites or limitations. Simply states what it does without usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_funding_rate_historyB
Historical funding rates for a perp symbol (newest last).
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Perp symbol, e.g. 'BTC/USDT:USDT'. | |
| exchange | No | Exchange id (default 'bybit'). | bybit |
| limit | No | Number of records (default 10, max 100). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It only states ordering ('newest last') but omits other behavioral details like data range limits, pagination behavior, or latency implications. The output schema exists but does not cover behavioral traits.
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 a single, direct sentence with no wasted words. Front-loaded with the core action and resource.
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 has an output schema and simple parameters (3, 1 required), the description covers the essential purpose but lacks context on data range, pagination, or error conditions. Sufficient for a basic tool but not thorough.
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% with parameter descriptions already explaining symbol, exchange, and limit. The description adds no additional meaning beyond what the schema provides, meeting the baseline but not exceeding.
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 retrieves historical funding rates for a perpetual symbol, with ordering 'newest last'. It uses a specific verb ('get') and resource ('funding rate history'), and distinguishes from siblings like 'get_funding_rate' (current rate) and 'compare_funding'.
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 no guidance on when to use this tool versus alternatives. It does not mention that it is for historical data only, nor does it exclude use cases where other tools are more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_liquidationsC
Recent public liquidations for a perp symbol.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Perp symbol, e.g. 'BTC/USDT:USDT'. | |
| exchange | No | Exchange id (default 'gate'). Support is limited — see get_capabilities. | gate |
| limit | No | Number of records (default 20, max 100). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It only says 'Recent public liquidations' but does not clarify recency, rate limits, pagination, or whether it applies to all symbols. This is minimal transparency.
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 a single, concise sentence that is front-loaded and easy to parse. However, it could be slightly more structured (e.g., adding an example or clarifying 'recent'), but overall it is efficient.
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 lack of annotations and the presence of an output schema, the description still feels incomplete. It does not explain what 'recent' means, how liquidations are returned, or any limitations, which is insufficient for an agent to reliably select and invoke the tool.
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 input schema already documents each parameter adequately. The description adds no additional semantic value beyond what the schema provides, justifying the baseline 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 description clearly states the tool retrieves 'Recent public liquidations for a perp symbol,' specifying the verb (implicit get), resource (liquidations), and scope (perp symbol). This distinguishes it from sibling tools like get_recent_trades or get_open_interest.
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 does not provide any guidance on when to use this tool versus alternatives, nor does it mention prerequisites or exclusions. It simply states what it does, leaving the agent to infer usage from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_long_short_ratioB
Global long/short account ratio (Binance USDⓈ-M futures only).
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | No | Binance raw symbol, e.g. 'BTCUSDT' (no slash). | BTCUSDT |
| period | No | '5m','15m','30m','1h','2h','4h','6h','12h','1d'. | 5m |
| limit | No | Number of data points (default 10, max 500). | |
| exchange | No | Must be 'binance' (only supported venue for this metric here). | binance |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the metric is a ratio and the venue, but omits details on data aggregation, update frequency, or any rate limits.
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?
A single sentence with no wasted words, though it could include a bit more context without harming conciseness.
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?
An output schema exists, so return values are covered. The description is adequate for a simple metric tool but lacks caveats like data availability only for certain symbols.
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 schema documents parameters. The description adds no extra meaning beyond 'global' and 'futures only', which is already implied by the tool name.
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 returns a global long/short account ratio specifically for Binance USDⓈ-M futures, which distinguishes it from sibling tools like get_funding_rate or get_open_interest.
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 mentions it's only for Binance futures but provides no guidance on when to use this tool versus alternatives like get_funding_rate or get_liquidations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ohlcvC
Recent OHLCV candles.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | e.g. 'BTC/USDT:USDT'. | |
| exchange | No | Exchange id (default 'bybit'). | bybit |
| timeframe | No | '1m','5m','15m','1h','4h','1d', etc. | 1h |
| limit | No | Number of candles (default 24, max 200). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavioral traits. It only says 'recent', which is vague regarding update frequency, data source, or ordering. Does not describe whether results are calculated or cached.
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?
Extremely short (3 words) but front-loaded. While concise, it sacrifices substance — the single word 'Recent' does not clarify the time window or default behavior (e.g., last 24 hours). Could be more informative without verbosity.
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 4 parameters, missing guidance on required timeframes vs optional, date ranges, or candle ordering. Output schema exists but description doesn't hint at structure. Sibling tools suggest a financial domain, but the description fails to elaborate on typical use cases.
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% with detailed descriptions for all 4 parameters (symbol example, exchange default, timeframe options, limit default/max). The description adds no extra meaning, 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 'Recent OHLCV candles' clearly conveys the tool returns recent OHLCV data, distinguishing it from siblings like get_price (single price) and get_recent_trades (trades). The verb is implicit in the tool name but the description is a noun phrase, falling short of 'get OHLCV candles'.
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?
No guidance on when to use this tool vs alternatives like get_price or get_recent_trades. No mention of time ranges, live vs historical data, or prerequisites. The agent has no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_open_interestB
Current open interest for a perp symbol.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Perp symbol, e.g. 'BTC/USDT:USDT'. | |
| exchange | No | Exchange id (default 'bybit'). Note: 'gate' does not support this. | bybit |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states the output type. It does not disclose whether the operation is read-only, requires authentication, or any side effects. The description implies a safe read but lacks explicit 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 description is concise (one sentence, no fluff) and front-loads the key purpose. However, it is very brief and could benefit from more detail without losing conciseness.
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 existence of an output schema and simple parameters, the description covers the basic purpose. However, it omits context like the restricted exchange and the fact it returns only current open interest, not historical.
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 already describes both parameters with examples and a note. The description adds no additional semantics beyond the schema, 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 returns 'Current open interest for a perp symbol.', which is a specific verb-resource combination that distinguishes it from sibling tools like get_funding_rate or get_long_short_ratio.
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?
No guidance is given on when to use this tool versus alternatives. It does not mention that the exchange parameter has a restriction ('gate' not supported) or that this is for current data only.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_order_bookC
Top-of-book bids and asks.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | e.g. 'BTC/USDT:USDT'. | |
| exchange | No | Exchange id (default 'bybit'). | bybit |
| depth | No | Levels per side (default 5, max 50). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description says 'top-of-book' which typically means only the best bid and ask, but the depth parameter allows multiple levels (up to 50). This is misleading. No annotations exist, so the description should clarify the behavior but does not.
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 very short (one phrase), but it omits important context such as the return format or the effect of the depth parameter. It is concise but at the expense of completeness.
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 has three parameters and an output schema, the description is insufficient. It does not explain that order book data includes both bids and asks, how depth affects the output, or that exchange defaults to Bybit. The output schema may cover return values, but the description should provide more context for an agent to understand what is returned.
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% with descriptions for all three parameters. The tool description adds no extra meaning beyond the schema, so baseline score 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 'Top-of-book bids and asks' combined with the tool name 'get_order_book' clearly indicates it returns order book data, focusing on best bids and asks. However, it doesn't explicitly state that it returns a snapshot of multiple levels, which is suggested by the depth parameter.
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?
No guidance is provided on when to use this tool versus siblings like get_price or get_ohlcv. There is no mention of use cases, prerequisites, or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_priceA
Last price and 24h stats for a symbol.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | 'BTC/USDT' (spot) or 'BTC/USDT:USDT' (perp). | |
| exchange | No | Exchange id (default 'bybit'). | bybit |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral transparency. It only states the output type (price and stats) without mentioning any behavioral traits like destructuring, rate limits, or whether it returns data from multiple exchanges. This is insufficient.
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 a single, front-loaded sentence with no unnecessary words. Every word contributes to understanding the tool's purpose.
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 simple nature (2 parameters, 100% schema coverage, output schema exists), the description is largely complete. It could mention what the '24h stats' include, but overall it adequately covers the basics.
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% with clear parameter descriptions (symbol format, exchange default). The description adds minimal value beyond what the schema provides; it confirms the purpose but does not enhance parameter understanding.
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 returns 'last price and 24h stats for a symbol', using a specific verb ('get') and resource. It distinguishes from siblings like get_ohlcv (detailed OHLCV) and get_order_book (order book) by focusing on price and 24h summary stats.
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 for fetching current price and 24h stats, but does not explicitly state when to use this versus alternatives like get_ohlcv or get_order_book. No guidance on when not to use it is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_recent_tradesA
Most recent public trades for a symbol.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | e.g. 'BTC/USDT:USDT'. | |
| exchange | No | Exchange id (default 'bybit'). | bybit |
| limit | No | Number of trades (default 20, max 100). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden. It mentions 'public' (non-critical) and 'recent' but does not disclose rate limits, auth requirements, or pagination behavior. The presence of an output schema partly compensates.
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?
One clear sentence with no fluff. Could be slightly restructured for clarity (e.g., 'Get recent public trades for a symbol.') but effective as is.
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 simple retrieval tool with full schema and output schema, the description is largely complete. It lacks details like default ordering or rate limits but remains functional.
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 description adds value by clarifying 'public trades' (not private or included in other scopes). This semantic beyond the schema justifies a score above baseline 3.
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 it retrieves 'most recent public trades for a symbol.' This distinguishes it from sibling tools like get_ohlcv (candles), get_order_book (order depth), and get_liquidations (liquidation events).
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 indicates when to use (when you need recent public trades for a symbol) but does not provide explicit when-not-to-use or comparisons to alternatives. Many siblings exist, so more guidance would help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_exchangesA
List the exchanges supported by this server.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states 'list' without disclosing behavioral traits such as ordering, pagination, or caching behavior. For a read-only list, this is minimal but not informative enough for an agent to understand side effects or constraints.
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 a single concise sentence, front-loading the key action. Every word is necessary, and there is no extraneous content.
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 has no parameters and an output schema is present, the description is complete enough. It clearly states the tool's purpose, and the output schema will define the return structure. No additional context is necessary.
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 tool has zero parameters, so schema coverage is 100%. The description adds no parameter semantics, which is acceptable as no parameters exist. Baseline for 0 parameters is 4.
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 exchanges supported by the server. It uses a specific verb ('List') and resource ('exchanges'). It distinguishes from sibling tools that operate on specific exchange data rather than the list itself.
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 needing to know available exchanges, but it does not explicitly state when to use or when not to use, nor does it provide alternatives. For a simple list tool, this is acceptable but could be improved with context like 'Use before querying exchange-specific data.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_symbolsA
Find market symbols matching a query (e.g. 'BTC', 'SOL/USDT').
Useful when you don't know the exact symbol format an exchange expects.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Substring to match, case-insensitive. | |
| exchange | No | Exchange id (default 'bybit'). | bybit |
| limit | No | Max symbols to return (default 20, max 100). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must carry the burden. It mentions query matching but omits details like case-insensitivity, default exchange (bybit), and limit constraints. The input schema fills some gaps, but the description lacks behavioral disclosure (e.g., pagination behavior, empty result handling).
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?
Two sentences, front-loaded with purpose and usage scenario. No redundant information; every sentence 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?
Given simple parameters and existence of output schema, the description is nearly complete. However, it could mention the output format briefly or note that results are partial matches (implied by 'substring'). Still sufficient for an adequately documented tool.
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 baseline is 3. The description adds context with examples but does not elaborate on parameters beyond the schema. No additional semantics provided for query, exchange, or limit.
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 searches for market symbols matching a query, with examples 'BTC' and 'SOL/USDT'. It distinguishes itself from sibling tools (e.g., get_price, list_exchanges) by focusing on symbol discovery, which is a distinct purpose.
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?
Explicitly says 'Useful when you don't know the exact symbol format an exchange expects.' This provides clear context for when to use the tool, but does not cover when not to use or mention alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct data type or action (e.g., funding rates, liquidations, OHLCV), with no overlap between tools. compare_funding and get_funding_rate differ in scope (multi-exchange vs single, live vs historical). Meta-tools like get_capabilities and list_exchanges are clearly separate.
Most tools follow a get_<noun> pattern, but four tools (compare_funding, list_exchanges, search_symbols, get_capabilities) use different verbs. This is a minor deviation; all names are still clear and use consistent snake_case.
13 tools is well-scoped for a crypto market data server, covering essential data points without being overwhelming. Each tool serves a clear purpose, and the count aligns with typical user needs.
The tool set covers core market data (price, order book, trades, OHLCV, open interest, funding, liquidations, long/short ratio) and metadata (exchanges, symbols, capabilities). Missing historical trades and exchange-specific details, but coverage is strong for common use cases.
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
Real-time crypto market data, funding rates, arbitrage and trading tools from 60+ exchanges.
Live crypto data: funding rates, funding arbitrage, OI pressure, Fear & Greed. Free, no API key.
Real-time data API for AI Agents: stocks, weather, forex, logistics, search, scrape, news, IP.
Crypto perps data for AI agents: funding rates, open interest, liquidations, order book, CVD.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides real-time and historical cryptocurrency market data from 100+ exchanges including prices, OHLCV data, market statistics, and order books through the CCXT library with intelligent caching.
- FlicenseNot gradedqualityDmaintenanceProvides real-time and historical cryptocurrency market data using ccxt, enabling users to fetch live prices, historical candlestick data, and stream real-time ticker updates across multiple exchanges.14
- AlicenseAqualityCmaintenanceLive market data for AI agents. 8 tools: real-time crypto prices, OHLCV candles, order books, market cap rankings, trending coins, technical analysis (RSI/SMA/z-score), asset comparison, and Fear & Greed index. Zero API keys, zero dependencies.81MIT
- FlicenseNot gradedqualityBmaintenanceEnables fetching live crypto market data from Binance, Bybit, and Hyperliquid via MCP tools, including klines, orderbook, funding rates, technical indicators, and market breadth for real-time analysis by LLMs.
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/eliasfire617/crypto-market-data-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server