Programiści 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.
Dokumentacja techniczna jest dostępna po niemiecku i angielsku; w Twoim języku pokazujemy wersję angielską.
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#
| Address | https://api.clup.life/api/v1/ext/mcp (fallback address …/ext/assistant if a network layer mangles the path part “mcp”) |
| Transport | Streamable HTTP, stateless, JSON-RPC 2.0; POST only (a GET answers 405) |
| Authentication | Header Authorization: Bearer clup_k_… (the same API key as for REST) |
| Methods | initialize, ping, tools/list, tools/call; batches of up to 20 calls |
| Limit | 600 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 list3. 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_whoamiodczyt
Shows the account behind the key, its scopes and memberships (with the slug of each organization).
Obszar: profile:read
clup_search_organizationsodczyt
Searches public clubs, groups and associations (name, place, radius, topic, state, age group, size, founding year). Public details only.
Obszar: directory:read
| Imię i nazwisko | Typ | Obowiązek | Notatka |
|---|---|---|---|
q | string | wył. | |
place | string | wył. | Ort oder PLZ |
radiusKm | number | wył. | |
categories | string | wył. | Themen, getrennt mit | |
state | string | wył. | z. B. DE-RP |
ageFrom | number | wył. | |
ageTo | number | wył. | |
accepting | boolean | wył. | |
sort | string | wył. | relevance | distance | name | size | new |
limit | number | wył. | |
cursor | string | wył. |
clup_list_eventsodczyt
Events in a period (at most 400 days), only those the person may see.
Obszar: events:read
| Imię i nazwisko | Typ | Obowiązek | Notatka |
|---|---|---|---|
from | string | wł. | ISO 8601 |
to | string | wł. | ISO 8601 |
organization | string | wył. | Kennung (slug) der Organisation, z. B. "tus-musterstadt" |
clup_create_eventzapis
Creates an event in the key’s organization (organization keys only, only with a suitable role).
Obszar: events:write · Premium (klucz organizacji)
| Imię i nazwisko | Typ | Obowiązek | Notatka |
|---|---|---|---|
organization | string | wł. | Kennung (slug) der Organisation, z. B. "tus-musterstadt" |
title | string | wł. | |
startsAt | string | wł. | |
endsAt | string | wył. | |
description | string | wył. | |
locationName | string | wył. | |
visibility | string | wył. | MEMBERS | PUBLIC | INVITED_ONLY |
clup_list_membersodczyt
Members of the organization (only as far as the person’s role shows the list).
Obszar: members:read
| Imię i nazwisko | Typ | Obowiązek | Notatka |
|---|---|---|---|
organization | string | wł. | Kennung (slug) der Organisation, z. B. "tus-musterstadt" |
q | string | wył. | |
cursor | string | wył. | nextCursor der vorigen Antwort |
limit | integer | wył. |
clup_list_postsodczyt
Posts of the organization.
Obszar: posts:read
| Imię i nazwisko | Typ | Obowiązek | Notatka |
|---|---|---|---|
organization | string | wł. | Kennung (slug) der Organisation, z. B. "tus-musterstadt" |
cursor | string | wył. | nextCursor der vorigen Antwort |
limit | integer | wył. |
clup_list_announcementsodczyt
Announcements of the organization.
Obszar: announcements:read
| Imię i nazwisko | Typ | Obowiązek | Notatka |
|---|---|---|---|
organization | string | wł. | Kennung (slug) der Organisation, z. B. "tus-musterstadt" |
cursor | string | wył. | nextCursor der vorigen Antwort |
limit | integer | wył. |
clup_create_announcementzapis
Publishes an announcement in the key’s organization (notifies members — only use when the person explicitly asks).
Obszar: announcements:write · Premium (klucz organizacji)
| Imię i nazwisko | Typ | Obowiązek | Notatka |
|---|---|---|---|
organization | string | wł. | Kennung (slug) der Organisation, z. B. "tus-musterstadt" |
title | string | wł. | |
body | string | wł. | |
pinned | boolean | wył. |
clup_list_tasksodczyt
Tasks of the group (open or done).
Obszar: tasks:read
| Imię i nazwisko | Typ | Obowiązek | Notatka |
|---|---|---|---|
organization | string | wł. | Kennung (slug) der Organisation, z. B. "tus-musterstadt" |
scope | string | wył. | open | done |
cursor | string | wył. | nextCursor der vorigen Antwort |
limit | integer | wył. |
clup_create_taskzapis
Creates a task in the key’s group.
Obszar: tasks:write · Premium (klucz organizacji)
| Imię i nazwisko | Typ | Obowiązek | Notatka |
|---|---|---|---|
organization | string | wł. | Kennung (slug) der Organisation, z. B. "tus-musterstadt" |
title | string | wł. | |
dueDate | string | wył. | JJJJ-MM-TT |
clup_list_press_postsodczyt
Published press releases and news of the CLUP.life platform (public content), newest first.
Obszar: presse:read
| Imię i nazwisko | Typ | Obowiązek | Notatka |
|---|---|---|---|
art | string | wył. | PRESS_RELEASE | NEWS |
lang | string | wył. | Sprachcode, z. B. de, en |
cursor | string | wył. | nextCursor der vorigen Antwort |
limit | integer | wył. |
clup_get_press_postodczyt
One post by slug; with a key with presse:write also by id, including drafts and all languages.
Obszar: presse:read
| Imię i nazwisko | Typ | Obowiązek | Notatka |
|---|---|---|---|
ref | string | wł. | slug oder Kennung (id) |
lang | string | wył. |
clup_create_press_draftzapis
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.
Obszar: presse:write · Premium (klucz organizacji)
| Imię i nazwisko | Typ | Obowiązek | Notatka |
|---|---|---|---|
kind | string | wł. | PRESS_RELEASE | NEWS |
slug | string | wł. | URL-Kennung: Kleinbuchstaben, Ziffern, Bindestriche |
texts | array | wł. | |
coverImage | string | wył. | |
coverCredit | string | wył. |
clup_update_press_postzapis
Changes a post (replaces texts and attachments; all fields as when creating). Platform keys with the platform right Press only.
Obszar: presse:write · Premium (klucz organizacji)
| Imię i nazwisko | Typ | Obowiązek | Notatka |
|---|---|---|---|
id | string | wł. | |
kind | string | wł. | PRESS_RELEASE | NEWS |
slug | string | wł. | |
texts | array | wł. | |
coverImage | string | wył. | |
coverCredit | string | wył. |
clup_publish_press_postzapis
Publishes a post IMMEDIATELY and publicly — only use when the person explicitly asks.
Obszar: presse:write · Premium (klucz organizacji)
| Imię i nazwisko | Typ | Obowiązek | Notatka |
|---|---|---|---|
id | string | wł. |
clup_schedule_press_postzapis
Schedules a post for a future time (embargo); the timer then publishes it.
Obszar: presse:write · Premium (klucz organizacji)
| Imię i nazwisko | Typ | Obowiązek | Notatka |
|---|---|---|---|
id | string | wł. | |
publishAt | string | wł. | ISO 8601, z. B. 2026-11-01T08:00:00Z |
Wersja protokołu: 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 — especiallyclup_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).
