使用说明
卧铺MCP
一个轻量级的FastAPI服务器,公开Sleeper API数据和更丰富的比赛/球员摘要,用作模型上下文 协议(MCP)工具。在本地运行它,用ngrok公开它,并将其连接到ChatGPT以获取联赛数据、排名上下文, 以及每周报告。
特性
- 公共Sleeper资源(用户、联盟、名册、配对、用户联盟)的代理端点。
- 每周配对摘要,根据所有者姓名、获胜者、利润率和得分最高/最低者进行分组。
- 特定周的玩家排行榜,带有位置/可用性过滤器,用于豁免线扫描。
- 健康端点,用于在通过ngrok隧道时验证连接。
入门
-
安装依赖项 (最好在虚拟环境中):
python -m pip install -r requirements.txt -
在本地运行MCP服务器:
uvicorn app:app --host 0.0.0.0 --port 8000 -
使用ngrok暴露服务器:
ngrok http 8000复制转发的HTTPS URL(例如。,
https://abcd1234.ngrok.io). -
在ChatGPT中注册MCP端点:
- 在ChatGPT中,添加一个新的MCP并提供ngrok HTTPS URL。
- 使用
/health初始验证的终点。
可用端点
GET /health--快速准备检查。GET /api/users/{username}--通过用户名或用户ID检索Sleeper用户。GET /api/users/{username}/leagues/{season}--用户在特定赛季的所有NFL联赛。GET /api/users/{username}/weekly-report/{season}/{week}--每周报告 全部 用户的联赛。GET /api/leagues/{league_id}--获取联盟元数据。GET /api/leagues/{league_id}/users--列出联盟中的用户。GET /api/leagues/{league_id}/rosters--列出联盟的名单。GET /api/leagues/{league_id}/matchups/{week}--给定一周的原始匹配数据。GET /api/leagues/{league_id}/weekly-report/{week}--带有所有者姓名、获胜者和边距的分组比赛摘要。GET /api/leagues/{league_id}/top-players/{week}?position=RB&availability=available&limit=15--每周幻想排行榜 根据位置和豁免线上是否有球员(可用性可以all,available,或unavailable).
仅限用户名入职: 所有用户范围的端点都将Sleeper用户名(或用户ID)作为路径参数
解决根本问题 user_id 为你。首先,只提供您的Sleeper用户名——不需要单独的ID
每周报告或联盟查询。
示例用法
联赛第3周周报:
curl "http://localhost:8000/api/leagues/123456789/weekly-report/3"
第5周豁免线RB的每周排行榜:
curl "http://localhost:8000/api/leagues/123456789/top-players/5?position=RB&availability=available&limit=20"
2024年用户管理的每个联赛的所有第2周报告:
curl "http://localhost:8000/api/users/example_username/weekly-report/2024/2"
实现注意事项
- 服务器:FastAPI为ChatGPT提供了一个对MCP友好的REST界面。每个端点都会打开一个短暂的
SleeperClient(基于httpx-based)调用Sleeper的公共API,并返回专为摘要而设计的JSON。 - 报告助手 (
reports.py):summarize_weekly_matchups分组配对,注释所有者姓名,捕捉赢家/输家,并显示得分最高/最低的人 简化“每周回顾”提示。top_weekly_players使用每周统计数据和联赛名单来标记豁免线可用性,并按位置过滤。user_weekly_report解析用户并获取一个赛季中每个NFL联盟的报告,从而实现快速的个人回顾。
- Sleeper客户端 (
sleeper_client.py):围绕Sleeper端点的小型httpx包装器,用于用户、联盟、名册、比赛, 每周统计数据、玩家元数据和用户联盟。
这些助手是针对常见的MCP提示量身定制的:每周豁免线扫描、每个用户的联赛回顾和比赛/排名 故事情节(获奖者、利润、高分/低分)。