Gamechalk Score Keeper MCP
Provides live scoreboards for up to 12 players, five-dice score sheets with bonus calculations, and 501/301 darts leg scoring with checkout suggestions and bust handling.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://score-keeper.zovo.one/mcpWhat you can do with it
- Create a live scoreboard for 2-12 players with +/- scoring and undo
- Score a five-dice sheet with upper-section and five-of-a-kind bonuses
- Score 501 or 301 darts legs with bust handling and checkout suggestions
- Download CSV of scored sheets and darts legs
Source and maintenance
Protocol and capabilities
- Server
- score-keeper 1.0.0
- MCP protocol
- 2025-06-18
- Tools
- 3 advertised
- Resources
- 1 advertised
- Resource templates
- 1 advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
},
"resources": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
3 advertised
show_scoreboard — Show scoreboard
Use this when the user wants a live scoreboard: "keep score for me and Anna", "scoreboard for game night with 4 players", "add 12 points to Anna". Pass mode highest (default), lowest, or target with a positive target score. Scores stay in the open widget only; no online multiplayer. Shows a widget with one row per player, +N/-N buttons (use Smaller step and Bigger step to change the step), undo and history for the last 20 score changes with round numbers, and running totals. Pass the initial player names (2-12); totals start at 0 unless you pass initial scores. Do not use it to score dice sheets or darts legs — use score_dice_sheet or score_darts_leg for those.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"players"
],
"properties": {
"mode": {
"enum": [
"highest",
"lowest",
"target"
],
"type": "string",
"description": "Win mode, e.g. lowest for a penalty game, highest (default), or target for first to a target score."
},
"scores": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"maxItems": 12,
"description": "Optional starting totals, same order and length as players. Default 0, e.g. [25,0]."
},
"target": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Required target for target mode, e.g. 100. Ignored for highest/lowest modes.",
"exclusiveMinimum": 0
},
"players": {
"type": "array",
"items": {
"type": "string",
"maxLength": 30,
"minLength": 1
},
"maxItems": 12,
"minItems": 2,
"description": "Player names in seating order, e.g. [\"Anna\", \"Ben\"]. 2-12 players."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"mode",
"players"
],
"properties": {
"mode": {
"enum": [
"highest",
"lowest",
"target"
],
"type": "string"
},
"note": {
"type": "string"
},
"target": {
"type": "number"
},
"players": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"score"
],
"properties": {
"name": {
"type": "string"
},
"score": {
"type": "number"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}{
"title": "Show scoreboard",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}score_dice_sheet — Score dice sheet
Use this when the user wants a five-dice score sheet scored: "score my sheet, full house [5,5,5,2,2]", "what did I score for chance [3,4,4,5,6]", "tally my dice game". Pass each played category with its 5 dice, and null (or omit) for skipped categories. Returns the category scores, the upper-section total, the 35-point upper bonus when the upper total reaches 63, five-of-a-kind bonuses (100 per repeat after the first 50; provide play_order for chronology, otherwise listed category order is assumed), the grand total, and a CSV of the sheet. It does not choose categories for you and is not for board games — use show_scoreboard for plain point totals.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"sheet"
],
"properties": {
"sheet": {
"type": "object",
"description": "Score sheet state: map each category name to the five dice rolled (e.g. [5,5,5,2,2]) if you played that category, or null if you skipped it. Category keys: ones, twos, threes, fours, fives, sixes, three_of_a_kind, four_of_a_kind, full_house, small_straight, large_straight, five_of_a_kind, chance.",
"propertyNames": {
"enum": [
"ones",
"twos",
"threes",
"fours",
"fives",
"sixes",
"three_of_a_kind",
"four_of_a_kind",
"full_house",
"small_straight",
"large_straight",
"five_of_a_kind",
"chance"
],
"type": "string"
},
"additionalProperties": {
"anyOf": [
{
"type": "array",
"items": {
"type": [
"number",
"null"
]
}
},
{
"type": "null"
}
]
}
},
"play_order": {
"type": "array",
"items": {
"enum": [
"ones",
"twos",
"threes",
"fours",
"fives",
"sixes",
"three_of_a_kind",
"four_of_a_kind",
"full_house",
"small_straight",
"large_straight",
"five_of_a_kind",
"chance"
],
"type": "string"
},
"maxItems": 13,
"description": "Played categories in chronological order, e.g. [five_of_a_kind, chance]. Include each played category once. If omitted, assumes the listed category order (ones through chance) for repeat bonuses."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"categories",
"upper_total",
"upper_bonus",
"five_of_a_kind_bonus",
"total",
"csv_url",
"downloads"
],
"properties": {
"total": {
"type": "number"
},
"csv_url": {
"type": "string"
},
"downloads": {
"type": "object",
"required": [
"csv"
],
"properties": {
"csv": {
"type": "string"
}
},
"additionalProperties": false
},
"categories": {
"type": "array",
"items": {
"type": "object",
"required": [
"category",
"dice",
"score"
],
"properties": {
"dice": {
"anyOf": [
{
"type": "array",
"items": {
"type": "number"
}
},
{
"type": "null"
}
]
},
"score": {
"type": "number"
},
"category": {
"type": "string"
}
},
"additionalProperties": false
}
},
"upper_bonus": {
"type": "number"
},
"upper_total": {
"type": "number"
},
"five_of_a_kind_bonus": {
"type": "number"
}
},
"additionalProperties": false
}{
"title": "Score dice sheet",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}score_darts_leg — Score darts leg
Use this when the user wants a 501 or 301 darts leg scored: "score my 501 leg", "I threw T20 T20 T20, then S20, then out on D10", "darts scorer, double out". Send each visit to the oche as a turn of up to 3 darts (formats: S20, D16, T19, SB, DB, or 0). Applies standard bust rules (a bust scores nothing and the turn ends; darts after a finish are ignored; double-out requires a double or inner bull to finish unless double_out is false). Returns remaining, per-turn detail, busts, darts thrown, the three-dart average, a checkout suggestion when one exists, and a CSV of the leg. It is not for cricket or around-the-clock variants, and it does not track multi-leg matches — one leg per call.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"start",
"turns"
],
"properties": {
"start": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Leg starting score: 501 (standard) or 301."
},
"turns": {
"type": "array",
"items": {
"type": "object",
"required": [
"darts"
],
"properties": {
"darts": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 3,
"description": "Darts in order, e.g. [\"T20\",\"T20\",\"D10\"]. Formats: S/D/T + number (S20, D16, T19), SB for the outer bull, DB for the inner bull, and 0 for a miss. Invalid tokens are named in the error (first 30 characters for long values)."
}
}
},
"maxItems": 40,
"description": "Turns in order; each turn has up to 3 darts. A new entry per visit, e.g. one turn containing T20 and D20."
},
"double_out": {
"type": "boolean",
"description": "Require a double (or inner bull) to finish, e.g. true for a double-out leg. Default true."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"start",
"double_out",
"turns",
"remaining",
"finished",
"busts",
"darts_thrown",
"scored",
"three_dart_average",
"checkout",
"csv_url",
"downloads"
],
"properties": {
"busts": {
"type": "number"
},
"start": {
"type": "number"
},
"turns": {
"type": "array",
"items": {
"type": "object",
"required": [
"turn",
"darts",
"points",
"remaining",
"bust"
],
"properties": {
"bust": {
"type": "boolean"
},
"turn": {
"type": "number"
},
"darts": {
"type": "array",
"items": {
"type": "string"
}
},
"points": {
"type": "number"
},
"remaining": {
"type": "number"
}
},
"additionalProperties": false
}
},
"scored": {
"type": "number"
},
"csv_url": {
"type": "string"
},
"checkout": {
"type": [
"string",
"null"
]
},
"finished": {
"type": "boolean"
},
"downloads": {
"type": "object",
"required": [
"csv"
],
"properties": {
"csv": {
"type": "string"
}
},
"additionalProperties": false
},
"remaining": {
"type": "number"
},
"double_out": {
"type": "boolean"
},
"darts_thrown": {
"type": "number"
},
"three_dart_average": {
"type": "number"
}
},
"additionalProperties": false
}{
"title": "Score darts leg",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
1 advertised
score-keeper-widget — Gamechalk Score Keeper view
Interactive view for Gamechalk Score Keeper.
ui://widget/score-keeper-v3-1.0.0-d397aebf6a45f9a5c4039a71c8e7436f0d4189a35153f79574c5ef7d0686f398.htmlscore-keeper-widget-legacy — Gamechalk Score Keeper view (previous versions)
ui://widget/score-keeper-{version}.html30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 575 ms
- 95th percentile latency
- 575 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 575 ms · metadata changed · 3 tool(s), 1 resource(s), 1 resource template(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http gamechalk-score-keeper-mcp https://score-keeper.zovo.one/mcpCodex
codex mcp add gamechalk-score-keeper-mcp --url https://score-keeper.zovo.one/mcpCursor
{
"mcpServers": {
"gamechalk-score-keeper-mcp": {
"url": "https://score-keeper.zovo.one/mcp"
}
}
}Cline
{
"mcpServers": {
"gamechalk-score-keeper-mcp": {
"type": "streamableHttp",
"url": "https://score-keeper.zovo.one/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"gamechalk-score-keeper-mcp": {
"type": "http",
"url": "https://score-keeper.zovo.one/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http gamechalk-score-keeper-mcp https://score-keeper.zovo.one/mcpClaude Desktop
{
"mcpServers": {
"gamechalk-score-keeper-mcp": {
"url": "https://score-keeper.zovo.one/mcp"
}
}
}Windsurf
{
"mcpServers": {
"gamechalk-score-keeper-mcp": {
"serverUrl": "https://score-keeper.zovo.one/mcp"
}
}
}Let your agent find its tools
Find servers like Gamechalk Score Keeper MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.