使用说明
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+
- 虚拟环境(推荐)
安装
-
导航到项目目录:
cd ipl-mcp-server -
创建并激活虚拟环境:
python -m venv .venv source .venv/bin/activate # On Windows: .venv\\Scripts\\activate -
初始化数据库:
python scripts/load_data.py这将创建SQLite数据库并加载匹配数据。
-
运行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看不到服务器:
- 检查文件是否位于:
~/Library/Application Support/Claude/mcp_settings.json - 确保配置中的Python虚拟环境路径正确
- 验证IPL数据库是否存在:
ls -la ipl.db - 手动测试服务器:
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(可选)-特定匹配IDseason(可选)-按季节筛选team_name(可选)-按团队筛选venue(可选)-按地点筛选
- 退货:将细节与局数和结果相匹配
4. get_ball_by_ball
获取逐球评论和传球细节。
- 参数:
match_id(必填)-匹配IDinnings(可选)-宾馆数量(1或2)over_start(可选)-从头开始over_end(可选)-结束数字过多
- 退货:详细的交付数据,包括跑道、小门、附加设施
5. get_player_performance
获取全面的玩家表现统计数据。
- 参数:
player_name(必填)-玩家姓名match_id(可选)-特定匹配stat_type(可选)-“击球”、“保龄球”、“防守”或“全部”
- 退货:详细的性能指标
6. get_match_officials
获取比赛官方信息。
- 参数:
match_id(可选)-匹配IDofficial_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-体育场信息
贡献
- 分叉存储库
- 创建要素分支
- 添加您的更改
- 提交拉取请求
板球分析快乐! 🏏📊
