Claude Code · MCP Server
Claude Code MCP Server: Messaging und E-Mail in Ihrer App
Ein einziger claude mcp add-Befehl verbindet den Unipile MCP-Server. Claude Code baut dann LinkedIn-, WhatsApp- und E-Mail-Features in Ihr Projekt ein.
7 Tage kostenlos testen, ohne Kreditkarte.
Claude Code · crm-app
Unipile MCP verbunden
Verbinde LinkedIn-Konten mit meinem CRM.
Endpoint lesenPOST /v2/auth/linkSchema geladen
Connect-Route und Settings-Button ergänzt. Die Konto-ID wird am Nutzer gespeichert.
Nächstes Feature beschreiben…
Die Aufgabe
Was Sie erreichen wollen
Ihr Produkt um eine LinkedIn-, WhatsApp-, E-Mail- oder Kalenderverbindung erweitern. Das heißt: eine API-Referenz lesen, die richtigen Endpoints wählen, Hosted Auth und seine Callbacks verkabeln und dann die richtigen IDs von der Suche bis zur Nachricht behalten. Mit dem Unipile MCP-Server in Claude Code übernimmt der Agent das Lesen und schreibt den Code in Ihrem Stack, aus dem Terminal oder der IDE-Erweiterung.
Den Unipile MCP-Server mit Claude Code verbindenUnipile MCP verbunden
Wählen Sie die Kanäle, die Sie verbinden möchten
developer.unipile.com/mcpAlle Kanäle verbinden9 Kanäle
↑↓navigieren Leertasteauswählen ↵verbindeneine URL, ein Header
Ohne
Tabs, Raten, Glue Code
Claude Code rät Endpoint-Namen und Payloads aus Trainingsdaten und liegt bei den IDs falsch.
Sie kopieren Schemas aus der Referenz in den Chat, einen Endpoint nach dem anderen.
Der erste echte Aufruf passiert in Production, nach dem Code-Review.
Mit dem Unipile MCP-Server
Das Ergebnis in Ihrer Anwendung
Eine Connect-Route und ein Settings-Button: Jeder Nutzer verbindet sein eigenes Konto über Hosted Auth.
Ein Webhook-Empfänger und ein Posteingang, der Nachrichten und E-Mails zeigt, sobald sie ankommen.
Jede Anfrage bereits einmal in Ihrer Development-Anwendung ausgeführt, bevor Sie den Diff prüfen.
claude mcp add, drei Scopes
Unipile MCP-Server für Claude Code
Der Server ist remote: eine URL über streamable HTTP und ein Header. Kein npx, kein lokaler Prozess. Ein Befehl registriert ihn; der gewählte Scope entscheidet, wo er lädt und ob Ihr Team ihn ebenfalls bekommt. Befehl und JSON gegen die offizielle Claude-Code-Dokumentation geprüft.
Claude Code installiert (CLI oder IDE-Erweiterung), angemeldet, aus Ihrem Projektordner gestartet.
Eine Development-Anwendung im Unipile-Dashboard, mit einem Scope und einem Scoped Account API Key.
Mindestens ein Testkonto, das über Hosted Auth mit diesem Scope verbunden ist, damit der Agent echte Anfragen ausführen kann.
User-Scope--scope user · jedes Projekt, privat für Sie
Projekt-Scope.mcp.json im Wurzelverzeichnis des Repositories, geteilt
Lokaler Scope (Standard)nur dieses Projekt, privat, in ~/.claude.json
?
Welcher Scope?User, wenn Sie mehrere Unipile-Integrationen auf einer Maschine bauen. Projekt, wenn das ganze Team den Server aus dem Repository bekommen soll, mit dem eigenen Key jedes Entwicklers in einer Umgebungsvariablen. Lokal für einen einmaligen Versuch. Existiert ein Name in mehreren Scopes, gewinnt lokal vor Projekt und Projekt vor User.
# User-Scope: jedes Projekt auf dieser Maschine, privat für Sie
claude mcp add --transport http --scope user \
unipile "https://developer.unipile.com/mcp?branch=v2.0" \
--header "X-API-KEY: your-scoped-api-key"
# Claude Code gibt "Added …" aus, danach: claude mcp list
// Projekt-Scope: im Wurzelverzeichnis des Repositories eingecheckt, mit dem Team geteilt
{
"mcpServers": {
"unipile": {
"type": "http",
"url": "https://developer.unipile.com/mcp?branch=v2.0",
"headers": {
"X-API-KEY": "${UNIPILE_API_KEY}"
}
}
}
}
// "type": "http" ist Pflicht; jeder Entwickler exportiert UNIPILE_API_KEY
# Lokaler Scope (Standard): nur dieses Projekt, privat, gespeichert in ~/.claude.json
claude mcp add --transport http \
unipile "https://developer.unipile.com/mcp?branch=v2.0" \
--header "X-API-KEY: your-scoped-api-key"
Geprüft mit Claude Code 2.1: "Added …", danach ✔ Connected in claude mcp list. Lassen Sie die URL in Anführungszeichen (zsh liest das ? als Muster) und setzen Sie --header hinter die URL, es akzeptiert mehrere Werte.
claude mcp addRegistriert einen Server im gewählten Scope und gibt nach dem Schreiben "Added …" aus.--transport httpDer Unipile-Server ist ein remote betriebener streamable-HTTP-Server. Kein Befehl, kein npx, kein lokaler Prozess.--scope userJedes Projekt auf dieser Maschine, privat für Sie. Weglassen für lokal (nur dieses Projekt) oder --scope project nutzen, um .mcp.json zu schreiben.unipileDer Name, den Sie in claude mcp list, claude mcp get und /mcp sehen."https://developer.unipile.com/mcp?branch=v2.0"Die einzige Server-URL, in Anführungszeichen. Der Parameter ?branch=v2.0 wählt die API v2.--header "X-API-KEY: …"Ihr Scoped Account API Key. Steht am Ende, weil das Flag mehrere Header akzeptiert.Prüfen
Die Verbindung prüfen
Drei Prüfungen, aus dem Terminal, innerhalb einer Session und dann im Chat. Keine davon berührt ein verbundenes Konto.
1Aus dem TerminalDie Liste zeigt neben jedem Server einen Health-Status: ✔ Connected ist das Ziel; ✘ Failed to connect weist auf die URL hin, ! Needs authentication auf den Header, ⏸ Pending approval auf einen noch nicht genehmigten Projekt-Server.claude mcp list
claude mcp get unipile
2Innerhalb einer SessionTippen Sie den Slash-Befehl in Claude Code, um den Serverstatus zu sehen und eine projektbezogene .mcp.json beim ersten Öffnen des Ordners zu genehmigen./mcp
3Im Chat, ohne ein Konto zu berührenFragen Sie etwas, das nur die API-Spezifikation liest. Antwortet der Agent mit echten Routen und Parametern, ist der Server verkabelt.Liste über den Unipile MCP die Endpoints für die LinkedIn-Personensuche und ihre Pflichtparameter auf.
Prompts statt Glue Code
Geben Sie Ihrem Agenten den Prompt
Drei Integrationsaufgaben, jeweils mit dem exakten Prompt zum Einfügen in Claude Code, den Unipile-Endpoints, die der Agent liest und aufruft, und dem, was in Ihrem Projekt landet. Die Pfade sind vollständig, auf der API-Basis-URL
https://api.unipile.com, mit Ihrem Scoped Key im X-API-KEY Header.Ergänze unsere Support-Konsole um WhatsApp-Messaging: Synchronisiere die Konversationen jedes Agents und lass ihn aus dem Ticket heraus antworten.
Endpoints suchen"chats messages send"3 Treffer
Anfrage ausführenGET /v2/{account_id}/chats9 Chats
Erstellt:
whatsapp/chat-sync.ts (Chats und Nachrichten am Ticket upserted, Cursor-Pagination) und POST /tickets/:id/reply , das die Send-Route über das Konto des jeweiligen Chats aufruft. Sync in der Development-App ausgeführt: 9 Chats, 41 Nachrichten.Ein WhatsApp-Posteingang in Ihrem Produkt, aus einem Prompt
Claude Code liest die Chat- und Nachrichten-Verträge über den Server, schreibt den Sync-Job und den Antwort-Endpoint in Ihrem Stack und führt die ersten Anfragen in Ihrer Development-Anwendung aus. LinkedIn, Instagram und Telegram nutzen dieselben Chat-Routen, der zweite Kanal ist also ein kleinerer Prompt als der erste.
Endpoints, die der Agent nutzt
GET/v2/{account_id}/chatsGET/v2/{account_id}/chats/{chat_id}/messagesPOST/v2/{account_id}/chats/{chat_id}/messages/send
Häufiger Fehler: IDs vermischen. Eine Nachricht wird immer über das Konto gesendet, dem der Chat gehört; halten Sie
WhatsApp API
account_id und chat_id vom Listen-Aufruf bis zum Send-Aufruf zusammen.Lass Nutzer E-Mails von der Kontaktseite über ihr eigenes Gmail- oder Outlook-Postfach senden und threade die Antworten am Kontakt.
Endpoint lesenPOST /v2/{account_id}/emails/sendSchema geladen
Anfrage ausführenGET /v2/{account_id}/emails200 OK
Ergänzt
POST /contacts/:id/email , das die Send-Route über das Postfachkonto des Nutzers aufruft, die Option „Im Thread antworten“ über die Thread-ID und den eingehenden Sync, der Antworten am Kontakt anhängt. Test-E-Mail aus dem Postfach der Development-App gesendet und die Antwort im Thread gesehen.E-Mail aus dem eigenen Postfach des Nutzers, in Ihrem CRM gethreadet
Gmail, Outlook und IMAP teilen sich ein E-Mail-Schema. Der Agent liest die Verträge für Senden und Auflisten, verkabelt die Send-Aktion mit dem Postfach, das der Nutzer über Hosted Auth verbunden hat, und behält die Thread-ID, damit Antworten am richtigen Kontakt landen.
Endpoints, die der Agent nutzt
POST/v2/{account_id}/emails/sendGET/v2/{account_id}/emailsGET/v2/{account_id}/threads/{thread_id}
Häufiger Fehler: Aus einem gemeinsamen technischen Postfach senden. Jede E-Mail geht über das Konto des Nutzers raus, der es verbunden hat, damit die Antwort in seinem Posteingang ankommt.
E-Mail-API
Jeder Workspace in meinem SaaS hat mehrere Nutzer mit eigenen LinkedIn- und E-Mail-Konten. Isoliere sie: ein Scope und ein Scoped Key pro Workspace.
Endpoints suchen"scopes api-keys"4 Treffer
Anfrage ausführenPOST /v2/scopes/201 · scope
Beim Anlegen eines Workspace erstellt das Backend jetzt einen Scope und einen Scoped Account API Key, der verschlüsselt am Workspace gespeichert wird; jedes Konto, das ein Mitglied verbindet, wird diesem Scope zugewiesen. Alle Konto-Aufrufe nutzen den Workspace-Key. Mit zwei Workspaces in der Development-App getestet.
Viele Nutzer, viele Konten, eine Grenze pro Mandant
Scopes sind die Zugriffsgrenze der Unipile API: Ein Scoped Key sieht nur die Konten, die seinem Scope zugewiesen sind. Der Agent überträgt das auf Ihr Mandantenmodell, sodass die Multi-Konto-Logik in der API liegt statt in Ihrem Code.
Endpoints, die der Agent nutzt
POST/v2/scopes/POST/v2/api-keys/GET/v2/accounts/
Häufiger Fehler: Einen globalen Account-Key für jeden Mandanten nutzen. Der globale Key bleibt für die Administration in Ihrem Backend; jeder Mandant bekommt seinen eigenen Scoped Key.
Konten, Scopes und Keys
Von Development zu Production
Zuerst in einer Development-Anwendung testen
Das Unipile-Dashboard trennt eine Development-Anwendung von einer Production-Anwendung. Geben Sie Claude Code einen Scoped Key aus der Development-Anwendung, mit ein oder zwei über Hosted Auth verbundenen Testkonten. Der Agent führt echte Anfragen auf diesen Konten aus, im Namen des authentifizierten Nutzers, der sie verbunden hat, innerhalb der Limits jedes Anbieters, und bis zum Release wird kein Konto Ihrer Nutzer berührt.
Validieren Sie den Connect-Flow end-to-end: Auth-Link serverseitig erstellt, Konto-ID am Nutzer gespeichert.
Validieren Sie pro Feature einen Lese- und einen Schreibvorgang: Chats auflisten, eine Nachricht über das Testkonto senden.
Validieren Sie eine Webhook-Zustellung und einen Reconnect- oder Checkpoint-Zustand, bevor Sie den Key auf Production umstellen.
crm-app · DevelopmentVon Claude Code genutzt
Scopedev-tests · 2 Konten
Key
scoped Account API keyKontenLinkedIn-Testkonto, Gmail-Testpostfach
Webhooks1 Endpoint · Message-Events
crm-app · ProductionUnberührt
Scopeeiner pro Workspace
Key
scoped keys, in your backend onlyKontendie eigenen Konten Ihrer Nutzer, über Hosted Auth
Fehlerbehebung
Häufige Fehler und was sie bedeuten
Die Status und Warnungen, die Claude Code zeigt, wenn ein MCP-Eintrag nicht stimmt, so wie claude mcp list und /mcp sie ausgeben, und die jeweilige Lösung.
✘ Failed to connect
claude mcp list zeigt den Server, aber der Health-Check schlägt fehl.
LösungDie url muss exakt https://developer.unipile.com/mcp?branch=v2.0 ein, mit --transport http. Claude Code wiederholt einen vorübergehenden Fehler dreimal, nie aber ein Not-Found oder einen Authentifizierungsfehler: Korrigieren Sie URL oder Header und prüfen Sie erneut mit claude mcp get unipile.
⏸ Pending approval
Ein Projekt-Server aus .mcp.json wird gelistet, ist aber nicht verbunden.
LösungFühren Sie claude im Ordner aus, bestätigen Sie den Trust-Dialog des Workspace und genehmigen Sie den Server dann über /mcp. Ein geklontes Repository kann seine eigenen Server nicht über eingecheckte Einstellungen genehmigen.
401 bei Anfragen
Der Server ist verbunden, aber eine Anfrage schlägt fehl.
LösungDer Key fehlt im Header, der Header-Name ist nicht X-API-KEY, oder Sie haben einen Service- oder globalen Account-Key statt eines Scoped Account API Key aus Ihrer Development-Anwendung verwendet.
Warnung zu fehlender Variable
claude mcp list meldet, dass ${UNIPILE_API_KEY} nicht gesetzt ist.
LösungExportieren Sie die Variable in der Shell, die Claude Code startet, oder hinterlegen Sie einen Standardwert mit der Syntax ${UNIPILE_API_KEY:-} . Nicht gesetzte Variablen in url oder headers werden als leer gelesen, was in einem 401 endet.
Verstecktes Whitespace in headers.X-API-KEY
Ein Token, das mit einem Zeilenumbruch am Ende eingefügt wurde.
LösungClaude Code benennt das Feld in claude mcp list und /mcp , ohne den Wert auszugeben. Fügen Sie den Server mit getrimmtem Key erneut hinzu; Claude Code übernimmt Werte exakt so, wie sie geschrieben sind.
Derselbe Name in mehreren Scopes
unipile existiert im User- und im Projekt-Scope mit unterschiedlichen Einstellungen.
LösungClaude Code verbindet sich einmal, mit der Definition der höchsten Priorität (lokal, dann Projekt, dann User), und warnt vor dem Konflikt. Entfernen Sie das Duplikat mit claude mcp remove unipile --scope user oder halten Sie einen Scope pro Maschine.
MCP endpoint not found at
Ein 404 auf der URL: Der Pfad ist falsch.
LösungDie vollständige URL lautet https://developer.unipile.com/mcp?branch=v2.0, inklusive branch-Parameter. Prüfen Sie sie mit curl -I von Ihrer Maschine aus, danach mit claude mcp get unipile.
/mcp zeigt No MCP servers configured
Die Datei, die Sie bearbeitet haben, liest Claude Code nicht.
LösungClaude Code liest ~/.claude.json und .mcp.json nur im Projektwurzelverzeichnis, nie ~/.claude/mcp.json, ~/.claude/.mcp.json oder ~/.claude/config/mcp.json. Starten Sie außerdem die Session neu: .mcp.json wird beim Start gelesen.
Die Shell lehnt die URL ab, oder branch fehlt
zsh liest das ? in ?branch=v2.0 als Muster.
LösungSetzen Sie die URL in claude mcp addimmer in Anführungszeichen. Ohne Anführungszeichen antwortet zsh mit "no matches found", und bash kann den Parameter verwerfen, was Sie mit der falschen API-Version verbindet.
Langsamer Start oder Timeout
Der Server braucht beim Start länger als die standardmäßigen 30 s.
LösungErhöhen Sie das Limit für diese Session: MCP_TIMEOUT=60000 claude. Wenn Sie einen Projekt-Server im Genehmigungsdialog abgelehnt haben, holt claude mcp reset-project-choices den Dialog zurück.
6000+
Unternehmen, die mit Unipile innovieren
Vertrauen bei Branchenführern
1 API
Rationalisierung der Abläufe für alle wichtigen Kommunikationskanäle
2 Tage
Schnelle Live-Integration mit minimaler Einrichtung
30%
Verringerung des Wartungsaufwands und der Ressourcen
Integrierte Sicherheit und Compliance
Unternehmensgerechter Schutz für Ihre Daten und Arbeitsabläufe Erfahren Sie mehr über unsere Sicherheit
SOC 2 Typ II
Zertifiziert
Unabhängig geprüfte Sicherheitskontrollen zur Gewährleistung des Datenschutzes und der betrieblichen Integrität.
GDPR
Konform
Vollständige Einhaltung der europäischen Datenschutzbestimmungen zum Schutz der Privatsphäre der Nutzer.
99.9%
Betriebszeit der Plattform in den letzten 24 Monaten
24/7
Globaler Support mit leistungsstarker API
FAQ zum Claude Code MCP-Server
Die Fragen, die wirklich gestellt werden: Scopes, wo die Konfiguration liegt, Keys außerhalb des Repositories, eigene Header, Failed to connect, die URL in Anführungszeichen, Änderungen an .mcp.json und API Keys.
Lokal ist der Standard: gespeichert in
~/.claude.json unter dem aktuellen Projekt, privat und auf dieses Projekt begrenzt. Projekt schreibt .mcp.json ins Wurzelverzeichnis des Repositories und teilt die Datei über die Versionsverwaltung. User schreibt ~/.claude.json unter den Root-Key mcpServers und gilt für alle Ihre Projekte. Die Priorität ist lokal, dann Projekt, dann User. Für Unipile: --scope user für Ihren persönlichen Entwicklungs-Key, --scope project , wenn das ganze Team an derselben Integration arbeitet.In
~/.claude.json (unter Windows %USERPROFILE%\.claude.json) für den lokalen und den User-Scope, und in .mcp.json im Projektwurzelverzeichnis für den Projekt-Scope. Claude Code liest weder ~/.claude/.mcp.json, ~/.claude/config/mcp.json, ~/.claude/mcp.json oder %APPDATA%\Claude\mcp.json. claude mcp get unipile sagt Ihnen, in welchem Scope ein Eintrag liegt.Claude Code löst
${VAR} und ${VAR:-default} in command, args, env, url und headersauf. Schreiben Sie "X-API-KEY": "${UNIPILE_API_KEY}" in .mcp.json, checken Sie die Datei ein, und jeder Entwickler liefert seinen eigenen Scoped Key über seine Umgebung. Ist die Variable ohne Standardwert nicht gesetzt, lädt die Konfiguration trotzdem, und claude mcp list zeigt eine Warnung.Ja:
--header "X-API-KEY: your-scoped-api-key", wiederholbar für mehrere Header, Kurzform -H. Setzen Sie es hinter die URL, weil das Flag mehrere Werte akzeptiert. Der Unipile-Server ist ein Remote-HTTP-Server: nichts lokal zu installieren, kein npx, kein Node zu verwalten.Führen Sie
claude mcp get unipile für das Detail aus (HTTP-Status und Fehlertext), achten Sie auf die Warnungen zu führendem oder nachgestelltem Whitespace, die claude mcp list nach einem eingefügten Key ausgibt, und bestätigen Sie mit curl -I, dass die URL von Ihrer Maschine antwortet. Ein 404 gibt MCP endpoint not found at <origin>aus: Der Pfad ist falsch, die vollständige URL lautet https://developer.unipile.com/mcp?branch=v2.0, inklusive branch-Parameter.Die URL enthält ein
?, das zsh als Musterzeichen liest. Setzen Sie die URL in claude mcp addimmer in Anführungszeichen. Ohne Anführungszeichen antwortet zsh mit "no matches found", und bash kann den Parameter branch verwerfen, was Sie mit der falschen Version des Servers verbindet.Claude Code liest
.mcp.json beim Start der Session: beenden und neu starten. Ein fehlerhafter Eintrag wird stillschweigend ignoriert, und claude mcp list gibt die Parsing-Warnung mit dem fehlerhaften Feld aus. Wenn Sie den Server im Genehmigungsdialog des Projekts abgelehnt haben, führen Sie aus: claude mcp reset-project-choices.Der Server antwortet ohne Key, solange der Agent nur die API-Spezifikation liest. Für echte Anfragen erstellen Sie in Ihrer Development-Anwendung einen Scope, weisen nur die betroffenen Konten zu und erzeugen einen Scoped Account API Key für diesen Scope. Geben Sie einem MCP-Client nie einen Service-Key oder einen globalen Account-Key.