使用说明
棒球MCP服务器
一种模型上下文协议(MCP)服务器,用于使用 棒球 图书馆。
棒球参考,棒球野蛮人和FanGraphs,所以你不必这样做。
概述
该MCP服务器通过标准化接口提供对全面棒球数据的访问。它利用了 pybaseball 库,用于从各种棒球数据库中获取统计数据、比赛信息和球员数据。
主要目的是使棒球分析变得容易,特别关注梦幻棒球。
特性
- 玩家统计信息检索
- 团队绩效数据
- 比赛日程和结果
- Statcast逐间距数据
- 联赛排名
- 玩家比较工具
- 玩家和团队的游戏日志
- Sabermetric相似性评分
- 球场因素分析
- 用于综合数据包的MCP资源
- SQLite缓存以提高性能
- STDIO和HTTP服务器传输
安装
先决条件
- Python 3.8或更高版本
- pip包管理器
设置
- 克隆存储库:
git clone https://github.com/Linell/baseball-mcp.git
cd baseball-mcp
- 安装软件包:
pip install -e .
或用于开发:
pip install -e ".[dev]"
用法
运行服务器
运行STDIO服务器(默认):
baseball-mcp run
在端口3000上运行HTTP服务器:
baseball-mcp http --port 3000
重置磁盘缓存:
baseball-mcp cache-reset --confirm
检查服务器运行状况:
baseball-mcp health
可用工具
| 工具 | 摘要 | 参数 |
|---|---|---|
get_player_stats |
单个球员的赛季或职业统计数据 | player_name (必填), year (可选) |
get_team_stats |
球队级别按赛季划分 | team (必填), year (必填) |
get_schedule |
日期范围内团队的游戏 | team (必填), start_date (YYYY-MM-DD), end_date (年-月-日) |
get_statcast |
逐间距Statcast数据 | start_date (YYYY-MM-DD), end_date (YYYY-MM-DD), player_id (可选), statcast_type (可选), format_type (可选) |
get_standings |
分区和联赛排名 | year (必填), date (可选) |
compare_players |
并排球员比较 | players (列表), year (必填), metric (可选) |
get_game_log |
玩家/团队的游戏日志 | entity (必填), entity_type (可选), start_date (YYYY-MM-DD), end_date (年-月-日) |
similarity_score |
玩家之间的剑术相似度 | player_a (必填), player_b (必填), year (必填), metric_set (可选) |
park_factors |
影响统计数据的球场因素 | year (必填), venue (可选) |
list_team_abbreviations |
列出有效的团队缩写 | 无 |
示例用法
- “获取Mike Trout 2023年的统计数据”→ uses
get_player_stats - “给我看看洋基队2024年的球队统计数据”→ uses
get_team_stats - “教士队2025年3月的日程安排是什么?”→ uses
get_schedule - “获取Aaron Judge 2024年6月1日至7日的Statcast数据”→ uses
get_statcast - “给我看看2024年美联东部排名”→ uses
get_standings - “比较Mike Trout和Aaron Judge的2024年统计数据”→ uses
compare_players
团队缩写
为了方便起见,服务器支持各种团队缩写:
- 圣地亚哥父母:
SD或SDP - 旧金山巨人队:
SF或SFG - 坦帕湾光芒:
TB或TBR - 堪萨斯城皇家队:
KC或KCR - 芝加哥白袜队:
CWS或CHW - 华盛顿国民队:
WSH或WSN
有关完整列表,请使用 list_team_abbreviations 工具。
部署
此MCP服务器可以部署到以下服务 史密瑟里 或任何集装箱平台。
配置
服务器通过查询参数支持以下配置选项:
cache_reset(boolean):启动时是否重置缓存log_level(string):日志记录级别(调试、信息、警告、错误)max_results(整数):返回的最大结果数(1-1000)
例子: GET /mcp?cache_reset=false&log_level=INFO&max_results=100
局部测试
在本地测试HTTP服务器:
# Start the server
baseball-mcp http --port 3000
# Test the MCP endpoint
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}},"id":1}'
# Check health
curl http://localhost:3000/health
发展
建立开发环境
- 克隆存储库
- 安装开发依赖项:
pip install -e ".[dev]"
- 安装预提交挂钩:
pre-commit install
运行测试
pytest
代码质量
该项目使用多种工具来维护代码质量:
- 黑色:代码格式
- 拉夫:Linting和代码分析
- MyPy:类型检查
- 预承诺:Git挂钩提高代码质量
运行所有检查:
black src tests
ruff check src tests
mypy src
配置
缓存
服务器使用SQLite缓存棒球数据,以提高性能并减少API调用。
- 默认位置:
~/.config/baseball-mcp/baseball.db - 管理:首次请求时,数据会自动缓存
- 重置:使用
baseball-mcp cache-reset --confirm清除所有缓存数据
服务器模式
- STDIO模式 (默认):作为本地AI客户端的MCP服务器运行
- HTTP模式:作为HTTP服务器运行以进行远程访问(
baseball-mcp http --port 8000)
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 添加新功能的测试
- 运行测试套件
- 提交拉取请求
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
