Server has 9 tools with basic schemas and descriptions, but significant gaps limit production readiness. All tools have descriptions (10-50 chars, mostly generic), and input schemas are present with type definitions. However, descriptions lack LLM-optimized guidance on WHEN to use each tool vs. alternatives, parameter relationships are undocumented (e.g., 'price' required for limit orders but not enforced), and output schemas are completely absent. Error handling is minimal, no recovery guidance, no categorization of retryable vs. fatal errors. Security concern: API keys loaded via environment variables but no validation that they exist before tool execution. Naming is clear (verb_noun pattern) but lacks natural-identifier support (e.g., 'exchange_id' requires exact match, no fuzzy lookup). Composition is reasonable, tools are single-purpose, but missing batch variants and pagination for fetch_markets.
Cancel an order on the exchange.
Create a new order on the exchange.
Fetch account balance from the exchange.
Fetch a single market for a given exchange and symbol.
Fetch markets for a given exchange with pagination.
Fetch order book data for a symbol on a specific exchange.
Fetch ticker data for a symbol on a specific exchange.
No output schemas documented. LLMs cannot predict response structure, forcing them to guess field names for downstream tool calls. E.g., fetch_balance returns a dict but no schema shows whether it includes 'free', 'used', 'total' fields or nested per-currency objects.
Parameter relationships undocumented. create_order requires 'price' for limit orders but not for market orders, this dependency is not stated in parameter descriptions. LLMs will pass price for market orders or omit it for limit orders, causing failures.
Descriptions lack LLM-optimized guidance. Most descriptions are 30-50 chars and generic ('Fetch X from the exchange'). No explanation of WHEN to use fetch_ticker vs fetch_market, or when to call get_exchange first. Baseline for A+ tools is 50-200 chars with context.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | <=2025-11-25 | v2 |
Fetch recent trades for a symbol on a specific exchange.
Get or create an exchange instance with optional testnet support.
No error handling guidance. Tools raise exceptions without recovery hints. E.g., if exchange_id is invalid or API key missing, LLM gets a raw error with no suggestion to validate exchange_id or check credentials. No categorization of retryable vs. fatal errors.
No pagination enforcement for fetch_markets. Resource returns all markets without limit, risking context window exhaustion. Baseline pattern requires page/offset + limit + total count. fetch_markets accepts page/per_page but fetch_markets resource does not.