Orchestrates speculative draft token verification and throughput speedup calculation for LLM inference optimization
Single tool 'orchestrate_speculative_run' has critical definition gaps. Tool name lacks action verb (should be 'run_speculative_decoding' or 'verify_speculative_tokens'). Description is adequate (89 chars, within 10-1024 range) but generic. Input schema is present in the rubric description but NOT visible in actual mcp_server.py code, tools/list response omits schema entirely. The client.py shows parameters exist (prompt, draft_tokens) but mcp_server.py never exposes them to the MCP protocol. Output is unstructured JSON string, not typed fields. No error handling, no validation, no recovery guidance.
Orchestrates speculative draft token verification and throughput speedup calculation.
Tool schema not exposed in MCP protocol. tools/list response omits inputSchema entirely; parameters (prompt, draft_tokens) exist in client.py but are never registered with the MCP server.
Tool name lacks action verb. 'orchestrate_speculative_run' is vague; should start with verb like 'run_', 'verify_', or 'execute_' to signal intent to LLM.
No parameter descriptions in MCP registration. Even though client.py accepts prompt and draft_tokens, the MCP server never declares what these parameters mean or their constraints.
Output is unstructured JSON string, not typed response object. Result is wrapped as plain text; LLM cannot parse fields reliably. Should return structured object with typed fields (orchestration_id: string, tokens_accepted_count: number, etc.).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 28 | 2026-07-28+ | v2 |
No error handling or validation. Tool silently defaults draft_tokens if omitted; no guidance on invalid prompt format, negative probabilities, or malformed token objects. Errors return no recovery hints.