# Scorekeeper (remote · www.scorekeeper.co)

Create live scoreboards, connect with OAuth, and prepare checkout or Stripe CLI payments.

- Trust score: 66/100 (medium)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

> **Recent critical change**: Authorization (2026-10-29). See the changelog below before you install this server.

## Components

- remote · `www.scorekeeper.co`: 66/100 (this document), [markdown](https://verifymcp.io/servers/co-scorekeeper-scorekeeper/api-mcp.md), [page](https://verifymcp.io/servers/co-scorekeeper-scorekeeper/api-mcp)

## Channel facts

- Endpoint: `https://www.scorekeeper.co/api/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.2.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 63/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (update_scoreboard).
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 71/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 1211 tokens (~110/item across 11 items; 11 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 17/100
  - Stability check failed: schema churn in the 8 days we've observed: 0 tool removals, 0 breaking changes, 1 auth/transport breaks, 6 additions.
- **Tool Coverage**: 71/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 0% of tool parameters carry a description.
  - Structured output schemas are declared (91% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 11 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 12 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the Scorekeeper MCP server?

Scorekeeper is a hosted endpoint at https://www.scorekeeper.co/api/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http co-scorekeeper-scorekeeper 'https://www.scorekeeper.co/api/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "co-scorekeeper-scorekeeper": {
      "url": "https://www.scorekeeper.co/api/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "co-scorekeeper-scorekeeper": {
      "type": "http",
      "url": "https://www.scorekeeper.co/api/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.co-scorekeeper-scorekeeper]
url = "https://www.scorekeeper.co/api/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "co-scorekeeper-scorekeeper": {
      "type": "remote",
      "url": "https://www.scorekeeper.co/api/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add co-scorekeeper-scorekeeper --url 'https://www.scorekeeper.co/api/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  co-scorekeeper-scorekeeper:
    url: "https://www.scorekeeper.co/api/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "co-scorekeeper-scorekeeper": {
      "Transport": "http",
      "Url": "https://www.scorekeeper.co/api/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add co-scorekeeper-scorekeeper -t streamable-http -u 'https://www.scorekeeper.co/api/mcp'
```

### Other

```json
{
  "mcpServers": {
    "co-scorekeeper-scorekeeper": {
      "type": "http",
      "url": "https://www.scorekeeper.co/api/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-05 (score 66, +1)

- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “create_scoreboard” rewrote its description, which is the text the model reads
- [functional regression] Schema quality: pass → fail
- [functional] Server version: 1.2.0 → 1.3.0

### 2026-11-03 (score 65, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10.

### 2026-11-01 (score 64, +1)

No change was recorded against any check on this day. Stability & Change Management went from 0 to 3.

### 2026-10-29 (score 63, −12)

- [critical regression] Authorization: pass → fail
- [security regression] Stability: unverified → fail
- [security] The server rewrote its instructions, which are the text every model session reads
- [functional regression] Tool coverage: 100% → 91%
- [functional regression] Schema quality: 78 → 95
- [functional regression] Schema quality: 392 → 765
- [functional regression] Tool coverage: 100% → 89%
- [functional improvement] Stability: unverified → 0.03
- [functional] Server version: 1.1.0 → 1.2.0
- [functional] Server version: 1.0.0 → 1.1.0
- [functional] New tool “create_payment_order”
- [functional] New tool “get_payment_order”
- [functional] New tool “create_checkout”
- [functional] New tool “get_account”
- [functional] New tool “get_checkout”
- [functional] New tool “get_service_info”

### 2026-10-28 (score 75)

First indexed and scored.

## MCP tools (11)

### `get_service_info` (~50 tokens)

Get setup, capabilities and prices

Start here to discover Scorekeeper's MCP/OAuth and guest REST onboarding, supported scoreboard operations, free limits, current prices and payment steps. Public; no account or authentication needed. Does not create anything.

Output parameters:

- `name` (string)
- `publisher` (string)
- `version` (string)

### `get_account` (~45 tokens)

Read your access and limits

Read only the connected account's current plan, expiry, board capacity and permissions. Call before offering a paid upgrade. Requires explicit billing:read permission; returns no personal or payment details.

### `create_checkout` (~120 tokens)

Start an authorized purchase

Create a private Stripe checkout for a current offer after the user expresses purchase intent. Explain price, duration and annual renewal before proceeding. This tool does not charge a card: give checkoutUrl privately to the buyer for payment authorization. Reuse the exact requestId/input after uncertainty; never create a replacement checkout to retry. Pro and Studio passes accept months=1–12 and never auto-renew; annual offers are recurring. Requires billing:checkout.

Input parameters:

- `months` (integer)
- `offerId` (string, required)
- `requestId` (string, required)

Output parameters:

- `amountCents` (integer)
- `checkoutStatus` (string)
- `checkoutUrl` (string|null)
- `currency` (string)
- `fulfillmentStatus` (string)
- `id` (string)
- `months` (integer)
- `offerId` (string)
- `paymentStatus` (string)

### `get_checkout` (~66 tokens)

Check payment and access

Read the connected account's checkout by its returned opaque id. Only fulfillmentStatus=fulfilled confirms webhook-granted access; paid/completed alone is insufficient. Poll no more often than every 15 seconds. Return to the requested scoreboard task once access is granted.

Input parameters:

- `id` (string, required)

Output parameters:

- `amountCents` (integer)
- `checkoutStatus` (string)
- `checkoutUrl` (string|null)
- `currency` (string)
- `fulfillmentStatus` (string)
- `id` (string)
- `months` (integer)
- `offerId` (string)
- `paymentStatus` (string)

### `create_payment_order` (~135 tokens)

Prepare a Stripe CLI payment

Prepare an owner-bound one-time payment order after purchase intent, only when get_service_info pricing.paymentMethods.stripe_cli_pay.available is true. Returns the exact @scorekeeper recipient, USD amount and unique memo for stripe pay. Supports pro_week, pro and studio (1–12 calendar months), never annual subscriptions. This tool sends no money. Separately obtain authorization for the actual Stripe transfer and payer-selected funding account. Reuse identical requestId/input on retry; never pay twice or send without the returned memo.

Input parameters:

- `months` (integer)
- `offerId` (string, required)
- `requestId` (string, required)

Output parameters:

- `accessExpiresAt` (number|null)
- `amountCents` (integer)
- `createdAt` (number)
- `currency` (string)
- `expiresAt` (number)
- `fulfillmentStatus` (string)
- `id` (string)
- `instructions`
- `months` (integer)
- `nextAction` (string)
- `offerId` (string)
- `orderStatus` (string)
- `paymentStatus` (string)
- `pollAfterSeconds` (integer)
- `reference` (string)

### `get_payment_order` (~97 tokens)

Verify a transfer and activate access

Check only the connected account's payment order and reconcile a bank receipt. May activate access after matching verified received funds. Only fulfillmentStatus=fulfilled confirms access; CLI output or sender status does not. Poll no more often than pollAfterSeconds (at least 60 seconds). Bank transfers can take business days. Never send a replacement payment while pending. review_required or reversed needs support reconciliation, not another payment.

Input parameters:

- `id` (string, required)

Output parameters:

- `accessExpiresAt` (number|null)
- `amountCents` (integer)
- `createdAt` (number)
- `currency` (string)
- `expiresAt` (number)
- `fulfillmentStatus` (string)
- `id` (string)
- `instructions`
- `months` (integer)
- `nextAction` (string)
- `offerId` (string)
- `orderStatus` (string)
- `paymentStatus` (string)
- `pollAfterSeconds` (integer)
- `reference` (string)

### `create_scoreboard` (~166 tokens)

Create a scoreboard

Create a public, shareable two-team scoreboard at zero. Requires explicit user intent to create; title and team names are public. Works without signing in: the result then includes a private claim.url (valid up to seven days) for the person who will keep score; it lets them score in the browser and keep the board. Share links.spectator with viewers. A board made without a connection cannot be updated by later tool calls; connect an account first if you need to keep score. Free boards allow 50 total spectator views and show branding. With a connection, retry the identical requestId and input after a timeout; without one, a retry creates another board.

Input parameters:

- `requestId` (string, required)
- `teams` (array, required)
- `title` (string, required)

Output parameters:

- `capabilities` (array)
- `claim` (object)
- `connection` (string)
- `id` (string)
- `limits` (object)
- `links` (object)
- `revision` (string)
- `teams` (array)
- `title` (string)

### `get_scoreboard` (~36 tokens)

Read a scoreboard

Read a scoreboard created through this API by the connected account, including stable team IDs and current revision.

Input parameters:

- `id` (string, required)

Output parameters:

- `capabilities` (array)
- `id` (string)
- `limits` (object)
- `links` (object)
- `revision` (string)
- `teams` (array)
- `title` (string)

### `list_scoreboards` (~58 tokens)

List scoreboards

List the connected account's API-created generic scoreboards. Does not list unrelated legacy boards. Pass nextCursor as cursor to continue until null; a filtered page can be empty.

Input parameters:

- `cursor` (string)
- `limit` (integer)

Output parameters:

- `nextCursor` (string|null)
- `scoreboards` (array)

### `update_scoreboard` (~67 tokens)

Update a scoreboard

Atomically set exact scores, increment scores, rename teams or change title. Use stable team IDs and the last read revision. Updates immediately appear publicly. On revision_conflict read the board and decide again; do not blindly replay a stale increment. Identical retry IDs return the previous result.

Output parameters:

- `capabilities` (array)
- `id` (string)
- `limits` (object)
- `links` (object)
- `revision` (string)
- `teams` (array)
- `title` (string)

### `hand_off_scoreboard` (~58 tokens)

Hand scoreboard to a person

Return the connected account owner’s private management link. Share it only with the intended scorer, never spectators. Does not transfer ownership. Reuse requestId on retry.

Input parameters:

- `id` (string, required)
- `requestId` (string, required)

Output parameters:

- `expiresAt` (number|null)
- `transfersOwnership` (boolean)
- `url` (string)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/co-scorekeeper-scorekeeper/api-mcp#diagnostics

## Score history

- 2026-11-05: 66
- 2026-11-04: 65
- 2026-11-03: 65
- 2026-11-02: 64
- 2026-11-01: 64
- 2026-10-31: 63
- 2026-10-30: 63
- 2026-10-29: 63
- 2026-10-28: 75

## Common questions

### What is the Scorekeeper MCP server?

Scorekeeper is an MCP server listed in the public MCP registry as co.scorekeeper/scorekeeper. Create live scoreboards, connect with OAuth, and prepare checkout or Stripe CLI payments. This page covers its hosted endpoint (https://www.scorekeeper.co/api/mcp).

### Is the Scorekeeper MCP server safe to use?

Scorekeeper scores 66 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Scorekeeper MCP server expose?

Scorekeeper exposes 11 tools: get_service_info, get_account, create_checkout, get_checkout, create_payment_order, and 6 more. Their descriptions and schemas cost roughly 898 tokens of context every time the server is loaded.

### Does the Scorekeeper MCP server require authentication?

No. We connected to Scorekeeper without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the Scorekeeper MCP server still maintained?

Scorekeeper is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://www.scorekeeper.co/api/mcp
- Repository: https://github.com/HatoUP/scorekeeper-mcp
- Website: https://www.scorekeeper.co/agents
- Changelog RSS feed: https://verifymcp.io/servers/co-scorekeeper-scorekeeper/api-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/co-scorekeeper-scorekeeper/api-mcp.json
- HTML version of this page: https://verifymcp.io/servers/co-scorekeeper-scorekeeper/api-mcp
