Geliştiriciler 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.
Teknik belgeler Almanca ve İngilizce sunulur; dilinizde İngilizce sürümü gösteriyoruz.
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_whoamiokuma
Shows the account behind the key, its scopes and memberships (with the slug of each organization).
Alan: profile:read
clup_search_organizationsokuma
Searches public clubs, groups and associations (name, place, radius, topic, state, age group, size, founding year). Public details only.
Alan: directory:read
| Ad | Tür | Yükümlülük | Not |
|---|---|---|---|
q | string | kapalı | |
place | string | kapalı | Ort oder PLZ |
radiusKm | number | kapalı | |
categories | string | kapalı | Themen, getrennt mit | |
state | string | kapalı | z. B. DE-RP |
ageFrom | number | kapalı | |
ageTo | number | kapalı | |
accepting | boolean | kapalı | |
sort | string | kapalı | relevance | distance | name | size | new |
limit | number | kapalı | |
cursor | string | kapalı |
clup_list_eventsokuma
Events in a period (at most 400 days), only those the person may see.
Alan: events:read
| Ad | Tür | Yükümlülük | Not |
|---|---|---|---|
from | string | açık | ISO 8601 |
to | string | açık | ISO 8601 |
organization | string | kapalı | Kennung (slug) der Organisation, z. B. "tus-musterstadt" |
clup_create_eventyazma
Creates an event in the key’s organization (organization keys only, only with a suitable role).
Alan: events:write · Premium (kuruluş anahtarı)
| Ad | Tür | Yükümlülük | Not |
|---|---|---|---|
organization | string | açık | Kennung (slug) der Organisation, z. B. "tus-musterstadt" |
title | string | açık | |
startsAt | string | açık | |
endsAt | string | kapalı | |
description | string | kapalı | |
locationName | string | kapalı | |
visibility | string | kapalı | MEMBERS | PUBLIC | INVITED_ONLY |
clup_list_membersokuma
Members of the organization (only as far as the person’s role shows the list).
Alan: members:read
| Ad | Tür | Yükümlülük | Not |
|---|---|---|---|
organization | string | açık | Kennung (slug) der Organisation, z. B. "tus-musterstadt" |
q | string | kapalı | |
cursor | string | kapalı | nextCursor der vorigen Antwort |
limit | integer | kapalı |
clup_list_postsokuma
Posts of the organization.
Alan: posts:read
| Ad | Tür | Yükümlülük | Not |
|---|---|---|---|
organization | string | açık | Kennung (slug) der Organisation, z. B. "tus-musterstadt" |
cursor | string | kapalı | nextCursor der vorigen Antwort |
limit | integer | kapalı |
clup_list_announcementsokuma
Announcements of the organization.
Alan: announcements:read
| Ad | Tür | Yükümlülük | Not |
|---|---|---|---|
organization | string | açık | Kennung (slug) der Organisation, z. B. "tus-musterstadt" |
cursor | string | kapalı | nextCursor der vorigen Antwort |
limit | integer | kapalı |
clup_create_announcementyazma
Publishes an announcement in the key’s organization (notifies members — only use when the person explicitly asks).
Alan: announcements:write · Premium (kuruluş anahtarı)
| Ad | Tür | Yükümlülük | Not |
|---|---|---|---|
organization | string | açık | Kennung (slug) der Organisation, z. B. "tus-musterstadt" |
title | string | açık | |
body | string | açık | |
pinned | boolean | kapalı |
clup_list_tasksokuma
Tasks of the group (open or done).
Alan: tasks:read
| Ad | Tür | Yükümlülük | Not |
|---|---|---|---|
organization | string | açık | Kennung (slug) der Organisation, z. B. "tus-musterstadt" |
scope | string | kapalı | open | done |
cursor | string | kapalı | nextCursor der vorigen Antwort |
limit | integer | kapalı |
clup_create_taskyazma
Creates a task in the key’s group.
Alan: tasks:write · Premium (kuruluş anahtarı)
| Ad | Tür | Yükümlülük | Not |
|---|---|---|---|
organization | string | açık | Kennung (slug) der Organisation, z. B. "tus-musterstadt" |
title | string | açık | |
dueDate | string | kapalı | JJJJ-MM-TT |
clup_list_press_postsokuma
Published press releases and news of the CLUP.life platform (public content), newest first.
Alan: presse:read
| Ad | Tür | Yükümlülük | Not |
|---|---|---|---|
art | string | kapalı | PRESS_RELEASE | NEWS |
lang | string | kapalı | Sprachcode, z. B. de, en |
cursor | string | kapalı | nextCursor der vorigen Antwort |
limit | integer | kapalı |
clup_get_press_postokuma
One post by slug; with a key with presse:write also by id, including drafts and all languages.
Alan: presse:read
| Ad | Tür | Yükümlülük | Not |
|---|---|---|---|
ref | string | açık | slug oder Kennung (id) |
lang | string | kapalı |
clup_create_press_draftyazma
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.
Alan: presse:write · Premium (kuruluş anahtarı)
| Ad | Tür | Yükümlülük | Not |
|---|---|---|---|
kind | string | açık | PRESS_RELEASE | NEWS |
slug | string | açık | URL-Kennung: Kleinbuchstaben, Ziffern, Bindestriche |
texts | array | açık | |
coverImage | string | kapalı | |
coverCredit | string | kapalı |
clup_update_press_postyazma
Changes a post (replaces texts and attachments; all fields as when creating). Platform keys with the platform right Press only.
Alan: presse:write · Premium (kuruluş anahtarı)
| Ad | Tür | Yükümlülük | Not |
|---|---|---|---|
id | string | açık | |
kind | string | açık | PRESS_RELEASE | NEWS |
slug | string | açık | |
texts | array | açık | |
coverImage | string | kapalı | |
coverCredit | string | kapalı |
clup_publish_press_postyazma
Publishes a post IMMEDIATELY and publicly — only use when the person explicitly asks.
Alan: presse:write · Premium (kuruluş anahtarı)
| Ad | Tür | Yükümlülük | Not |
|---|---|---|---|
id | string | açık |
clup_schedule_press_postyazma
Schedules a post for a future time (embargo); the timer then publishes it.
Alan: presse:write · Premium (kuruluş anahtarı)
| Ad | Tür | Yükümlülük | Not |
|---|---|---|---|
id | string | açık | |
publishAt | string | açık | ISO 8601, z. B. 2026-11-01T08:00:00Z |
Protokol sürümü: 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).
