Perpetual funding rates across Binance, Bybit and OKX. Scan every market ranked by funding in one call, or query a single asset with open interest and predicted next rate.
Single tool 'perp_get_funding_rates' has a comprehensive, well-structured description (1200+ chars) that clearly explains dual modes (market scan vs single symbol), output fields, use cases, and anti-patterns (what NOT to use it for). Input schema is present with proper types and enums. However, the description is significantly longer than the 50-200 char baseline for LLM-optimized descriptions, risking token waste. Parameter descriptions are adequate but could be more concise. No explicit output schema documentation in the code, though examples are provided in the description. Error handling and recovery guidance are absent.
Use this to read perpetual futures funding rates. Two modes, same call, same price: MARKET SCAN (omit symbol) -- returns every USDT perp on Binance and Bybit ranked by funding, so you can find an opportunity in one paid call instead of probing symbol by symbol. Sort by "abs" (largest magnitude, default), "highest" (shorts get paid most), "lowest" (longs get paid most) or "spread" (largest cross-venue gap = cash-and-carry candidates). SINGLE SYMBOL (pass symbol) -- returns Binance, Bybit and OKX side by side for that asset, with open interest, mark price, next funding time and a sentiment read. Data returned per market: 1. symbol: base ticker (BTC, ETH, SOL...) 2. venues: per-exchange funding rate, percent and annualized rate 3. avgRate / annualizedRate: mean funding across venues, annualized as rate * 3 * 365 4. direction: "short opportunity" when funding is positive (longs pay shorts), "long opportunity" when negative 5. spread / spreadAnnualized: gap between the cheapest and dearest venue 6. longVenue / shortVenue: where to take each leg of the cross-venue carry 7. openInterest, markPrice Example scan output: {"scan":true,"totalMarkets":812,"venues":["Binance","Bybit"],"sort":"abs","markets":[{"symbol":"PEPE","venues":{"Binance":{"fundingRate":0.0005,"annualizedRate":54.75},"Bybit":{"fundingRate":0.0003,"annualizedRate":32.85}},"avgRate":0.0004,"annualizedRate":43.8,"direction":"short opportunity (longs pay shorts)","spread":0.0002,"spreadAnnualized":21.9,"longVenue":"Bybit","shortVenue":"Binance"}]} Example single-symbol output: {"symbol":"ETH","found":true,"exchanges":3,"summary":{"averageRatePercent":"0.0082%","annualizedAverage":"8.98%","sentiment":"bullish (longs pay shorts)"},"rates":[{"exchange":"Binance","fundingRate":0.000082},{"exchange":"Bybit","fundingRate":0.000075},{"exchange":"OKX","fundingRate":0.000091}]} Use this FOR finding carry and basis trades, timing perp entries, and monitoring funding costs on open positions. Do NOT use for spot prices -- use dex_get_swap_quote instead. Do NOT use for DeFi yields -- use defi_find_best_yields instead. Do NOT use for Hyperliquid-specific rates -- use hyperliquid_get_funding_rates instead. Note: market scans cover Binance and Bybit. OKX has no bulk funding-rate endpoint, so it is included only when you query a single symbol.
Description exceeds LLM-optimized length (1200+ chars vs 50-200 char baseline). Verbose descriptions waste tokens and bury key details. Refactor into concise summary + separate 'Details' section.
No explicit output schema documentation in code. Examples are embedded in description text, not as structured schema. LLMs cannot reliably parse unstructured examples to infer response structure.
No error handling or recovery guidance. Tool description lacks 'what to do if' scenarios (e.g., symbol not found, API timeout, insufficient venues). Agents cannot self-correct on failures.
Parameter 'limit' and 'minVenues' lack explicit min/max constraints in schema. Unbounded numeric parameters invite absurd values (e.g., limit=999999) that break APIs or cause timeouts.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | 2025-06-18+ | v2 |
Tool description includes anti-patterns (what NOT to use it for) but lacks positive guidance on when to call it. 'Use this FOR finding carry and basis trades' is helpful, but missing: 'Call this first to discover opportunities before committing capital.'