المطوّرون 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.
الوثائق التقنية متوفرة بالألمانية والإنجليزية؛ نعرض النسخة الإنجليزية بلغتك.
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_whoamiقراءة
Shows the account behind the key, its scopes and memberships (with the slug of each organization).
المجال: profile:read
clup_search_organizationsقراءة
Searches public clubs, groups and associations (name, place, radius, topic, state, age group, size, founding year). Public details only.
المجال: directory:read
| الاسم | النوع | الالتزام | ملاحظة |
|---|---|---|---|
q | string | معطّل | |
place | string | معطّل | Ort oder PLZ |
radiusKm | number | معطّل | |
categories | string | معطّل | Themen, getrennt mit | |
state | string | معطّل | z. B. DE-RP |
ageFrom | number | معطّل | |
ageTo | number | معطّل | |
accepting | boolean | معطّل | |
sort | string | معطّل | relevance | distance | name | size | new |
limit | number | معطّل | |
cursor | string | معطّل |
clup_list_eventsقراءة
Events in a period (at most 400 days), only those the person may see.
المجال: events:read
| الاسم | النوع | الالتزام | ملاحظة |
|---|---|---|---|
from | string | مفعّل | ISO 8601 |
to | string | مفعّل | ISO 8601 |
organization | string | معطّل | Kennung (slug) der Organisation, z. B. "tus-musterstadt" |
clup_create_eventكتابة
Creates an event in the key’s organization (organization keys only, only with a suitable role).
المجال: events:write · Premium (مفتاح المنظمة)
| الاسم | النوع | الالتزام | ملاحظة |
|---|---|---|---|
organization | string | مفعّل | Kennung (slug) der Organisation, z. B. "tus-musterstadt" |
title | string | مفعّل | |
startsAt | string | مفعّل | |
endsAt | string | معطّل | |
description | string | معطّل | |
locationName | string | معطّل | |
visibility | string | معطّل | MEMBERS | PUBLIC | INVITED_ONLY |
clup_list_membersقراءة
Members of the organization (only as far as the person’s role shows the list).
المجال: members:read
| الاسم | النوع | الالتزام | ملاحظة |
|---|---|---|---|
organization | string | مفعّل | Kennung (slug) der Organisation, z. B. "tus-musterstadt" |
q | string | معطّل | |
cursor | string | معطّل | nextCursor der vorigen Antwort |
limit | integer | معطّل |
clup_list_postsقراءة
Posts of the organization.
المجال: posts:read
| الاسم | النوع | الالتزام | ملاحظة |
|---|---|---|---|
organization | string | مفعّل | Kennung (slug) der Organisation, z. B. "tus-musterstadt" |
cursor | string | معطّل | nextCursor der vorigen Antwort |
limit | integer | معطّل |
clup_list_announcementsقراءة
Announcements of the organization.
المجال: announcements:read
| الاسم | النوع | الالتزام | ملاحظة |
|---|---|---|---|
organization | string | مفعّل | Kennung (slug) der Organisation, z. B. "tus-musterstadt" |
cursor | string | معطّل | nextCursor der vorigen Antwort |
limit | integer | معطّل |
clup_create_announcementكتابة
Publishes an announcement in the key’s organization (notifies members — only use when the person explicitly asks).
المجال: announcements:write · Premium (مفتاح المنظمة)
| الاسم | النوع | الالتزام | ملاحظة |
|---|---|---|---|
organization | string | مفعّل | Kennung (slug) der Organisation, z. B. "tus-musterstadt" |
title | string | مفعّل | |
body | string | مفعّل | |
pinned | boolean | معطّل |
clup_list_tasksقراءة
Tasks of the group (open or done).
المجال: tasks:read
| الاسم | النوع | الالتزام | ملاحظة |
|---|---|---|---|
organization | string | مفعّل | Kennung (slug) der Organisation, z. B. "tus-musterstadt" |
scope | string | معطّل | open | done |
cursor | string | معطّل | nextCursor der vorigen Antwort |
limit | integer | معطّل |
clup_create_taskكتابة
Creates a task in the key’s group.
المجال: tasks:write · Premium (مفتاح المنظمة)
| الاسم | النوع | الالتزام | ملاحظة |
|---|---|---|---|
organization | string | مفعّل | Kennung (slug) der Organisation, z. B. "tus-musterstadt" |
title | string | مفعّل | |
dueDate | string | معطّل | JJJJ-MM-TT |
clup_list_press_postsقراءة
Published press releases and news of the CLUP.life platform (public content), newest first.
المجال: presse:read
| الاسم | النوع | الالتزام | ملاحظة |
|---|---|---|---|
art | string | معطّل | PRESS_RELEASE | NEWS |
lang | string | معطّل | Sprachcode, z. B. de, en |
cursor | string | معطّل | nextCursor der vorigen Antwort |
limit | integer | معطّل |
clup_get_press_postقراءة
One post by slug; with a key with presse:write also by id, including drafts and all languages.
المجال: presse:read
| الاسم | النوع | الالتزام | ملاحظة |
|---|---|---|---|
ref | string | مفعّل | slug oder Kennung (id) |
lang | string | معطّل |
clup_create_press_draftكتابة
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.
المجال: presse:write · Premium (مفتاح المنظمة)
| الاسم | النوع | الالتزام | ملاحظة |
|---|---|---|---|
kind | string | مفعّل | PRESS_RELEASE | NEWS |
slug | string | مفعّل | URL-Kennung: Kleinbuchstaben, Ziffern, Bindestriche |
texts | array | مفعّل | |
coverImage | string | معطّل | |
coverCredit | string | معطّل |
clup_update_press_postكتابة
Changes a post (replaces texts and attachments; all fields as when creating). Platform keys with the platform right Press only.
المجال: presse:write · Premium (مفتاح المنظمة)
| الاسم | النوع | الالتزام | ملاحظة |
|---|---|---|---|
id | string | مفعّل | |
kind | string | مفعّل | PRESS_RELEASE | NEWS |
slug | string | مفعّل | |
texts | array | مفعّل | |
coverImage | string | معطّل | |
coverCredit | string | معطّل |
clup_publish_press_postكتابة
Publishes a post IMMEDIATELY and publicly — only use when the person explicitly asks.
المجال: presse:write · Premium (مفتاح المنظمة)
| الاسم | النوع | الالتزام | ملاحظة |
|---|---|---|---|
id | string | مفعّل |
clup_schedule_press_postكتابة
Schedules a post for a future time (embargo); the timer then publishes it.
المجال: presse:write · Premium (مفتاح المنظمة)
| الاسم | النوع | الالتزام | ملاحظة |
|---|---|---|---|
id | string | مفعّل | |
publishAt | string | مفعّل | ISO 8601, z. B. 2026-11-01T08:00:00Z |
إصدار البروتوكول: 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).
