Claude & Cockpit verbinden (MCP)
Mit dieser Verbindung sprichst du in Claude in normalen Sätzen mit Cockpit: Inhalte lesen, suchen, erstellen, Center anlegen und Entwürfe einreichen oder genehmigen. Das Programm heißt MCP (Model Context Protocol).
Es gibt zwei Wege. Nimm Weg A, wenn ihr Claude Pro/Team/Enterprise habt — er braucht null Installation auf eurem Mac.
Weg A — Remote-URL (empfohlen · keine Installation)
Claude Pro, Team oder Enterprise — also ein bezahltes Claude-Konto auf claude.ai. Claude Free reicht nicht für diesen Weg.
Das läuft einmal ab — die IT richtet den Server ein (steht in IT-Setup unten), danach braucht jede Redakteurin nur noch 2 Klicks + 2 Felder ausfüllen.
Für die Redakteurin: 3 Schritte
Die IT schickt dir eine fertige URL, die das Token bereits enthält — z. B.:
https://mallos-mcp-cockpit.onrender.com/mcp?token=a3f7b9...
Du brauchst dir das Token nicht separat zu merken. Die URL ist dein Zugang — halte sie geheim wie ein Passwort.
Schritt 1 — Claude öffnen
claude.ai im Browser öffnen und anmelden.
Schritt 2 — Connector eintragen
Oben rechts auf dein Profilbild klicken → Settings → links Connectors (oder „Integrations" / „MCP" — der Name kann je nach Claude-Version leicht abweichen).
→ Add custom integration (oder „Add MCP server") → folgende Felder ausfüllen:
| Feld | Was du einträgst |
|---|---|
| Name | cockpitOS (oder beliebig) |
| Server URL | die vollständige URL von der IT (mit ?token=… am Ende) |
| Erweiterte Einstellungen (OAuth-Felder) | leer lassen — wird nicht benötigt |
→ Speichern / Save klicken.
Schritt 3 — Prüfen
Im Claude-Chat tippen:
Bitte ruf das Tool cockpit_public_center_by_slug auf mit dem Slug "dein-center-slug". Wie heißt das Center und was ist die centerId?
Wenn Claude eine Antwort mit Name und ID liefert: alles funktioniert. 🎉
Beispiele — was du Claude sagen kannst
Neues Center-Website-Projekt starten (Pflicht-Einstieg)
Immer wenn ein neues Website-Projekt für ein Center beginnt, zuerst diesen Schritt:
Ich starte ein neues Center-Website-Projekt für das Center mit dem Slug "DEIN-SLUG".
Bitte ruf cockpit_center_project_init auf (center_slug="DEIN-SLUG", api_base_url="https://dashboard.cockpit-os.de").
Zeig mir die centerId und die Checkliste.
Claude liefert dann:
centerId(UUID) für alle weiteren API-Aufrufe- Eine Checkliste mit den Pflichtschritten (Website aktivieren, Analytics konfigurieren, Inhalte prüfen, …)
- Warnungen, falls das Center nicht existiert oder keine Inhalte hat
Das Tool stellt sicher, dass Claude weiß: CockpitOS ist die einzige Source of Truth. Shops, News, Events und Texte dürfen nie als Dummy-Daten im Frontend-Code stehen — sie kommen immer aus CockpitOS. Der Init-Schritt lädt diese Regel aktiv in den KI-Kontext.
Überblick über ein Center holen
Ich arbeite für unser Shopping Center (Slug: "DEIN-SLUG").
1. Hol die centerId über cockpit_public_center_by_slug.
2. Zeige mir einen kompakten Überblick: aktive Shops, laufende Angebote, kommende Events.
Nutze dafür cockpit_agencyos_content_stats.
Schreibe noch nichts ins Cockpit.
Centerplan laden (inkl. Hybrid-SVG)
Slug „DEIN-SLUG“. Hol centerId über cockpit_public_center_by_slug und dann cockpit_public_wayfinding_floors.
Liste pro Etage nur kompakt: name, Länge mapSvg-Zeichen, ob mapImage und shopViewBoxes gesetzt, Anzahl mapLocations.
Siehe auch: Public API Vertrag — Hybrid & Wayfinding.
Inhalte suchen, bevor du etwas erstellst
Gibt es in unserem Cockpit schon Angebote von Deichmann? Bitte in allen Centern suchen.
Nutze cockpit_agencyos_search_content mit q="Deichmann" und contentType="offer".
Welche Angebote laufen in den nächsten 7 Tagen ab?
Nutze cockpit_agencyos_search_content mit contentType="offer" und expiresBefore="<Datum in 7 Tagen>".
Angebot für alle Center einer Kette einreichen (Workflow-Modus)
Beim Workflow-Modus landet alles zuerst unter Workflow & Freigaben im Dashboard — nichts geht live, bevor jemand genehmigt.
Immer erst Vorschau holen (kein Schreiben, nur Daten-Check):
Nutze cockpit_agencyos_content_push_preview für Center <UUID> mit:
offers: [{ title: "Sommer-Sale: 30 % auf alle Sneaker", description: "...", validFrom: "2026-07-01", validTo: "2026-07-31" }]
Zeig mir was das Cockpit zurückgibt — noch nicht wirklich einreichen.
Wenn die Vorschau stimmt, dann für alle Deichmann-Center einreichen:
Erstelle ein Angebot für alle Deichmann-Center:
- Titel: "Sommer-Sale: 30 % auf alle Sneaker"
- Gültig: 1. Juli bis 31. Juli
Schritt 1: Nutze cockpit_agencyos_list_centers mit chainSlug="deichmann".
Schritt 2: Für jedes Center: cockpit_agencyos_content_push mit submitToWorkflow=true und campaignLabel="Sommer-Sale Deichmann Juli".
Zeige mir vorher eine Vorschau je Center.
Was dann passiert: Im Workflow & Freigaben erscheinen alle Entwürfe — nach Kampagne filterbar, mit „Alle genehmigen"-Button.
Neues Center on the fly anlegen
Du musst kein Center mehr vorher im Dashboard anlegen — Claude kann das direkt:
Leg ein neues Center im Cockpit an:
- Name: Alstertal Einkaufszentrum
- Adresse: Heegbarg 31, 22391 Hamburg
- Logo: https://example.com/logo.png (bitte zu BunnyCDN hochladen)
- Akzentfarbe: #E63946
Danach: zeige mir die centerId und den Slug.
Direkt im Anschluss kannst du es befüllen:
Füge für das gerade angelegte Center (centerId: ...) folgende Shops hinzu:
- H&M (Kategorie: Mode, Etage: EG)
- Starbucks (Kategorie: Gastronomie, Etage: EG)
Nutze cockpit_agencyos_list_categories um die richtigen Kategorienamen zu holen.
Center-Logo oder Öffnungszeiten aktualisieren
Aktualisiere bei Center X (centerId: ...) folgendes:
- Neues Logo: https://... (bitte zu BunnyCDN hochladen)
- Öffnungszeiten: Mo–Sa 10–21 Uhr, So 12–18 Uhr
Das Deichmann-Logo hat sich geändert. Hier ist das neue Logo: https://...
Bitte das Logo bei allen Centern aktualisieren, die einen Deichmann-Shop haben.
Entwürfe prüfen und genehmigen
Wie viele Entwürfe warten gerade auf Freigabe?
Nutze cockpit_agencyos_list_drafts.
Genehmige alle Entwürfe aus der Kampagne "Sommer-Sale Deichmann Juli".
1. Hole zuerst die Entwürfe mit cockpit_agencyos_list_drafts und campaignLabel="Sommer-Sale Deichmann Juli".
2. Genehmige jeden einzelnen mit cockpit_agencyos_update_draft.
Abgelaufene Inhalte aufräumen
Zeige mir alle Angebote die bereits abgelaufen sind (endDate vor heute).
Nutze cockpit_agencyos_search_content mit contentType="offer" und expiresBefore="<heute>".
Dann: archiviere alle davon mit cockpit_agencyos_archive_content.
MCP-Tools im Überblick
Die autoritative Referenz aller registrierten Tools steht in packages/mcp-cockpit-os/README.md und im Quellcode packages/mcp-cockpit-os/src/register-cockpit-tools.ts. Die Tabellen unten sind eine Redaktions-Auswahl — nicht jede Public-Read-Route ist einzeln aufgeführt.
Öffentliche Reads (ohne API-Key, Auswahl)
| Tool | Was es tut |
|---|---|
cockpit_public_center_by_slug | Slug → centerId, Name |
cockpit_public_news / events / offers | Listen inkl. contentCategory; Filter contentCategorySlug |
cockpit_public_content_categories | Inhaltskategorien (News/Events/Angebote) |
cockpit_public_aktuelles_bundle | News+Events+Offers+Jobs in einem Request |
cockpit_public_wayfinding_floors | Centerplan mit mapSvg, mapLocations |
cockpit_public_shops / services / offices | Stammdaten |
cockpit_public_integration_docs | Maschinenlesbare Integrationshinweise für v0 |
Projekt-Einstieg (neu)
| Tool | Was es tut |
|---|---|
cockpit_center_project_init | Pflicht-Einstieg für jedes neue Center-Website-Projekt. Prüft, ob das Center existiert, gibt centerId zurück und liefert eine 7-Schritte-Checkliste + Quick-Reference für den Workflow. Verhindert, dass Inhalte nur im Frontend-Code landen. |
cockpit_mcp_discover_tools | Tool-Finder: Wenn Claude ein MCP-Tool nicht findet (tool_search zeigt nur ~5 von 70+ Tools) — Stichwort eingeben, exakten Tool-Namen erhalten. |
Website-Reiter & Konfiguration
| Tool | Was es tut |
|---|---|
cockpit_agencyos_get_center_website_config | Volle Website-Config lesen (Design, SEO, templateContent, pagesConfig, …). |
cockpit_agencyos_website_config_schema | Dashboard-Reiter pro Template: wo welche Felder liegen + welches MCP-Tool. |
cockpit_agencyos_update_center_website_config | Website-Config schreiben (partial Update). |
Lesen & Navigieren
| Tool | Was es tut |
|---|---|
cockpit_public_center_by_slug | Center per URL-Slug auflösen → liefert centerId, Name. Kein API-Key nötig. |
cockpit_public_wayfinding_floors | Centerplan / interaktive Karte: Etagen mit mapSvg und mapLocations (z. B. für SVG-Klick → Shop-Modal). centerId = Center-UUID, nicht floorId aus der Centerplan-URL. |
cockpit_agencyos_list_centers | Alle Center auflisten — filterbar nach Kette (chainSlug), Organisation (organizationId), Name. |
cockpit_agencyos_get_center | Details eines Centers per ID. |
cockpit_agencyos_center_context | Kompletter Cockpit-Kontext (Shops, News, Events, Angebote, Services); optional include=content_categories |
cockpit_agencyos_list_organizations | Alle Organisationen mit Center-Anzahl. |
cockpit_agencyos_list_categories | Verfügbare Shop-Kategorien — vor dem Anlegen von Shops aufrufen. |
Suchen
| Tool | Was es tut |
|---|---|
cockpit_agencyos_search_content | Volltextsuche über News, Angebote, Events, Shops, Services, Jobs, Offices — mit Keyword-, Status- und Datumsfilter. Liefert u. a. createdAt, updatedAt, source (wo vorhanden). |
cockpit_agencyos_content_stats | Kompakter Überblick: aktive Shops, Angebote, Events, offene Entwürfe, was bald abläuft. |
cockpit_agencyos_audit_logs | Provenance: Wer hat welchen Inhalt wann geändert — pro Center oder pro Eintrag. Mit summary: true → Rangliste nach Nutzer. |
cockpit_agencyos_center_team | Team: Wer ist dem Center zugewiesen (Rollen, Berechtigungen) — Antwort auf „wie viele arbeiten damit?“. |
Center verwalten
| Tool | Was es tut |
|---|---|
cockpit_agencyos_create_center | Neues Center anlegen (Name, Adresse, Logo, Farben …). |
cockpit_agencyos_update_center | Center-Metadaten updaten — Logo, Öffnungszeiten, Farben, Hero-Bild, SEO. |
Inhalte schreiben
| Tool | Was es tut |
|---|---|
cockpit_agencyos_content_push_preview | Vorschau / Dry-Run — zeigt was beim Push passieren würde, schreibt nichts. Immer zuerst aufrufen. |
cockpit_agencyos_content_push | Schreibt ins Cockpit — direkt oder mit submitToWorkflow: true zur Freigabe. |
cockpit_agencyos_chain_bulk | Gleichen Inhalt für alle Center einer Kette erstellen (z. B. alle Deichmann-Center). |
cockpit_agencyos_org_bulk | Gleichen Inhalt für alle Center einer Organisation erstellen. |
cockpit_agencyos_archive_content | Inhalt archivieren (Shops, Events, News, Angebote, Services). |
cockpit_agencyos_upload_media | Externe Bild-URL zu BunnyCDN hochladen → CDN-URL zurück. |
cockpit_agencyos_list_media | Mediathek eines Centers listen (bestehende Bunny-URLs wiederverwenden). |
cockpit_agencyos_homepage_tiles | Homepage-Kacheln lesen/anlegen/ändern/löschen. |
cockpit_agencyos_page_content | Seiten-Inhalte (Hero, SEO, customContent) pro pageType lesen/schreiben. |
cockpit_agencyos_revalidate_website | Website-Cache manuell invalidieren (nach Push meist automatisch). |
Entwürfe & Freigaben
| Tool | Was es tut |
|---|---|
cockpit_agencyos_list_drafts | Offene Entwürfe — optional includeData: true für Payload wie im Cockpit (customerCommunication, dispatchItemId, …). Enthält createdByName. |
cockpit_agencyos_get_draft | Ein Entwurf nach ID — optional includeData: true. |
cockpit_agencyos_update_draft | Entwurf genehmigen oder ablehnen. |
cockpit_agencyos_draft_customer_touchpoint | KI-Vorschlag für Kundenkommunikation (Szenario wie im Workflow: approve / reject / pending). |
Claude findet ein MCP-Tool nicht?
Claude.ai nutzt intern tool_search — bei 70+ Tools werden oft nur ~5 semantische Treffer geladen. Spezifische Tools wie cockpit_agencyos_audit_logs oder cockpit_agencyos_center_team erscheinen dann nicht, obwohl sie auf dem Server registriert sind.
Lösung: cockpit_mcp_discover_tools mit Stichwort (audit, team, website, wer hat, …) — liefert den exakten Tool-Namen. Danach das Ziel-Tool direkt aufrufen. Alternativ in v0-Instructions die Tool-Namen explizit nennen.
Nach Deploy auf Render: Remote-MCP neu verbinden, damit die neue Tool-Liste aktiv ist.
Regel: Immer _preview vor _push. Claude macht das automatisch, wenn du im Prompt „zeig mir erst eine Vorschau" sagst.
| Was | Geht? |
|---|---|
| Cockpit lesen (Shops, News, Events, Angebote) | ✅ immer |
| Center neu anlegen | ✅ immer |
| Center-Metadaten updaten | ✅ immer |
| Entwürfe zur Freigabe einreichen (submitToWorkflow) | ✅ immer |
| Entwürfe aus Claude heraus genehmigen | ✅ immer |
Entwurf inkl. data / Kundenkontakt aus Claude lesen | ✅ cockpit_agencyos_list_drafts / get_draft mit includeData |
| Kundenkontakt-Vorschlag wie im Dashboard | ✅ cockpit_agencyos_draft_customer_touchpoint |
| Audit: Wer hat was wann geändert? | ✅ cockpit_agencyos_audit_logs (Center oder einzelner Eintrag; summary für Top-Autoren) |
| Team: Wer hat Zugriff auf ein Center? | ✅ cockpit_agencyos_center_team |
| Direkt ins Cockpit schreiben (live, ohne Freigabe) | ⚠️ nur wenn IT COCKPIT_ALLOW_CONTENT_PUSH aktiviert hat |
| Website-Code-Dateien bearbeiten | ❌ nicht über diese Verbindung — dafür: Website mit Claude bauen |
Weg B — Desktop-App (Fallback · braucht Node.js)
- Ihr habt kein Claude Pro/Team — nur die kostenlose Desktop-App
- Ihr wollt offline arbeiten können
- IT-Person richtet es einmal ein, Redakteurin nutzt es danach
Einmalig einrichten (IT, einmal pro Mac)
Im Repo-Hauptordner:
pnpm install
pnpm mcp:init
Der Assistent fragt nach:
- Dashboard-URL (Vorgabe
https://dashboard.cockpit-os.de— so lassen) - AgencyOS-API-Key (
sk_agencyos_…— von IT/Cockpit-Einstellungen → Integrationen) - Live-Push erlauben? (für Anfang: nein empfohlen)
Danach Claude Desktop vollständig beenden und neu starten. Fertig.
Falls der Assistent abbricht (Eintrag schon vorhanden): COCKPIT_MCP_INIT_FORCE=1 pnpm mcp:init
Manuell: pnpm --filter @mall-os/mcp-cockpit-os run build → claude_desktop_config.json anpassen (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\).
IT-Setup: Remote-Server auf Render einrichten
Der Remote-MCP-Service ist bereits in render.yaml eingetragen (mallos-mcp-cockpit). Nach einem Blueprint-Sync auf Render läuft er automatisch.
Einmalig nach dem ersten Deploy in Render manuell setzen:
-
Render Dashboard → Service
mallos-mcp-cockpit→ Environment -
COCKPIT_MCP_HTTP_BEARER— ein langes Zufallsgeheimnis generieren:openssl rand -hex 32Diesen Wert in Render eintragen. Dann die fertige Connector-URL für die Redakteurinnen zusammenstellen:
https://mallos-mcp-cockpit.onrender.com/mcp?token=<WERT-AUS-RENDER>Diese URL sicher übermitteln (Passwort-Manager, nie im offenen Chat oder per E-Mail).
-
COCKPIT_AGENCYOS_API_KEY— den AgencyOS-API-Key eintragen (aus Cockpit → Einstellungen → Integrationen → AgencyOS). -
COCKPIT_ALLOW_CONTENT_PUSH— leer lassen für sicheren Start (nur Workflow-Modus). Auf1setzen, wenn direktes Schreiben erlaubt sein soll. -
Service neu deployen.
Health-Check: https://mallos-mcp-cockpit.onrender.com/health — wenn {"status":"ok"} erscheint, läuft alles.
COCKPIT_MCP_HTTP_BEARERist das einzige Geheimnis zwischen Claude und dem MCP-Server. Wer es hat, kann alle MCP-Tools aufrufen. Bei Verdacht auf Weitergabe: sofort in Render durch ein neues ersetzen und alle Redakteurinnen informieren.- Das Secret gehört in keinen Chat, keine E-Mail, kein öffentliches Dokument.
- Wenn direktes Schreiben nötig ist: separate Render-Instanz mit eigenem Bearer für diese Nutzergruppe empfohlen.
AgencyOS-API-Key: wo bekommt man ihn?
- Geht zu Cockpit Dashboard → Einstellungen → API & Integrationen (Karte AgencyOS – API-Keys).
- Neuen Key erzeugen — er beginnt immer mit
sk_agencyos_. Den vollständigen Key siehst du einmalig im Dialog. - Sicher im Passwort-Manager ablegen, dann in Render eintragen.
- Nur lesen (ohne Key): Die
cockpit_public_*-Tools funktionieren ohne Key — nützlich zum Testen.
Probleme?
| Symptom | Was tun |
|---|---|
| Connector erscheint nicht / keine Tools in Claude | URL korrekt? Kein / am Ende? Claude-Seite neu laden. In Claude Pro: Settings → Connectors prüfen. |
| „401 Unauthorized" | Secret falsch eingetippt? Leerzeichen vorne/hinten? Render-Variable gesetzt und Service neu deployed? |
| „503" oder Timeout | Render Free-Tier schläft nach Inaktivität ein — erste Anfrage kann 30 Sek. dauern. Einfach nochmal versuchen. Auf Starter-Plan upgraden für immer-aktiv. |
| „Push verweigert" | COCKPIT_ALLOW_CONTENT_PUSH nicht gesetzt — das ist Absicht. Workflow-Modus (submitToWorkflow: true) funktioniert immer. |
| Desktop-MCP: keine Tools sichtbar | claude_desktop_config.json gespeichert? Pfad zu index.js korrekt? Claude vollständig neu gestartet (nicht nur Fenster schließen)? |
Zurück zur Übersicht: Content-Creator-Handbuch → Einführung
Nutzungsstatistik: Seitenaufrufe werden anonymisiert erfasst. Im Umami-Dashboard nach diesem Pfad filtern: /en/dashboard/claude-mcp-redaktion-anleitung