NL
Gemini CLI · MCP Server

Gemini CLI MCP-server: messaging, e-mail en agenda

Met één gemini mcp add koppelt u de Unipile MCP-server. Daarna bouwt uw agent LinkedIn-, WhatsApp-, e-mail- en agendafuncties in uw project.
7 dagen gratis proberen, geen creditcard nodig.
Gemini CLI · booking-app
Unipile MCP verbonden
Sarah
Voeg agendaplanning toe aan mijn boekingsapp.
Endpoint lezenGET /v2/{account_id}/calendarsschema geladen
De beschikbaarheidsroute en de boekingsroute toegevoegd. Events komen in de agenda die de gebruiker heeft gekoppeld.
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 Gemini CLI doet de agent dat leeswerk voor u en schrijft hij de code in uw stack, vanuit de terminal.
Koppel de Unipile MCP-server aan Gemini CLIUnipile 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
Gemini CLI 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.
settings.json, user of project

Voeg de Unipile MCP-server toe aan Gemini CLI

De server is remote: één URL via streamable HTTP en één header. Geen npx, geen lokaal proces. Eén commando schrijft de entry in settings.json, user of project, en Gemini CLI maakt bij de volgende start verbinding.
Gemini CLI geïnstalleerd (npm i -g @google/gemini-cli) en ingelogd, in een map die u vertrouwt.
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.
1
gemini mcp add, één regelschrijft settings.json voor u
U
Gebruikersinstellingen~/.gemini/settings.json
P
Projectinstellingen.gemini/settings.json (standaardscope)
E
Key uit een omgevingsvariabele$UNIPILE_API_KEY in headers
?
User of project?Het commando gebruikt standaard de project-scope, die .gemini/settings.json in de huidige map schrijft. Geef --scope user mee voor elk project op de machine. Projectinstellingen overschrijven gebruikersinstellingen, en beide worden alleen geladen in een vertrouwde map.
terminal
# Registreer de gehoste Unipile MCP-server voor elk project (user scope) gemini mcp add --transport http --scope user \ --header "X-API-KEY: your-scoped-api-key" \ unipile "https://developer.unipile.com/mcp?branch=v2.0" # MCP server "unipile" added to user settings. (http) # Verifiëren, of typ /mcp binnen een sessie gemini mcp list # ✓ unipile: https://developer.unipile.com/mcp?branch=v2.0 (http) - Connected
{ "mcpServers": { "unipile": { "url": "https://developer.unipile.com/mcp?branch=v2.0", "type": "http", "headers": { "X-API-KEY": "your-scoped-api-key" } } } }
{ "mcpServers": { "unipile": { "url": "https://developer.unipile.com/mcp?branch=v2.0", "type": "http", "headers": { "X-API-KEY": "$UNIPILE_API_KEY" } } } } // Gecommit met de repository: houd de key in de omgeving, niet in het bestand.
{ "mcpServers": { "unipile": { "url": "https://developer.unipile.com/mcp?branch=v2.0", "type": "http", "headers": { "X-API-KEY": "${{UNIPILE_API_KEY}}" } } } } // export UNIPILE_API_KEY=your-scoped-api-key voordat u gemini start
Sla het bestand op en start gemini in een vertrouwde map. gemini mcp list toont unipile als Connected, en /mcp binnen een sessie toont de server. Gecontroleerd op gemini-cli 0.60.0.
Wat elke flag doet, gecontroleerd op gemini-cli 0.60.0
--transport httpVerplicht: de standaard is stdio, een lokaal proces. De Unipile-server is remote via streamable HTTP. De CLI schrijft hem weg als "type": "http".
--scope userSchrijft ~/.gemini/settings.json. Zonder deze flag komt de entry in .gemini/settings.json in de huidige map, de project-scope.
--header "X-API-KEY: …"Herhaalbaar. Uw scoped Account API key, nooit een Service key of globale Account key. Elke positie in het commando werkt.
unipile "https://developer.unipile.com/mcp?branch=v2.0"De naam kiest u zelf. Zet de URL tussen aanhalingstekens: het vraagteken is een glob-teken in zsh.
"$UNIPILE_API_KEY"In settings.json wordt $VAR of ${VAR} bij het starten uit de omgeving gelezen, dus een projectbestand kan zonder geheim worden gecommit.
--timeout 30000Optioneel, in milliseconden. Verhoog het alleen als de eerste handshake mislukt op een traag netwerk of achter een proxy.
Het Gemini CLI-specifieke deel

httpUrl, url, trust en uw API-sleutel

Drie dingen in settings.json die bepalen of de server verbinding maakt, en die geen andere client in deze vorm heeft.
1httpUrl of urlDe documentatie koppelt httpUrl aan streamable HTTP en url aan SSE. Het commando gemini mcp add schrijft url met "type": "http", en beide maken verbinding. Schrijft u het bestand met de hand, gebruik dan httpUrl: een kale url zonder type wordt als SSE gelezen, de meest genoemde oorzaak van een Disconnected-status."httpUrl": "https://developer.unipile.com/mcp?branch=v2.0"
2$VAR binnen headersGemini CLI expandeert $NAME en ${NAME} in settings.json, headers inbegrepen. Het projectbestand kan zonder geheim worden gecommit, en elke developer exporteert zijn eigen scoped Account API key."headers": { "X-API-KEY": "$UNIPILE_API_KEY" } export UNIPILE_API_KEY=your-scoped-api-key
3Een vertrouwde map, en trust niet ingesteldIn een niet-vertrouwde map staat elke server als Disabled, ook op gebruikersniveau. Vertrouw de map bij de eerste prompt of met het trust-commando. Laat de trust-optie van de server leeg: die zou de bevestiging vóór elke actie overslaan.gemini trust
Verifiëren

Controleer de verbinding

Drie checks: in de CLI, binnen een sessie en daarna met een prompt die alleen de specificatie leest. Geen enkele raakt een gekoppeld account.
1Vanuit de terminallist toont één regel per server met het transport en de status. Een vinkje en Connected betekent dat de handshake gelukt is; een cirkel en Disabled betekent dat de map niet vertrouwd is.gemini mcp list # ✓ unipile: … (http) - Connected
2Binnen een sessieTyp /mcp om elke geconfigureerde server met zijn status te zien: Connected, Disconnected of Disabled. De Unipile-server verschijnt met zijn acties, klaar om aangeroepen te worden./mcp # of /mcp desc voor de beschrijving van elke actie
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 Gemini CLI 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.
Gemini CLI · booking-appDevelopment-app
Voeg agendaplanning toe aan mijn boekingsapp: lees de beschikbaarheid van elke gebruiker over een week en maak de afspraak aan in de agenda die ze hebben gekoppeld, Google of Outlook.
Endpoint lezenGET /v2/{account_id}/calendars/{calendar_id}/eventsschema geladen
Request uitvoerenPOST /v2/{account_id}/calendars/{calendar_id}/events201 Created
Toegevoegd GET /api/availability (events in het gevraagde venster, bezette slots server-side berekend) en POST /api/bookings, dat het event met deelnemers in de agenda van de gebruiker aanmaakt en de teruggegeven event-ID opslaat. Tijdzones komen uit de agenda. Een testevent aangemaakt op de Development-app.4 bestanden gewijzigd · getest op de Development-app

Beschikbaarheid en events aanmaken in de agenda die uw gebruiker heeft gekoppeld

Google Calendar en Outlook Calendar delen dezelfde agendaroutes. Gemini CLI leest via de server de schema's voor agenda's, events en deelnemers, schrijft de beschikbaarheidsberekening en de boekingsroute, en maakt één event aan in een testagenda voordat u de diff reviewt.
Endpoints die de agent gebruikt
GET/v2/{account_id}/calendarsGET/v2/{account_id}/calendars/{calendar_id}/eventsPOST/v2/{account_id}/calendars/{calendar_id}/events
Veelgemaakte fout: Beschikbaarheid berekenen in de tijdzone van de browser. Gebruik de tijdzone van de agenda uit de API-response, anders zit het slot uren verkeerd voor een deelnemer op afstand.
Bekijk alle kanalen op de Unipile MCP-server
Gemini CLI · support-inboxDevelopment-app
Onze inbox synchroniseert LinkedIn en WhatsApp al met Unipile. Voeg Instagram en Telegram toe met hetzelfde threadmodel en hetzelfde reply-endpoint.
Endpoints zoeken"chats messages attendees"3 resultaten
Request uitvoerenGET /v2/{account_id}/chats200 OK
Geen nieuw model: chats van Instagram en Telegram lopen via dezelfde chat- en berichtroutes, dus de sync-job loopt nu over elk gekoppeld account, ongeacht de provider, en het reply-endpoint verstuurt via het eigen account van de chat. De twee providerbadges toegevoegd en de sync uitgevoerd op de Development-app met één Instagram- en één Telegram-testaccount.3 bestanden gewijzigd · 4 kanalen in één lijst

Dezelfde routes, twee kanalen extra, geen nieuw model

Omdat elke messagingprovider via dezelfde chatroutes beschikbaar is, komt het uitbreiden van een inbox neer op accounts koppelen via Hosted Auth en de sync ze laten meenemen. De agent controleert de providerspecifieke velden in de schema's, zoals de identifiers van deelnemers, en laat het threadmodel ongewijzigd.
Endpoints die de agent gebruikt
GET/v2/accountsGET/v2/{account_id}/chatsGET/v2/{account_id}/chats/{chat_id}/messagesPOST/v2/{account_id}/chats/{chat_id}/messages/send
Veelgemaakte fout: De provider hardcoderen in de sync. Loop over de accounts-route en laat het provider-veld van elk account de badge bepalen, niet het codepad.
Bouw een unified inbox met een agent
Gemini CLI · crm-appDevelopment-app
Review mijn huidige Unipile-integratie op foute ID's, onveilige retries en calls die webhooks zouden moeten zijn, en stel de oplossingen voor.
Endpoint lezenPOST /v2/{account_id}/chats/{chat_id}/messages/sendschema geladen
Endpoint lezenPOST /v2/webhooks/endpoints/schema geladen
Drie problemen gevonden: de send-call gebruikte het eerste account van de workspace in plaats van het account van de chat; de retry-wrapper verstuurde berichten opnieuw na een time-out; de inbox pollde de chatroute elke 30 seconden. Voorgestelde patches: account-ID uit de chat, retries beperkt tot leesacties, een webhook-endpoint voor berichtevents. Toegepast en gecontroleerd op de Development-app.3 bevindingen · 3 patches · gecontroleerd op de Development-app

Een audit tegen het echte contract, niet tegen het geheugen

De agent vergelijkt uw code met de request- en responseschema's die hij via de server leest: welk veld het account bevat, welke calls idempotent zijn, welke polling-loops de webhook-events vervangen. De review komt binnen als een diff die u kunt toepassen, getest op uw Development-applicatie.
Endpoints die de agent gebruikt
GET/v2/accounts/{account_id}POST/v2/{account_id}/chats/{chat_id}/messages/sendPOST/v2/webhooks/endpoints/GET/v2/webhooks/conversations/
Veelgemaakte fout: Een fix accepteren die een schrijfactie opnieuw probeert. Een bericht of e-mail vertrekt maar één keer; de veilige retry zit aan de leeskant, met de webhook als bron van waarheid.
Webhooks koppelen met een agent
Van Development naar productie

Test eerst op een Development-applicatie

Het Unipile-dashboard scheidt een Development-applicatie van een Production-applicatie. Geef Gemini CLI 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. Laat trust leeg op de server-entry tijdens het bouwen, zodat de CLI vóór elke schrijfactie om bevestiging vraagt.
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 Gemini CLI
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

Wat gemini mcp list en /mcp tonen als een entry niet klopt, en de oplossing voor elk ervan. Meestal komt het neer op de transport-key in de JSON, de scope, het vertrouwen van de map of de API-key.
No MCP servers configured.
gemini mcp list vindt geen entry vanuit de huidige map. OplossingHet bestand moet ~/.gemini/settings.json of .gemini/settings.json zijn in de root van de map waaruit u gemini startte, met mcpServers op het hoogste niveau van de JSON. Door een komma aan het eind wordt het hele bestand genegeerd.
Disconnected
De server staat in de lijst met een kruisje en Disconnected. OplossingControleer eerst de transport-key: httpUrl voor streamable HTTP, of url met "type": "http" zoals het commando die schrijft. Een kale url wordt als SSE gelezen. Controleer daarna de URL zelf, met ?branch=v2.0, en een eventuele bedrijfsproxy.
Disabled, map niet vertrouwd
Elke server, ook op gebruikersniveau, toont een cirkel en Disabled met een waarschuwing over de map. OplossingGemini CLI laadt MCP-servers alleen in een vertrouwde map. Accepteer de prompt bij de eerste start of voer gemini trust uit in het project, en toon de lijst daarna opnieuw.
Op de verkeerde plek toegevoegd
De entry werkt in het ene project en ontbreekt in het andere. Oplossinggemini mcp add gebruikt standaard de project-scope en schrijft .gemini/settings.json in de huidige map. Voeg --scope user toe voor elk project, en onthoud dat een projectbestand het gebruikersbestand overschrijft voor dezelfde servernaam.
401 Unauthorized bij requests
De server toont Connected, de agent leest de specificatie, maar het uitvoeren van een actie mislukt. OplossingConnected controleert de key niet. De header ontbreekt, de variabele die in headers wordt genoemd, is niet geëxporteerd in de shell die gemini startte, er staat een losse spatie rond de waarde, of de key is een Service key of globale Account key in plaats van een scoped Account API key.
Time-out
De handshake of een actie overschrijdt de limiet. OplossingDe standaard timeout is 600000 ms. De server is remote, er is geen proces om te starten: een time-out bij het opstarten wijst op het netwerk, een proxy of de URL. Stel timeout pas in op de entry nadat die drie zijn uitgesloten.
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 Gemini CLI MCP-server

De vragen die mensen echt intypen: httpUrl of url, waar settings.json staat, één commando in plaats van JSON, de key buiten het bestand houden, Disconnected, No MCP servers configured, de VS Code-extensie en keys.
De documentatie definieert httpUrl als het streamable HTTP-endpoint en url als een SSE-endpoint. Het commando gemini mcp add --transport http schrijft url samen met "type": "http", en beide vormen maken verbinding in de huidige versies. Schrijft u het bestand met de hand, gebruik dan httpUrl: een kale url zonder type wordt als SSE gelezen, de meest genoemde oorzaak van een Disconnected-server.
Gebruikersinstellingen in ~/.gemini/settings.json, projectinstellingen in .gemini/settings.json in de root van uw project, allebei onder de mcpServers key, en projectinstellingen overschrijven gebruikersinstellingen. Let op de standaard van het commando: gemini mcp add schrijft naar de project-scope, behalve met --scope user.
Ja, en dat is de aanbevolen weg: gemini mcp add --transport http --scope user --header "X-API-KEY: your-scoped-api-key" unipile "https://developer.unipile.com/mcp?branch=v2.0". De --header flag is herhaalbaar en mag overal in het commando staan. Gecontroleerd op gemini-cli 0.60.0.
Schrijf de headerwaarde als "$UNIPILE_API_KEY" of "${UNIPILE_API_KEY}". Gemini CLI expandeert omgevingsvariabelen in settings.json, headers inbegrepen, dus het projectbestand kan zonder geheim worden gecommit en elke developer exporteert zijn eigen scoped Account API key voordat hij gemini start.
Op volgorde: de transport-key (httpUrl voor streamable HTTP, of url met "type": "http"), een project-settings.json die de uwe overschrijft of andersom, het vertrouwen van de map (een niet-vertrouwde map schakelt elke server uit), en tot slot een status Disconnected terwijl acties werken, wat komt door een optionele ping in de specificatie. Gebruik gemini mcp list, en daarna /mcp binnen een sessie.
Gemini CLI vond geen mcpServers entry in de configuratie die het vanuit de huidige map leest. Controleer of het bestand in ~/.gemini/ of in .gemini/ in de root van het project staat, of mcpServers op het hoogste niveau van de JSON staat, en of de JSON geldig is: een komma aan het eind is genoeg om het bestand te laten negeren.
Deze pagina gaat over Gemini CLI in de terminal, en de configuratie die hier wordt beschreven, is de settings.json die de CLI leest. De extensie heeft eigen MCP-instellingen in VS Code; raadpleeg de documentatie ervan voordat u ervan uitgaat dat het bestand gedeeld wordt.
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 de testaccounts 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.