MCP server that bridges to any OpenAI-compatible chat API (DeepSeek, OpenAI, Azure, local llama.cpp, etc.)
Two tools with complete input schemas and descriptions. chat tool has comprehensive parameter documentation (messages, model, temperature, max_tokens, top_p, stop, system, include_reasoning) with proper types and enums. list_models is minimal but valid. Descriptions are adequate (chat: 156 chars, list_models: 60 chars) but lack actionable guidance on when to use each tool or error recovery paths. No output schemas documented. Parameters lack constraint details (e.g., temperature range 0-2 stated in description but not in schema; no min/max for max_tokens). Error handling not visible in tool definitions.
Send a chat completion request to a configured OpenAI-compatible API (DeepSeek by default) and return the assistant's reply. Use this whenever you need a single-shot LLM response inside a tool call.
List the configured default model and friendly model aliases.
Output schemas not documented. LLMs cannot infer what fields chat() returns or how to extract model names from list_models(). Breaks downstream tool chaining.
No error handling guidance in tool descriptions. If API key is invalid, rate-limited, or model not found, LLM has no recovery path. Should document retryable vs fatal errors.
Parameter constraints not formalized in schema. temperature range (0-2) and max_tokens bounds stated only in description text, not as JSON Schema min/max. LLMs cannot parse text constraints reliably.
list_models description is vague (60 chars). Does not explain when to call it or what structure it returns. Should state: 'Call before chat() to discover available model aliases and defaults.'
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 66 | <=2025-11-25 | v2 |
No dependency hints. chat() accepts a 'model' parameter but does not mention that list_models() should be called first to discover valid aliases. Agents may pass invalid model names.