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

Duckworth MCP

MCP Server

基于DuckDB的板球数据分析服务器,提供逐球统计、记录和洞察,支持通过自然语言查询获取数据驱动的板球分析。

工具数

45

提示词数

0

GitHub Stars

0

资源数

0
数据分析PythonClaudeClaude DesktopClaudeVS Code

安装说明

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

作者 / 组织

ankitksr

提供方

ankitksr

最后核验

2026/5/17 20:23

运行时

Python

快速接入

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

命令预览

uv run duckworth-mcp ingest

详细介绍

达克沃斯mcp

板球分析MCP服务器——由DuckDB提供支持的逐球统计、记录和见解。跟随 @达克沃斯mcp 数据驱动的板球见解。

用简单的英语提问,并从9000多场国际和国内比赛的450万次交付中获得答案。想想ESPNcricinfo的统计大师,但很健谈。

里面是什么

  • 9063场比赛 (测试,ODI,T20Is)男子和女子板球(2001年12月至2026年3月)
  • 4.5M逐球交付 解析自 Cricsheet JSON档案
  • 17793名玩家 具有可选的元数据丰富功能(击球手、保龄球风格、扮演角色)
  • 46工具 涵盖击球、保龄球、防守、对决、阶段、合作伙伴关系、DRS、锦标赛、系列赛、追逐、场地等
  • run_query 当结构化工具无法解决您的问题时,即席SQL的逃逸窗口

______________________________________________________________________

开始

先决条件

您需要安装两件事:

  1. Python 3.13+ --检查一下 python3 --version
  1. 紫外线 (Python包管理器)--安装时使用:
   # macOS / Linux
   curl -LsSf https://astral.sh/uv/install.sh | sh

   # Windows (PowerShell)
   powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

   # or: brew install uv (macOS), winget install astral-sh.uv (Windows)

步骤1:克隆并安装

git clone https://github.com/ankitksr/duckworth-mcp.git
cd duckworth-mcp
uv sync

步骤2:摄入匹配数据

这将下载约200 MB的Cricsheet档案并将其加载到本地DuckDB数据库中。第一次大约需要15分钟。

uv run duckworth-mcp ingest

步骤3:丰富玩家元数据(可选但推荐)

为约80%的玩家增加击球手、保龄球风格和游戏角色。启用匹配查询,如“Kohli vs左臂配速”。

uv run duckworth-mcp enrich

第四步:联系克劳德

选择您使用的客户端:

Claude Desktop (Mac / Windows app)

打开配置文件:

  • 雨衣: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 窗户: %APPDATA%\Claude\claude_desktop_config.json

或者在Claude Desktop中: 设置>开发人员>编辑配置.

添加此(替换 /path/to/duckworth-mcp 根据您的实际路径):

{
  "mcpServers": {
    "duckworth-mcp": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/duckworth-mcp", "duckworth-mcp", "serve"]
    }
  }
}

退出并重新启动Claude Desktop 以使变更生效。您应该看到一个锤子图标,表示MCP工具可用。

Claude Code (CLI / VS Code / JetBrains)

claude mcp add duckworth-mcp -- uv run --directory /path/to/duckworth-mcp duckworth-mcp serve

或者通过交互方式添加 /mcp 克劳德代码内部。

HTTP transport (other MCP clients)

uv run duckworth-mcp serve --transport http --host 0.0.0.0 --port 8000

步骤5:验证它是否有效

问克劳德这些问题中的任何一个:

“数据库中有多少个匹配项?”
“谁拥有最多的测试世纪?”
“比较Kohli和Root自2020年以来的测试击球率”

如果你得到统计数据,你就准备好了。

______________________________________________________________________

你可以问什么

从简单开始,然后深入:

基础

  • “谁在2023年世界杯上得分最多?”
  • “给我看看印度对澳大利亚的测试记录”
  • “Jasprit Bumrah的T20I保龄球平均水平是多少?”

比较

  • “比较Kohli和Williamson的ODI职业生涯统计数据”
  • “Kohli在测试中是如何对抗速度与旋转的?”
  • “追踪罗希特·夏尔马的ODI世纪时间表”

深度分析

  • “T20I追逐时击球率最高的5名击球手死亡人数”
  • “如果没有对阵斯里兰卡的局数,Kohli的ODI平均值会是多少?”
  • “哪些活跃玩家最接近10000次测试?”

锦标赛和系列赛

  • “比较2023年和2019年ODI世界杯——平均得分、跑动率、最大胜利”
  • “IPL 2024与经济体顶级投球手排名”

示例_QUERIES.md 用于27个更复杂的多工具提示。

______________________________________________________________________

CLI参考

命令描述
serve启动MCP服务器(默认)
ingest完整管道:下载Cricsheet数据,解析并加载到DuckDB中
update增量更新:仅下载最新数据并添加新匹配项
enrich使用板球数据中的击球/保龄球风格丰富球员元数据

选项

--transport {stdio,http,sse}   MCP transport (default: stdio)
--host HOST                    HTTP host (default: 0.0.0.0)
--port PORT                    HTTP port (default: 8000)
--db PATH                      Path to DuckDB file (default: ./data/cricket.duckdb)
--csv PATH                     Path to player_meta.csv for enrichment (downloads if omitted)

______________________________________________________________________

工具

46种工具按类别排列。大多数人接受常见的过滤器: match_type, gender, team, opposition, venue, city, season, event_name, date_from, date_to.

玩家统计

工具说明
search_players按姓名查找板球运动员(部分匹配)
get_player_stats职业击球或保龄球用过滤器聚合
get_player_comparison两名球员的并排比较
get_season_stats逐年业绩细分

火柴

工具说明
search_matches按球队、场地、日期、格式查找比赛
get_match_scorecard击球、保龄球、小门摔倒的完整记分卡
get_playing_xi为两支球队踢XI
get_match_officials裁判、电视裁判、比赛裁判

记录和排行榜

工具说明
get_batting_records排行榜:最多的跑步次数、最高的平均成绩、最多的世纪数等。
get_bowling_records排行榜:最多的小门,最好的经济,最多的5个小门,等等。
get_fielding_stats每个外野手的接球、树桩、跑动

团队和正面交锋

工具说明
get_head_to_head团队对团队W/L/D/T记录
get_team_form最近的状态、连胜/连败、平均得分
get_toss_analysis蝙蝠优先vs追逐获胜百分比,按场地或团队分组

配对

工具说明
get_matchup击球手对投球手,一对一,或排行榜
get_style_matchup性能与速度/旋转或与左撇子/右撇子(需要丰富)
get_pace_vs_spin击球手的记录被速度与旋转保龄球打破

阶段和情况

工具说明
get_phase_stats强力发挥/中场/死亡超越表演
get_situational_stats追逐、设置或压力情况性能

合作伙伴关系

工具说明
get_partnerships最高击球合作伙伴
get_partnership_records最好的小门,最多的世纪看台,最多产的双

里程碑和进展

工具说明
get_match_milestones几个世纪,五十年代,一场比赛或职业生涯中的五个小门
get_milestone_timeline里程碑类型的时间顺序进展
get_milestone_tracker最接近职业生涯重要里程碑的球员
get_innings_progression在一局比赛中得分过高

系列赛和锦标赛

工具说明
search_series按名称、团队、格式、日期查找系列
get_series_detail完整的系列信息,包括比赛、最佳表现、里程碑
get_series_comparison两个系列的并列比较
get_series_records最高总成绩、最佳个人表现、最大胜利
get_tournament_summary锦标赛的排名、顶级击球手、顶级投球手

场馆

工具说明
get_venue_stats平均得分、击球/保龄球特征、击球先赢百分比

DRS

工具说明
get_drs_stats查看使用情况、成功率、被推翻/裁判的判罚次数
get_drs_recordsDRS团队排行榜
get_umpire_accuracy基于DRS结果的裁判决策准确率

分析

工具说明
get_what_if反事实:重新计算统计数据,不包括对手/场地/事件
get_emerging_players最近统计数据超过职业基线的球员
get_discipline_stats点球%、边界%、宽球率、附加率
get_milestone_tracker最接近职业生涯重要里程碑的球员
get_declaration_patterns测试匹配声明分析:何时、以何种分数、结果

追逐

工具说明
get_chase_analysis团队追逐记录:胜率、平均目标、最高成功追逐
get_chase_heroes成功追逐中的个人击球记录

淘汰赛

工具说明
get_knockout_stats锦标赛淘汰赛阶段统计数据(决赛、半决赛、预选赛)
get_team_knockout_record淘汰赛中球队的胜败记录

额外内容

工具说明
get_extras_analysis按球队/赛季分列的额外费用明细(宽边球、无球、再见、腿再见)

比赛选手

工具说明
get_potm_leaderboard比赛最佳球员排行榜

安全舱口

工具说明
run_query临时只读SQL(仅限SELECT/WITH,最多500行,超时30秒)

______________________________________________________________________

数据源

Cricsheet(初级)

所有比赛数据均来自 Cricsheet,它以JSON格式提供免费的逐球数据。下载了七个ZIP存档:

  • tests_male, odis_male, t20s_male
  • tests_female, odis_female, t20s_female
  • ipl (国内)

测试的覆盖范围从2001年12月开始,ODI从2002年6月开始,T20I从2005年2月开始。其他国内联赛(BBL、The Hundred等)可从Cricsheet获得,但尚未包括在内。

玩家注册表(people.csv)也从Cricsheet下载,提供玩家ID和ESPNcricinfo和Cricbuzz的交叉引用。

蟋蟀数据R包(增强版)

Cricsheet数据不包括击球手或保龄球风格等球员属性。这 enrich 命令下载 player_meta.csv (来源于 板球数据 R包,约16K玩家),并使用以下内容更新玩家表:

示例值
batting_hand右手蝙蝠,左手蝙蝠
bowling_style右臂快,左臂慢,正统,谷歌断腿
bowling_style_broad速度、旋转(衍生)
bowling_style_arm右臂起搏、左臂旋转等。(派生)
playing_role顶级击球手、保龄球手、全能手、守门员击球手
注: 当您进行富时,MCP服务器不得运行(DuckDB只允许一个写连接)。先停止服务器,运行 enrich,然后重新启动。

______________________________________________________________________

数据库模式

包含14个表的星型架构:

尺寸表: players, venues

核心事实表: matches, innings, deliveries

派生表: series, batting_scorecard, bowling_scorecard, partnerships, fall_of_wickets, milestones, drs_reviews, playing_xi, match_officials

src/duckworth_mcp/ingest/schema.sql 对于完整的DDL和 src/duckworth_mcp/ingest/indexes.sql 用于分析指标。

______________________________________________________________________

已知限制

  1. 玩家丰富覆盖范围 --板球数据CSV涵盖了约18000名球员中的约16K人(80%)。丰富率各不相同:击球手(80%)、保龄球风格(67%)、角色扮演(27%)。来自联盟国家和国内联赛的球员不太可能拥有元数据。
  1. 无实时数据 --所有数据均为历史数据,来源于Cricsheet文件下载。使用 update 取消最近完成的比赛。
  1. DuckDB单作者 --DuckDB一次只允许一个写连接。运行前必须停止MCP服务器 ingest, update,或 enrich.
  1. 船长/守门员旗 --The playing_xi 表格包括 is_captainis_keeper 列,但Cricsheet JSON v2不会对这些列进行注释。他们仍然 FALSE 对于所有条目。

______________________________________________________________________

故障排除

“服务器无法启动”/Claude看不到工具

  • 确保你跑了 uv run duckworth-mcp ingest 首先,服务器需要数据库的存在。
  • 检查配置中的路径是绝对的,而不是相对的。
  • 完全重新启动Claude Desktop(退出,而不仅仅是关闭窗口)。

查询“未找到数据”

  • 检查匹配类型拼写: Test, ODI, T20 (不是 T20I --Cricsheet用途 T20 国内和 IT20 国际T20)。
  • 使用 search_players 首先验证数据库中的确切玩家姓名。
  • 尝试更广泛的过滤器(删除日期范围或特定事件)。

摄入失败或超时

  • 第一次运行下载约200 MB。如果您的连接速度较慢,则可能会超时。重新运行 uv run duckworth-mcp ingest --它从中断的地方继续。
  • 如果DuckDB报告锁错误,请确保没有其他进程(包括MCP服务器)正在使用该数据库。

“uv:找不到命令”

  • 安装紫外线: curl -LsSf https://astral.sh/uv/install.sh | sh (Mac/Linux)或 brew install uv.
  • 安装后重新启动终端。

______________________________________________________________________

建筑

src/duckworth_mcp/
  __main__.py          CLI entry point (serve | ingest | update | enrich)
  server.py            FastMCP server, mounts all tool modules
  db.py                DuckDB connection management and query helpers
  ingest/
    download.py        HTTP downloads from Cricsheet + cricketdata
    parser.py          JSON → flat dict parser for all match entities
    loader.py          Bulk CSV loader, series derivation, enrichment
    schema.sql         Full DDL (14 tables)
    indexes.sql        Analytical indexes (created after bulk load)
  tools/
    players.py         search_players, get_player_stats, comparison, seasons
    matches.py         search_matches, get_match_scorecard
    batting.py         get_batting_records
    bowling.py         get_bowling_records
    fielding.py        get_fielding_stats
    teams.py           head_to_head, toss_analysis, team_form
    venues.py          get_venue_stats
    matchups.py        get_matchup, get_style_matchup, get_pace_vs_spin
    phases.py          phase_stats, situational_stats
    partnerships.py    partnerships, partnership_records
    milestones.py      match_milestones, milestone_timeline
    series.py          search, detail, comparison, records
    tournaments.py     get_tournament_summary
    drs.py             drs_stats, drs_records, umpire_accuracy
    analysis.py        what_if, emerging_players, discipline, milestone_tracker, declarations
    progression.py     innings_progression
    chases.py          chase_analysis, chase_heroes
    knockouts.py       knockout_stats, team_knockout_record
    extras.py          extras_analysis
    potm.py            potm_leaderboard
    playing_xi.py      get_playing_xi
    officials.py       get_match_officials
    run_query.py       ad-hoc SQL
tests/
  conftest.py          Shared fixtures (in-memory DuckDB, test data)
  test_schema.py       Schema and index creation
  test_parser.py       Cricsheet JSON parser
  test_filters.py      Match filter builder
  test_tools.py        Tool smoke tests
  test_run_query.py    SQL guardrails

发展

uv sync --group dev
uv run ruff check src/
uv run ruff format src/
uv run pytest

致谢

  • Cricsheet --使这成为可能的逐球数据
  • 板球数据 R包——球员元数据(击球/保龄球风格、扮演角色)
  • 马瓦利/板球mcp --启发这个项目的原始板球MCP服务器。玩家丰富管道和几个工具设计借鉴了他们的工作。

许可证

麻省理工学院

目录标签

目录标签

数据分析PythonClaude板球分析本地部署数据驱动自然语言查询体育统计

支持客户端

Claude DesktopClaudeVS Code

接入字段

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

stdio

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

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

45

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdionone部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP