🏈 梦幻足球MCP服务器
一个模型上下文协议服务器,让人工智能代理实时访问NFL球员数据、伤病报告、比赛分析和持久记忆,为我们的Gen AI类项目的梦幻体育聊天机器人提供动力。
______________________________________________________________________
这有什么作用
这个MCP服务器是我们梦幻足球聊天机器人的数据骨干。当Dify代理需要回答诸如“我本周应该让Derrick Henry还是Saquon Barkley首发?”之类的问题时,它会调用此服务器暴露的工具来获取实时数据、比较球员并记住用户在不同时段的名单。
服务器暴露 17工具, 3资源,以及 4个提示模板 任何兼容MCP的客户端(如Dify)都可以使用。
______________________________________________________________________
建筑
User asks a question
│
▼
Dify Agent (orchestrator)
│
├──► RAG Knowledge Base (Hannah's docs: rankings, articles, CSVs)
│
└──► THIS MCP SERVER (http://your-ip:8000/mcp)
│
├── Data Tools (Sleeper API → live NFL stats)
│ ff_get_player_stats
│ ff_get_injury_report
│ ff_compare_players
│ ff_search_players
│ ff_get_waiver_targets
│ ff_get_player_trends
│
├── Analysis Tools (reasoning + calculations)
│ ff_analyze_start_sit
│ ff_evaluate_trade
│
└── Memory Tools (PostgreSQL + pgvector)
ff_store_roster
ff_get_roster
ff_update_roster
ff_store_league_settings
ff_search_past_advice ← pgvector semantic search
ff_log_interaction ← stores embeddings______________________________________________________________________
快速入门(我的机器--服务器主机)
先决条件
你需要Docker(用于PostgreSQL+pgvector)和Python 3.10+。
步骤1:启动数据库
cd fantasy-football-mcp
docker compose up -d这将在端口5432上使用pgvector启动PostgreSQL。数据库架构在首次运行时自动创建。
步骤2:安装Python依赖项
pip install -r requirements.txt
# OPTIONAL but recommended: better semantic memory
pip install sentence-transformers步骤3:运行服务器
对于本地测试(STDIO传输):
python server.py对于团队访问(HTTP传输——使用此选项以便Dify可以连接):
python server.py --transport http --port 8000服务器将记录其启动进度,并在您看到以下内容时做好准备:
🏈 Server ready! Tools, resources, and prompts are available.______________________________________________________________________
对于队友:将Dify连接到此MCP服务器
(Dify Workflow Builder)——如何添加MCP服务器
一旦服务器使用HTTP传输运行,请在Dify中连接它:
- 转到您的Dify工作区→ 工具 (或 工具提供商)
- 点击 添加工具提供程序 → 选择 主控程序
- 输入服务器URL:
http://:8000/mcp
- 如果在同一网络上的笔记本电脑上运行:使用我的本地IP(例如。, http://192.168.1.42:8000/mcp) - 如果在云服务器上运行:请使用公共IP或域
- Dify将自动发现所有17个工具、3个资源和4个提示
- 启用您希望代理使用的工具
测试连接
连接后,您可以在Dify的工具测试面板中测试任何工具。尝试:
ff_search_players随着position: "QB"→ 应该返回一份NFL四分卫名单ff_get_injury_report无参数→ 应该恢复目前联盟范围内的伤病
______________________________________________________________________
工具参考
数据工具(只读)
| 工具 | 功能 | 示例使用 |
|---|---|---|
ff_get_player_stats | 获取冲刺/传球/接球数据 | “德里克·亨利上周表现如何?” |
ff_get_injury_report | 目前的伤病名称 | “酋长队谁受伤了?” |
ff_compare_players | 正面交锋数据比较 | “比较亨利和巴克利” |
ff_search_players | 搜索/筛选玩家数据库 | “显示所有孟加拉虎宽接收器” |
ff_get_waiver_targets | 建议可用的皮卡 | “12支球队联盟中豁免的最佳RB” |
ff_get_player_trends | 每周业绩趋势 | “Ja'Marr Chase是否呈上升趋势?” |
分析工具(只读)
| 工具 | 功能 | 示例使用 |
|---|---|---|
ff_analyze_start_sit | 首发/替补推荐 | “本周首发亨利还是巴克利?” |
ff_evaluate_trade | 交易价值分析 | “我应该用Chase换Adams吗?” |
内存工具(读/写-需要PostgreSQL)
| 工具 | 功能 | 示例使用 |
|---|---|---|
ff_store_roster | 保存用户的名册 | 用户共享他们的团队 |
ff_get_roster | 检索存储的排班表 | 在提供个性化建议之前 |
ff_update_roster | 添加/删除玩家 | “我刚刚接了玩家X” |
ff_store_league_settings | 保存联赛配置 | “12支球队PPR联赛” |
ff_search_past_advice | 搜索过去的对话(pgvector) | “你对我的RB说了什么?” |
ff_log_interaction | 为未来召回提供存储建议 | 给出建议后 |
______________________________________________________________________
数据源
主要数据源是 轨枕API (https://api.sleeper.app),它是免费的,不需要身份验证。它提供所有NFL球员元数据、每周统计数据、预测和伤病信息。
玩家数据库(约10000多名玩家)在服务器启动时加载到内存中,并在本地缓存以进行离线回退。
______________________________________________________________________
项目结构
fantasy-football-mcp/
├── server.py # Main MCP server — all tools, resources, prompts
├── models.py # Pydantic input models for tool validation
├── data_providers.py # Sleeper API integration + data caching
├── memory.py # pgvector memory manager (roster + semantic search)
├── docker-compose.yml # PostgreSQL + pgvector infrastructure
├── init_db.sql # Database schema (auto-runs on first start)
├── requirements.txt # Python dependencies
├── .env.example # Environment variable template
└── data/
└── cache/ # Local cache for offline player data______________________________________________________________________
使用的MCP概念(用于演示)
该项目展示了几个值得强调的MCP功能:
工具:LLM代理可以调用17个可调用函数来获取数据、执行分析和管理内存。每个工具都有Pydantic验证的输入和结构化的响应。
资源:可浏览的数据端点(如REST API),通过URI模板公开球员档案和球队列表。
提示:用于常见幻想分析模式的预构建提示模板。客户端获取这些并将其用作结构化起点。
寿命管理:数据库连接和播放器缓存在启动时初始化一次,并在所有请求之间高效共享。
工具注释:每个工具都声明元数据(只读、破坏性、幂等),以帮助LLM更好地决定何时使用它。
可流式HTTP传输:实现网络访问的生产传输。多个客户端可以同时连接。
______________________________________________________________________
故障排除
“内存系统不可用” --PostgreSQL没有运行。从以下内容开始 docker compose up -d.
未找到玩家 --试试全名(例如,“Derrick Henry”而不是“Henry”)。使用 ff_search_players 找到确切的名字。
轨枕API错误 -API可能是有费率限制的。服务器将自动回退到缓存数据。
端口8000上的连接被拒绝 --确保服务器正在运行 --transport http。检查防火墙是否允许端口8000。
______________________________________________________________________
使用YAML导出的团队工作流程
为了在团队成员之间共享Dify配置,您可以将Dify应用程序导出为YAML文件(Dify→ 设置→ 出口)。MCP服务器连接URL将位于工具提供程序配置下的YAML中。如果在其他计算机上导入,请确保更新IP地址。
