Sleeper Fantasy Football MCP

Sleeper Fantasy Football MCP

A read-only MCP server that supplies live context from Sleeper fantasy-football leagues, including rosters, trade analysis, draft picks, and league settings via Sleeper's public API.

Category
访问服务器

README

Sleeper Fantasy Football MCP

A local, read-only Model Context Protocol server that gives ChatGPT desktop and Codex fresh context from Sleeper fantasy-football leagues.

The server is designed for questions such as:

  • Is this dynasty roster ready to contend?
  • Which players should I cut before the draft?
  • How does a proposed trade affect both teams?
  • Who owns each future rookie pick?
  • What trades and waiver moves happened recently?
  • How do all rosters in the league compare?

It uses Sleeper's public API. No Sleeper password, API key, session cookie, or account token is required.

Capabilities

The MCP server can retrieve:

  • Sleeper account identity and current NFL state
  • Leagues for a selected season
  • League settings, scoring, lineup slots, records, and owners
  • Your roster or every roster, with player IDs resolved to names
  • Starters, bench, reserve, taxi squad, and keepers
  • Future draft-pick ownership and traded picks
  • Focused context for evaluating a proposed trade
  • Completed trades, waivers, and free-agent transactions
  • Weekly matchups and lineups
  • Live or completed draft boards
  • Trending additions and drops
  • Player-name search

Important limitation

Sleeper's documented public API does not expose the private inbox containing unaccepted incoming or outgoing trade proposals. Paste or screenshot the offer itself; the MCP can then pull the live league rules, both rosters, records, and draft-pick inventories needed to analyze it.

This project cannot send, accept, reject, or cancel trades. It deliberately avoids unofficial authenticated endpoints and Sleeper session tokens.

Requirements

  • macOS, Linux, or Windows with a compatible MCP host
  • Node.js 20 or newer
  • npm
  • A Sleeper username
  • ChatGPT desktop, Codex CLI, or another STDIO-capable MCP client

Quick start

Clone or download the repository, then run:

cd /path/to/sleeper-fantasy-mcp
chmod +x scripts/*.sh
./scripts/setup-mac.sh YOUR_SLEEPER_USERNAME

The setup helper:

  1. Checks Node.js and npm.
  2. Installs dependencies.
  3. Runs local syntax and unit tests.
  4. Verifies the Sleeper username.
  5. Lists the current-season leagues it finds.
  6. Prints the exact local MCP command and environment variable.

A Sleeper username can change. The setup output also shows the stable Sleeper user ID, which can be supplied through SLEEPER_USER_ID instead.

Connect to ChatGPT desktop

Open Settings → MCP servers → Add server and enter:

  • Name: Sleeper
  • Transport: STDIO
  • Command: the absolute Node path printed by the setup script
  • Arguments: the absolute src/index.js path printed by the setup script
  • Environment: SLEEPER_USERNAME=YOUR_SLEEPER_USERNAME

Save the server and restart ChatGPT desktop. Type /mcp in the composer to verify that the server and its tools are available.

Use absolute paths. A macOS desktop application does not always inherit the same shell PATH as Terminal.

Connect to Codex

The setup script prints a command tailored to the current machine. You can also run:

./scripts/add-to-codex.sh YOUR_SLEEPER_USERNAME

The equivalent manual command is:

codex mcp add sleeper \
  --env SLEEPER_USERNAME=YOUR_SLEEPER_USERNAME \
  -- /absolute/path/to/node /absolute/path/to/sleeper-fantasy-mcp/src/index.js

codex mcp list

Codex stores local MCP configuration under ~/.codex/config.toml. Do not commit that file to this repository.

Test with MCP Inspector

After installing dependencies:

SLEEPER_USERNAME=YOUR_SLEEPER_USERNAME npm run inspect

The Inspector launches a local client that can list and invoke each tool directly.

Example prompts

Use Sleeper to list all of my 2026 leagues and identify which are dynasty, keeper, or redraft.

Pull my roster and league settings for SHADynasty. Assess whether the roster is ready to contend this season.

In my DFB league, compare every roster and identify the three weakest players on my team.

Pull trade context for my team and the other owner's team, then assess this proposal: [paste offer].

Show the most recent completed trades in this league and explain which teams improved most.

Pull the current draft board and identify my biggest roster needs before my next pick.

Tool reference

Tool Purpose
sleeper_account Resolve the configured Sleeper account and current NFL state.
sleeper_list_leagues List leagues for a season and identify the user's roster ID.
sleeper_league_overview Fetch rules, scoring, teams, records, drafts, and pick ownership.
sleeper_my_roster Fetch the user's roster, lineup groups, and draft picks.
sleeper_all_rosters Fetch every roster for league-wide comparison.
sleeper_trade_context Fetch focused roster, rule, record, and pick context for selected teams.
sleeper_transactions Fetch trades, waivers, and free-agent moves by week range.
sleeper_matchups Fetch one week's matchups, starters, bench, and points.
sleeper_draft_board Fetch draft settings, order, picks, and traded slots.
sleeper_search_players Resolve player names to Sleeper player records.
sleeper_trending_players Fetch frequently added or dropped players.

Configuration

Environment variable Required Description
SLEEPER_USERNAME Yes, unless using SLEEPER_USER_ID Sleeper username used to locate the account.
SLEEPER_USER_ID Optional Stable user ID; takes precedence over the username.
SLEEPER_DEFAULT_SEASON Optional Four-digit season used when a tool does not provide one.
SLEEPER_CACHE_DIR Optional Override the local directory for the public player cache.

Freshness and caching

League settings, rosters, transactions, matchups, drafts, and picks are requested from Sleeper when a tool is called. There is no background synchronization process.

Sleeper's full NFL player directory is much larger, so it is cached for 24 hours at:

~/.cache/sleeper-fantasy-mcp/players-nfl.json

Delete that file to force a refresh on the next player-dependent request.

Privacy and security

  • The server is read-only.
  • It sends network requests only to https://api.sleeper.app/v1.
  • It does not collect a Sleeper password or authenticated account token.
  • The only local data it writes is Sleeper's public NFL player directory cache.
  • League names, usernames, team names, and all other Sleeper-returned text are treated as untrusted data rather than model instructions.
  • Raw Sleeper metadata objects are not forwarded unless a known field is required for a feature.

Review SECURITY.md before expanding the server's permissions or endpoints.

Development

Install dependencies and run all local checks:

npm install
npm run check

The first npm install creates package-lock.json. Review and commit that lockfile so subsequent local and CI installs resolve the same dependency graph.

Run only the live connection check:

npm run check:connection -- YOUR_SLEEPER_USERNAME

Start the STDIO server manually:

SLEEPER_USERNAME=YOUR_SLEEPER_USERNAME npm start

The process will appear to wait. That is expected: an STDIO MCP server listens for JSON-RPC requests from its host. Stop it with Ctrl+C.

Never use console.log in the server process. STDOUT is the MCP protocol channel; diagnostics belong on STDERR through console.error.

Project structure

.
├── .github/                 # CI and dependency updates
├── scripts/                 # Setup, Codex registration, and connection check
├── src/
│   ├── index.js             # MCP server and tool definitions
│   └── sleeper-client.js    # Sleeper API client and response shaping
├── test/                    # Offline unit tests
├── CONTRIBUTING.md
├── SECURITY.md
├── LICENSE
└── README.md

Troubleshooting

No Sleeper account is configured

Add SLEEPER_USERNAME or SLEEPER_USER_ID to the MCP server environment, then restart the host.

ChatGPT or Codex cannot find node

Run:

which node

Use that complete path as the MCP command.

The server starts and appears to hang

That is normal when started manually. It is waiting for an MCP client on stdin.

A renamed Sleeper username no longer resolves

Update SLEEPER_USERNAME, or use the stable SLEEPER_USER_ID printed by the connection check.

Player information appears stale

Delete the cached player file:

rm ~/.cache/sleeper-fantasy-mcp/players-nfl.json

The next player-dependent request will download a new copy.

Contributing

See CONTRIBUTING.md. Changes should preserve the read-only security boundary and use only documented public Sleeper endpoints.

License

MIT. See LICENSE.

Disclaimer

This is an independent project and is not affiliated with, endorsed by, or sponsored by Sleeper.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选