MCP orchestration layer for DeepSeek Harness — multi-server routing, health monitoring, fallback, and tool aggregation
Four tools with clear action verbs and reasonable descriptions (avg 180 chars). All have input schemas with type definitions. However, parameter descriptions are sparse or missing entirely, most params lack guidance on format, constraints, or valid values. Output schemas are undocumented. Error handling is minimal (generic 'not found' messages). Tool composition is sound (each does one thing), but lacks the LLM-optimized detail needed for confident agent selection and parameter binding.
Call a tool on an MCP server. If serverName is provided, tries that server first. If serverName is omitted, auto-resolves the server that provides the tool. Fallback routing is ENABLED: if the primary server fails, automatically retries on other servers that provide the same tool. Use mcp_list_tools to see available tools and their namespaced names. Use mcp_stats to see call statistics and server reliability.
List all configured MCP servers and their current status, health, and tool count. Use this to see which MCP servers are connected and available.
List all available MCP tools across all connected servers. Optionally filter by server name. Shows tool name, description, and providing server. If a tool name has a collision (same name on multiple servers), the namespaced name is shown.
Show MCP tool call statistics: total calls, success/failure rates, average response time, fallback count, per-server and per-tool breakdown. Use this to understand which MCP servers are reliable and which tools are used most.
Parameter descriptions missing or minimal. 'toolName' has no description; 'arguments' is generic ('varies by tool'); 'detail' in mcp_stats lacks enum values or format guidance. LLMs cannot infer valid inputs without explicit constraints.
Output schemas completely undocumented. No specification of what fields mcp_list_servers, mcp_list_tools, or mcp_stats return. LLMs cannot plan downstream tool calls or extract required data without knowing response structure.
Error handling is generic. 'Tool not found' and 'Server not found' provide no recovery guidance. No distinction between retryable vs fatal errors. No suggestions for alternative tools or servers.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2026-07-28+ | v2 |
mcp_stats 'detail' parameter lacks enum constraint. Description says 'summary|server|tool' but no formal enum in schema. LLMs may hallucinate invalid values like 'detailed' or 'full'.
mcp_list_tools 'serverName' parameter lacks guidance on format or behavior when server does not exist. Does it return empty list or error? Undocumented dependency.