MCP server that combines DeepSeek's reasoning with Claude 3.5 Sonnet's response generation through Cline
This server has two tools with significant definition quality issues. Both tools have acceptable names and descriptions, but critical gaps exist in schema completeness, parameter descriptions, and output documentation. Tool names follow verb_noun convention (generate_response, check_response_status), which is good. However, parameter descriptions are generic or missing, input schemas lack proper typing for some fields, and no output schema is documented. The server also exhibits architectural concerns: it maintains in-memory task state (activeTasks Map) without documenting this ephemeral nature to clients, making the check_response_status tool unreliable across restarts. Error handling is minimal, no recovery guidance, no actionable error messages, and no categorization of error types.
Check the status of a response generation task
Generate a response using DeepSeek's reasoning and Claude's response generation through OpenRouter.
No output schema documented for either tool. Clients cannot know what fields to expect, forcing them to parse responses blindly or reverse-engineer output structure.
Parameter descriptions are either missing or trivial. 'prompt' has 'The user's input prompt' (13 chars, below 20-char minimum). 'taskId' is 'The task ID returned by generate_response' (43 chars, acceptable but minimal). No parameter descriptions explain format constraints, accepted values, or usage context.
Task state (activeTasks Map) is ephemeral and stored in memory only. The check_response_status tool will return 'pending' indefinitely if the server restarts, or immediately after process termination. This violates the idempotent-operation pattern and makes the status check unreliable.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 49 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 0 | - | v1 |
No error recovery guidance. If OpenRouter API fails, the tool returns a generic error message with no actionable next steps. E.g., 'Error: API rate limit exceeded' should say 'Rate limited. Retry in 60 seconds or contact your API provider.'
Input schema for 'generate_response' lists 4 parameters but only 1 is marked required. The 'showReasoning', 'clearContext', and 'includeHistory' boolean flags have sensible defaults, but the description does not explain what each flag does or when to use them. 'showReasoning', does this return DeepSeek's internal reasoning chain or a brief explanation? Ambiguous.
Tool descriptions do not state whether they modify state or are read-only. The manifest says risk=READ_ONLY for both, but 'generate_response' internally modifies context.entries and activeTasks. State mutation should be explicit in the description.