ESPN draft and lineup tools for Codex and other MCP clients, with approval modes and per-team limits.
This server exposes 2 tools with partial schema and moderate documentation. The get_capabilities tool has a lengthy, somewhat generic description but empty input schema. The load_demo tool has an enum-constrained mode parameter with proper type information. However, both tools lack comprehensive parameter descriptions, output schema documentation, and error handling guidance. The descriptions are borderline adequate (194-200 chars baseline suggests these are slightly above minimum) but do not explain when to use each tool or what downstream data models they enable. No evidence of error recovery patterns, validation guidance, or composition chains with other tools. The codebase shows disciplined Pydantic schema generation (tool_schema.py) but the exported definitions lack the richness of production-grade A-tier tools.
Read this server's capabilities before selecting analysis or execution tools. Returns supported actions, effective automation modes, pause state, snapshot presence, and state and configuration revisions. This server analyzes imported data and executes synthetic demo actions only. The response separately describes browser drafts and HTTP season actions through the ESPN companion. Its acceptance report distinguishes implemented actions from verified live execution. Works before a snapshot is loaded and does not change saved state.
Load a fictional scenario for local testing or demonstrations. Use import_league_snapshot for your own data. Requires an empty data directory or existing synthetic state and preserves confirmed draft history checks. Stops the local draft monitor, replaces the snapshot, and resets configuration when the league changes. Records the import and returns status='imported', revision, config_revision, and config_reset. This tool does not connect to ESPN.
get_capabilities has no input schema defined (empty input: {}). Per HARD SCORING RULES, schema score must be 0. This tool cannot guide an LLM on what parameters it accepts, even though the empty schema technically means 'no required inputs'.
Both tools lack documented output schemas. LLMs cannot infer what fields are returned or plan downstream tool calls. get_capabilities returns 'supported actions, effective automation modes, pause state, snapshot presence, and state and configuration revisions' as unstructured text, no field names, types, or structure visible.
get_capabilities description (231 chars) is verbose and generic. It spends effort explaining what the server does ('analyzes imported data', 'executes synthetic demo actions') rather than telling the LLM WHEN to call this tool or WHAT TO DO WITH the response. Lacks actionable decision cues.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
load_demo's mode parameter has an enum ('season', 'draft') but lacks a concrete description of what each mode does. LLM must infer from names alone. Description states 'Fictional scenario to load' but does not explain the behavioral difference between modes or when to choose each.
No error handling or recovery guidance. If load_demo fails (data directory conflict, existing state mismatch), LLM receives no actionable error message or hint on next steps. No distinction between retryable and fatal errors.
Tool descriptions do not explain composition or dependencies. load_demo mentions 'Requires an empty data directory or existing synthetic state' and 'Use import_league_snapshot for your own data' (referencing a tool not exposed in this server). Unclear how these tools fit into a workflow.