Provider-neutral MCP server for OpenAI-compatible endpoint diagnostics, base_url testing, and AI agent compatibility reports.
All 5 tools have explicit descriptions and shared input schemas with type definitions and descriptions. However, schemas are overly generic (all tools accept identical parameters), violating single-responsibility principle. Descriptions are adequate (60-90 chars) but lack actionable context about when to use each tool vs. alternatives. No output schemas documented. Error handling and recovery guidance absent. Tool names follow verb_noun pattern but lack specificity, 'endpoint_info' and 'list_models_check' are vague about what 'checking' entails.
Send a tiny POST /chat/completions probe, or preview it safely in offline mode.
Run endpoint, models, chat, and embeddings diagnostics as one provider-neutral report.
Send a tiny POST /embeddings probe, or preview it safely in offline mode.
Parse an OpenAI-compatible base_url and explain what will be tested.
Check whether GET /models follows the OpenAI-compatible model list shape.
All 5 tools share identical input schema (baseUrl, apiKey, model, embeddingModel, timeoutMs, offline). This violates single-responsibility: endpoint_info should not accept embeddingModel; embeddings_smoke_test should not accept model. Overgeneralized schemas confuse LLMs about which parameters are relevant per tool.
No output schemas documented. LLMs cannot predict what fields each tool returns, forcing them to guess downstream field names and risk broken tool chains. E.g., does endpoint_info return {status, details} or {ok, message, data}?
Descriptions lack actionable context. 'Parse an OpenAI-compatible base_url and explain what will be tested' does not clarify WHEN to call endpoint_info vs compatibility_report, or what makes endpoint_info unique. LLMs cannot disambiguate.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2026-07-28+ | v2 |
No error handling or recovery guidance. If a tool fails (e.g., 'Connection refused'), the response provides no hint about whether to retry, check the baseUrl, or try a different endpoint. Agents cannot self-correct.
Tool names are vague. 'endpoint_info' could mean 'get endpoint metadata', 'validate endpoint', or 'describe endpoint capabilities'. 'list_models_check' mixes list (discovery) with check (validation). Rename to 'validate_endpoint_format', 'check_models_endpoint', etc.