Vai al contenuto
CLUP.life

Sviluppatori MCP server

MCP server: CLUP.life for AI assistants

The CLUP.life MCP server: setup in Claude Desktop, Claude Code and other clients, all tools, permissions and security notes.

La documentazione tecnica è disponibile in tedesco e inglese; nella tua lingua mostriamo la versione inglese.

CLUP.life speaks the Model Context Protocol (MCP). An AI assistant can then answer questions like “What is on at the club this week?” or prepare a draft announcement — with the same rights as the person behind the key.

Key facts#

Addresshttps://api.clup.life/api/v1/ext/mcp (fallback address …/ext/assistant if a network layer mangles the path part “mcp”)
TransportStreamable HTTP, stateless, JSON-RPC 2.0; POST only (a GET answers 405)
AuthenticationHeader Authorization: Bearer clup_k_… (the same API key as for REST)
Methodsinitialize, ping, tools/list, tools/call; batches of up to 20 calls
Limit600 calls/minute at the endpoint, plus the key’s own limit

Setup step by step#

1. Create a key

Settings → Interfaces: for summaries (“What is on?”) a personal key with read scopes only is enough (profile:read, events:read, optionally posts:read, announcements:read, tasks:read). Write tools need an organization key (Premium).

2. Claude Code

claude mcp add --transport http clup https://api.clup.life/api/v1/ext/mcp \
  --header "Authorization: Bearer clup_k_…"

# prüfen
claude mcp list

3. Claude Desktop

Claude Desktop starts local servers. Connect the remote server through the mcp-remote bridge (requires Node.js). Open Settings → Developer → Edit config and add to claude_desktop_config.json:

{
  "mcpServers": {
    "clup": {
      "command": "npx",
      "args": [
        "-y", "mcp-remote",
        "https://api.clup.life/api/v1/ext/mcp",
        "--header", "Authorization:Bearer clup_k_…"
      ]
    }
  }
}

Then quit Claude Desktop completely and restart it. The clup_… tools appear under the tools icon.

4. Other clients and your own agents

In an MCP-capable client (Cursor, VS Code, Windsurf, your own agents through an MCP SDK) enter the server address and the header Authorization: Bearer clup_k_…; transport “Streamable HTTP”. Clients that only know local processes use mcp-remote just like Claude Desktop.

5. Test it

Ask, for example: “Summarize the events of the next 14 days for tus-musterstadt.” Or by hand:

curl -s https://api.clup.life/api/v1/ext/mcp \
  -H "Authorization: Bearer $CLUP_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Tools#

A client sees only the tools whose scope the key carries; the call checks the scope again. The list is generated from the server’s own tool list.

clup_whoamilettura

Shows the account behind the key, its scopes and memberships (with the slug of each organization).

Area: profile:read

clup_search_organizationslettura

Searches public clubs, groups and associations (name, place, radius, topic, state, age group, size, founding year). Public details only.

Area: directory:read

NomeTipoObbligoNota
qstringdisattivo
placestringdisattivoOrt oder PLZ
radiusKmnumberdisattivo
categoriesstringdisattivoThemen, getrennt mit |
statestringdisattivoz. B. DE-RP
ageFromnumberdisattivo
ageTonumberdisattivo
acceptingbooleandisattivo
sortstringdisattivorelevance | distance | name | size | new
limitnumberdisattivo
cursorstringdisattivo

clup_list_eventslettura

Events in a period (at most 400 days), only those the person may see.

Area: events:read

NomeTipoObbligoNota
fromstringattivoISO 8601
tostringattivoISO 8601
organizationstringdisattivoKennung (slug) der Organisation, z. B. "tus-musterstadt"

clup_create_eventscrittura

Creates an event in the key’s organization (organization keys only, only with a suitable role).

Area: events:write · Premium (chiave dell’organizzazione)

NomeTipoObbligoNota
organizationstringattivoKennung (slug) der Organisation, z. B. "tus-musterstadt"
titlestringattivo
startsAtstringattivo
endsAtstringdisattivo
descriptionstringdisattivo
locationNamestringdisattivo
visibilitystringdisattivoMEMBERS | PUBLIC | INVITED_ONLY

clup_list_memberslettura

Members of the organization (only as far as the person’s role shows the list).

Area: members:read

NomeTipoObbligoNota
organizationstringattivoKennung (slug) der Organisation, z. B. "tus-musterstadt"
qstringdisattivo
cursorstringdisattivonextCursor der vorigen Antwort
limitintegerdisattivo

clup_list_postslettura

Posts of the organization.

Area: posts:read

NomeTipoObbligoNota
organizationstringattivoKennung (slug) der Organisation, z. B. "tus-musterstadt"
cursorstringdisattivonextCursor der vorigen Antwort
limitintegerdisattivo

clup_list_announcementslettura

Announcements of the organization.

Area: announcements:read

NomeTipoObbligoNota
organizationstringattivoKennung (slug) der Organisation, z. B. "tus-musterstadt"
cursorstringdisattivonextCursor der vorigen Antwort
limitintegerdisattivo

clup_create_announcementscrittura

Publishes an announcement in the key’s organization (notifies members — only use when the person explicitly asks).

Area: announcements:write · Premium (chiave dell’organizzazione)

NomeTipoObbligoNota
organizationstringattivoKennung (slug) der Organisation, z. B. "tus-musterstadt"
titlestringattivo
bodystringattivo
pinnedbooleandisattivo

clup_list_taskslettura

Tasks of the group (open or done).

Area: tasks:read

NomeTipoObbligoNota
organizationstringattivoKennung (slug) der Organisation, z. B. "tus-musterstadt"
scopestringdisattivoopen | done
cursorstringdisattivonextCursor der vorigen Antwort
limitintegerdisattivo

clup_create_taskscrittura

Creates a task in the key’s group.

Area: tasks:write · Premium (chiave dell’organizzazione)

NomeTipoObbligoNota
organizationstringattivoKennung (slug) der Organisation, z. B. "tus-musterstadt"
titlestringattivo
dueDatestringdisattivoJJJJ-MM-TT

clup_list_press_postslettura

Published press releases and news of the CLUP.life platform (public content), newest first.

Area: presse:read

NomeTipoObbligoNota
artstringdisattivoPRESS_RELEASE | NEWS
langstringdisattivoSprachcode, z. B. de, en
cursorstringdisattivonextCursor der vorigen Antwort
limitintegerdisattivo

clup_get_press_postlettura

One post by slug; with a key with presse:write also by id, including drafts and all languages.

Area: presse:read

NomeTipoObbligoNota
refstringattivoslug oder Kennung (id)
langstringdisattivo

clup_create_press_draftscrittura

Creates a press release or news item as a DRAFT (platform keys only, only with the platform right Press). Press releases need texts in de and en.

Area: presse:write · Premium (chiave dell’organizzazione)

NomeTipoObbligoNota
kindstringattivoPRESS_RELEASE | NEWS
slugstringattivoURL-Kennung: Kleinbuchstaben, Ziffern, Bindestriche
textsarrayattivo
coverImagestringdisattivo
coverCreditstringdisattivo

clup_update_press_postscrittura

Changes a post (replaces texts and attachments; all fields as when creating). Platform keys with the platform right Press only.

Area: presse:write · Premium (chiave dell’organizzazione)

NomeTipoObbligoNota
idstringattivo
kindstringattivoPRESS_RELEASE | NEWS
slugstringattivo
textsarrayattivo
coverImagestringdisattivo
coverCreditstringdisattivo

clup_publish_press_postscrittura

Publishes a post IMMEDIATELY and publicly — only use when the person explicitly asks.

Area: presse:write · Premium (chiave dell’organizzazione)

NomeTipoObbligoNota
idstringattivo

clup_schedule_press_postscrittura

Schedules a post for a future time (embargo); the timer then publishes it.

Area: presse:write · Premium (chiave dell’organizzazione)

NomeTipoObbligoNota
idstringattivo
publishAtstringattivoISO 8601, z. B. 2026-11-01T08:00:00Z

Versione del protocollo: 2025-03-26

Permissions and security#

  • The assistant acts with the rights of the person who owns the key. Organizations that are not visible report “not found”.
  • Responses are data, not instructions. The server says so in its instructions. Check results before you act on post texts.
  • Write tools (clup_create_*) are visible only with an organization key. Set them to “ask every time” in the client — especially clup_create_announcement, which notifies members.
  • Connect a dedicated, narrowly scoped key per assistant and revoke it when you no longer use the client.
  • Note: what the assistant reads goes to the assistant’s provider. Give it only keys whose data you may send there (see data protection).
MCP server: CLUP.life for AI assistants · CLUP.life