A fantasy sports MCP server for Claude and ChatGPT
FantasyBot runs a Model Context Protocol (MCP) server that gives Claude and ChatGPT read-only access to your live fantasy league. Add https://api.fantasybot.ai/claude/mcp as a custom connector in Claude, or use the native FantasyBot Sports app in ChatGPT. It exposes 15 read-only tools across fantasy football, basketball, baseball, and hockey, reading the ESPN, Yahoo, or Sleeper league you connected in the FantasyBot app.
The 15 tools, and what each is for
Eight tools are league-aware: they read the league you connected and need one linked before they return anything useful. Seven work for any player, in any context, with no league required.
- get_my_roster, your full roster exactly as set, every lineup slot, bench and IR, with projections and injury status
- get_my_team, an overall letter grade with per-position grades, strengths, weaknesses, and your biggest positional hole
- my_start_sit, a START/FLEX/SIT verdict for every player on your roster, with projections and opponents
- get_matchup_outlook, projected score, favored/underdog/toss-up verdict, top swing players, suggested lineup fixes
- get_waiver_pickups, pickups actually available in your league, fitted to your roster's needs, with safe drop candidates
- get_league_power_rankings, your rank, the league's top teams, and your own row
- get_league_team, another manager's roster, or which team owns a given player
- my_league_settings, your scoring format, roster slots, and league rules
- analyze_trade, a two-sided trade graded against your roster and scoring, not a static value chart
- get_player_value, a single player's trade value on a 0–100 scale
- start_sit_analysis, compare specific named players head-to-head; no league needed
- compare_players, a rest-of-season comparison between any two players
- get_player_stats, live season stats and recent form for any player
- get_position_rankings, the current board for a position, weekly or rest-of-season
- get_trending_players, league-independent trending adds and drops
Connecting it to Claude
In Claude, open Settings, then Connectors, then Add custom connector. Name it FantasyBot and paste https://api.fantasybot.ai/claude/mcp as the server URL. Click Add, then Connect. In any conversation, tap the + button, choose Connectors, and toggle FantasyBot on. The server speaks MCP over Streamable HTTP.
If the connector shows no tools, it's almost always because it isn't toggled on for that specific conversation. If you see a 401, disconnect and reconnect it under Settings to refresh the token.
Connecting it to ChatGPT
In ChatGPT there's nothing to paste: FantasyBot Sports is a native ChatGPT app. Open it and tap Try in chat. Because it's a first-class app rather than a pasted endpoint, results render as interactive cards, a real start/sit board, a trade breakdown, a power-rankings table, instead of a wall of text.
How FantasyBot actually computes an answer
Most AI fantasy tools are a pipe: they hand your league's raw JSON to a general-purpose model and let it reason from scratch. That works for reading a roster back to you and falls apart on anything requiring calibration, because the model has no fantasy-specific model of value, it's pattern-matching on text.
FantasyBot computes first, then explains. A positional grader scores every starting slot against the market curve, so a median starting lineup lands near 80 and an all-#1 roster approaches 100. Trade values come from a model calibrated to that same curve rather than a static value chart, which is why it can tell you a deal is fine in a 10-team redraft and terrible in your superflex dynasty. Weekly projections, matchup outlooks, and league power rankings all run off the same shared scoring, so the numbers agree with each other.
That's the difference you feel in an answer: you get a verdict with the figures behind it, not a paragraph of hedged prose.
Why not just point an MCP server at the league API?
You can, and several open-source fantasy MCP servers do exactly that. They're a reasonable choice if you want to run the connector yourself and keep your credentials local. The trade-off is that they hand raw league data to the model and stop there, so the quality of the answer is entirely the model's improvisation.
There's also a practical catch with ESPN specifically. Private ESPN leagues don't expose a clean API token, so self-hosted connectors generally need your espn_s2 and SWID cookies, and several hosted ones require a desktop Chrome extension to harvest them. FantasyBot signs you in on ESPN's own page inside the app instead, which is why it works from a phone and why there's no extension to install.
Questions
What is the FantasyBot MCP server URL?
https://api.fantasybot.ai/claude/mcp, add it in Claude under Settings, Connectors, Add custom connector. It speaks MCP over Streamable HTTP. In ChatGPT you don't need a URL; FantasyBot Sports is a native ChatGPT app.
How many tools does the FantasyBot MCP server expose?
15, all read-only. Eight read your connected league; seven work for any player without a league.
Is the MCP server read-only?
Yes. Every tool only reads. It can never make a trade, drop a player, edit a lineup, or change league settings.
Which fantasy platforms does the MCP server read?
ESPN, Yahoo, and Sleeper, across NFL, NBA, MLB, and NHL. You link the league once in the FantasyBot app and the tools pick it up.
Do I need espn_s2 and SWID cookies?
No. Self-hosted ESPN connectors typically require those cookies, and some hosted ones use a Chrome extension to collect them. FantasyBot signs you in on ESPN's own login page inside the app, so there are no cookies to copy and no extension to install.
Related
Read-only, no browser extension, free to start.