Entwickler MCP-Server
MCP-Server: CLUP.life für KI-Assistenten
Der MCP-Server von CLUP.life: Einrichtung in Claude Desktop, Claude Code und anderen Clients, alle Werkzeuge, Berechtigungen und Sicherheitshinweise.
CLUP.life spricht das Model Context Protocol (MCP). Damit kann ein KI-Assistent Fragen wie „Was steht diese Woche im Verein an?“ beantworten oder den Entwurf einer Mitteilung vorbereiten — mit denselben Rechten wie die Person hinter dem Schlüssel.
Eckdaten#
| Adresse | https://api.clup.life/api/v1/ext/mcp (Ausweichadresse …/ext/assistant, falls eine Netzwerkschicht den Pfadteil „mcp“ verfälscht) |
| Transport | Streamable HTTP, zustandslos, JSON-RPC 2.0; nur POST (ein GET antwortet 405) |
| Anmeldung | Kopf Authorization: Bearer clup_k_… (derselbe API-Schlüssel wie bei REST) |
| Methoden | initialize, ping, tools/list, tools/call; Stapel bis 20 Aufrufe |
| Limit | 600 Aufrufe/Minute am Endpunkt, zusätzlich das Limit des Schlüssels |
Einrichtung Schritt für Schritt#
1. Schlüssel anlegen
Einstellungen → Schnittstellen: Für Zusammenfassungen („Was steht an?“) genügt ein Personenschlüssel nur mit lesenden Bereichen (profile:read, events:read, optional posts:read, announcements:read, tasks:read). Schreibende Werkzeuge brauchen einen Organisationsschlüssel (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 startet lokale Server. Verbinde den entfernten Server über die Brücke mcp-remote (benötigt Node.js). Öffne Einstellungen → Entwickler → Konfiguration bearbeiten und ergänze 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_…"
]
}
}
}Claude Desktop danach vollständig beenden und neu starten. Unter dem Werkzeug-Symbol erscheinen die clup_…-Werkzeuge.
4. Andere Clients und eigene Agenten
Trage in einem MCP-fähigen Client (Cursor, VS Code, Windsurf, eigene Agenten über ein MCP-SDK) die Server-Adresse und den Kopf Authorization: Bearer clup_k_… ein; Transport „Streamable HTTP“. Clients, die nur lokale Prozesse kennen, nutzen wie Claude Desktop mcp-remote.
5. Testen
Frage zum Beispiel: „Fasse die Termine der nächsten 14 Tage für tus-musterstadt zusammen.“ Oder per 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"}'Werkzeuge#
Ein Client sieht nur die Werkzeuge, deren Bereich der Schlüssel trägt; der Aufruf prüft den Bereich noch einmal. Die Liste wird aus der Werkzeugliste des Servers erzeugt.
clup_whoamilesend
Zeigt das Konto hinter dem Schlüssel, seine Bereiche und die Mitgliedschaften (mit slug der Organisationen).
Bereich: profile:read
clup_search_organizationslesend
Sucht öffentliche Vereine, Gruppen und Verbände (Name, Ort, Umkreis, Thema, Bundesland, Altersgruppe, Größe, Gründungsjahr). Nur öffentliche Angaben.
Bereich: directory:read
| Name | Typ | Pflicht | Hinweis |
|---|---|---|---|
q | string | nein | |
place | string | nein | Ort oder PLZ |
radiusKm | number | nein | |
categories | string | nein | Themen, getrennt mit | |
state | string | nein | z. B. DE-RP |
ageFrom | number | nein | |
ageTo | number | nein | |
accepting | boolean | nein | |
sort | string | nein | relevance | distance | name | size | new |
limit | number | nein | |
cursor | string | nein |
clup_list_eventslesend
Termine in einem Zeitraum (höchstens 400 Tage), nur solche, die die Person sehen darf.
Bereich: events:read
| Name | Typ | Pflicht | Hinweis |
|---|---|---|---|
from | string | ja | ISO 8601 |
to | string | ja | ISO 8601 |
organization | string | nein | Kennung (slug) der Organisation, z. B. "tus-musterstadt" |
clup_create_eventschreibend
Legt einen Termin in der Organisation des Schlüssels an (nur Schlüssel einer Organisation, nur mit passender Rolle).
Bereich: events:write · Premium (Organisationsschlüssel)
| Name | Typ | Pflicht | Hinweis |
|---|---|---|---|
organization | string | ja | Kennung (slug) der Organisation, z. B. "tus-musterstadt" |
title | string | ja | |
startsAt | string | ja | |
endsAt | string | nein | |
description | string | nein | |
locationName | string | nein | |
visibility | string | nein | MEMBERS | PUBLIC | INVITED_ONLY |
clup_list_memberslesend
Mitglieder der Organisation (nur soweit die Rolle der Person die Liste zeigt).
Bereich: members:read
| Name | Typ | Pflicht | Hinweis |
|---|---|---|---|
organization | string | ja | Kennung (slug) der Organisation, z. B. "tus-musterstadt" |
q | string | nein | |
cursor | string | nein | nextCursor der vorigen Antwort |
limit | integer | nein |
clup_list_postslesend
Beiträge der Organisation.
Bereich: posts:read
| Name | Typ | Pflicht | Hinweis |
|---|---|---|---|
organization | string | ja | Kennung (slug) der Organisation, z. B. "tus-musterstadt" |
cursor | string | nein | nextCursor der vorigen Antwort |
limit | integer | nein |
clup_list_announcementslesend
Mitteilungen (Ankündigungen) der Organisation.
Bereich: announcements:read
| Name | Typ | Pflicht | Hinweis |
|---|---|---|---|
organization | string | ja | Kennung (slug) der Organisation, z. B. "tus-musterstadt" |
cursor | string | nein | nextCursor der vorigen Antwort |
limit | integer | nein |
clup_create_announcementschreibend
Veröffentlicht eine Mitteilung in der Organisation des Schlüssels (benachrichtigt Mitglieder — nur auf ausdrücklichen Wunsch der Person verwenden).
Bereich: announcements:write · Premium (Organisationsschlüssel)
| Name | Typ | Pflicht | Hinweis |
|---|---|---|---|
organization | string | ja | Kennung (slug) der Organisation, z. B. "tus-musterstadt" |
title | string | ja | |
body | string | ja | |
pinned | boolean | nein |
clup_list_taskslesend
Aufgaben der Gruppe (offen oder erledigt).
Bereich: tasks:read
| Name | Typ | Pflicht | Hinweis |
|---|---|---|---|
organization | string | ja | Kennung (slug) der Organisation, z. B. "tus-musterstadt" |
scope | string | nein | open | done |
cursor | string | nein | nextCursor der vorigen Antwort |
limit | integer | nein |
clup_create_taskschreibend
Legt eine Aufgabe in der Gruppe des Schlüssels an.
Bereich: tasks:write · Premium (Organisationsschlüssel)
| Name | Typ | Pflicht | Hinweis |
|---|---|---|---|
organization | string | ja | Kennung (slug) der Organisation, z. B. "tus-musterstadt" |
title | string | ja | |
dueDate | string | nein | JJJJ-MM-TT |
clup_list_press_postslesend
Veröffentlichte Pressemeldungen und News der CLUP.life-Plattform (öffentliche Inhalte), neueste zuerst.
Bereich: presse:read
| Name | Typ | Pflicht | Hinweis |
|---|---|---|---|
art | string | nein | PRESS_RELEASE | NEWS |
lang | string | nein | Sprachcode, z. B. de, en |
cursor | string | nein | nextCursor der vorigen Antwort |
limit | integer | nein |
clup_get_press_postlesend
Ein Beitrag per slug; mit Schlüssel mit presse:write auch per Kennung (id) inklusive Entwurf und aller Sprachen.
Bereich: presse:read
| Name | Typ | Pflicht | Hinweis |
|---|---|---|---|
ref | string | ja | slug oder Kennung (id) |
lang | string | nein |
clup_create_press_draftschreibend
Legt eine Pressemeldung oder News als ENTWURF an (nur Plattform-Schlüssel, nur mit Plattformrecht Presse). Pressemeldungen brauchen Texte in de und en.
Bereich: presse:write · Premium (Organisationsschlüssel)
| Name | Typ | Pflicht | Hinweis |
|---|---|---|---|
kind | string | ja | PRESS_RELEASE | NEWS |
slug | string | ja | URL-Kennung: Kleinbuchstaben, Ziffern, Bindestriche |
texts | array | ja | |
coverImage | string | nein | |
coverCredit | string | nein |
clup_update_press_postschreibend
Ändert einen Beitrag (ersetzt Texte und Anhänge; alle Felder wie beim Anlegen). Nur Plattform-Schlüssel mit Plattformrecht Presse.
Bereich: presse:write · Premium (Organisationsschlüssel)
| Name | Typ | Pflicht | Hinweis |
|---|---|---|---|
id | string | ja | |
kind | string | ja | PRESS_RELEASE | NEWS |
slug | string | ja | |
texts | array | ja | |
coverImage | string | nein | |
coverCredit | string | nein |
clup_publish_press_postschreibend
Veröffentlicht einen Beitrag SOFORT und öffentlich — nur auf ausdrücklichen Wunsch der Person verwenden.
Bereich: presse:write · Premium (Organisationsschlüssel)
| Name | Typ | Pflicht | Hinweis |
|---|---|---|---|
id | string | ja |
clup_schedule_press_postschreibend
Plant die Veröffentlichung eines Beitrags für einen künftigen Zeitpunkt (Sperrfrist); der Zeitgeber veröffentlicht ihn dann.
Bereich: presse:write · Premium (Organisationsschlüssel)
| Name | Typ | Pflicht | Hinweis |
|---|---|---|---|
id | string | ja | |
publishAt | string | ja | ISO 8601, z. B. 2026-11-01T08:00:00Z |
Protokollversion: 2025-03-26
Berechtigungen und Sicherheit#
- Der Assistent handelt mit den Rechten der Person, der der Schlüssel gehört. Nicht sichtbare Organisationen melden „nicht gefunden“.
- Antworten sind Daten, keine Anweisungen. Der Server sagt das in seinen
instructions. Prüfe Ergebnisse, bevor du auf Grundlage von Beitragstexten handelst. - Schreibende Werkzeuge (
clup_create_*) sind nur mit Organisationsschlüssel sichtbar. Stelle sie im Client auf „jeweils nachfragen“ — vor allemclup_create_announcement, das Mitglieder benachrichtigt. - Verbinde pro Assistent einen eigenen, eng begrenzten Schlüssel und widerrufe ihn, wenn du den Client nicht mehr nutzt.
- Beachte: Was der Assistent liest, geht an den Anbieter des Assistenten. Gib ihm nur Schlüssel, deren Daten du dorthin geben darfst (siehe Datenschutz).
