{"service":"Tigzig Database MCP","description":"Read-only SQL over Postgres (men's and women's ODI, T20 and Test) and DuckDB (men's and women's T20, ODI and Test). Both engines carry the same ball-by-ball tables. Exposed as MCP tools and a REST API. Sizes are in `tables` below, derived live.","tables":{"postgres":{"table":"odi_ball_by_ball + t20_ball_by_ball + test_ball_by_ball + match_info","contents":"odi_ball_by_ball (men's ODI ball-by-ball, 1.36M+ deliveries), t20_ball_by_ball (men's T20 ball-by-ball, 796k+ deliveries), test_ball_by_ball (men's Test ball-by-ball, 1.72M+ deliveries), odi_ball_by_ball_women (women's ODI ball-by-ball, ? deliveries), t20_ball_by_ball_women (women's T20 ball-by-ball, ? deliveries), test_ball_by_ball_women (women's Test ball-by-ball, ? deliveries), match_info (6,900+ matches, ALL formats, men's) and match_info_women (women's matches, ALL formats), joined on match_id"},"duckdb":{"table":"t20_ball_by_ball + odi_ball_by_ball + test_ball_by_ball + match_info","contents":"t20_ball_by_ball (men's T20 ball-by-ball, 796k+ deliveries), odi_ball_by_ball (men's ODI ball-by-ball, 1.36M+ deliveries), test_ball_by_ball (men's Test ball-by-ball, 1.72M+ deliveries), t20_ball_by_ball_women (women's T20 ball-by-ball, ? deliveries), odi_ball_by_ball_women (women's ODI ball-by-ball, ? deliveries), test_ball_by_ball_women (women's Test ball-by-ball, ? deliveries), match_info (6,900+ matches, ALL formats, men's) and match_info_women (women's matches, ALL formats), joined on match_id"},"scope":"Men's international cricket only. No women's cricket for now, and no domestic or franchise data (no IPL) - this is a Cricsheet internationals set. BOTH engines carry BOTH ball tables and a match_info covering ODI, T20 and TEST, so the engine you pick is a choice of SQL dialect, not of format - and the same question returns the same answer on either.","counts_as_of":"2026-09-03 06:21 UTC","columns_both_tables":["match_id","season","start_date","venue","innings","ball","batting_team","bowling_team","striker","non_striker","bowler","runs_off_bat","extras","wides","noballs","byes","legbyes","penalty","wicket_type","player_dismissed","other_wicket_type","other_player_dismissed","match_type"]},"mcp":{"url":"https://db-mcp.tigzig.com/mcp","transport":"streamable-http","how_to_use":"Add as a custom connector in Claude.ai (Settings > Connectors), ChatGPT, Cursor, LM Studio or n8n."},"rest":{"base_url":"https://db-mcp.tigzig.com/v1","swagger":"https://db-mcp.tigzig.com/v1/docs","openapi":"https://db-mcp.tigzig.com/v1/openapi.json","get_variant":"GET /v1/query/{postgres|duckdb}?sql=<url-encoded SQL> also works (fetch-only clients); POST preferred","endpoints":[{"path":"/downloads","methods":["GET"],"summary":"Whole tables as files, for when paginating a large result out of the SQL endpoints is the wrong tool."},{"path":"/health","methods":["GET"],"summary":"Returns service status, version, and connectivity to both databases."},{"path":"/terms","methods":["GET"],"summary":"Plain-text licence, source and coverage for the cricket data, covering every route it is served by: the REST API, the MCP tools and the bulk file downloads. Fet"},{"path":"/v1/query/duckdb","methods":["GET","POST"],"summary":"Run read-only SQL against the cricket data. **DuckDB dialect.**"},{"path":"/v1/query/postgres","methods":["GET","POST"],"summary":"Run read-only SQL against the cricket data. **PostgreSQL dialect.**"}],"example":"curl -X POST \"https://db-mcp.tigzig.com/v1/query/duckdb\" -H \"Content-Type: application/json\" -d '{\"sql\": \"SELECT COUNT(*) AS balls FROM t20_ball_by_ball\", \"format\": \"json\"}'"},"limits":{"response_headers":"Every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset (Unix epoch seconds) for your per-IP budget. On 429, Retry-After is set. Read these at runtime instead of hard-coding numbers.","max_concurrent_per_ip":4,"guidance":"This is a read-only SQL endpoint over ~1M-row tables. Aggregate or LIMIT server-side in the SQL rather than paginating many small queries - one GROUP BY costs a single request where pagination costs dozens.","per_ip":"60 requests per minute per IP","per_ip_amount":60,"per_ip_window_seconds":60},"v":"1.0.0","catalog":"https://api.tigzig.com/.well-known/api-catalog","health":"https://db-mcp.tigzig.com/health","data_source":{"name":"Cricsheet","url":"https://cricsheet.org","license":"Open Data Commons Attribution License 1.0 (ODC-BY)","license_url":"https://opendatacommons.org/licenses/by/1-0/","statement":"Source and licence. The ball-by-ball data comes from Cricsheet ([cricsheet.org](https://cricsheet.org)), published under the Open Data Commons Attribution License 1.0, ODC-BY ([opendatacommons.org/licenses/by/1-0/](https://opendatacommons.org/licenses/by/1-0/)). The tables here are derived from it: reshaped into two engines, split by gender into separate tables, joined to a match-level table and refreshed twice daily. If you build on this API, the same attribution carries to you.","coverage_note":"Cricsheet withholds matches featuring the Afghanistan men's team or played in the Afghanistan Premier League (see [cricsheet.org/withheld-matches](https://cricsheet.org/withheld-matches)). That exclusion is inherited here, so this is not a complete record of men's internationals.","obligations":[["If you pass the data on","the licence goes with it. Include a copy of the licence or its URL alongside the data and in any documentation, and keep the existing notices intact. (ODC-BY section 4.2)"],["If you publish work built from it","include a notice that the content came from Cricsheet and is available under this licence. This is the lighter obligation and covers charts, articles, models and anything else derived from the data. (ODC-BY section 4.3)"]],"no_warranty":"Provided as is. No guarantee of accuracy, completeness or availability, and no support commitment.","affiliation":"TigZig is not affiliated with or endorsed by Cricsheet. Cricsheet is credited as the source of the underlying match data under the terms of the ODC-BY 1.0 licence."},"help":{"openapi":"https://db-mcp.tigzig.com/v1/openapi.json","docs":"https://db-mcp.tigzig.com/v1/docs","catalog":"https://api.tigzig.com/.well-known/api-catalog","bulk_download":"https://db-mcp.tigzig.com/downloads","bulk_download_note":"The full dataset is published for download. Get it here and query it locally with no row limits, no rate limits and no query length cap."}}