Sleeper API代理服务器

一个轻量级的FastAPI服务器,用于代理Sleeper API数据并提供更丰富的比赛/玩家摘要,适用于模型上下文协议(MCP)工具。

  • by neil-b-zhang
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 neil-b-zhang/sleeper_mcp

使用说明

卧铺MCP

一个轻量级的FastAPI服务器,公开Sleeper API数据和更丰富的比赛/球员摘要,用作模型上下文 协议(MCP)工具。在本地运行它,用ngrok公开它,并将其连接到ChatGPT以获取联赛数据、排名上下文, 以及每周报告。

特性

  • 公共Sleeper资源(用户、联盟、名册、配对、用户联盟)的代理端点。
  • 每周配对摘要,根据所有者姓名、获胜者、利润率和得分最高/最低者进行分组。
  • 特定周的玩家排行榜,带有位置/可用性过滤器,用于豁免线扫描。
  • 健康端点,用于在通过ngrok隧道时验证连接。

入门

  1. 安装依赖项 (最好在虚拟环境中):

    python -m pip install -r requirements.txt
    
  2. 在本地运行MCP服务器:

    uvicorn app:app --host 0.0.0.0 --port 8000
    
  3. 使用ngrok暴露服务器:

    ngrok http 8000
    

    复制转发的HTTPS URL(例如。, https://abcd1234.ngrok.io).

  4. 在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提示量身定制的:每周豁免线扫描、每个用户的联赛回顾和比赛/排名 故事情节(获奖者、利润、高分/低分)。