MCP, OAuth, read-only
League Loom is a free MCP server that connects your ESPN, Sleeper, and Fantrax leagues to any MCP-compatible client, including Claude and ChatGPT. It runs as a stateless Streamable HTTP server when hosted (with stdio support for local use), authorizes each user through standards-based OAuth 2.1 with Dynamic Client Registration and PKCE, and exposes 14 read-only fantasy_* tools for rosters, matchups, standings, waivers, transactions, and more. It never sets lineups, makes trades, or claims players.
League Loom exposes read-only MCP tools across ESPN, Sleeper, and Fantrax, so you can ask in plain language.
Try: rosters and standings, weekly matchups, available players, start/sit calls, trade evaluations, and a weekly digest of every league at once.
Loom pulled every league you're in and summarized the week.
| League | Record | Matchup |
|---|---|---|
| Main PPR (ESPN) | 6-2 | vs 1st place |
| Sleeper Dynasty | 4-4 | vs 8th place |
| Fantrax NHL | 5-3 | vs 4th place |
Fantrax is the differentiator here: NBA, NFL, MLB, and NHL all flow through the same tools.
It's a read-only MCP server. It reads your leagues to answer questions and never makes roster moves, trades, or waiver claims.
Connect ESPN, Sleeper, or Fantrax once, then ask any MCP client (Claude, ChatGPT, Gemini) about your teams.
2 minutes
In Claude, ChatGPT, or any MCP tool, add a custom connector and paste the League Loom URL, then leave Client ID & Secret blank.
A quick wizard finds your leagues and lets you pick your team in each. No API keys.
Ask about your roster, waivers, matchups, and more, in plain language, across every league.
https://leagueloom.com/mcpAdd it as a custom connector, leave Client ID & Secret blank, then follow the quick wizard.
Why League Loom
Most fantasy AI integrations are closed, single-provider plugins that skip Fantrax and lock your data behind a proprietary API. League Loom is built on the Model Context Protocol, an open standard for connecting AI clients to external tools, so it works the same way in Claude, ChatGPT, or any other MCP client without custom glue code. Authorization uses OAuth 2.1 with Dynamic Client Registration and PKCE: each person authorizes their own ESPN, Sleeper, or Fantrax accounts, and credentials are sealed into that person's own encrypted access token using AES-256-GCM rather than stored in a shared database. The server itself is stateless, holding no per-user session between requests, so every call carries its own authorization. On top of that, the 14 fantasy_* tools are strictly read-only: they can fetch rosters, standings, matchups, available players, transactions, and league settings, but there's no write path, so the server structurally cannot touch your lineup or make a trade. That combination, an open protocol, per-user OAuth, and a read-only contract, is what lets one connector safely cover three different fantasy providers.
FAQ
Any MCP-compatible client, including Claude, ChatGPT, Gemini, and others. Point the client at https://leagueloom.com/mcp and complete the OAuth flow.
Auth runs over OAuth with Dynamic Client Registration and PKCE. Your league credentials are sealed into your own encrypted connection rather than stored on a shared backend.
Yes. All 14 fantasy_* tools only read league data. There are no write operations, so the server can never alter your lineups or accounts.
Both. When hosted, it runs as a stateless Streamable HTTP MCP server at leagueloom.com/mcp, so any MCP client can connect over the network. It also supports the stdio transport for running it locally on your own machine.
Nothing is stored server-side. Your credentials are sealed into your own encrypted access token using AES-256-GCM during OAuth. The server holds no per-user database state, so each request carries its own authorization independently.
Yes. Since it's built on the open MCP standard with OAuth 2.1 and Dynamic Client Registration, it works with any compliant client, including Cursor, Cline, Goose, and Raycast, not just Claude and ChatGPT.
Ready in two minutes
Free, read-only, and private. Connect once and ask anything.