MCP Server for Bradley-Terry Elo Rating Tournament Skill. Maintains continuous skill ratings for agents/prompts, records head-to-head match results, and predicts pairwise win probabilities using Elo and Bradley-Terry paired comparison models.
Three tools with basic schemas and minimal descriptions. All tools have input schemas with proper JSON types, but descriptions are generic (10-60 chars) and lack context for LLM selection. No parameter descriptions beyond names. No output schema documentation. No error handling guidance. Missing idempotency hints for record_match (a write operation). Tool composition is reasonable (three distinct concerns), but descriptions do not explain WHEN to use each tool or what the LLM should expect in responses.
Retrieve current Elo leaderboard
Record a head-to-head match result between two agents/prompts
Predict head-to-head win probability between two candidates
Parameter descriptions missing. All three tools have parameters (candidate_a, candidate_b, score_a) with no descriptions explaining what they represent or valid formats. LLMs cannot infer that 'candidate_a' is a string identifier or that 'score_a' must be 0.0 - 1.0.
Output schema not documented. Tools return JSON responses (match record, leaderboard array, probability float) but the response structure is not declared in the tool definition. LLMs cannot plan downstream operations without knowing what fields to expect.
Tool descriptions too generic and lack context. 'Record a head-to-head match result' (52 chars) does not explain when to call this vs other tools, what happens to ratings, or whether the operation is idempotent. Baseline for A+ tools is 50 - 200 chars with WHEN/WHY context.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | 2026-07-28+ | v2 |
No error handling or recovery guidance. If score_a is outside [0.0, 1.0], the server raises ValueError, but the LLM receives no actionable message. Error responses should state the constraint violated and suggest correction.
record_match lacks idempotency hint. This is a write operation that modifies state (updates ratings, appends to match_history). The tool definition should declare destructiveHint=true and explain retry semantics, or support idempotent keys to prevent duplicate rating updates if the agent retries.