MLB MCP服务器
模型上下文协议(MCP)服务器,通过MLB Stats API提供全面的MLB统计和数据。该服务器提供命令行界面和基于web的Streamlit聊天界面,用于与MLB数据交互。
🖥️ 用户界面预览
以下是来自 MLB经纪人聊天界面 显示了由MCP服务器和基岩规划师提供支持的真实交互和分析。
1.️⃣ 游戏日程查询
MLB Agent - Game Schedule Query *经纪人确定了即将到来的蓝鸟队和道奇队之间的世界大赛第五场比赛,包括场地、状态和可能的投手。*
______________________________________________________________________
2.️⃣ 球员表现分析
MLB Agent - Player Performance Analysis *该代理检索Vladimir Guerrero Jr.的2025赛季统计数据,并生成一个比较关键绩效指标的自然语言分析。*
______________________________________________________________________
3.️⃣ 世界大赛与常规赛比较
MLB Agent - World Series Comparison *该系统将Guerrero Jr.的世界大赛数据与他的常规赛平均值进行了比较,展示了使用MLB数据的情境推理。*
______________________________________________________________________
这些截图突出了 MLB代理人 将结构化MCP工具输出与情境基岩分析相结合,以产生深入的棒球见解。
特性
核心MLB数据工具
- 游戏信息:Boxscores、亮点、得分游戏、速度数据
- 团队数据:名册、排名、领队、日程安排
- 球员统计:个人球员统计数据(击球、投球、防守)
- 联盟信息:联赛领先者,按赛区排名
- 实时数据:当前游戏、下一个游戏、上一个游戏
可用的MCP工具
boxscore-获取游戏的格式化boxscoregame_highlight_data-检索游戏精彩视频game_pace_data-获取游戏节奏统计数据scoring_play_data-获取游戏的得分游戏last_game/next_game-球队最近/即将举行的比赛league_leader_data-联盟统计负责人linescore-格式化和原始JSON linescorelookup_player/lookup_team-搜索球员和球队player_stat_data-全面的玩家统计roster-球队名单信息game_schedule-按日期/团队划分的比赛日程standings-联赛/赛区排名team_leaders-团队统计负责人
鸣谢
这个项目是建立在优秀的基础上的 美国职业棒球大联盟统计API Python库 托德·罗伯茨 (@toddrob99)。MLB-StatsAPI库为MLB的官方Stats API提供了一个干净的Python接口,并处理数据检索和格式化的所有繁重工作。
使用的MLB StatsAPI功能:
- 游戏数据检索(盒子分数、亮点、时间表)
- 球员和球队统计
- 联赛排名和排行榜
- 实时游戏信息
- 历史数据访问
我们感谢Todd Roberts和MLB StatsAPI项目的所有贡献者,让Python开发人员可以轻松访问MLB数据。
快速开始
先决条件
- Python 3.11或更高版本
- 紫外线 包管理器
安装
- 克隆存储库
git clone
cd mlb_mcp_server-main- 安装依赖项
uv sync- 运行MCP服务器
uv run mcp run mlb_mcp_server.pyWeb界面(Streamlit)
对于用户友好的聊天界面:
- 设置环境变量 (创建
.env文件):
AWS_REGION=us-east-1
BEDROCK_MODEL_ID=us.anthropic.claude-3-7-sonnet-20250219-v1:0
SERVER_CMD=uv run mcp run mlb_mcp_server.py- 运行Streamlit应用程序:
uv run streamlit run streamlit_app.py- 访问界面 在
http://localhost:8501
使用示例
命令行(通过MCP)
# Get today's MLB standings
echo '{"method": "call_tool", "params": {"name": "standings"}}' | uv run mcp run mlb_mcp_server.py
# Get team roster
echo '{"method": "call_tool", "params": {"name": "roster", "arguments": {"team_id": 119}}}' | uv run mcp run mlb_mcp_server.pyweb界面
- “显示今天的排名”
- “拿到道奇队的名单”
- “谁是本赛季的本垒打领袖?”
- “给我看看第716663场比赛的比分”
配置
环境变量
AWS_REGION-基岩的AWS区域(默认值:us-east-1)BEDROCK_MODEL_ID-AI响应的基岩模型IDSERVER_CMD-启动MCP服务器的命令
团队ID参考
常见的美国职业棒球大联盟球队ID(见 current_mlb_teams.json 完整列表):
- 洛杉矶道奇队:119
- 纽约洋基队:147
- 费城费城人:143
- 亚特兰大勇士队:144
- 波士顿红袜队:111
部署选项
1.地方发展
# Install and run locally
uv sync
uv run streamlit run streamlit_app.py2.Docker部署
创建一个 Dockerfile:
FROM python:3.11-slim
WORKDIR /app
COPY . .
RUN pip install uv
RUN uv sync
EXPOSE 8501
CMD ["uv", "run", "streamlit", "run", "streamlit_app.py", "--server.address", "0.0.0.0"]构建并运行:
docker build -t mlb-mcp-server .
docker run -p 8501:8501 mlb-mcp-server3.云部署
AWS EC2/ECS
- 使用上面的Docker方法
- 配置用于访问Bedrock的AWS凭据
- 部署到ECS或在EC2实例上运行
Heroku
- 添加
Procfile:
web: uv run streamlit run streamlit_app.py --server.port=$PORT --server.address=0.0.0.0- 通过Git或Heroku CLI部署
铁路/渲染
- 连接您的GitHub存储库
- 在平台仪表板中设置环境变量
- 从主分支使用自动部署
建筑
MCP服务器(mlb_mcp_server.py)
- 基于FastMCP的服务器提供MLB数据工具
- 通过连接到MLB Stats API
mlb-statsapi包裹 - 支持格式化文本和原始JSON响应
流媒体接口(streamlit_app.py)
- 基于Web的聊天界面
- 支持Strands Agent(高级)和回退模式
- 实时工具发现和执行
依赖项
mcp[cli]-模型上下文协议框架mlb-statsapi-MLB统计API客户端streamlit-Web界面框架strands-agents-高级AI代理框架(可选)httpx-API请求的HTTP客户端
API 参考
关键工具参数
game_schedule
{
"date": "MM/DD/YYYY", # Specific date
"start_date": "MM/DD/YYYY", # Date range start
"end_date": "MM/DD/YYYY", # Date range end
"team_id": 119, # Team ID
"season": "2024" # Season year
}player_stat_data
{
"personID": 545361, # Player ID
"group": "hitting", # hitting/pitching/fielding
"type": "season", # season/career
"season": "2024" # Season year
}standings
{
"leagueID": "103,104", # AL=103, NL=104
"division": "all", # Division filter
"season": "2024", # Season year
"date": "MM/DD/YYYY" # Historical date
}故障排除
常见问题
- MCP服务器无法启动
- 确保已安装Python 3.11+ - 跑 uv sync 安装依赖项 - 检查一下 mlb_mcp_server.py 可执行
- 流式传输连接错误
- 验证环境变量中的MCP服务器命令 - 检查基岩访问的AWS凭据 - 确保安装了所有依赖项
- 工具调用失败
- 验证所需参数(团队ID、日期) - 检查MLB统计API的可用性 - 查看错误日志以了解具体问题
调试模式
通过设置启用调试日志记录:
logging.basicConfig(level=logging.DEBUG)贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 如果适用,添加测试
- 提交拉取请求
许可证
这个项目是开源的。请检查存储库以了解许可证详细信息。
底层MLB StatsAPI库也是开源的,请参阅他们的 仓库 获取许可证信息。
支持
对于问题和疑问:
- 检查上面的故障排除部分
- 查看 MLB StatsAPI文档
- 查看MLB Stats API文档
- 在存储库中打开问题
相关项目
- 美国职业棒球大联盟统计API -MLB Stats API的核心Python库
- 模型上下文协议 -MCP Python SDK
- FastMCP -简化的MCP服务器框架
______________________________________________________________________
备注:此服务器需要访问internet才能连接到MLB Stats API。在美国职业棒球大联盟休赛期或维护期间,某些功能可能会受到限制。
