KuCoin Futures MCP Server on Vercel Edge Functions - provides tools for trading on KuCoin Futures exchange including order management, position management, market data, and risk calculation
The KuCoin Futures MCP server provides 19 tools with mostly complete input schemas and descriptions. Naming follows verb_noun conventions consistently (get*, add*, cancel*, modify*). Most tool descriptions are present and reasonably detailed (range 50-250 chars), though several lack depth about when to use them vs. alternatives. Schemas are well-formed with proper JSON Schema types and enums where appropriate. However, there are critical gaps: (1) output schemas are not documented anywhere, the rubric requires tools to document what fields agents will receive; (2) parameters like 'depth', 'granularity', 'pageSize', 'currentPage' lack explicit constraints (min/max bounds); (3) error handling lacks guidance, tools do not specify what errors are retryable vs. fatal, nor do they suggest recovery steps; (4) some descriptions are generic and do not answer WHEN to use the tool or what it returns; (5) several read-only tools lack proper pagination guidance despite the API supporting it. The server manages credentials properly via environment variables (not exposed as parameters) and includes reasonable timeouts (15s). The deterministic clientOid derivation for idempotency is a plus. Overall structure is sound for a trading API integration, but documentation and output clarity fall short of production baseline.
Place a new order on KuCoin Futures. Orders with clientOid prefix 'pm_' (position manager) are restricted to risk-reducing operations (reduceOnly=true or closeOrder=true). Orders with prefix 'ta_' (trading algorithm) require riskPercentage parameter for entry orders.
Place a stop order (trigger-based order). Orders with clientOid prefix 'pm_' (position manager) are restricted to risk-reducing operations (reduceOnly=true or closeOrder=true). Orders with prefix 'ta_' require riskPercentage for entry orders (non-closeOrder, non-reduceOnly).
Calculate position size based on account equity, risk percentage, leverage, and entry price. Useful for position sizing before placing orders.
Cancel all open orders, optionally filtered by symbol
Cancel an open order by order ID
No output schemas documented. Tools like getOrders, getPositions, getTicker return complex objects but do not specify which fields agents will receive. This forces LLMs to guess at response structure and plan downstream tool calls blindly.
Numeric parameters lack explicit bounds. 'depth' in getOrderBook (20 or 100), 'granularity' in getKlines (allowed values: 60, 300, 900, etc.), 'pageSize' and 'currentPage' in pagination endpoints should have min/max constraints explicitly stated in parameter descriptions or as JSON Schema properties.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | B | 75 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 0 | - | v1 |
Cancel a specific untriggered stop order. First verifies the orderId is an actual untriggered stop order via /stopOrders, and that it is marked as reduceOnly, before cancelling. This prevents accidental cancellation of entry orders or non-protective stops.
Get account overview including account equity and available balance
Get current funding rate for a symbol
Get candlestick (kline) data for a symbol
Get order book (level 2 depth) for a symbol
Get detailed information about a specific order
Get list of orders, optionally filtered by symbol, status, or side
Get position details for a specific symbol
Get all open positions
Get list of untriggered stop orders, optionally filtered by symbol and side
Get detailed information for a specific symbol
Get all active trading symbols on KuCoin Futures
Get ticker information for a symbol or all symbols
Deposit additional margin to a position
Error handling does not guide recovery. Tools do not document which errors are retryable (network timeout), user-fixable (invalid symbol), or fatal (permission denied). The makeRequest method throws generic errors without actionable guidance for agents.
Descriptions are generic and do not explain WHEN to use a tool. 'Get ticker information' does not tell an agent whether to use getTicker or getSymbolDetail to fetch price data. Descriptions should differentiate use cases and state what data each returns.
No confirmation/dry-run for destructive operations. cancelAllOrders and cancelStopOrder can permanently remove orders. No pattern for agent confirmation before executing. Agents make mistakes, these tools should require explicit affirmation or support a 'dry_run' flag.
Pagination guidance missing. getOrders, getStopOrders support pageSize/currentPage but descriptions do not explain default limits, max page size, or total count. Without this, agents may fetch incomplete datasets or fail to iterate through all results.