Historical OHLCV candles for any token -- daily, 4h, 1h intervals. CoinGecko + GeckoTerminal powered.
Single tool 'token_get_ohlcv_history' has a well-structured description (380+ chars) with clear use cases and anti-patterns (what NOT to use it for). Input schema is present with 5 parameters, all with type and description. However, schema has NO required fields declared (empty array), making it unclear which parameters are mandatory. Parameter descriptions lack format constraints (e.g., 'days' says 'default 30, max 365' but no min specified; 'interval' has conditional constraints not fully formalized). Output schema is documented in the description text but not in a formal JSON Schema structure. Error handling and recovery guidance are absent from the tool definition.
Use this when you need historical price candlestick data for any token. Returns OHLCV candles in JSON. 1. candles: array of candlestick objects with timestamp, open, high, low, close, volume 2. token: token identifier used 3. interval: candle interval (daily, 4h, 1h) 4. days: number of days of history returned 5. source: data source (CoinGecko or GeckoTerminal) Example output: {"candles":[{"timestamp":1712966400,"open":3105.20,"high":3142.80,"low":3089.50,"close":3128.60,"volume":1250000000}],"token":"ethereum","interval":"daily","days":30,"source":"CoinGecko"} Use this FOR technical analysis, backtesting, trend detection, and charting. Supports 10,000+ tokens by CoinGecko ID or on-chain contract address via GeckoTerminal. Do NOT use for real-time orderbook -- use dex_analyze_orderbook_depth instead. Do NOT use for swap quotes -- use dex_get_swap_quote instead. Do NOT use for news -- use crypto_get_latest_news instead. Do NOT use for funding rates -- use perp_scan_funding_arbitrage instead.
No required fields declared in input schema (empty 'required' array). Unclear which parameters are mandatory vs optional. 'token' vs 'contract+chain' are mutually exclusive but not formalized.
Parameter 'days' lacks minimum constraint (only max 365 stated). Parameter 'interval' has conditional constraints ('if days <= 90', 'if days <= 2') that should be formalized as enum or conditional schema, not prose.
Output schema documented only in description text, not as formal JSON Schema. LLMs cannot parse prose descriptions to extract field types and structure. No documented return type structure in the tool definition itself.
No error handling or recovery guidance. Tool description lacks actionable error messages (e.g., 'If token not found, try searching by contract address' or 'If API rate limit hit, retry after 60 seconds').
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | 2025-06-18+ | v2 |
Parameter 'chain' description lists valid values as prose ('base, ethereum, solana, arbitrum, polygon, optimism, bsc') instead of enum constraint. LLMs may hallucinate invalid chain names.