OFFSIDE as an MCP server — the engine, callable by any agent through IBM Context Forge. Exposes tools to decompose contested football decisions across four axes (rule ambiguity, indeterminacy, decision-time deficit, cultural prior bias) with grounded evidence and no numeric scores.
Two tools with clear, domain-specific descriptions and basic input schemas. list_incidents() has no parameters (empty schema), decompose_disagreement() accepts a single string parameter with description. Both tools are READ_ONLY and return JSON strings. Descriptions are adequate (100-150 chars) but lack actionable guidance for LLM selection. No output schemas documented, no error recovery hints, no parameter constraints (e.g., enum for incident_id). Tool names follow verb_noun pattern correctly. Missing: pagination guidance, structured output documentation, and error classification.
Return THE SPLIT for one incident: why the disagreement persists, decomposed across the four axes, with each live axis grounded to real source pages. Carries states, never numbers.
List the contested decisions OFFSIDE can decompose, with their one-line settled fact.
No output schema documented for either tool. Both return JSON strings, but LLMs cannot infer the structure of 'incidents' array or 'split' object without explicit schema documentation.
decompose_disagreement accepts incident_id as free-form string with no enum constraint. Should enumerate valid IDs from list_incidents or document the constraint in the parameter description.
Error handling in decompose_disagreement returns JSON with 'error' and 'available' fields, but no guidance on what the LLM should do next. Should include recovery hint like 'Call list_incidents() to see valid IDs.'
list_incidents() returns potentially unbounded list of incidents with no pagination, limit, or offset parameters. If incidents grow, response could exhaust context window.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2026-07-28+ | v2 |
Descriptions lack WHEN-to-use guidance. LLMs cannot distinguish between list_incidents (discovery) and decompose_disagreement (analysis) without explicit sequencing hints.