棒球数据协议服务器

一个基于Model Context Protocol (MCP)的棒球数据服务器,提供球员统计、球队表现、比赛日程等全面棒球数据分析功能,特别适用于梦幻棒球。

  • by Linell
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 linell/baseball-mcp

使用说明

棒球MCP服务器

一种模型上下文协议(MCP)服务器,用于使用 棒球 图书馆。

棒球参考,棒球野蛮人和FanGraphs,所以你不必这样做。

概述

该MCP服务器通过标准化接口提供对全面棒球数据的访问。它利用了 pybaseball 库,用于从各种棒球数据库中获取统计数据、比赛信息和球员数据。

主要目的是使棒球分析变得容易,特别关注梦幻棒球。

特性

  • 玩家统计信息检索
  • 团队绩效数据
  • 比赛日程和结果
  • Statcast逐间距数据
  • 联赛排名
  • 玩家比较工具
  • 玩家和团队的游戏日志
  • Sabermetric相似性评分
  • 球场因素分析
  • 用于综合数据包的MCP资源
  • SQLite缓存以提高性能
  • STDIO和HTTP服务器传输

安装

先决条件

  • Python 3.8或更高版本
  • pip包管理器

设置

  1. 克隆存储库:
git clone https://github.com/Linell/baseball-mcp.git
cd baseball-mcp
  1. 安装软件包:
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

发展

建立开发环境

  1. 克隆存储库
  2. 安装开发依赖项:
pip install -e ".[dev]"
  1. 安装预提交挂钩:
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)

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 添加新功能的测试
  5. 运行测试套件
  6. 提交拉取请求

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

致谢

资源