MCP (Model Context Protocol) server for Deribit trading platform
14 tools with consistent verb-noun naming (get_*, place_*, cancel_*, edit_). All have descriptions (10-50 chars, below ideal 50-200 baseline). Input schemas present for 9/14 tools with typed parameters. Output schemas not documented. Error handling minimal, no recovery guidance or categorization. Missing parameter descriptions for several tools (e.g., get_account_summary, get_positions, get_orders, get_order_history, get_trades, cancel_all_orders lack visible input schemas). No tool annotations (readOnlyHint/destructiveHint). Composition is sound, tools are single-responsibility and chainable via IDs.
Cancel all open orders
Cancel an existing order
Edit an existing order
Get account summary information including balances and positions
Get index information
Get available instruments
Get order book for an instrument
Get order history
5 read-only tools (get_account_summary, get_positions, get_orders, get_order_history, get_trades, cancel_all_orders) have no visible input schemas.
Tool descriptions are 10-60 characters, well below the 50-200 char baseline for LLM-optimized descriptions. E.g., 'Get account summary information including balances and positions' (60 chars) lacks context on when to call vs similar tools or what fields are returned.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | <=2025-11-25 | v2 |
Get open orders
Get current open positions
Get ticker information for an instrument
Get trade history
Get recent trades for an instrument
Place a new order
No output schemas documented. LLMs cannot plan downstream calls or extract required fields (e.g., order_id from place_order response needed for edit_order/cancel_order). Breaks tool chaining.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Agents cannot distinguish safe reads from destructive writes (place_order, cancel_all_orders) without explicit hints. Violates current MCP spec (2026-07-28).
Error handling absent. No recovery guidance (e.g., 'Invalid instrument. Call get_instruments() to list valid options'). No error categorization (retryable vs user-fixable vs fatal). Agents cannot self-correct on failures.