NL
Claude Code · MCP Server

Claude Code MCP-server: messaging en e-mail in uw app

Met één claude mcp add koppelt u de Unipile MCP-server. Daarna bouwt Claude Code LinkedIn-, WhatsApp- en e-mailfuncties in uw project.
7 dagen gratis proberen, geen creditcard nodig.
Claude Code · crm-app
Unipile MCP verbonden
Sarah
Voeg het koppelen van LinkedIn-accounts toe aan mijn CRM.
Endpoint lezenPOST /v2/auth/linkschema geladen
De connect-route en de knop in Instellingen toegevoegd. De account-ID wordt bij de gebruiker opgeslagen.
3 bestanden gewijzigd · getest op de Development-app
Beschrijf de volgende feature…
De opdracht

Wat u wilt bereiken

Een koppeling met LinkedIn, WhatsApp, e-mail of agenda toevoegen aan uw product. Dat betekent een API-referentie lezen, de juiste endpoints kiezen, Hosted Auth en de callbacks aansluiten, en daarna de juiste ID's bewaren van zoekopdracht tot bericht. Met de Unipile MCP-server in Claude Code doet de agent dat leeswerk voor u en schrijft hij de code in uw stack, vanuit de terminal of de IDE-extensie.
Koppel de Unipile MCP-server aan Claude CodeUnipile MCP verbonden
Selecteer de kanalen die u wilt koppelendeveloper.unipile.com/mcp
Alle kanalen koppelen9 kanalen
LinkedInLinkedIn/v2/{account_id}/chats
WhatsAppWhatsApp/v2/{account_id}/chats
InstagramInstagram/v2/{account_id}/chats
TelegramTelegram/v2/{account_id}/chats
GmailGmail/v2/{account_id}/emails
OutlookOutlook/v2/{account_id}/emails
IMAPIMAP/v2/{account_id}/emails
Google CalendarGoogle Calendar/v2/{account_id}/calendars
Outlook CalendarOutlook Calendar/v2/{account_id}/calendars
↑↓navigeren spatieselecteren ↵koppelenéén URL, één header
Zonder Tabbladen, giswerk, lijmcode
Claude Code raadt endpointnamen en payloads op basis van trainingsdata, en haalt de ID's door elkaar.
U plakt schema's uit de referentie in de chat, één endpoint tegelijk.
De eerste echte call gebeurt in productie, na de code review.
Met de Unipile MCP-server Het resultaat in uw applicatie
Een connect-route en een knop in Instellingen: elke gebruiker koppelt zijn eigen account via Hosted Auth.
Een webhook-ontvanger en een inbox die berichten en e-mails toont zodra ze binnenkomen.
Elke request is al één keer uitgevoerd op uw Development-applicatie voordat u de diff reviewt.
claude mcp add, drie scopes

Voeg de Unipile MCP-server toe aan Claude Code

De server is remote: één URL via streamable HTTP en één header. Geen npx, geen lokaal proces. Eén commando registreert hem; de scope die u kiest bepaalt waar hij laadt en of uw team hem ook krijgt. Commando en JSON gecontroleerd aan de hand van de officiële documentatie van Claude Code.
Claude Code geïnstalleerd (CLI of IDE-extensie), ingelogd en gestart vanuit uw projectmap.
Een Development-applicatie in het Unipile-dashboard, met een Scope en een scoped Account API key.
Minstens één testaccount dat via Hosted Auth aan die Scope is gekoppeld, zodat de agent echte requests kan uitvoeren.
U
User scope--scope user · elk project, alleen voor u
P
Project scope.mcp.json in de root van de repository, gedeeld
L
Local scope (standaard)alleen dit project, privé, in ~/.claude.json
?
Welke scope?User als u meerdere Unipile-integraties vanaf één machine bouwt. Project als het hele team de server uit de repository moet krijgen, met de eigen key van elke developer in een omgevingsvariabele. Local voor een eenmalige test. Bestaat een naam in meerdere scopes, dan wint local van project, en project van user.
terminal
# User scope: elk project op deze machine, alleen voor u 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 toont "Added …", daarna: claude mcp list
// Project scope: gecommit in de root van de repository, gedeeld met het team { "mcpServers": { "unipile": { "type": "http", "url": "https://developer.unipile.com/mcp?branch=v2.0", "headers": { "X-API-KEY": "${UNIPILE_API_KEY}" } } } } // "type": "http" is verplicht; elke developer exporteert UNIPILE_API_KEY
# Local scope (standaard): alleen dit project, privé, opgeslagen 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"
Gecontroleerd op Claude Code 2.1: "Added …" en daarna ✔ Connected in claude mcp list. Zet de URL tussen aanhalingstekens (zsh behandelt de ? als patroon) en zet --header na de URL, want die flag accepteert meerdere waarden.
claude mcp addRegistreert een server in de gekozen scope en toont "Added …" zodra die is weggeschreven.
--transport httpDe Unipile-server is een remote streamable HTTP-server. Geen command, geen npx, geen lokaal proces.
--scope userElk project op deze machine, alleen voor u. Laat het weg voor local (alleen dit project), of gebruik --scope project om .mcp.json te schrijven.
unipileDe naam die u ziet in claude mcp list, claude mcp get en /mcp.
"https://developer.unipile.com/mcp?branch=v2.0"De enige server-URL, tussen aanhalingstekens. De parameter ?branch=v2.0 selecteert API v2.
--header "X-API-KEY: …"Uw scoped Account API key. Als laatste geplaatst, omdat de flag meerdere headers accepteert.
Verifiëren

Controleer de verbinding

Drie checks: vanuit de terminal, binnen een sessie en daarna in een chat. Geen enkele raakt een gekoppeld account.
1Vanuit de terminalDe lijst toont naast elke server een health-status: ✔ Connected is wat u wilt zien; ✘ Failed to connect wijst op de URL, ! Needs authentication op de header, ⏸ Pending approval op een projectserver die nog niet is goedgekeurd.claude mcp list claude mcp get unipile
2Binnen een sessieTyp het slash-command in Claude Code om de serverstatus te zien en, bij een .mcp.json met project-scope, keur de server goed de eerste keer dat u de map opent./mcp
3In een chat, zonder een account aan te rakenStel een vraag die alleen de API-specificatie leest. Antwoordt de agent met echte routes en parameters, dan is de server goed gekoppeld.Gebruik de Unipile MCP en toon de endpoints om personen te zoeken op LinkedIn, met hun verplichte parameters.
Prompts, geen lijmcode

Geef uw agent de prompt

Drie integratieopdrachten, elk met de exacte prompt om in Claude Code te plakken, de Unipile-endpoints die de agent leest en uitvoert, en wat er in uw project terechtkomt. Paden zijn volledig, op de API-basis-URL https://api.unipile.com, met uw scoped key in de X-API-KEY header.
Claude Code · support-consoleDevelopment-app
Voeg WhatsApp-messaging toe aan onze supportconsole: synchroniseer de gesprekken van elke medewerker en laat ze antwoorden vanuit het ticket.
Endpoints zoeken"chats messages send"3 resultaten
Request uitvoerenGET /v2/{account_id}/chats9 chats
Aangemaakt whatsapp/chat-sync.ts (chats en berichten ge-upsert op het ticket, cursorpaginering) en POST /tickets/:id/reply dat de verzendroute aanroept op het eigen account van de chat. Sync uitgevoerd op de Development-app: 9 chats, 41 berichten.3 bestanden gewijzigd · getest op de Development-app

Een WhatsApp-inbox in uw product, vanuit één prompt

Claude Code leest via de server de contracten voor chats en berichten, schrijft de sync-job en het reply-endpoint in uw stack, en voert de eerste requests uit op uw Development-applicatie. LinkedIn, Instagram en Telegram gebruiken dezelfde chatroutes, dus het tweede kanaal vraagt een kleinere prompt dan het eerste.
Endpoints die de agent gebruikt
GET/v2/{account_id}/chatsGET/v2/{account_id}/chats/{chat_id}/messagesPOST/v2/{account_id}/chats/{chat_id}/messages/send
Veelgemaakte fout: ID's door elkaar halen. Een bericht wordt altijd verstuurd via het account dat eigenaar is van de chat; houd account_id en chat_id bij elkaar, van de list-call tot de send-call.
WhatsApp-API
Claude Code · crm-appDevelopment-app
Laat gebruikers e-mails versturen vanaf de contactpagina via hun eigen Gmail- of Outlook-mailbox, en bundel de antwoorden in een thread bij het contact.
Endpoint lezenPOST /v2/{account_id}/emails/sendschema geladen
Request uitvoerenGET /v2/{account_id}/emails200 OK
Toegevoegd POST /contacts/:id/email dat de verzendroute aanroept op het mailboxaccount van de gebruiker, de optie om in de thread te antwoorden met de thread-ID, en de inkomende sync die antwoorden aan het contact koppelt. Test-e-mail verstuurd vanuit de mailbox van de Development-app en het antwoord in de thread gezien.4 bestanden gewijzigd · versturen en threading end-to-end getest

E-mail vanuit de eigen mailbox van de gebruiker, als thread in uw CRM

Gmail, Outlook en IMAP delen één e-mailschema. De agent leest de send- en list-contracten, koppelt de verzendactie aan de mailbox die de gebruiker via Hosted Auth heeft gekoppeld, en bewaart de thread-ID zodat antwoorden bij het juiste contact terechtkomen.
Endpoints die de agent gebruikt
POST/v2/{account_id}/emails/sendGET/v2/{account_id}/emailsGET/v2/{account_id}/threads/{thread_id}
Veelgemaakte fout: Versturen vanuit een gedeelde technische mailbox. Elke e-mail vertrekt vanaf het account van de gebruiker die het heeft gekoppeld, zodat het antwoord in diens inbox aankomt.
E-mail-API
Claude Code · saas-backendDevelopment-app
Elke workspace in mijn SaaS heeft meerdere gebruikers met hun eigen LinkedIn- en e-mailaccounts. Isoleer ze: één Scope en één scoped key per workspace.
Endpoints zoeken"scopes api-keys"4 resultaten
Request uitvoerenPOST /v2/scopes/201 · scope
Bij het aanmaken van een workspace maakt de backend nu een Scope aan, plus een scoped Account API key die versleuteld op de workspace wordt opgeslagen, en elk account dat een lid koppelt wordt aan die Scope toegewezen. Alle account-calls gebruiken de workspace-key. Getest met twee workspaces op de Development-app.5 bestanden gewijzigd · isolatie gecontroleerd

Veel gebruikers, veel accounts, één grens per tenant

Scopes zijn de toegangsgrens van de Unipile API: een scoped key ziet alleen de accounts die aan zijn Scope zijn toegewezen. De agent vertaalt dat naar uw tenantmodel, zodat de multi-accountlogica in de API zit en niet in uw code.
Endpoints die de agent gebruikt
POST/v2/scopes/POST/v2/api-keys/GET/v2/accounts/
Veelgemaakte fout: Eén globale Account key gebruiken voor elke tenant. De globale key blijft in uw backend voor beheer; elke tenant krijgt een eigen scoped key.
Accounts, Scopes en keys
Van Development naar productie

Test eerst op een Development-applicatie

Het Unipile-dashboard scheidt een Development-applicatie van een Production-applicatie. Geef Claude Code een scoped key uit de Development-applicatie, met één of twee testaccounts gekoppeld via Hosted Auth. De agent voert echte requests uit op die accounts, namens de geauthenticeerde gebruiker die ze heeft gekoppeld en binnen de limieten van elke provider, en niets raakt de accounts van uw gebruikers tot u live gaat.
Valideer de connect-flow end-to-end: auth-link server-side aangemaakt, account-ID opgeslagen bij de gebruiker.
Valideer per feature één lees- en één schrijfactie: chats oplijsten, een bericht versturen op het testaccount.
Valideer een webhook-levering en een reconnect- of checkpoint-status voordat u de key naar Production omzet.
crm-app · DevelopmentGebruikt door Claude Code
Scopedev-tests · 2 accounts
Keyscoped Account API key
AccountsLinkedIn-testaccount, Gmail-testmailbox
Webhooks1 endpoint · berichtevents
crm-app · ProductionOnaangeroerd
Scopeéén per workspace
Keyscoped keys, alleen in uw backend
Accountsde eigen accounts van uw gebruikers, via Hosted Auth
Probleemoplossing

Veelvoorkomende fouten en wat ze betekenen

De statussen en waarschuwingen die Claude Code toont als een MCP-entry niet klopt, zoals claude mcp list en /mcp ze weergeven, met de oplossing voor elk ervan.
✘ Failed to connect
claude mcp list toont de server, maar de health-check mislukt. OplossingDe url moet exact https://developer.unipile.com/mcp?branch=v2.0 zijn, met --transport http. Claude Code probeert een tijdelijke fout drie keer opnieuw, maar nooit een not-found- of authenticatiefout: corrigeer de URL of de header en controleer daarna met claude mcp get unipile.
⏸ Pending approval
Een server met project-scope uit .mcp.json staat in de lijst, maar is niet verbonden. OplossingVoer claude uit in de map, accepteer het trust-dialoogvenster van de workspace en keur daarna de server goed via /mcp. Een gekloonde repository kan zijn eigen servers niet goedkeuren vanuit gecommitte instellingen.
401 bij requests
De server is verbonden, maar het uitvoeren van een request mislukt. OplossingDe key ontbreekt in de header, de headernaam is niet X-API-KEY, of u gebruikte een Service key of een globale Account key in plaats van een scoped Account API key uit uw Development-applicatie.
Waarschuwing over ontbrekende variabele
claude mcp list meldt dat ${UNIPILE_API_KEY} niet is ingesteld. OplossingExporteer de variabele in de shell die Claude Code start, of voeg een standaardwaarde toe met de ${UNIPILE_API_KEY:-} syntax. Niet-ingestelde variabelen in url of headers kunnen als leeg worden gelezen, wat eindigt in een 401.
Verborgen witruimte in headers.X-API-KEY
Een token dat is geplakt met een newline aan het eind. OplossingClaude Code noemt het veld in claude mcp list en /mcp zonder de waarde te tonen. Voeg de server opnieuw toe met de key zonder witruimte; Claude Code gebruikt waarden precies zoals ze geschreven zijn.
Dezelfde naam in meer dan één scope
unipile bestaat in user- en project-scope met verschillende instellingen. OplossingClaude Code maakt één keer verbinding, met de definitie met de hoogste prioriteit (local, dan project, dan user), en waarschuwt voor het conflict. Verwijder het duplicaat met claude mcp remove unipile --scope user of houd één scope per machine aan.
MCP endpoint not found at
Een 404 op de URL: het pad klopt niet. OplossingDe volledige URL is https://developer.unipile.com/mcp?branch=v2.0, inclusief de branch-parameter. Controleer dat met curl -I vanaf uw machine, en daarna met claude mcp get unipile.
/mcp toont No MCP servers configured
Het bestand dat u bewerkte, wordt niet door Claude Code gelezen. OplossingClaude Code leest ~/.claude.json en .mcp.json alleen in de root van het project, nooit ~/.claude/mcp.json, ~/.claude/.mcp.json of ~/.claude/config/mcp.json. Herstart ook de sessie: .mcp.json wordt bij het opstarten gelezen.
De shell weigert de URL, of branch ontbreekt
zsh behandelt de ? in ?branch=v2.0 als patroon. OplossingZet de URL altijd tussen aanhalingstekens in claude mcp add. Zonder aanhalingstekens antwoordt zsh "no matches found" en kan bash de parameter laten vallen, waardoor u met de verkeerde API-versie verbindt.
Trage start of timeout
De server heeft bij het opstarten meer tijd nodig dan de standaard 30 s. OplossingVerhoog de limiet voor die sessie: MCP_TIMEOUT=60000 claude. Als u een projectserver bij de goedkeuringsprompt hebt geweigerd, brengt claude mcp reset-project-choices de prompt terug.
6000+ Bedrijven innoveren met Unipile
Vertrouwd door marktleiders
1 API
Activiteiten stroomlijnen voor alle belangrijke communicatiekanalen
2 dagen
Snel live integratie bereiken met minimale installatie
30%
Vermindering van onderhoudsinspanningen en -middelen

Ingebouwde beveiliging en compliance

Enterprise-bescherming voor uw gegevens en workflows Meer informatie over onze beveiliging
SOC 2 type II
SOC 2 type II
Gecertificeerd
Onafhankelijk gecontroleerde beveiligingscontroles voor gegevensbescherming en operationele integriteit.
GDPR
GDPR
Conform
Volledige naleving van de Europese regelgeving voor gegevensbescherming voor de privacy van gebruikers.
99.9%
Platform Uptime over de laatste 24 maanden
24/7
Wereldwijde ondersteuning met krachtige API

FAQ Claude Code MCP-server

De vragen die mensen echt intypen: scopes, waar de configuratie staat, keys buiten de repository, custom headers, Failed to connect, de URL tussen aanhalingstekens, wijzigingen in .mcp.json en API-sleutels.
Local is de standaard: opgeslagen in ~/.claude.json onder het huidige project, privé en beperkt tot dat project. Project schrijft .mcp.json in de root van de repository en wordt gedeeld via versiebeheer. User schrijft ~/.claude.json onder de root-key mcpServers en geldt voor al uw projecten. De prioriteit is local, dan project, dan user. Voor Unipile: --scope user voor uw persoonlijke development-key, --scope project als het hele team aan dezelfde integratie werkt.
In ~/.claude.json (op Windows %USERPROFILE%\.claude.json) voor de scopes local en user, en in .mcp.json in de root van het project voor de project-scope. Claude Code negeert ~/.claude/.mcp.json, ~/.claude/config/mcp.json, ~/.claude/mcp.json of %APPDATA%\Claude\mcp.json. claude mcp get unipile laat zien in welke scope een entry staat.
Claude Code expandeert ${VAR} en ${VAR:-default} in command, args, env, url en headers. Schrijf "X-API-KEY": "${UNIPILE_API_KEY}" in .mcp.json, commit het bestand, en elke developer levert een eigen scoped key via zijn omgeving. Is de variabele niet ingesteld en is er geen standaardwaarde, dan laadt de configuratie toch en toont claude mcp list een waarschuwing.
Ja: --header "X-API-KEY: your-scoped-api-key", herhaalbaar voor meerdere headers, korte vorm -H. Zet het na de URL, omdat de flag meerdere waarden accepteert. De Unipile-server is een remote HTTP-server: niets lokaal te installeren, geen npx, geen Node te beheren.
Voer claude mcp get unipile uit voor de details (HTTP-status en fouttekst), controleer de waarschuwingen over witruimte aan het begin of eind die claude mcp list na een geplakte key toont, en controleer of de URL vanaf uw machine antwoordt met curl -I. Een 404 toont MCP endpoint not found at <origin>: het pad klopt niet, de volledige URL is https://developer.unipile.com/mcp?branch=v2.0, inclusief de branch-parameter.
De URL bevat een ?, dat zsh als patroonteken leest. Zet de URL altijd tussen aanhalingstekens in claude mcp add. Zonder aanhalingstekens antwoordt zsh "no matches found" en kan bash de branch parameter laten vallen, waardoor u met de verkeerde versie van de server verbindt.
Claude Code leest .mcp.json bij de start van de sessie: sluit af en start opnieuw. Een foutieve entry wordt stilzwijgend genegeerd, en claude mcp list toont de parse-waarschuwing met het foutieve veld. Hebt u de server bij de goedkeuringsprompt van het project geweigerd, gebruik dan claude mcp reset-project-choices.
De server antwoordt zonder key zolang de agent alleen de API-specificatie leest. Om echte requests uit te voeren, maakt u een Scope aan in uw Development-applicatie, wijst u alleen de betrokken accounts toe en genereert u een scoped Account API key voor die Scope. Geef een MCP-client nooit een Service key of een globale Account key.