Commish MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Commish MCP Give me a league overview and current standings for my fantasy league."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Commish MCP
An MCP (Model Context Protocol) server for fantasy sports league commissioners β giving AI assistants league-wide context and commissioner-oriented tools.
Commish MCP is not a thin wrapper around a single fantasy API. The domain is fantasy commissioner operations: league overviews, standings, matchup results, manager activity, transactions, recaps, and storylines. Provider-specific APIs (Yahoo first) sit underneath a provider abstraction.
Current state
π§ Early development β initial scaffolding.
MCP server boots over stdio and registers one example tool (
get_league_overview)Provider-agnostic architecture with a Yahoo skeleton in place
No live fantasy data yet β the Yahoo OAuth2 client and API integration are not implemented
Related MCP server: Omnicord - Discord server management MCP for AI agents
Planned providers
Provider | Status |
Yahoo Fantasy | First β skeleton in place, integration pending |
Sleeper | Future |
ESPN | Potential future |
Planned capabilities
Commissioner-focused tools on the roadmap (none implemented yet):
Weekly recaps and league storylines
League health and manager activity
Lineup auditing
Transaction reports
Playoff context and standings deep-dives
Architecture
Yahoo API
β
YahooProvider (src/providers/yahoo)
β
Normalized domain models (src/domain)
β
Commissioner services (src/services)
β
MCP tools (src/tools)
β
AI clientKey principles:
Provider independence β tools operate on normalized domain models (
src/domain), never raw provider payloads. Raw Yahoo types live insrc/providers/yahoo/types.tsand must not leak upward.Commissioner-first β services (
src/services) combine provider data into league-level views; tool handlers stay thin.Strong typing β provider payloads and domain objects are separate types; no
any.
Getting started
Requires Node.js 22+ (.nvmrc provided).
npm install
npm run build
npm test
npm run typecheckScripts
Command | Purpose |
| Compile |
| Run with watch mode via tsx |
| Run the compiled server |
| Run unit tests (vitest) |
| Type-check |
| ESLint |
| Prettier |
Adding to an MCP client
Example Claude Desktop configuration:
{
"mcpServers": {
"commish-mcp": {
"command": "node",
"args": ["/absolute/path/to/commish-mcp/dist/index.js"]
}
}
}Configuration
Copy .env.example to .env (never committed) and fill in Yahoo credentials from an app registered at developer.yahoo.com/apps:
YAHOO_CLIENT_ID=
YAHOO_CLIENT_SECRET=
YAHOO_REDIRECT_URI=http://localhost:8787/callbackAll variables are optional today: without them the server runs and tools explain what is missing. OAuth2 support (authorization-code flow, token refresh, secure local token storage) is the next milestone.
Project structure
src/
βββ index.ts # stdio entrypoint
βββ server/server.ts # server assembly + tool registration
βββ tools/ # MCP tools (thin handlers)
β βββ league/
β βββ types.ts # ToolModule / ToolContext pattern
βββ services/ # commissioner services (combine provider data)
βββ providers/
β βββ provider.ts # FantasyProvider interface
β βββ yahoo/ # client, provider, raw payload types
βββ domain/ # normalized league/team/matchup/transaction models
βββ config/env.ts # zod-validated environment
βββ utils/
tests/ # vitest unit + in-memory MCP integration testsLicense
Available Tools
1 toolget_league_overviewGet League OverviewA
Get a commissioner's overview of a fantasy league: league settings and current standings.
Inputs: league_id (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogβ¦
TDQS
Scored across 1 tool
With only one tool available, there is no potential for confusion between tools. The purpose of get_league_overview is clear and unambiguous.
The single tool follows a clean verb_noun pattern, which is consistent with well-named MCP tools. There are no conflicting conventions.
A single tool is far too few for a server whose name implies commissioner functionality. While the tool itself is useful, one tool cannot reasonably cover the expected scope.
The server only provides a read-only league overview. Critical commissioner actions such as roster management, trade processing, waiver claims, or settings updates are entirely missing, leaving the surface severely incomplete.
Maintenance
Related MCP Connectors
Run a recreational sports league from an AI assistant: standings, schedules, rosters, scores, dues.
Fantasy football for any AI agent: draft board, start/sit, waivers, your Sleeper league. Free.
Free fantasy AI for ESPN, Sleeper, Fantrax: football, basketball and hockey in Claude and ChatGPT.
Fantasy analysis for your ESPN, Yahoo, and Sleeper leagues. Reads your leagues, never changes them.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI-powered Slack workspace management with 18+ tools for messaging, channel management, conversation analysis, and real-time bot responses. Features an autonomous AI agent that can plan and execute complex multi-step tasks combining Slack operations with web research.2-
- AlicenseBqualityBmaintenanceGives your AI assistant full control of a Discord server: 148 tools for chat, moderation, automod, events, and administration, up to building a complete community server from one paragraph. Every destructive action previews first and waits for your confirmation.15591 npm12Elastic 2.0
- AlicenseBqualityCmaintenanceEnables AI assistants to interact with Slack workspaces, providing tools for reading messages, posting content, managing channels, and more.2243MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to act as co-GMs and GM assistants within Foundry Virtual Tabletop, providing tools for game mechanics, actors, tokens, combat, canvas placeables, scenes, and world management.33 npmMIT