Scorekeeper

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

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
100%
Integridad del esquema
65%
Calidad de los nombres
98%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~3,776Tokens (definiciones de herramientas)
~3.0 KBTamaño de respuesta típico
Impacto significativo en la atención (2.95% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

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

Puntos de conexión remotos

https://www.scorekeeper.co/api/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (11)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢get_service_info

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.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "publisher": {
      "type": "string"
    },
    "version": {
      "type": "string"
    }
  },
  "required": [
    "name",
    "publisher",
    "version"
  ],
  "additionalProperties": true,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_account

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.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡create_checkout(requestId, offerId, months)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "requestId": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{8,128}$"
    },
    "offerId": {
      "type": "string",
      "enum": [
        "pro_week",
        "pro",
        "studio",
        "pro_annual",
        "studio_annual"
      ]
    },
    "months": {
      "type": "integer",
      "minimum": 1,
      "maximum": 12
    }
  },
  "required": [
    "requestId",
    "offerId"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "offerId": {
      "type": "string",
      "enum": [
        "pro_week",
        "pro",
        "studio",
        "pro_annual",
        "studio_annual"
      ]
    },
    "months": {
      "type": "integer"
    },
    "amountCents": {
      "type": "integer"
    },
    "currency": {
      "type": "string",
      "const": "USD"
    },
    "checkoutUrl": {
      "type": [
        "string",
        "null"
      ]
    },
    "checkoutStatus": {
      "type": "string",
      "enum": [
        "creating",
        "open",
        "complete",
        "expired"
      ]
    },
    "paymentStatus": {
      "type": "string",
      "enum": [
        "pending",
        "unpaid",
        "paid",
        "no_payment_required"
      ]
    },
    "fulfillmentStatus": {
      "type": "string",
      "enum": [
        "pending",
        "fulfilled"
      ]
    }
  },
  "required": [
    "id",
    "offerId",
    "months",
    "amountCents",
    "currency",
    "checkoutUrl",
    "checkoutStatus",
    "paymentStatus",
    "fulfillmentStatus"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_checkout(id)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "offerId": {
      "type": "string",
      "enum": [
        "pro_week",
        "pro",
        "studio",
        "pro_annual",
        "studio_annual"
      ]
    },
    "months": {
      "type": "integer"
    },
    "amountCents": {
      "type": "integer"
    },
    "currency": {
      "type": "string",
      "const": "USD"
    },
    "checkoutUrl": {
      "type": [
        "string",
        "null"
      ]
    },
    "checkoutStatus": {
      "type": "string",
      "enum": [
        "creating",
        "open",
        "complete",
        "expired"
      ]
    },
    "paymentStatus": {
      "type": "string",
      "enum": [
        "pending",
        "unpaid",
        "paid",
        "no_payment_required"
      ]
    },
    "fulfillmentStatus": {
      "type": "string",
      "enum": [
        "pending",
        "fulfilled"
      ]
    }
  },
  "required": [
    "id",
    "offerId",
    "months",
    "amountCents",
    "currency",
    "checkoutUrl",
    "checkoutStatus",
    "paymentStatus",
    "fulfillmentStatus"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡create_payment_order(requestId, offerId, months)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "requestId": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{8,128}$"
    },
    "offerId": {
      "type": "string",
      "enum": [
        "pro_week",
        "pro",
        "studio"
      ]
    },
    "months": {
      "type": "integer",
      "minimum": 1,
      "maximum": 12
    }
  },
  "required": [
    "requestId",
    "offerId"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "offerId": {
      "type": "string",
      "enum": [
        "pro_week",
        "pro",
        "studio"
      ]
    },
    "months": {
      "type": "integer"
    },
    "amountCents": {
      "type": "integer"
    },
    "currency": {
      "type": "string",
      "const": "USD"
    },
    "reference": {
      "type": "string",
      "pattern": "^SK[A-F0-9]{20}$"
    },
    "createdAt": {
      "type": "number"
    },
    "expiresAt": {
      "type": "number"
    },
    "paymentStatus": {
      "type": "string",
      "enum": [
        "pending",
        "received",
        "reversed",
        "review_required"
      ]
    },
    "fulfillmentStatus": {
      "type": "string",
      "enum": [
        "pending",
        "fulfilled",
        "review_required"
      ]
    },
    "orderStatus": {
      "type": "string",
      "enum": [
        "open",
        "expired",
        "fulfilled",
        "review_required"
      ]
    },
    "nextAction": {
      "type": "string",
      "enum": [
        "pay_with_stripe_cli",
        "check_status",
        "contact_support",
        "expired",
        "complete"
      ]
    },
    "pollAfterSeconds": {
      "type": "integer"
    },
    "accessExpiresAt": {
      "type": [
        "number",
        "null"
      ]
    },
    "instructions": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "recipient": {
              "type": "string",
              "const": "@scorekeeper"
            },
            "amount": {
              "type": "string"
            },
            "currency": {
              "type": "string",
              "const": "usd"
            },
            "memo": {
              "type": "string"
            },
            "flags": {
              "type": "array",
              "items": {
                "type": "string",
                "const": "--agent"
              }
            }
          },
          "required": [
            "recipient",
            "amount",
            "currency",
            "memo",
            "flags"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "id",
    "offerId",
    "months",
    "amountCents",
    "currency",
    "reference",
    "createdAt",
    "expiresAt",
    "paymentStatus",
    "fulfillmentStatus",
    "orderStatus",
    "nextAction",
    "pollAfterSeconds",
    "accessExpiresAt",
    "instructions"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡get_payment_order(id)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "offerId": {
      "type": "string",
      "enum": [
        "pro_week",
        "pro",
        "studio"
      ]
    },
    "months": {
      "type": "integer"
    },
    "amountCents": {
      "type": "integer"
    },
    "currency": {
      "type": "string",
      "const": "USD"
    },
    "reference": {
      "type": "string",
      "pattern": "^SK[A-F0-9]{20}$"
    },
    "createdAt": {
      "type": "number"
    },
    "expiresAt": {
      "type": "number"
    },
    "paymentStatus": {
      "type": "string",
      "enum": [
        "pending",
        "received",
        "reversed",
        "review_required"
      ]
    },
    "fulfillmentStatus": {
      "type": "string",
      "enum": [
        "pending",
        "fulfilled",
        "review_required"
      ]
    },
    "orderStatus": {
      "type": "string",
      "enum": [
        "open",
        "expired",
        "fulfilled",
        "review_required"
      ]
    },
    "nextAction": {
      "type": "string",
      "enum": [
        "pay_with_stripe_cli",
        "check_status",
        "contact_support",
        "expired",
        "complete"
      ]
    },
    "pollAfterSeconds": {
      "type": "integer"
    },
    "accessExpiresAt": {
      "type": [
        "number",
        "null"
      ]
    },
    "instructions": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "recipient": {
              "type": "string",
              "const": "@scorekeeper"
            },
            "amount": {
              "type": "string"
            },
            "currency": {
              "type": "string",
              "const": "usd"
            },
            "memo": {
              "type": "string"
            },
            "flags": {
              "type": "array",
              "items": {
                "type": "string",
                "const": "--agent"
              }
            }
          },
          "required": [
            "recipient",
            "amount",
            "currency",
            "memo",
            "flags"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "id",
    "offerId",
    "months",
    "amountCents",
    "currency",
    "reference",
    "createdAt",
    "expiresAt",
    "paymentStatus",
    "fulfillmentStatus",
    "orderStatus",
    "nextAction",
    "pollAfterSeconds",
    "accessExpiresAt",
    "instructions"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡create_scoreboard(requestId, title, teams)

Create a public, shareable two-team scoreboard at zero. Requires explicit user intent to create; title and team names are public. Free boards allow 50 total spectator views and show branding. Retry the identical requestId and input after a timeout.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "requestId": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{8,128}$"
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "teams": {
      "type": "array",
      "minItems": 2,
      "maxItems": 2,
      "items": [
        {
          "type": "object",
          "properties": {
            "name": {
              "$ref": "#/properties/title"
            }
          },
          "required": [
            "name"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "name": {
              "$ref": "#/properties/title"
            }
          },
          "required": [
            "name"
          ],
          "additionalProperties": false
        }
      ]
    }
  },
  "required": [
    "requestId",
    "title",
    "teams"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "teams": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "score": {
            "type": "number"
          }
        },
        "required": [
          "id",
          "name",
          "score"
        ],
        "additionalProperties": false
      }
    },
    "revision": {
      "type": "string"
    },
    "links": {
      "type": "object",
      "properties": {
        "spectator": {
          "type": "string"
        },
        "manage": {
          "type": [
            "string",
            "null"
          ]
        },
        "overlay": {
          "type": "string"
        }
      },
      "required": [
        "spectator",
        "manage",
        "overlay"
      ],
      "additionalProperties": false
    },
    "limits": {
      "type": "object",
      "properties": {
        "spectatorViews": {
          "type": [
            "number",
            "null"
          ]
        },
        "watermark": {
          "type": "boolean"
        }
      },
      "required": [
        "spectatorViews",
        "watermark"
      ],
      "additionalProperties": false
    },
    "capabilities": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "id",
    "title",
    "teams",
    "revision",
    "links",
    "limits",
    "capabilities"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_scoreboard(id)

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

Esquema de entrada

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{1,128}$"
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "teams": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "score": {
            "type": "number"
          }
        },
        "required": [
          "id",
          "name",
          "score"
        ],
        "additionalProperties": false
      }
    },
    "revision": {
      "type": "string"
    },
    "links": {
      "type": "object",
      "properties": {
        "spectator": {
          "type": "string"
        },
        "manage": {
          "type": [
            "string",
            "null"
          ]
        },
        "overlay": {
          "type": "string"
        }
      },
      "required": [
        "spectator",
        "manage",
        "overlay"
      ],
      "additionalProperties": false
    },
    "limits": {
      "type": "object",
      "properties": {
        "spectatorViews": {
          "type": [
            "number",
            "null"
          ]
        },
        "watermark": {
          "type": "boolean"
        }
      },
      "required": [
        "spectatorViews",
        "watermark"
      ],
      "additionalProperties": false
    },
    "capabilities": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "id",
    "title",
    "teams",
    "revision",
    "links",
    "limits",
    "capabilities"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_scoreboards(cursor, limit)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "cursor": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{1,128}$"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "scoreboards": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "teams": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "score": {
                  "type": "number"
                }
              },
              "required": [
                "id",
                "name",
                "score"
              ],
              "additionalProperties": false
            }
          },
          "revision": {
            "type": "string"
          },
          "links": {
            "type": "object",
            "properties": {
              "spectator": {
                "type": "string"
              },
              "manage": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "overlay": {
                "type": "string"
              }
            },
            "required": [
              "spectator",
              "manage",
              "overlay"
            ],
            "additionalProperties": false
          },
          "limits": {
            "type": "object",
            "properties": {
              "spectatorViews": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "watermark": {
                "type": "boolean"
              }
            },
            "required": [
              "spectatorViews",
              "watermark"
            ],
            "additionalProperties": false
          },
          "capabilities": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "id",
          "title",
          "teams",
          "revision",
          "links",
          "limits",
          "capabilities"
        ],
        "additionalProperties": false
      }
    },
    "nextCursor": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "required": [
    "scoreboards",
    "nextCursor"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴update_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.

Esquema de entrada

{
  "type": "object",
  "properties": {}
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "teams": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "score": {
            "type": "number"
          }
        },
        "required": [
          "id",
          "name",
          "score"
        ],
        "additionalProperties": false
      }
    },
    "revision": {
      "type": "string"
    },
    "links": {
      "type": "object",
      "properties": {
        "spectator": {
          "type": "string"
        },
        "manage": {
          "type": [
            "string",
            "null"
          ]
        },
        "overlay": {
          "type": "string"
        }
      },
      "required": [
        "spectator",
        "manage",
        "overlay"
      ],
      "additionalProperties": false
    },
    "limits": {
      "type": "object",
      "properties": {
        "spectatorViews": {
          "type": [
            "number",
            "null"
          ]
        },
        "watermark": {
          "type": "boolean"
        }
      },
      "required": [
        "spectatorViews",
        "watermark"
      ],
      "additionalProperties": false
    },
    "capabilities": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "id",
    "title",
    "teams",
    "revision",
    "links",
    "limits",
    "capabilities"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪hand_off_scoreboard(id, requestId)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{1,128}$"
    },
    "requestId": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{8,128}$"
    }
  },
  "required": [
    "id",
    "requestId"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string"
    },
    "expiresAt": {
      "type": [
        "number",
        "null"
      ]
    },
    "transfersOwnership": {
      "type": "boolean"
    }
  },
  "required": [
    "url",
    "expiresAt",
    "transfersOwnership"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada11 herramientas