Purpose
crypto-market-data-mcp is a read-only Model Context Protocol (MCP) server used to provide real-time cryptocurrency market data to any AI agent (such as Claude, Cursor, Cline, Windsurf, etc.). It connects to more than 100 exchanges through CCXT, requires no API keys, and uses only public endpoints.
Main capabilities
- Provides market data such as prices, funding rates, open interest, long/short ratios, order books, and candlesticks.
- Supported exchanges include bybit, binance, okx, hyperliquid, gate, kucoin, and more CCXT exchange IDs can be added in SUPPORTED_EXCHANGES.
- The compare_funding tool is the core differentiator: it compares funding rates across exchanges in a single concurrent call to find the venues paying the highest and lowest rates, i.e. funding rate arbitrage opportunities. Because exchanges have different funding rate settlement intervals (Hyperliquid hourly, most others 8 hours), raw rates cannot be compared directly, so they are annualized (apr_pct) before comparison.
- The companion server Crypto Derivatives Intelligence can provide deeper analysis on top of this, such as funding rate arbitrage opportunities after fees (break-even days, executable depth), open interest and price divergence, liquidation zones, positioning extremes, and market regime classification, each function in a single tool call.
Usage
- Can be used instantly through MCPize, with no local installation required; the connection address is https://mcpize.com/mcp/crypto-market-data。
- It can also be run locally in stdio mode for single-user development.
- When used with Claude Desktop, copy claude_desktop_config.example.json into the Claude Desktop configuration file (on macOS the path is ~/Library/Application Support/Claude/claude_desktop_config.json, on Windows the path is %APPDATA%\Claude\claude_desktop_config.json), and adjust the paths.
- Trading pair format: perpetual contracts such as BTC/USDT:USDT; common abbreviations are automatically normalized, and btc, BTCUSDT, and BTC-USDT can all be used (funding rate and open interest tools will resolve to the perpetual contract form).
Production-grade design
- Exponential backoff retries for transient network errors (up to 3 times).
- Per-request and overall timeouts (10 seconds / 25 seconds) to avoid a call stalling because one exchange hangs.
- Capability guard: it will not call methods unsupported by an exchange, but instead returns a clear error and lists the exchanges that support the method (see get_capabilities).
- Structured errors ({"error": {type, message, retryable, supported_exchanges}}) instead of crashes, so the agent can always get a parseable response.
- TTL response caching (repeated calls are about 660 times faster, mitigating rate limits).
- Every tool has input validation and limit value clamping.
- Guaranteed exchange cleanup; logs only to stderr (safe for stdio transport).
Authentication and billing (HTTP mode)
- The hosted HTTP transport is gated, which is why it can be billed. Local stdio remains open for single-user development.
- The client sends Authorization: Bearer <api-key>. Each key maps to a client_id and tier; unknown or missing keys return 401.
- Tiers (auth.py → TIERS) set per-minute rates and monthly quotas: free is 10 requests/minute, 1,000/month; pro is 120 requests/minute, 100,000/month; ultra is 600 requests/minute, 2,000,000 per month.
- When limits are exceeded, a clean ToolError is returned (Rate limit exceeded… / Monthly quota exceeded…), and it will not crash.
- Configure the key (two sources, file takes precedence). If no key is set in HTTP mode, a one-time demo key (tier=pro) is generated and printed to stderr for immediate testing.
Gateway Deployment
If deployed behind a platform that already authenticates and rate-limits subscribers (such as MCPize), you can set CRYPTO_MCP_DISABLE_AUTH=1. The server will trust the gateway and skip its own authentication and rate limiting, avoiding double authentication and double rate limiting. This should only be done when the container can only be accessed through that gateway.
Use Cases
- When AI agents need real-time cryptocurrency market data.
- Scenarios where different exchanges' funding rates need to be compared to find arbitrage opportunities.
- When order books, candlesticks, open interest, and other data are needed for analysis or strategy development.
Limitations
- Read-only server, does not provide trade execution functionality.
- Local stdio mode has no authentication and is only suitable for single-user development.
- HTTP mode has rate and quota limits, and exceeding them returns an error.
- Supported exchanges are by default limited to bybit, binance, okx, hyperliquid, gate, kucoin; more CCXT exchange IDs must be added manually.
- Future plans include more aggressively caching popular symbols to reduce latency, as well as optional websocket streaming of real-time order books/trades, which are not currently provided.