Token导航 LogoToken导航TokenDH.com
Cricket MCP logo
数据服务stdio官方级别未说明来源级核验

Cricket MCP

MCP Server

tsx

一个基于Cricsheet数据的板球统计查询服务,提供球员、比赛、团队等多维度数据分析功能。

工具数

28

提示词数

0

GitHub Stars

2

资源数

0
TypeScriptClaude数据分析Claude DesktopClaudeVS Code

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

mavaali

提供方

mavaali

最后核验

2026/5/17 20:21

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx tsx src/index.ts serve --backend onelake \

详细介绍

板球mcp

板球统计书呆子的梦想,直接连接到克劳德。

板球mcp 是一个MCP(模型上下文协议)服务器,从 Cricsheet 变成了一个善于思考的蟋蟀大脑。想想ESPNcricinfo的统计大师,但你只是 *用简单的英语提问* 并获得答案。

21000+场比赛。每种格式。每一个球。所有这些都位于本地DuckDB数据库中,该数据库在毫秒内响应。

它能做什么?

问克劳德这样的问题:

  • *“Kohli如何在ODI中对阵Hazlewood?”*
  • *“IPL经济类最佳死亡投球手”*
  • *“Kohli在ODI追逐时的平均水平”*
  • *“谁接近10000次试运行?”*
  • *“如果没有Hazlewood,Kohli的平均水平会是多少?”*
  • *“在T20中掷球重要吗?”*
  • *“IPL 2024排名和最佳表现者”*
  • *“哪些投球手在死亡时拥有最好的点球百分比?”*
  • *“本赛季哪些击球手在进步?”*
  • *“打破罗希特·夏尔马对阵英格兰每一位投球手的记录”*
  • *“谁在2024年T20世界杯决赛中影响最大?”*
  • *“Bumrah的最后10局T20-他状态好吗?”*

工具(共28个)

玩家统计

工具它做什么
search_players模糊姓名搜索与职业概述
get_player_stats完整的击球或保龄球统计数据(使用 perspective 参数)——平均值、SR、100秒、50秒、HS、4s、6s、少女、5wi、最佳数字

比赛和球队查询

工具它做什么
search_matches使用筛选器+分页查找匹配项
get_head_to_head团队对团队W/L/D/T记录
get_match_scorecard完成任何比赛的击球+保龄球卡

记录和排行榜

工具它做什么
get_batting_records按跑步次数、平均成绩、SR、100秒、50秒、6秒、4秒、HS对玩家进行排名
get_bowling_records按小门、平均、经济、SR、5wi对玩家进行排名

场地和合作伙伴

工具它做什么
get_venue_stats场地统计数据——平均得分、击球首胜率、最高/最低总分
get_partnerships最高击球合作伙伴

击球手vs保龄球手对决

工具它做什么
get_matchup正面交锋的统计数据(两个名字),击球手对团队保龄球(击球手+对手),或比赛排行榜(一个名字+记录类型)
get_style_matchup击球手与保龄球风格(速度/旋转,左臂/右臂)或投球手与击球手

阶段与形势分析

工具它做什么
get_phase_stats按阶段划分的击球/保龄球统计数据——力量发挥(1-6)、中间(7-15)、死亡(16-20)
get_situational_stats在追逐、定位球、压力下或击球位置时的统计数据。格式感知(测试使用第4局进行追逐)
get_toss_analysis投掷对结果的影响——按场地/球队/赛制分列的击球优先vs追逐获胜百分比
get_discipline_stats赢得比赛的无聊统计数据——点球%、宽球率、边界%

团队与锦标赛

工具它做什么
get_team_form最近形式——最近N次成绩、连胜、平均得分、跑步率
get_tournament_summary任何锦标赛/赛季的排名、顶级击球手、顶级投球手

职业与趋势

工具它做什么
get_milestone_tracker接近职业生涯里程碑的球员(10000次跑动、500个小门等)
get_emerging_players最近的统计数据明显优于职业基线的球员
get_what_if反事实——重新计算职业统计数据,不包括对手、投球手、场地或锦标赛
get_season_stats逐年职业细分
get_player_comparison两名球员的并排比较

撤职与开除

工具它做什么
get_fielding_stats每个外野手的接球、树桩、跑动
get_dismissal_analysis球员如何出局(或让击球手出局)的细分

影响评分

工具它做什么
get_match_impact比赛中每个球员的上下文加权影响得分——击球、保龄球、防守的组合
get_career_impact球员职业生涯中的综合影响得分或过滤后的比赛
get_player_form最后N局,包括个人得分、击球率和表格摘要

出生分析

工具它做什么
get_innings_progression在比赛局数中得分不断提高

每个工具都支持过滤器: 格式 (测试/ODI/T20/IT20), 性别, 团队, 反对, 场地, 城市, 季节, 锦标赛,以及 日期范围.

设置

先决条件

  • Node.js 18+
  • Claude Desktop(或任何MCP客户端)

安装

git clone https://github.com/mavaali/cricket-mcp.git
cd cricket-mcp
npm install

摄取数据

这将下载所有Cricsheet数据(约94 MB ZIP,21000多个匹配项)并将其加载到本地DuckDB数据库中:

npm run ingest

需要几分钟。您将看到以下进展:

Downloading from https://cricsheet.org/downloads/all_json.zip...
Download size: 93.7 MB
Extracted 21270 JSON files
Ingested 21270/21270 matches (10,895,339 deliveries)
Creating indexes...
=== Ingestion Complete ===
  Matches:    21270
  Deliveries: 10895339
  Players:    14406

保持数据最新

Cricsheet每天都会发布新的比赛。与其重新摄入所有内容,不如只提取最近的比赛:

npm run update          # last 7 days (default)
npm run update -- --days 2   # last 2 days
npm run update -- --days 30  # last 30 days

下载 recently_played_N_json.zip 从Cricsheet中,跳过数据库中已有的匹配项,只插入新的匹配项。需要几秒钟。

对于完整重建(例如,对历史数据进行Cricsheet更正):

npm run ingest -- --force

丰富玩家元数据

Cricsheet数据不包括击球手或保龄球风格等球员属性。回购包括 data/player_meta.csv (从 板球数据 R包,16K玩家)添加了这些属性。在第一次摄入后运行此程序:

npm run enrich -- --csv data/player_meta.csv

这使得 get_style_matchup 工具——例如。, *“科利是如何对抗左臂配速的?”* 或 *“Bumrah对阵左撇子的记录”*.

注: 当您进行富时,MCP服务器不得运行(DuckDB只允许一个写连接)。请先退出Claude Desktop,运行命令,然后重新打开。

连接到克劳德桌面

将此添加到您的Claude Desktop配置中(~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):

{
  "mcpServers": {
    "cricket": {
      "command": "npx",
      "args": ["tsx", "/path/to/cricket-mcp/src/index.ts", "serve"]
    }
  }
}

替换 /path/to/cricket-mcp 与实际路径。重新启动克劳德桌面。

就是这样。开始问板球问题。

连接到VS代码(复制副本)

添加 .vscode/mcp.json 在您的工作空间中:

{
  "servers": {
    "cricket-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "tsx", "/path/to/cricket-mcp/src/index.ts", "serve"]
    }
  }
}

-y 标志防止npx提示安装确认,这将挂起MCP stdio传输。

OneLake后端(微软Fabric)

蟋蟀mcp可以通过OneLake直接从Fabric湖屋读取Delta表,而不是本地DuckDB文件。所有26个工具的工作原理不变——DuckDB deltaazure 扩展处理读取。

先决条件:

  • Azure CLI已安装并登录(az login)
  • 一个有板球桌(球员、比赛、局数、传球)和三角洲桌的织物湖屋
  • Fabric门户中的工作区ID和Lakehouse ID

CLI用法:

npx tsx src/index.ts serve --backend onelake \
  --workspace-id  \
  --lakehouse-id 

VS代码mcp.json:

{
  "servers": {
    "cricket-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y", "tsx", "/path/to/cricket-mcp/src/index.ts",
        "serve", "--backend", "onelake",
        "--workspace-id", "${env:FABRIC_WORKSPACE_ID}",
        "--lakehouse-id", "${env:FABRIC_LAKEHOUSE_ID}"
      ],
      "env": {
        "FABRIC_WORKSPACE_ID": "",
        "FABRIC_LAKEHOUSE_ID": ""
      }
    }
  }
}
注:env 块很重要——VS代码不能继承shell环境变量(例如,从 .zshrc)如果从Dock或Spotlight启动。在配置中明确设置它们可确保它们始终可用。

它是如何工作的: 启动时,crick-mcp在内存中创建一个DuckDB实例,加载 deltaazure 扩展,通过Azure CLI进行身份验证,并在OneLake中的每个Delta表上创建视图。当数据库在后台初始化时,MCP传输立即连接——第一个工具调用等待初始化完成,后续调用立即解析。

板球数据工厂 用于将Cricsheet数据加载到Fabric lakehouse的完整管道。

远程托管(HTTP传输)

默认情况下,cricket-mcp对本地mcp客户端(Claude Desktop,VS Code)使用stdio传输。要远程托管服务器,请使用HTTP传输:

npx tsx src/index.ts serve --transport http --port 3000

这将在指定端口上使用单个端口启动HTTP服务器 /mcp 终点。MCP客户端通过向发送JSON-RPC请求进行连接 http://your-server:3000/mcp服务器支持多个并发客户端会话,每个会话都有自己的会话ID。

CORS标头包含在所有响应中,因此基于浏览器的MCP客户端可以开箱即用。

码头工人

构建一个自包含的Docker镜像,接收所有Cricsheet数据并通过HTTP提供服务:

docker build -t cricket-mcp .
docker run -p 3000:3000 cricket-mcp

构建需要几分钟的时间(下载约94 MB的Cricsheet数据,摄入21K多场比赛,丰富玩家元数据)。生成的图像大小约为600 MB。

要在任何云提供商上部署,请将映像推送到容器注册表,并在VM、托管容器服务(cloud run、ECS、Azure container Apps)或Kubernetes上运行。

查询示例

“Kohli在ODI对阵Hazlewood的表现如何?”

用途 get_matchup 随着 batter_name: "Kohli", bowler_name: "Hazlewood", match_type: "ODI".

“IPL最佳死亡投球手”

用途 get_phase_stats 随着 phase: "death", perspective: "bowling", event_name: "Indian Premier League", sort_by: "economy".

“Kohli在ODI追逐时的记录”

用途 get_situational_stats 随着 situation: "chasing", player_name: "Kohli", match_type: "ODI".

“谁接近10000次ODI跑步?”

用途 get_milestone_tracker 随着 milestone_type: "runs", threshold: 10000, match_type: "ODI".

“如果没有Hazlewood,Kohli的平均水平会是多少?”

用途 get_what_if 随着 player_name: "Kohli", perspective: "batting", exclude_bowler: "Hazlewood", match_type: "ODI".

“IPL 2024排名和最佳表现者”

用途 get_tournament_summary 随着 event_name: "Indian Premier League", season: "2024".

“在T20中掷球重要吗?”

用途 get_toss_analysis 随着 match_type: "T20".

“印度vs澳大利亚在测试中正面交锋”

用途 get_head_to_head 随着 team1: "India", team2: "Australia", match_type: "Test".

“科利是如何对抗左臂配速的?”

用途 get_style_matchup 随着 player_name: "Kohli", perspective: "batting", grouping: "arm".

“Bumrah对阵左撇子的记录”

用途 get_style_matchup 随着 player_name: "Bumrah", perspective: "bowling".

“谁在2024年T20世界杯决赛中影响最大?”

用途 get_match_impact 随着 match_id: "1415755" (通过查找ID search_matches 第一)。

返回阶段相对影响得分:Bumrah的2/18分之4得分为经济值 17.63 因为他在死亡回合中的4.5 RPO与平均10+的比赛死亡相比是非同寻常的。Axar Patel以47分(31分)的成绩位居榜首(136.82分)。

“本赛季哪些击球手在T20中有所进步?”

用途 get_emerging_players 随着 perspective: "batting", match_type: "T20".

“在IPL中,谁在死亡时拥有最好的点球百分比?”

用途 get_discipline_stats 随着 perspective: "bowling", phase: "death", event_name: "Indian Premier League", sort_by: "dot_ball_pct".

运作原理

  1. 数据: Cricsheet 以JSON格式为每场国际和国内主要板球比赛提供免费、公开的逐球数据。
  2. 存储:The ingest 命令下载、解析并将其加载到本地 鸭数据库 数据库——一个列式分析引擎,早餐吃聚合查询。
  3. 服务器MCP服务器通过stdio公开了28个工具。Claude根据您的问题选择正确的工具,通过正确的过滤器,并返回统计数据。

数据库模式

星型模式中的四个表:

  • 玩家 --拥有Cricsheet注册ID的14K名玩家(可选择增加击球风格、保龄球风格、角色、国家)
  • 火柴 --21K场带有元数据的比赛(球队、场地、结果、锦标赛)
  • --局数数据(击球/保龄球队、目标、声明)
  • 交付 --1090万排,每投一球一排(击球手、投球手、跑动、附加、小门)

板球逻辑处理正确

  • 平均成功率 =跑动/退场(非局数)
  • 球面 不包括宽体(标准惯例)
  • 保龄球跑 排除byes和legbyes
  • 合法交货 排除大人物和贵族
  • 保龄球小门 只计算保龄球的解雇(不包括出局)
  • 少女 按超水平计算
  • 测试局 --追逐意味着第四局,定位球意味着第一局

数据覆盖范围和限制

所有统计数据均来自 Cricsheet 逐球数据。Cricsheet是一个开源项目,提供详细的交付级别记录,但它没有涵盖板球的全部历史。把它想象成电影中途安装的高分辨率相机。

覆盖窗口

格式数据集中最早的匹配备注
测试~ 2001年12月涵盖2001/02赛季以后。职业生涯主要在2002年之前的球员(Bradman、Gavaskar、Border等)将缺席或严重代表性不足。
奥迪斯~ 2002年6月包括2003年世界杯以后的比赛。ODI板球的前30年(1971-2002)不包括在内——没有Kapil Dev 175,没有1996年世界杯。
T20I~ 2005年2月从格式开始就接近完成(第一个T20I是在2005年2月份)。
T20(国内)~ 2008年4月IPL第一季开始。还包括BBL、CPL、PSL、SA20和Cricsheet覆盖的其他国内T20联赛。

在撰写本文时,数据会定期更新,包括2026年初之前的匹配结果。

这在实践中意味着什么

  • 现役或近期球员的职业统计数据 (Smith、Kohli、Root、Bumrah等)全面可靠。
  • 2002年之前首次亮相的球员的职业统计数据 这只会反映他们职业生涯的尾声。例如,Tendulkar在这里的数字大约涵盖了他过去的12年,而不是全部24年。
  • 历史排行榜 它们实际上是“21世纪排行榜”。它们不应该与国际刑事法院的官方职业记录相提并论,后者涵盖了游戏的整个历史。
  • 地点和正面记录 仅反映覆盖窗口内的比赛,而不是地面或两队之间的完整历史记录。

什么不受限制

在覆盖窗口内,数据是逐球的——每次传球、每次跑动、每次罚下、每次加时。阶段分析、比赛细分、命中率、点球百分比和其他细粒度指标都来自实际交付数据,而不是汇总的记分卡。

更新日志

v0.8.0

  • 阶段相对影响评分:保龄球经济现在按每个阶段与该阶段比赛的平均经济进行评分。在死亡回合中放弃6个RPO(典型情况下为10+)比在中间回合中获得相同的经济效益获得更多的积分。击球获得死亡回合SR奖金(1.3倍)和动力进攻奖金(1.1倍)。

v0.7.0

  • 玩家影响力评级:3个新工具(get_match_impact, get_career_impact, get_player_form)计算结合击球贡献、保龄球小门质量+经济性和防守的上下文加权影响得分
  • 影响得分包括:跑动贡献率%、击球率与比赛平均值、进入难度、追逐失败折扣、小门质量(定位球/明星击球手、最高顺序、搭档休息)、经济性与比赛跑动率、防守驳回、比赛重要性(锦标赛阶段+接近度)
  • 25 → 28 tools

v0.6.0

  • HTTP传输: --transport http --port 3000 启动具有会话管理和CORS支持的远程托管HTTP服务器
  • Dockerfile:多阶段构建,通过HTTP接收数据并提供服务-- docker build && docker run 部署

v0.5.0

  • 整合匹配工具(27→25): get_matchup 现在,您可以在一个工具中处理特定的对决、击球手与球队的细分以及对决排行榜
  • 预先计算 bowling_style_broadbowling_style_arm 富集期间的列--在查询时消除每行CASE表达式
  • 简体 search_players 仅限玩家查询(1090万次配送不再加入)
  • 为小门和比赛查询的交付添加了复合索引
  • 通过以问题为导向的格式和交叉引用,对所有25个工具描述进行了细化,以实现更好的LLM工具布线
  • 添加了具有特定格式日期范围的数据覆盖文档

v0.4.0

  • OneLake后端:通过DuckDB直接从Microsoft Fabric湖屋读取Delta表 delta + azure 扩展(--backend onelake)
  • 延迟连接初始化:MCP传输立即连接;数据库设置在后台运行。修复了OneLake扩展需要时间加载时VS Code MCP客户端超时的问题。
  • VS Code .vscode/mcp.json 配置已记录

v0.3.0

  • 玩家丰富管道: npm run enrich 从捆绑的CSV加载击球/保龄球风格元数据(板球数据R包中的16K玩家)
  • get_style_matchup 工具:按保龄球风格(速度/旋转、手臂类别)查询击球统计数据或按击球手查询保龄球统计数据
  • 现有数据库的架构迁移——启动时自动添加新列
  • 固定的 BOWLING_WICKET_KINDS 不在SQL模板文本中插值(影响所有wicket计数查询)

v0.2.0版本

  • 合并类似工具(28→25): get_matchup 替换了单独的击球手vs投球手/投球手vs击球手工具, get_player_stats 替换单独的击球/保龄球统计工具
  • 增加了5个新工具:防守统计、解雇分析、赛季统计、球员比较、局数进展
  • 提取共享常量(BOWLING_WICKET_KINDS, PHASE_OVERS)减少重复

v0.1.0

  • 23个工具,涵盖球员统计、对决、记录、阶段/情境分析、球队形式、锦标赛、里程碑、新兴球员、假设情景
  • 增量数据更新(npm run update)使用Cricsheet最近的比赛订阅源
  • 完整摄取管道:下载→ 解析→ 加载到DuckDB
  • 19评价

数据源

所有数据均来自 Cricsheet,提供免费、开放的板球数据。衷心感谢他们使这一切成为可能。

许可证

麻省理工学院

目录标签

目录标签

TypeScriptClaude数据分析板球数据分析本地部署球员统计比赛查询团队比较实时更新

支持客户端

Claude DesktopClaudeVS Code

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

session

运行时(runtime,运行环境)

Node.js

部署方式(deploymentType,部署类型)

local-only

来源包(packageName,安装包名)

tsx

工具数量(toolCount,工具数)

28

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiosessionlocal-only

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP