Clubtool.developers
Connectors

Claude connector

Connect a club to Claude (Anthropic's AI assistant) so it can read and manage the club's data in a conversation — "how many active members do we have?", "add this trial signup", "which events are on this week?". It is a Model Context Protocol (MCP) server that sits on top of this REST API, so it uses the exact same scopes — a read-only connection can never write.

The connector lives at one endpoint:

https://app.club-tool.nl/api/v1/mcp

It is available on the Pro plan and speaks JSON-RPC 2.0 over HTTP (the MCP "Streamable HTTP" transport, stateless).

Connect from claude.ai (one click)

For the polished experience, add Club-tool as a custom connector in claude.ai. Claude discovers the OAuth server automatically and walks you through a login and consent screen.

  1. In claude.ai, open Settings → Connectors → Add custom connector.
  2. Paste the connector URL https://app.club-tool.nl/api/v1/mcp.
  3. Claude sends you to Club-tool: sign in as a club administrator and pick the permissions to grant. Two-factor authentication is required.
  4. Approve — you are back in Claude and can start asking about your club.

Manage or revoke connections any time under System → API → Claude connections in the app. Only administrators can connect a club, and write scopes are granted explicitly.

Connect from Claude Desktop or Claude Code (API key)

Power users can point any MCP client that supports a custom Authorization header at the same endpoint, using a normal API key as the bearer token — no OAuth needed.

Claude Code:

claude mcp add --transport http club-tool \
  https://app.club-tool.nl/api/v1/mcp \
  --header "Authorization: Bearer ct_live_…"

Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "club-tool": {
      "type": "http",
      "url": "https://app.club-tool.nl/api/v1/mcp",
      "headers": { "Authorization": "Bearer ct_live_…" }
    }
  }
}

What Claude can do

The connector exposes about 33 tools that mirror this API's resources. The tool list is filtered by the connection's scopes, so Claude only ever sees what it may do. A few examples:

ScopeTools
—get_club
members:readlist_members, get_member
members:writecreate_member, update_member, delete_member
events:read / events:writelist_events, get_event, create_event, …
attendance:writeupsert_attendance
kennismakers:writecreate_kennismaker, update_kennismaker
payments:readlist_charges, get_charge

Tool inputs and outputs use the same field names and shapes as the REST resources documented in the API reference. Bulk operations are intentionally not exposed as tools (Claude issues individual calls). Each tools/call counts once against your rate limit.

Building your own MCP client (OAuth 2.0)

The connector is a standard OAuth 2.0 protected resource. An unauthenticated request answers 401 with a WWW-Authenticate header pointing at the resource metadata:

/.well-known/oauth-protected-resource/api/v1/mcp   # RFC 9728
/.well-known/oauth-authorization-server            # RFC 8414

The resulting access token is used as the Authorization: Bearer on /api/v1/mcp, exactly like an API key.

Data & privacy

The connector serves your club's data to your own Claude client at your request; the club remains the data controller and decides what to connect and which scopes to grant. Only the granted scopes are shared, passwords are never exposed, and the reservation/occupancy data stays id-only (no guest names). See Data & privacy for the full picture.