Dual-purpose MCP server providing cryptocurrency market data from OKX exchange and weather forecasts/alerts from the National Weather Service
This server presents a mixed-quality tool set with inconsistent naming conventions, incomplete schema documentation, and vague descriptions. The OKX tools (get_price, get_candlesticks) in src/server.ts have proper verb-noun naming and reasonable parameter schemas, but the weather tools (get-alerts, get-forecast) in src/index.ts use kebab-case naming (non-standard for MCP), lack visible schema definitions, and have truncated descriptions in the source excerpt. Critically, the source code for src/index.ts is incomplete (cuts off mid-function), making it impossible to verify whether output schemas are documented or error handling is present for the weather tools. Parameter descriptions are minimal to absent for weather tools. No tool has output schema documentation visible. The OKX tools show better discipline with required parameter validation and error classification, but even those lack comprehensive error recovery guidance.
Get weather alerts for a state
Get weather forecast for a location
Get candlestick data for an OKX instrument
Get latest price for an OKX instrument
Weather tools (get-alerts, get-forecast) use kebab-case naming (get-alerts, get-forecast) instead of snake_case verb_noun convention (get_alerts, get_forecast). LLMs expect snake_case for tool name parsing and may not recognize kebab-case tools correctly.
Weather tool source code (src/index.ts) is truncated mid-function. Cannot verify: (1) whether output schemas are documented for weather tools, (2) whether error handling includes recovery guidance, (3) whether full parameter descriptions exist. Schema score set to 0 for both weather tools pending code visibility.
No tool in either server declares an output schema or documents what fields the response contains. LLMs cannot plan downstream tool calls or extract the right data without knowing response structure. Pattern: tool-output-schema.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 40 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 31 | - | v1 |
OKX tools (get_price, get_candlesticks) throw generic McpError with InternalError code and error.message concatenation. Error responses do not classify errors as retryable vs user-fixable, and do not suggest recovery steps (e.g., 'Check instrument ID format with list_instruments()' for invalid instrument). Pattern: recovery-guide.
Weather tool descriptions in src/index.ts are truncated or completely missing in the provided code snippet. Cannot assess whether they explain WHAT the tool does, WHEN to use it, or what it returns. Description quality cannot be verified.
get_candlesticks parameter 'limit' lacks validation constraints. Description says 'max 100' but no minItems/maxItems constraint in schema. OKX API enforces limit ≤ 100, but tool does not validate before sending request. LLM could pass limit=1000, causing API error.
No parameter descriptions for weather tool inputs (state, latitude, longitude). Bare parameter names do not tell LLMs what format 'state' expects (full name vs 2-letter code) or coordinate precision required. Pattern: tool-description.