板球数据服务器

一个提供详细IPL板球比赛数据的模型上下文协议服务器,支持查询球队、球员、比赛详情和球对球数据。

  • by Aakansha09
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 aakansha09/ipl-mcp-server

使用说明

IPL MCP服务器🏏

一种模型上下文协议(MCP)服务器,从逐球比赛数据中提供详细的IPL板球统计数据。该服务器允许AI助手查询全面的板球数据,包括球队、球员、比赛、逐球细节和表现统计数据。

特性

  • 团队信息:通过输赢记录获取球队详细信息
  • 玩家信息:通过击球/保龄球表现访问球员统计数据
  • 匹配详细信息:查询完整的比赛信息,包括比分和局数
  • 逐球数据:获取详细的交付方式比赛评论
  • 球员表现:分析击球、保龄球和防守统计数据
  • 比赛官员:访问裁判和裁判信息
  • 场馆信息:使用比赛统计数据获取体育场详细信息
  • SQLite数据库:快速、可靠的本地数据存储
  • MCP协议:标准模型上下文协议实现

项目结构

ipl-mcp-server/
├── data/                  # Match data files (Cricsheet format)
│   ├── match_1.json      # Ball-by-ball match data
│   ├── match_2.json
│   ├── match_3.json
│   ├── match_4.json
│   └── match_5.json
├── scripts/
│   └── load_data.py      # Data loading script (JSON → SQLite)
├── server/
│   └── app.py           # MCP Server implementation
├── ipl.db               # SQLite database (auto-generated)
├── claude-desktop-config_ipl.json  # Claude Desktop configuration
├── setup_claude.sh      # Claude Desktop setup script
├── CLAUDE_DESKTOP_SETUP.md  # Detailed setup guide
└── README.md

安装说明

先决条件

  • Python 3.9+
  • 虚拟环境(推荐)

安装

  1. 导航到项目目录:

    cd ipl-mcp-server
    
  2. 创建并激活虚拟环境:

    python -m venv .venv
    source .venv/bin/activate  # On Windows: .venv\\Scripts\\activate
    
  3. 初始化数据库:

    python scripts/load_data.py
    

    这将创建SQLite数据库并加载匹配数据。

  4. 运行MCP服务器:

    python server/app.py
    

服务器将在stdin/stdout上监听MCP请求。

Claude桌面设置

要将此MCP服务器与Claude Desktop一起使用:

1.复制配置

复制Claude Desktop配置:

# Create the directory if it doesn't exist
mkdir -p ~/Library/Application\ Support/Claude/

# Copy the configuration file
cp claude-desktop-config_ipl.json ~/Library/Application\ Support/Claude/mcp_settings.json

2.重新启动克劳德桌面

  • 完全退出克劳德桌面
  • 重新打开克劳德桌面
  • IPL MCP服务器现在应该可用

3.测试连接

在Claude Desktop中,你现在可以问板球问题,比如:

  • “比赛ID 1473508的比赛详细信息是什么?”
  • “给我看前5轮的逐球解说”
  • “那场比赛的保龄球表现如何?”
  • “哪些球队参加了这些比赛?”

故障排除

如果Claude Desktop看不到服务器:

  1. 检查文件是否位于: ~/Library/Application Support/Claude/mcp_settings.json
  2. 确保配置中的Python虚拟环境路径正确
  3. 验证IPL数据库是否存在: ls -la ipl.db
  4. 手动测试服务器: python server/app.py

可用工具

MCP服务器为板球数据分析提供了以下工具:

1. get_team_info

使用比赛统计数据获取球队信息。

  • 参数: team_name (可选)-按团队名称或简称筛选
  • 退货:球队详细信息,包括输赢记录

2. get_player_info

通过性能统计数据获取玩家信息。

  • 参数:
    • player_name (可选)-按玩家姓名筛选
    • team_name (可选)-按团队筛选
  • 退货:球员档案,包括击球/保龄球统计数据

3. get_match_details

获取完整的比赛信息,包括比分和局数细节。

  • 参数:
    • match_id (可选)-特定匹配ID
    • season (可选)-按季节筛选
    • team_name (可选)-按团队筛选
    • venue (可选)-按地点筛选
  • 退货:将细节与局数和结果相匹配

4. get_ball_by_ball

获取逐球评论和传球细节。

  • 参数:
    • match_id (必填)-匹配ID
    • innings (可选)-宾馆数量(1或2)
    • over_start (可选)-从头开始
    • over_end (可选)-结束数字过多
  • 退货:详细的交付数据,包括跑道、小门、附加设施

5. get_player_performance

获取全面的玩家表现统计数据。

  • 参数:
    • player_name (必填)-玩家姓名
    • match_id (可选)-特定匹配
    • stat_type (可选)-“击球”、“保龄球”、“防守”或“全部”
  • 退货:详细的性能指标

6. get_match_officials

获取比赛官方信息。

  • 参数:
    • match_id (可选)-匹配ID
    • official_name (可选)-正式名称
  • 退货:裁判和比赛官员数据

7. get_venue_info

使用比赛统计数据获取场地信息。

  • 参数:
    • venue_name (可选)-按场地名称筛选
    • city (可选)-按城市筛选
  • 退货:场馆详情,包括比赛计数和结果

使用示例

基本MCP请求格式

获取团队信息:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_team_info",
    "arguments": {
      "team_name": "Royal Challengers"
    }
  }
}

获取逐球数据:

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "get_ball_by_ball",
    "arguments": {
      "match_id": "1473508",
      "innings": 1
    }
  }
}

获取玩家表现:

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "get_player_performance",
    "arguments": {
      "player_name": "Virat Kohli",
      "stat_type": "batting"
    }
  }
}

数据库模式

SQLite数据库包括以下表:

  • teams -团队信息和详细信息
  • players -球员档案和统计数据
  • matches -匹配元数据和结果
  • innings -宾馆级别统计
  • deliveries -逐球输送数据
  • officials -比赛官员(裁判、裁判员)
  • venues -体育场信息

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 添加您的更改
  4. 提交拉取请求

板球分析快乐! 🏏📊

IPL MCP服务器