MCP server for CryptoDataAPI — gives AI agents real-time crypto market data. Provides 13 tools covering market health, derivatives, sentiment, macro, ETF flows, cycle indicators, and coin profiles.
Strong naming conventions and descriptions across all 13 tools. All tools follow verb_noun pattern (get_*, search_*). Descriptions are generally detailed (150-300 chars) and explain WHEN to use each tool. Zod schemas are present and typed for all inputs. However, several tools lack parameter descriptions, and output schemas are not formally documented in the source code. Error handling is basic (JSON stringification of errors). Tool composition is solid, each tool has a single responsibility, and outputs include IDs for chaining. Parameter enums are used appropriately (exchange filters, asset types). No critical security gaps detected; API key is server-side injected via environment variable.
Get all 8 BTC cycle indicators that help determine where Bitcoin is in its market cycle. Includes MVRV Z-Score, NUPL, Puell Multiple, Pi Cycle Top, 200-Week MA Multiple, Reserve Risk, RHODL Ratio, and Thermocap Multiple. Each indicator includes a score (0-100), interpretation, and zone classification (accumulation, neutral, caution, danger). Useful for long-term positioning and cycle-aware trading strategies.
Get a detailed profile for a specific cryptocurrency by symbol (e.g., BTC, ETH, SOL). Returns current price, market cap, 24h/7d/30d price changes, volume, circulating supply, ATH/ATL data, category tags, and description. Use search_coins first if you're unsure of the exact symbol.
Get a full daily snapshot of the entire crypto market in one call. Returns market health scores, fear & greed index, derivatives data (funding rates, open interest, liquidations), stablecoin flows, macro indicators (DXY, gold, treasury yields), ETF flows, BTC cycle indicators, and coin profiles — all in a single response. This is the most efficient way to get a broad market overview. Use exchange='all' for unfiltered data or 'hyperliquid'/'binance_spot' to filter coin lists.
Get ETF flow data for BTC, ETH, SOL, or XRP spot ETFs. Shows daily net inflows/outflows across all major ETF issuers (BlackRock, Fidelity, Grayscale, etc.). Consistent positive flows signal institutional demand; negative flows signal institutional selling. BTC ETF flows have been a major market driver since January 2024.
Output schemas not formally documented in source code. Tool descriptions mention what is returned (e.g. 'Returns market health summary... dual-score system') but structured output types are not visible in the code under review. This forces LLMs to infer output structure from descriptions alone, increasing hallucination risk when chaining tools.
Parameter descriptions are present but minimal for filter/optional params. 'exchange' param in get_funding_rates, get_liquidations, and get_open_interest is described as 'Filter by exchange name (e.g., binance, hyperliquid)' but lacks guidance on what happens if omitted (defaults to 'all'?), valid exchange list, or whether case matters.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
Get the Crypto Fear & Greed Index — a multi-source averaged sentiment score from 0 (Extreme Fear) to 100 (Extreme Greed). Classifications: Extreme Fear (0-25), Fear (26-40), Neutral (41-60), Greed (61-75), Extreme Greed (76-100). Includes per-source breakdown. Extreme Fear often signals buying opportunities; Extreme Greed often signals overheated markets.
Get cross-exchange perpetual funding rates. Positive funding means longs pay shorts (bullish crowding); negative funding means shorts pay longs (bearish crowding). Extreme positive rates (>0.05%) often precede corrections; extreme negative rates often signal capitulation. Returns data from multiple exchanges including Binance, Bybit, OKX, and more.
Get cross-exchange liquidation data showing long and short liquidation volumes over 24h. High liquidation volumes indicate forced position closures and market stress. A long/short liquidation ratio significantly above 1 means longs are being squeezed; below 1 means shorts are being squeezed. Useful for gauging leveraged positioning pain.
Get macro economic indicators relevant to crypto markets: EUR/USD exchange rate, gold price, and US treasury yields (2Y, 10Y, 30Y). A strengthening dollar (rising DXY) is typically bearish for crypto. Rising yields indicate tightening financial conditions. Gold and Bitcoin often move in correlation during risk-off events.
Get the market health summary — a dual-score system (0-100) measuring long-term trend strength and short-term momentum. Returns total_score, long_term_score, short_term_score, sentiment (bullish/bearish/neutral), and market state (bear_market, early_recovery, early_bull, confirmed_bull, topping_out). Use this to quickly assess the overall market regime before making trading decisions.
Get cross-exchange open interest data. Open interest is the total value of outstanding perpetual futures contracts. Rising OI with rising price = new money entering (trend continuation). Rising OI with falling price = new shorts opening (bearish). Falling OI = positions closing (deleveraging). Returns per-exchange OI in USD with 24h change percentages.
Get BTC options market data including total open interest, volume, put/call ratio, and max pain price. A high put/call ratio (>1) suggests bearish hedging; low (<0.7) suggests bullish positioning. Max pain is the strike price at which most options expire worthless — price tends to gravitate toward max pain near expiry dates.
Get stablecoin market cap and flow data — a proxy for capital entering or leaving crypto. Rising stablecoin market cap signals new capital inflows (bullish). Declining market cap signals capital outflows (bearish). Returns total market cap, 14-day and 90-day flow data, and per-stablecoin breakdown (USDT, USDC, DAI, etc.).
Search for cryptocurrencies by name or symbol. Returns matching coins with their symbol, name, market cap rank, and current price. Use this when you need to find the correct symbol for a coin before calling get_coin_profile.
Error responses are generic. In src/index.ts, errors are returned as 'API Error (status): error_message'. No guidance on error type (retryable vs. user-fixable), recovery steps, or what the LLM should try next. 'Invalid exchange name' does not tell the agent whether to call search or list available exchanges.
No pagination support in tools that could return large result sets. get_daily_snapshot and search_coins do not expose limit/offset/page parameters. If the API returns 100+ results, the entire response is forwarded to the LLM, wasting tokens and risking context window exhaustion.
No tool annotations (readOnlyHint, idempotentHint, destructiveHint) in the MCP server definition. All tools are read-only (crypto market data is immutable from the agent's perspective), but this property is not explicitly declared. LLMs cannot infer safety from names alone and may hesitate to call tools that seem to have side effects.