cricketstudio-mcp 1.4.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +235 -198
  2. package/dist/index.js +1 -1
  3. package/package.json +2 -2
package/README.md CHANGED
@@ -1,198 +1,235 @@
1
- # cricketstudio-mcp
2
-
3
- [![npm version](https://img.shields.io/npm/v/cricketstudio-mcp)](https://www.npmjs.com/package/cricketstudio-mcp)
4
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](./LICENSE)
5
- [![Data: CC BY 4.0](https://img.shields.io/badge/Data-CC%20BY%204.0-lightgrey.svg)](https://creativecommons.org/licenses/by/4.0/)
6
-
7
- **Citation infrastructure for cricket — 32 MCP tools (incl. a knowledge-graph layer), zero network calls, 1,317 matches, 312,309 deliveries.**
8
-
9
- ---
10
-
11
- ## What is this?
12
-
13
- CricketStudio MCP is a [Model Context Protocol](https://modelcontextprotocol.io) server that gives any MCP-compatible AI client — Claude Desktop, Cursor, ChatGPT Connectors, and others — structured, citable access to cricket data. Every response carries a `canonicalUrl` back to `players.cricketstudio.ai`, an explicit date window, a sample-size count, and a provenance trail to the underlying ball-by-ball corpus. The data is fully bundled in `data/snapshot/` — tool answers are computed locally with no data-fetch calls, no API keys, and no rate limits. (The package sends one anonymous startup ping for usage counts; disable it with `CRICKETSTUDIO_NO_TELEMETRY=1`.)
14
-
15
- The corpus covers **IPL 2026** (complete season, RCB champions), **18 seasons of IPL history** (2007/08–2025, Cricsheet), and **Major League Cricket 2023–2026** (Cricsheet). Batting claims require a minimum of 30 balls faced; bowling claims require 15 deliveries. Claims that do not clear those floors are not surfaced.
16
-
17
- ---
18
-
19
- ## Installation
20
-
21
- ### Claude Desktop
22
-
23
- Add to your Claude Desktop config file and restart the app.
24
-
25
- **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
26
- **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
27
-
28
- ```json
29
- {
30
- "mcpServers": {
31
- "cricketstudio": {
32
- "command": "npx",
33
- "args": ["cricketstudio-mcp"]
34
- }
35
- }
36
- }
37
- ```
38
-
39
- ### Other MCP clients
40
-
41
- ```bash
42
- npx cricketstudio-mcp
43
- ```
44
-
45
- Any MCP client that supports the stdio transport can use this command directly. The server starts on stdin/stdout and requires Node 20 or later.
46
-
47
- ---
48
-
49
- ## Tools
50
-
51
- All 32 tools work fully against the bundled snapshot. Each response includes `canonicalUrl`, `dataAsOf`, and `sampleSize`.
52
-
53
- ### IPL 2026 (20 tools)
54
-
55
- | Tool | What it returns | Maps to URL |
56
- |---|---|---|
57
- | `get_dataset_summary` | Top-level corpus overview: seasons, matches, players, deliveries | `/` |
58
- | `search_players` | Player discovery by name or team | n/a |
59
- | `get_player_profile` | Headline stats across all five pillars (P1–P5) | `/players/{slug}` |
60
- | `get_player_pillar` | Claims from a specific pillar (P1 recaps, P2 moments, P3 form, P4 season, P5 notebook) | `/players/{slug}` filtered |
61
- | `list_atomic_claims` | Filtered query across all ClaimReview entries | various |
62
- | `compare_players` | Side-by-side stat comparison for two or more players | `/compare/players?slugs=…` |
63
- | `get_team_profile` | Team headline stats and season summary | `/teams/{slug}` |
64
- | `get_team_h2h` | Head-to-head record between two franchises | `/teams/{a}/vs/{b}` |
65
- | `get_venue_hub` | Aggregated venue patterns: par scores, toss impact, phase splits | `/venues/{slug}` |
66
- | `get_standings` | IPL 2026 points table with NRR | `/standings` |
67
- | `get_trend` | A single trend insight with full claim set | `/trends/{id}` |
68
- | `list_trends` | Browse trends by category (conditional, momentum, venue, toss, anomaly) | `/trends` |
69
- | `get_player_h2h` | Batter vs bowler matchup record | `/h2h/{batter}-vs-{bowler}` |
70
- | `get_season_stats` | Season leaderboard for a given aspect (runs, wickets, strike rate, economy, …) | `/season/ipl-2026/{aspect}` |
71
- | `get_fielding_stats` | Catches, run-outs, and fielding contributions for a player or the full season | `/players/{slug}` · `/season/ipl-2026/catches` |
72
- | `get_partnerships` | Partnership records for a match or player pair | `/matches/{id}` |
73
- | `get_dismissal_analysis` | Dismissal mode breakdown for a batter or bowler | `/players/{slug}` |
74
- | `list_fixtures` | Full schedule with match status, venue, and result | `/matches` |
75
- | `get_match_state` | Live or final scorecard with ball-by-ball state | `/matches/{fixture-id}` |
76
- | `get_match_recap` | Atomic claim set for a completed match | `/matches/{fixture-id}` |
77
-
78
- ### Major League Cricket (8 tools)
79
-
80
- | Tool | What it returns | Maps to URL |
81
- |---|---|---|
82
- | `get_mlc_dataset_summary` | MLC corpus overview: seasons, matches, players, deliveries | `/leagues/mlc` |
83
- | `search_mlc_players` | Player discovery within the MLC corpus | `/leagues/mlc/players` |
84
- | `get_mlc_player_profile` | MLC career and season stats for a player | `/leagues/mlc/players/{slug}` |
85
- | `get_mlc_team_profile` | Franchise profile and season history | `/leagues/mlc/teams/{slug}` |
86
- | `get_mlc_match` | Match scorecard and key claims | `/leagues/mlc/matches/{id}` |
87
- | `get_mlc_match_claim` | A single typed claim for an MLC match (top scorer, best figures, etc.) | `/leagues/mlc/matches/{id}/c/{kind}` |
88
- | `list_mlc_matches` | All MLC matches with status and results | `/leagues/mlc/matches` |
89
- | `list_mlc_leaderboards` | Season or all-time leaderboard for a given MLC aspect | `/leagues/mlc/leaderboards/{aspect}` |
90
-
91
- ### IPL Career / Historical (1 tool)
92
-
93
- | Tool | What it returns | Maps to URL |
94
- |---|---|---|
95
- | `get_ipl_leaderboard` | All-time IPL leaderboard for any aspect across 18 seasons (2007/08–2025) — runs, wickets, sixes, centuries, economy, and more | `/leagues/ipl/leaderboards/{aspect}` |
96
-
97
- ### Knowledge Graph (L3) (3 tools)
98
-
99
- Slug-keyed traversal over CricketStudio's entity graph. Nodes are players and franchises; edges are `plays_for` (squad membership) and `faced`/`dismissed_by` (batter-vs-bowler matchups, mirroring the `get_player_h2h` pair set).
100
-
101
- | Tool | What it returns | Maps to URL |
102
- |---|---|---|
103
- | `get_related_entities` | Entities connected to a player or franchise, by edge type and direction | `/players/{slug}` · `/teams/{slug}` |
104
- | `get_player_connections` | A player's franchise + most-faced bowlers + bowlers who dismissed them most, in one call | `/players/{slug}` |
105
- | `get_graph_path` | Shortest connection (≤4 hops) between two entities, e.g. two players via a shared franchise | n/a |
106
-
107
- ---
108
-
109
- ## Example queries
110
-
111
- Once connected in Claude Desktop, you can ask questions like:
112
-
113
- - "Who won IPL 2026?"
114
- - "What did Kohli score in the final?"
115
- - "Who leads the all-time IPL sixes leaderboard?"
116
- - "Show me Vaibhav Suryavanshi's IPL 2026 stats"
117
- - "What's the RCB vs GT head-to-head record?"
118
- - "Which venues favour the team batting first in IPL 2026?"
119
- - "Who has the best death-over economy in MLC 2025?"
120
- - "List the top wicket-takers in IPL history"
121
-
122
- ---
123
-
124
- ## Data
125
-
126
- | Source | Coverage | License |
127
- |---|---|---|
128
- | Licensed feed | IPL 2026 ball-by-ball (complete season — RCB champions) | Proprietary |
129
- | Cricsheet | IPL historical, 18 seasons, 1,169 matches (2007/08–2025) | CC BY 3.0 |
130
- | Cricsheet | MLC 2023–2026, 138 matches | CC BY 3.0 |
131
-
132
- **Total corpus:** 1,317 matches · 312,309 ball-by-ball deliveries.
133
-
134
- **Sample-size floors (publicly disclosed):**
135
- - Batting claims: ≥30 balls faced
136
- - Bowling claims: ≥15 deliveries
137
- - Venue claims: ≥3 fixtures at the venue
138
- - Trend claims: ≥3 matches forming the pattern
139
-
140
- Claims that do not reach these floors are excluded — they are not suppressed with a placeholder, they are simply absent. This is the moat.
141
-
142
- **Update cadence:** the bundled snapshot is refreshed after each CricketStudio data update. Every tool response includes `dataAsOf` so an LLM citing the answer can disclose freshness explicitly.
143
-
144
- **Data licence:** the bundled data is released under CC BY 4.0. Every tool response includes a `canonicalUrl` back to `players.cricketstudio.ai` so attribution flows automatically when an LLM cites an answer.
145
-
146
- ---
147
-
148
- ## About this package
149
-
150
- This package bundles a pre-computed projection of CricketStudio's public data. Every number here is also readable on the rendered pages at `players.cricketstudio.ai` no new information is exposed, only a different (offline, zero-network) access path.
151
-
152
- ---
153
-
154
- ## Methodology
155
-
156
- Every claim in this package is governed by five non-negotiables:
157
-
158
- 1. **Sample-size floors** — ≥30 batting balls, ≥15 bowling deliveries, ≥3 venue fixtures, ≥5 H2H deliveries, ≥3 matches for trends. Disclosed publicly on every page.
159
- 2. **Explicit date windows** — every claim specifies its window (`ipl-2026`, `ipl-career`, `last-N-matches`). No "all-time" labels without a defined window.
160
- 3. **Provenance to ball-by-ball** — every numeric claim traces to a specific match, delivery count, and computation timestamp.
161
- 4. **Atomic claim format** under 30 words, structured as `[Subject] [metric] [value] [comparator] [period]`.
162
- 5. **Sub-4-hour freshness SLA** — for IPL 2026 pages, time from match end to page update is under 4 hours at the 95th percentile.
163
-
164
- Full methodology at https://players.cricketstudio.ai/about.
165
-
166
- ---
167
-
168
- ## Local development
169
-
170
- ```bash
171
- npm install
172
- npm run typecheck # tsc --noEmit
173
- npm start # stdio MCP server via tsx
174
- ```
175
-
176
- Smoke-test without an MCP client — spawns the server over stdio, drives it with JSON-RPC, and asserts every advertised tool returns a non-error payload with `dataAsOf`:
177
-
178
- ```bash
179
- npm run smoke
180
- ```
181
-
182
- ---
183
-
184
- ## Building something?
185
-
186
- Register at **[cricketstudio.ai/developers](https://cricketstudio.ai/developers)** to get early access to the hosted HTTP transport (`mcp.cricketstudio.ai`), live ball-by-ball endpoints, API-key tiers, and the full 29-tool catalog with live data rather than snapshots.
187
-
188
- ---
189
-
190
- ## License
191
-
192
- - **Code:** MIT — see [`LICENSE`](./LICENSE)
193
- - **Data:** CC BY 4.0 free to cite with attribution to *CricketStudio* (`https://players.cricketstudio.ai`). Attribution flows automatically via the `canonicalUrl` field in every tool response.
194
-
195
- ---
196
-
197
- Built by **Arul Anand** · Chennai & Frisco · cricket enthusiast and data engineer.
198
- Questions, bugs, or requests: [open an issue](https://github.com/i-m-arul/cricketstudio-mcp/issues) or visit [players.cricketstudio.ai/mcp](https://players.cricketstudio.ai/mcp).
1
+ # cricketstudio-mcp
2
+
3
+ [![npm version](https://img.shields.io/npm/v/cricketstudio-mcp)](https://www.npmjs.com/package/cricketstudio-mcp)
4
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](./LICENSE)
5
+ [![Data: CC BY 4.0](https://img.shields.io/badge/Data-CC%20BY%204.0-lightgrey.svg)](https://creativecommons.org/licenses/by/4.0/)
6
+
7
+ **Citation infrastructure for cricket — 43 MCP tools (incl. a knowledge-graph layer), zero network calls, 1,635 matches, 385,486 deliveries.**
8
+
9
+ ---
10
+
11
+ ## What is this?
12
+
13
+ CricketStudio MCP is a [Model Context Protocol](https://modelcontextprotocol.io) server that gives any MCP-compatible AI client — Claude Desktop, Cursor, ChatGPT Connectors, and others — structured, citable access to cricket data. Every response carries a `canonicalUrl` back to `players.cricketstudio.ai`, an explicit date window, a sample-size count, and a provenance trail to the underlying ball-by-ball corpus. The data is fully bundled in `data/snapshot/` — tool answers are computed locally with no data-fetch calls, no API keys, and no rate limits. (The package sends one anonymous startup ping for usage counts; disable it with `CRICKETSTUDIO_NO_TELEMETRY=1`.)
14
+
15
+ The corpus covers **IPL 2026** (complete season, RCB champions), **18 seasons of IPL history** (2007/08–2025), **Major League Cricket 2023–2026**, **WPL 2022/23–2025/26** (Women's Premier League), and **ICC T20 World Cup** (6 editions, 2013/14–2025/26) — all from Cricsheet CC BY 3.0. Batting claims require a minimum of 30 balls faced; bowling claims require 15 deliveries. Claims that do not clear those floors are not surfaced.
16
+
17
+ ---
18
+
19
+ ## Installation
20
+
21
+ ### Claude Desktop
22
+
23
+ Add to your Claude Desktop config file and restart the app.
24
+
25
+ **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
26
+ **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
27
+
28
+ ```json
29
+ {
30
+ "mcpServers": {
31
+ "cricketstudio": {
32
+ "command": "npx",
33
+ "args": ["cricketstudio-mcp"]
34
+ }
35
+ }
36
+ }
37
+ ```
38
+
39
+ ### Other MCP clients
40
+
41
+ ```bash
42
+ npx cricketstudio-mcp
43
+ ```
44
+
45
+ Any MCP client that supports the stdio transport can use this command directly. The server starts on stdin/stdout and requires Node 18 or later.
46
+
47
+ ---
48
+
49
+ ## Tools
50
+
51
+ All 43 tools work fully against the bundled snapshot. Each response includes `canonicalUrl`, `dataAsOf`, and `sampleSize`.
52
+
53
+ ### IPL 2026 (20 tools)
54
+
55
+ | Tool | What it returns | Maps to URL |
56
+ |---|---|---|
57
+ | `get_dataset_summary` | Top-level corpus overview: seasons, matches, players, deliveries | `/` |
58
+ | `search_players` | Player discovery by name or team | n/a |
59
+ | `get_player_profile` | Headline stats across all five pillars (P1–P5) | `/players/{slug}` |
60
+ | `get_player_pillar` | Claims from a specific pillar (P1 recaps, P2 moments, P3 form, P4 season, P5 notebook) | `/players/{slug}` filtered |
61
+ | `list_atomic_claims` | Filtered query across all ClaimReview entries | various |
62
+ | `compare_players` | Side-by-side stat comparison for two or more players | `/compare/players?slugs=…` |
63
+ | `get_team_profile` | Team headline stats and season summary | `/teams/{slug}` |
64
+ | `get_team_h2h` | Head-to-head record between two franchises | `/teams/{a}/vs/{b}` |
65
+ | `get_venue_hub` | Aggregated venue patterns: par scores, toss impact, phase splits | `/venues/{slug}` |
66
+ | `get_standings` | IPL 2026 points table with NRR | `/standings` |
67
+ | `get_trend` | A single trend insight with full claim set | `/trends/{id}` |
68
+ | `list_trends` | Browse trends by category (conditional, momentum, venue, toss, anomaly) | `/trends` |
69
+ | `get_player_h2h` | Batter vs bowler matchup record | `/h2h/{batter}-vs-{bowler}` |
70
+ | `get_season_stats` | Season leaderboard for a given aspect (runs, wickets, strike rate, economy, …) | `/season/ipl-2026/{aspect}` |
71
+ | `get_fielding_stats` | Catches, run-outs, and fielding contributions for a player or the full season | `/players/{slug}` · `/season/ipl-2026/catches` |
72
+ | `get_partnerships` | Partnership records for a match or player pair | `/matches/{id}` |
73
+ | `get_dismissal_analysis` | Dismissal mode breakdown for a batter or bowler | `/players/{slug}` |
74
+ | `list_fixtures` | Full schedule with match status, venue, and result | `/matches` |
75
+ | `get_match_state` | Live or final scorecard with ball-by-ball state | `/matches/{fixture-id}` |
76
+ | `get_match_recap` | Atomic claim set for a completed match | `/matches/{fixture-id}` |
77
+
78
+ ### Major League Cricket (8 tools)
79
+
80
+ | Tool | What it returns | Maps to URL |
81
+ |---|---|---|
82
+ | `get_mlc_dataset_summary` | MLC corpus overview: seasons, matches, players, deliveries | `/leagues/mlc` |
83
+ | `search_mlc_players` | Player discovery within the MLC corpus | `/leagues/mlc/players` |
84
+ | `get_mlc_player_profile` | MLC career and season stats for a player | `/leagues/mlc/players/{slug}` |
85
+ | `get_mlc_team_profile` | Franchise profile and season history | `/leagues/mlc/teams/{slug}` |
86
+ | `get_mlc_match` | Match scorecard and key claims | `/leagues/mlc/matches/{id}` |
87
+ | `get_mlc_match_claim` | A single typed claim for an MLC match (top scorer, best figures, etc.) | `/leagues/mlc/matches/{id}/c/{kind}` |
88
+ | `list_mlc_matches` | All MLC matches with status and results | `/leagues/mlc/matches` |
89
+ | `list_mlc_leaderboards` | Season or all-time leaderboard for a given MLC aspect | `/leagues/mlc/leaderboards/{aspect}` |
90
+
91
+ ### WPL Women's Premier League (3 tools)
92
+
93
+ | Tool | What it returns | Maps to URL |
94
+ |---|---|---|
95
+ | `get_wpl_dataset_summary` | WPL corpus overview: seasons, matches, players, deliveries (2022/23–2025/26) | `/leagues/wpl` |
96
+ | `get_wpl_leaderboard` | Season or all-time leaderboard for any WPL aspect (runs, wickets, economy, …) | `/leagues/wpl/leaderboards/{aspect}` |
97
+ | `get_wpl_team_profile` | Franchise profile, season record, and squad stats | `/leagues/wpl/teams/{slug}` |
98
+
99
+ ### ICC T20 World Cup (3 tools)
100
+
101
+ | Tool | What it returns | Maps to URL |
102
+ |---|---|---|
103
+ | `get_t20wc_dataset_summary` | T20 WC corpus overview: editions, matches, players, deliveries (2013/14–2025/26) | `/leagues/t20wc` |
104
+ | `get_t20wc_leaderboard` | All-edition leaderboard for any T20 WC aspect | `/leagues/t20wc/leaderboards/{aspect}` |
105
+ | `get_t20wc_team_stats` | National team career record across all T20 WC editions | `/leagues/t20wc/teams/{slug}` |
106
+
107
+ ### Cross-league (3 tools)
108
+
109
+ | Tool | What it returns | Maps to URL |
110
+ |---|---|---|
111
+ | `get_cross_league_leaders` | Top performers on a metric (runs, wickets, economy, sixes, fours) across MLC + WPL + T20 WC | n/a |
112
+ | `get_player_all_leagues` | A player's stats across every league in the corpus (IPL, MLC, WPL, T20 WC) | `/players/{slug}` |
113
+ | `get_women_cricket_leaders` | WPL leaderboard with gender context — top women's T20 performers | `/leagues/wpl/leaderboards/{aspect}` |
114
+
115
+ ### IPL Career / Historical (1 tool)
116
+
117
+ | Tool | What it returns | Maps to URL |
118
+ |---|---|---|
119
+ | `get_ipl_leaderboard` | All-time IPL leaderboard for any aspect across 18 seasons (2007/08–2025) — runs, wickets, sixes, centuries, economy, and more | `/leagues/ipl/leaderboards/{aspect}` |
120
+
121
+ ### Research (2 tools)
122
+
123
+ | Tool | What it returns | Maps to URL |
124
+ |---|---|---|
125
+ | `list_research_reports` | Index of all published data investigations (venue, rivalry, strategy, era, cross-league, season) | `/stories` |
126
+ | `get_research_report` | A single focused report with one question, one dataset, one citable answer | `/stories/{slug}` |
127
+
128
+ ### Knowledge Graph (L3) (3 tools)
129
+
130
+ Slug-keyed traversal over CricketStudio's entity graph. Nodes are players and franchises; edges are `plays_for` (squad membership) and `faced`/`dismissed_by` (batter-vs-bowler matchups, mirroring the `get_player_h2h` pair set).
131
+
132
+ | Tool | What it returns | Maps to URL |
133
+ |---|---|---|
134
+ | `get_related_entities` | Entities connected to a player or franchise, by edge type and direction | `/players/{slug}` · `/teams/{slug}` |
135
+ | `get_player_connections` | A player's franchise + most-faced bowlers + bowlers who dismissed them most, in one call | `/players/{slug}` |
136
+ | `get_graph_path` | Shortest connection (≤4 hops) between two entities, e.g. two players via a shared franchise | n/a |
137
+
138
+ ---
139
+
140
+ ## Example queries
141
+
142
+ Once connected in Claude Desktop, you can ask questions like:
143
+
144
+ - "Who won IPL 2026?"
145
+ - "What did Kohli score in the final?"
146
+ - "Who leads the all-time IPL sixes leaderboard?"
147
+ - "Show me Vaibhav Suryavanshi's IPL 2026 stats"
148
+ - "What's the RCB vs GT head-to-head record?"
149
+ - "Which venues favour the team batting first in IPL 2026?"
150
+ - "Who has the best death-over economy in MLC 2025?"
151
+ - "List the top wicket-takers in IPL history"
152
+ - "Who are the leading run-scorers in WPL history?"
153
+ - "Which team has won the most T20 World Cups?"
154
+ - "Who scores most sixes across WPL and T20 WC combined?"
155
+ - "Show me Smriti Mandhana's stats across all leagues"
156
+
157
+ ---
158
+
159
+ ## Data
160
+
161
+ | Source | Coverage | License |
162
+ |---|---|---|
163
+ | Licensed feed | IPL 2026 ball-by-ball (complete season — RCB champions) | Proprietary |
164
+ | Cricsheet | IPL historical, 18 seasons, 1,169 matches (2007/08–2025) | CC BY 3.0 |
165
+ | Cricsheet | MLC 2023–2026, 75 matches | CC BY 3.0 |
166
+ | Cricsheet | WPL 2022/23–2025/26, 88 matches, 133 players | CC BY 3.0 |
167
+ | Cricsheet | ICC T20 World Cup, 6 editions, 230 matches, 687 players | CC BY 3.0 |
168
+
169
+ **Total corpus:** 1,635 matches · 385,486 ball-by-ball deliveries.
170
+
171
+ **Sample-size floors (publicly disclosed):**
172
+ - Batting claims: ≥30 balls faced
173
+ - Bowling claims: ≥15 deliveries
174
+ - Venue claims: ≥3 fixtures at the venue
175
+ - Trend claims: ≥3 matches forming the pattern
176
+
177
+ Claims that do not reach these floors are excluded — they are not suppressed with a placeholder, they are simply absent. This is the moat.
178
+
179
+ **Update cadence:** the bundled snapshot is refreshed after each CricketStudio data update. Every tool response includes `dataAsOf` so an LLM citing the answer can disclose freshness explicitly.
180
+
181
+ **Data licence:** the bundled data is released under CC BY 4.0. Every tool response includes a `canonicalUrl` back to `players.cricketstudio.ai` so attribution flows automatically when an LLM cites an answer.
182
+
183
+ ---
184
+
185
+ ## About this package
186
+
187
+ This package bundles a pre-computed projection of CricketStudio's public data. Every number here is also readable on the rendered pages at `players.cricketstudio.ai` — no new information is exposed, only a different (offline, zero-network) access path.
188
+
189
+ ---
190
+
191
+ ## Methodology
192
+
193
+ Every claim in this package is governed by five non-negotiables:
194
+
195
+ 1. **Sample-size floors** — ≥30 batting balls, ≥15 bowling deliveries, ≥3 venue fixtures, ≥5 H2H deliveries, ≥3 matches for trends. Disclosed publicly on every page.
196
+ 2. **Explicit date windows** — every claim specifies its window (`ipl-2026`, `ipl-career`, `last-N-matches`). No "all-time" labels without a defined window.
197
+ 3. **Provenance to ball-by-ball** every numeric claim traces to a specific match, delivery count, and computation timestamp.
198
+ 4. **Atomic claim format** — under 30 words, structured as `[Subject] [metric] [value] [comparator] [period]`.
199
+ 5. **Sub-4-hour freshness SLA** — for IPL 2026 pages, time from match end to page update is under 4 hours at the 95th percentile.
200
+
201
+ Full methodology at https://players.cricketstudio.ai/about.
202
+
203
+ ---
204
+
205
+ ## Local development
206
+
207
+ ```bash
208
+ npm install
209
+ npm run typecheck # tsc --noEmit
210
+ npm start # stdio MCP server via tsx
211
+ ```
212
+
213
+ Smoke-test without an MCP client — spawns the server over stdio, drives it with JSON-RPC, and asserts every advertised tool returns a non-error payload with `dataAsOf`:
214
+
215
+ ```bash
216
+ npm run smoke
217
+ ```
218
+
219
+ ---
220
+
221
+ ## Building something?
222
+
223
+ Register at **[cricketstudio.ai/developers](https://cricketstudio.ai/developers)** to get early access to the hosted HTTP transport (`mcp.cricketstudio.ai`), live ball-by-ball endpoints, API-key tiers, and the full 43-tool catalog with live data rather than snapshots.
224
+
225
+ ---
226
+
227
+ ## License
228
+
229
+ - **Code:** MIT — see [`LICENSE`](./LICENSE)
230
+ - **Data:** CC BY 4.0 — free to cite with attribution to *CricketStudio* (`https://players.cricketstudio.ai`). Attribution flows automatically via the `canonicalUrl` field in every tool response.
231
+
232
+ ---
233
+
234
+ Built by **Arul Anand** · Chennai & Frisco · cricket enthusiast and data engineer.
235
+ Questions, bugs, or requests: [open an issue](https://github.com/i-m-arul/cricketstudio-mcp/issues) or visit [players.cricketstudio.ai/mcp](https://players.cricketstudio.ai/mcp).
package/dist/index.js CHANGED
@@ -1918,7 +1918,7 @@ function handleWomenCricketLeaders(args) {
1918
1918
  return ok({ aspect: args.aspect, title: entry.title, gender: "female", competition: "WPL (Women's Premier League)", floorNote: entry.floorNote ?? null, count: rows.length, rows, attribution: "Cricsheet CC BY 3.0" }, wplLeaderboardUrl(args.aspect));
1919
1919
  }
1920
1920
  var server = new Server(
1921
- { name: "cricketstudio", version: "1.4.0" },
1921
+ { name: "cricketstudio", version: "1.5.0" },
1922
1922
  { capabilities: { tools: {} } }
1923
1923
  );
1924
1924
  server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: TOOLS }));
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "cricketstudio-mcp",
3
- "version": "1.4.0",
4
- "description": "CricketStudio MCP server — 43 tools covering IPL 2026, IPL historical (18 seasons), MLC, WPL, and ICC T20 WC. Citation-grade atomic claims with provenance. Includes L3 knowledge-graph layer.",
3
+ "version": "1.5.0",
4
+ "description": "CricketStudio MCP server — 43 tools covering IPL 2026, IPL historical (18 seasons), MLC (men's), T20 WC (men's), and WPL (women's). Citation-grade atomic claims with provenance. Men's and women's cricket kept separate.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "bin": {