mcp-ff2026
Sleeper Fantasy Football MCP 2026
An MCP server that helps an AI agent run a Sleeper fantasy football team from draft night through the championship. Sleeper is the read-only source of league state; recommendations, draft queues, decision history, and model data are stored locally in SQLite.
What it does
Discovers your league, roster, and draft from one Sleeper username or user ID.
Syncs rosters, drafts, picks, matchups, transactions, players, and league history.
Imports FantasyPros rankings, ADP, projections, injuries, and news.
Recommends draft picks and estimates who may survive to your next pick.
Maintains a conflict-safe local draft queue.
Optimizes lineups and analyzes waivers, FAAB, trades, and season strategy.
Learns descriptive manager tendencies from historical league behavior.
Preserves source snapshots, recommendations, actions, and outcomes for later evaluation.
The models expose their inputs and uncertainty. Heuristic survival, FAAB, and championship estimates are not presented as calibrated facts.
Requirements
Python 3.12+
A Sleeper username or user ID
A FantasyPros API key for rankings and projections
Setup
uv sync
cp .env.example .envEdit .env:
FF2026_SLEEPER_USER_ID=your-sleeper-username
FF2026_FANTASYPROS_API_KEY=your-api-keyStart the stdio MCP server:
uv run --env-file .env ff2026-mcpState is stored in .data/ff2026.sqlite3. Credentials are read only from the environment and are
excluded from source control.
MCP configuration
{
"mcpServers": {
"ff2026": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/mcp-ff2026",
"run",
"--env-file",
".env",
"ff2026-mcp"
]
}
}
}First run
Ask the agent to perform these operations:
initialize_seasondiscovers and stores the league, roster, and draft defaults.get_season_contextconfirms the selection.sync_fantasyprosimports preseason rankings and projections using week0.get_provider_statusreports unresolved player identities.sync_league_historyimports previous seasons for manager analysis.
If the account has multiple leagues, initialize_season returns the choices instead of guessing.
During the draft
Run
refresh_decision_inputswith week0.Read
get_draft_stateand stop if it reports stale data.Use
recommend_draft_pickand review the alternatives and survival ranges.Update the local queue with
set_draft_queue_entry.Record the chosen action, sync the draft, and repeat.
No tool makes picks or other changes in Sleeper.
During the season
Refresh inputs each week, then use the lineup, waiver, trade, value-change, simulation, and season strategy tools as needed. Record actions and outcomes so calibration reports can evaluate the system prospectively.
Create a transactionally consistent backup with:
uv run --env-file .env ff2026-backupDevelopment
uv run ruff format --check .
uv run ruff check .
uv run mypy
uv run pytestDetailed design and contracts:
Additional data sources must be licensed for your use. Boris-style tiers are treated as a FantasyPros-derived benchmark, not as independent evidence.
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/gregbuehler/mcp-ff2026'
If you have feedback or need assistance with the MCP directory API, please join our Discord server