内容
# 睡眠者MCP服务器
一款适用于 [睡眠者](https://sleeper.com) Fantasy Sports API的MCP(模型上下文协议)服务器。 为Claude、Cursor、VS Code Copilot以及其他任何与MCP兼容的AI客户端提供对睡眠者公共API的读取访问权限 - 无需API密钥。
## 你可以做的事情
询问你的AI助手类似的问题:
- *"本赛季我参加了哪些联赛?"* (提供你的睡眠者用户名)
- *"显示我的联赛的排名和阵容"*
- *"谁赢得了冠军赛?"*
- *"本周发生了哪些交易?"*
- *"哪些球员目前被添加最多?"*
- *"显示我2024年选秀的所有首轮选秀球员"*
## 可用工具
| 工具 | 描述 |
|------|-------------|
| `sleeper_get_user` | 通过用户名或用户ID查找用户的个人资料 |
| `sleeper_get_nfl_state` | 当前NFL周数、赛季类型和赛季年份 |
| `sleeper_get_user_leagues` | 用户在给定体育项目/赛季中参加的所有联赛 |
| `sleeper_get_league` | 完整的联赛详情,包括计分和阵容设置 |
| `sleeper_get_league_rosters` | 所有的阵容,包含胜负记录和球员列表 |
| `sleeper_get_league_users` | 联赛中的所有管理员及其团队名称 |
| `sleeper_get_league_matchups` | 任意周数的周赛比分 |
| `sleeper_get_league_winners_bracket` | 季后赛冠军赛程 |
| `sleeper_get_league_losers_bracket` | 安慰赛/厕所碗赛程 |
| `sleeper_get_league_transactions` | 每周的交易、豁免声明和自由球员添加/删除 |
| `sleeper_get_league_traded_picks` | 联赛中所有的交易选秀权 |
| `sleeper_get_user_drafts` | 用户参与的所有选秀 |
| `sleeper_get_league_drafts` | 联赛中的所有选秀 |
| `sleeper_get_draft` | 完整的选秀详情(类型、顺序、选秀权映射) |
| `sleeper_get_draft_picks` | 选秀中的每个选秀权,包含球员和位置信息 |
| `sleeper_get_draft_traded_picks` | 选秀中交易过的选秀权 |
| `sleeper_get_nfl_players` | 完整的NFL球员数据库,可按位置、球队或姓名筛选 |
| `sleeper_get_trending_players` | 在一段时间窗口内添加或删除最多的球员 |
## 先决条件
- **Node.js 18+** — [下载](https://nodejs.org) — 或 — **Bun** — [下载](https://bun.sh)
- 睡眠者账户有助于但不是必需的(API是完全公开的)
## 安装
```bash
git clone https://github.com/yooitsgreg/sleeper-mcp.git
cd sleeper-mcp
# 选择你的包管理器:
npm install # 或:pnpm install / yarn / bun install
```
安装会触发一个`prepare`钩子,编译TypeScript到`dist/`。无需单独的构建步骤。
## 配置
为你的AI客户端选择部分。
### Claude Desktop
编辑 `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS)或 `%APPDATA%\Claude\claude_desktop_config.json` (Windows):
```json
{
"mcpServers": {
"sleeper": {
"command": "node",
"args": ["/绝对路径/to/sleeper-mcp/dist/index.js"]
}
}
}
```
### Claude Code(CLI)
编辑 `~/.claude/claude.json`:
```json
{
"mcpServers": {
"sleeper": {
"command": "node",
"args": ["/绝对路径/to/sleeper-mcp/dist/index.js"]
}
}
}
```
### VS Code(GitHub Copilot / MCP扩展)
在工作区中创建或编辑 `.vscode/mcp.json`:
```json
{
"servers": {
"sleeper": {
"type": "stdio",
"command": "node",
"args": ["/绝对路径/to/sleeper-mcp/dist/index.js"]
}
}
}
```
### Cursor
编辑 `~/.cursor/mcp.json`:
```json
{
"mcpServers": {
"sleeper": {
"command": "node",
"args": ["/绝对路径/to/sleeper-mcp/dist/index.js"]
}
}
}
```
编辑配置文件后,重启你的AI客户端。
## 开发
```bash
npm run dev # 监视模式(tsx),保存时重新编译
npm run build # 编译TypeScript → dist/
npm run clean # 删除dist/
```
### 项目结构
```
src/
├── index.ts # 入口点 — 连接McpServer + StdioServerTransport
├── constants.ts # API基准URL、超时、字符限制
├── types.ts # 所有睡眠者API响应的TypeScript接口
├── services/
│ └── sleeperClient.ts # 共享axios客户端和错误处理程序
└── tools/
├── users.ts # sleeper_get_user
├── leagues.ts # 所有联赛工具(9个工具)
├── drafts.ts # 所有选秀工具(5个工具)
├── players.ts # sleeper_get_nfl_players,sleeper_get_trending_players
└── state.ts # sleeper_get_nfl_state
```
## 注意事项
- **无需身份验证** — 睡眠者的API是免费且公开的。
- **速率限制** — 睡眠者要求您保持在每分钟1,000次请求以下。
- **`sleeper_get_nfl_players`** 获取约5 MB的数据。使用`position_filter`、`team_filter`或`search`参数来保持响应可控。睡眠者建议缓存此数据并每天仅刷新一次。
- 所有工具都是只读的 — 此服务器从不写入睡眠者。
## 许可证
MIT