Funding rate arbitrage scanner -- Hyperliquid, Binance, Bybit, OKX cross-venue spreads and annualized yields.
Single tool 'perp_scan_funding_arbitrage' has a strong, detailed description (380+ chars) with clear use cases and anti-patterns ('Do NOT use for...'). Input schema is present with optional 'symbol' parameter. However, the output schema is documented only in the description text as a JSON example, not as a formal schema definition in the tool registration. Parameter 'symbol' lacks a description field in the schema object. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) are present. Error handling and recovery guidance are absent from the tool definition.
Use this when you need to find funding rate arbitrage opportunities across perpetual exchanges. Returns cross-venue spreads in JSON. 1. opportunities: array of arb opportunities ranked by annualized yield 2. symbol: asset symbol (BTC, ETH, SOL, etc.) 3. longExchange: exchange where you go long (lower funding) 4. shortExchange: exchange where you go short (higher funding) 5. spread: funding rate difference between venues 6. annualizedYield: estimated annualized return from the arb 7. direction: suggested position direction per exchange Example output: {"opportunities":[{"symbol":"ETH","longExchange":"Bybit","shortExchange":"OKX","spread":0.0045,"annualizedYield":16.4,"direction":"long Bybit / short OKX"}],"scannedAssets":25,"timestamp":"2026-04-13T12:00:00Z"} Use this FOR systematic funding rate arbitrage and delta-neutral carry strategies. Scans all major perpetual venues simultaneously. Do NOT use for single-venue rates -- use perp_get_funding_rates instead. Do NOT use for spot prices -- use dex_get_swap_quote instead. Do NOT use for DeFi yields -- use defi_find_best_yields instead.
Output schema not formally defined. Tool description includes a JSON example of the response structure, but no explicit output schema is registered. LLMs cannot reliably parse or plan downstream calls without a formal schema.
Input parameter 'symbol' lacks a description in the schema. The schema shows type 'string' but does not explain what values are valid (e.g., 'BTC, ETH, SOL') or the format expected. LLMs cannot infer parameter semantics from names alone.
No tool annotations present. The tool is READ_ONLY (as noted in the source), but this is not declared via readOnlyHint in the tool definition. Agents cannot determine idempotency or destructiveness without explicit annotations.
No error handling or recovery guidance. The tool definition does not describe what happens if no arbitrage opportunities are found, if an exchange is unreachable, or if the symbol is invalid. Agents have no guidance on how to recover from failures.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 63 | 2025-06-18+ | v2 |
No pagination or result limits documented. The tool returns an array of opportunities but does not specify a maximum result count or pagination mechanism. Large result sets could exhaust context windows.