espn-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SWID | No | The `SWID` cookie value from fantasy.espn.com. Required for private leagues. | |
| ESPN_S2 | No | The `espn_s2` cookie value from fantasy.espn.com. Required for private leagues. | |
| ESPN_TEAM_ID | Yes | Your team ID from the team URL when viewing your roster. | |
| ESPN_POOL_TTL | No | How long to cache the player pool in seconds. Defaults to 900 (15 minutes). | 900 |
| ESPN_LEAGUE_ID | Yes | Your ESPN league ID from the league URL (e.g., 123456789). |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_league_settingsA | League format: team count, scoring rules, starting lineup, draft type. Call this once at the start of a session -- every other tool's numbers are relative to this league's shape. |
| get_draft_stateA | Live draft state: picks made so far, who is on the clock, your next picks. Never cached. Safe to poll every few seconds during a live draft. |
| get_available_playersA | Undrafted players, ranked. Args: position: QB, RB, WR, TE, K or D/ST. Omit for all positions. limit: how many to return. sort_by: "vorp" (value over replacement, the default and usually right), "projected_points" (ignores scarcity), or "espn_adp" (what your leaguemates are likely to do). |
| get_value_boardA | Replacement levels and tier structure for the league. Explains why the rankings look the way they do: how many players at each position are startable league-wide, and what the last startable player at each position projects for. |
| get_rosterA | A team's current roster and which starting slots are still unfilled. Defaults to your team (ESPN_TEAM_ID). |
| get_playerA | Full detail on one player: projection, VORP, tier, ADP, injury status. Search by name (partial match) or exact player_id. |
| get_draft_contextA | One-call snapshot for when you are on the clock. Bundles draft state, your roster needs, the best available at each position with tier depth, recent-pick position runs, and the biggest ADP fallers -- everything needed to make a pick inside a 60-90 second clock. |
| record_pickA | Manually record a pick when ESPN is not reporting the draft. Use this if picks stop appearing in get_draft_state during a live draft, or for a draft held outside ESPN's draft room. Recorded picks merge with anything ESPN does report, so the available pool stays correct either way. Args: player: Player name, full or partial ("Gibbs", "jahmyr gibbs"). player_id: Exact id, if you have it instead of a name. team_id: Who made the pick. Defaults to whoever is on the clock. Ambiguous names are not guessed -- the candidates come back instead. |
| record_picksA | Record several picks at once, in draft order, by name. The fast path during a live draft: ESPN does not publish picks until the draft ends, so these ARE the draft. Recorded picks persist, so you only ever send the picks made since your last call -- never the whole board. Re-sending the entire pick history is fine and is the intended way to sync -- players already recorded are counted and ignored, and only the new names are appended, in the order given. Unrecognised or ambiguous names are reported without blocking the rest. |
| next_pickA | The single call to make when you are on the clock. Returns only what a pick decision needs: the best available players that fill an actual roster hole, the tier cliff behind each, and how long until your next turn. Deliberately small -- a draft clock is 60 seconds. |
| reset_draftA | Clear all manually recorded picks. Use before a new draft. |
| undo_pickA | Remove the most recently manually recorded pick. |
| refresh_draft_orderA | Re-read the draft order and your slot. Call this after a randomized draft order is drawn (many leagues randomize shortly before the draft starts). League settings are otherwise cached, so a session opened before the draw would keep the old order. |
| refresh_boardA | Force a re-fetch of the player pool, projections and value math. The pool is cached for ESPN_POOL_TTL seconds. Call this if projections changed (injury news, depth chart move) or the cache looks stale. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/HamCops/espn-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server