MCP Server for Speculative Decoding Draft Verifier Skill. Implements parallel token verification, rejection sampling acceptance criterion, and speedup metric tracking for speculative decoding.
Two tools with basic schemas and descriptions, but significant gaps in parameter documentation, output schema clarity, and error handling. Tool names follow verb_noun convention (verify_*, get_*), which is good. However, parameter descriptions are minimal or absent (draft_tokens, draft_probs, target_probs lack descriptions in the schema; uniform_randoms has a description but it's vague). Output schemas are not documented, callers must infer structure from example_usage.py. No error handling guidance. The server implements core logic correctly but fails to meet LLM-friendly documentation standards.
Get overall acceptance rate and speculative speedup ratio
Verify draft tokens using rejection sampling against target distribution
Parameter descriptions missing or incomplete. draft_tokens, draft_probs, target_probs have no descriptions in inputSchema; uniform_randoms description is vague ('optional, defaults to 0.5'). LLMs cannot infer what these arrays represent or their valid ranges.
Output schemas not documented. verify_speculative_tokens returns a dict with fields like accepted_tokens, num_accepted, rejected_at_index, acceptance_rate, effective_tokens_generated, gamma, but the tool definition does not declare this structure. Callers must reverse-engineer from code or examples.
No error handling or recovery guidance. If draft_probs and target_probs have mismatched lengths, or if uniform_randoms is shorter than draft_tokens, the tool silently defaults or truncates. No error message tells the LLM what went wrong or how to fix it.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
get_aggregate_stats has no input parameters documented. The inputSchema is an empty object, but the description does not explain what the tool does or when to call it relative to verify_speculative_tokens.
Tool descriptions are too brief (verify_speculative_tokens: 95 chars, get_aggregate_stats: 73 chars). They state WHAT but not WHEN to use or any prerequisites. Baseline for A+ tools is 194 chars average; these fall well short.