TR
Gemini CLI · MCP Sunucusu

Gemini CLI MCP Sunucusu: mesajlaşma, e-posta ve takvim

Tek bir gemini mcp add komutu şunu bağlar: Unipile MCP sunucusu. Ardından ajanınız projenize LinkedIn, WhatsApp, e-posta ve takvim özellikleri ekler.
7 gün ücretsiz deneme, kredi kartı gerekmez.
Gemini CLI · booking-app
Unipile MCP bağlı
Sarah
Rezervasyon uygulamama takvim planlaması ekle.
Endpoint'i okuGET /v2/{account_id}/calendarsşema yüklendi
Uygunluk route'u ve rezervasyon route'u eklendi. Etkinlikler kullanıcının bağladığı takvime düşüyor.
3 dosya değişti · Development uygulamasında test edildi
Sonraki özelliği anlatın…
Görev

Ne yapmak istiyorsunuz

Ürününüze bir LinkedIn, WhatsApp, e-posta veya takvim bağlantısı ekleyin. Bu; bir API referansını okumak, doğru endpoint'leri seçmek, Hosted Auth'u ve callback'lerini bağlamak, ardından aramadan mesaja kadar doğru ID'leri korumak demektir. Unipile MCP sunucusu Gemini CLI'a bağlıyken bu okumayı ajan sizin yerinize yapar ve kodu terminalden, sizin stack'inizde yazar.
Unipile MCP sunucusunu Gemini CLI'a bağlayınUnipile MCP bağlı
Bağlamak istediğiniz kanalları seçindeveloper.unipile.com/mcp
Tüm kanalları bağla9 kanal
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
↑↓gezin boşlukseç ↵bağlatek URL, tek header
Unipile olmadan Sekmeler, tahminler, glue code
Gemini CLI endpoint adlarını ve payload'ları eğitim verisinden tahmin eder ve ID'leri yanlış kullanır.
Referanstaki şemaları sohbete her seferinde bir endpoint olmak üzere elle yapıştırırsınız.
İlk gerçek çağrı, code review'dan sonra production'da yapılır.
Unipile MCP sunucusu ile Uygulamanızdaki sonuç
Bir bağlantı route'u ve bir Ayarlar butonu: her kullanıcı kendi hesabını Hosted Auth ile bağlar.
Bir webhook alıcısı ve mesajlarla e-postaları geldikleri anda gösteren bir inbox.
Siz diff'i incelemeden önce her istek Development uygulamanızda bir kez çalıştırılmış olur.
settings.json, user veya project

Unipile MCP sunucusunu ekleyin: Gemini CLI

Sunucu uzaktadır: streamable HTTP üzerinden tek bir URL ve tek bir header. npx yok, yerel süreç yok. Tek bir komut kaydı settings.json içine (user veya project) yazar ve Gemini CLI bir sonraki başlatmada bağlanır.
Gemini CLI kurulu (npm i -g @google/gemini-cli), oturum açılmış ve güvendiğiniz bir klasörde.
Bir Development uygulaması: Unipile dashboard'unuzda, bir Scope ve Scope'a bağlı bir Account API anahtarıyla.
Hosted Auth ile bu Scope'a bağlanmış en az bir test hesabı; böylece ajan gerçek istekler çalıştırabilir.
1
gemini mcp add, tek satırsettings.json dosyasını sizin için yazar
U
User ayarları~/.gemini/settings.json
P
Project ayarları.gemini/settings.json (varsayılan kapsam)
E
Anahtar bir ortam değişkenindenheaders içinde $UNIPILE_API_KEY
?
User mı, project mi?Komut varsayılan olarak project kapsamını kullanır ve geçerli klasöre .gemini/settings.json yazar. Makinedeki tüm projeler için --scope user verin. Project ayarları user ayarlarını geçersiz kılar ve ikisinin de yüklenmesi için güvenilir bir klasör gerekir.
terminal
# Barındırılan Unipile MCP sunucusunu tüm projeler için kaydedin (user kapsamı) 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) # Doğrulayın ya da oturum içinde /mcp yazın 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" } } } } // Depoyla birlikte commit edilir: anahtarı dosyada değil, ortamda tutun.
{ "mcpServers": { "unipile": { "url": "https://developer.unipile.com/mcp?branch=v2.0", "type": "http", "headers": { "X-API-KEY": "${{UNIPILE_API_KEY}}" } } } } // gemini'yi başlatmadan önce: export UNIPILE_API_KEY=your-scoped-api-key
Dosyayı kaydedin ve gemini'yi güvenilir bir klasörde başlatın. gemini mcp list, unipile'ı Connected olarak gösterir; oturum içinde /mcp de sunucuyu listeler. gemini-cli 0.60.0 üzerinde doğrulandı.
Her bayrak ne yapar (gemini-cli 0.60.0 üzerinde doğrulandı)
--transport httpZorunlu: varsayılan stdio'dur, yani yerel bir süreç. Unipile sunucusu streamable HTTP üzerinden uzaktadır. CLI bunu "type": "http" olarak yazar.
--scope userŞuraya yazar: ~/.gemini/settings.json. Bu bayrak olmadan kayıt, geçerli klasördeki .gemini/settings.json dosyasına, yani project kapsamına gider.
--header "X-API-KEY: …"Tekrarlanabilir. Scope'a bağlı Account API anahtarınız; asla Service veya global Account anahtarı değil. Komutta herhangi bir konumda olabilir.
unipile "https://developer.unipile.com/mcp?branch=v2.0"Adı siz seçersiniz. URL'yi tırnak içine alın: soru işareti zsh'te bir glob karakteridir.
"$UNIPILE_API_KEY"settings.json içinde $VAR veya ${VAR} başlatma anında ortamdan okunur; böylece bir proje dosyası gizli bilgi olmadan commit edilebilir.
--timeout 30000İsteğe bağlı, milisaniye cinsinden. Yalnızca ilk el sıkışma yavaş bir ağda ya da bir proxy arkasında başarısız oluyorsa yükseltin.
Yalnızca Gemini CLI'a özgü kısım

httpUrl, url, trust ve API anahtarınız

settings.json içinde sunucunun bağlanıp bağlanmayacağını belirleyen ve başka hiçbir istemcide bu biçimde bulunmayan üç şey.
1httpUrl veya urlDokümantasyon httpUrl'yi streamable HTTP'ye, url'yi SSE'ye eşler. gemini mcp add komutu url'yi "type": "http" ile yazar ve ikisi de bağlanır. Dosyayı elle yazıyorsanız httpUrl kullanın: tipi olmayan çıplak bir url SSE olarak okunur; bu da Disconnected durumunun en sık gösterilen nedenidir."httpUrl": "https://developer.unipile.com/mcp?branch=v2.0"
2headers içinde $VARGemini CLI, settings.json içinde $NAME ve ${NAME} ifadelerini headers dahil genişletir. Proje dosyası gizli bilgi olmadan commit edilebilir ve her geliştirici kendi Scope'a bağlı Account API anahtarını export eder."headers": { "X-API-KEY": "$UNIPILE_API_KEY" } export UNIPILE_API_KEY=your-scoped-api-key
3Güvenilir bir klasör ve boş bırakılan trustGüvenilmeyen bir klasörde, user düzeyi dahil her sunucu Disabled olarak listelenir. Klasöre ilk istemde ya da trust komutuyla güvenin. Sunucunun trust seçeneğini boş bırakın: aksi hâlde her işlemden önceki onay atlanır.gemini trust
Doğrulama

Bağlantıyı doğrulayın

Üç kontrol: CLI'da, bir oturum içinde, ardından yalnızca spesifikasyonu okuyan bir prompt'la. Hiçbiri bağlı bir hesaba dokunmaz.
1Terminaldenlist, her sunucu için taşıma türü ve durumuyla bir satır yazdırır. Onay işareti ve Connected el sıkışmanın başarılı olduğunu, daire ve Disabled ise klasörün güvenilir olmadığını gösterir.gemini mcp list # ✓ unipile: … (http) - Connected
2Bir oturum içindeYapılandırılmış her sunucuyu durumuyla (Connected, Disconnected veya Disabled) görmek için /mcp yazın. Unipile sunucusu, çağrılmaya hazır action'larıyla görünür./mcp # ya da her action'ın açıklaması için /mcp desc
3Bir sohbette, hesaba dokunmadanYalnızca API spesifikasyonunu okuyan bir soru sorun. Ajan gerçek route'lar ve parametrelerle yanıt veriyorsa sunucu bağlanmıştır.Unipile MCP'yi kullanarak LinkedIn kişi araması endpoint'lerini ve zorunlu parametrelerini listele.
Glue code değil, prompt'lar

Ajanınıza prompt'u verin

Üç entegrasyon görevi; her birinde Gemini CLI'a yapıştırılacak birebir prompt, ajanın okuyup çalıştırdığı Unipile endpoint'leri ve projenize eklenenler yer alır. Yollar eksiksizdir; API taban URL'si: https://api.unipile.com, Scope'a bağlı anahtarınız ise X-API-KEY header'ında.
Gemini CLI · booking-appDevelopment uygulaması
Rezervasyon uygulamama takvim planlaması ekle: her kullanıcının bir haftalık uygunluğunu oku ve toplantıyı bağladıkları takvimde (Google veya Outlook) oluştur.
Endpoint'i okuGET /v2/{account_id}/calendars/{calendar_id}/eventsşema yüklendi
İsteği çalıştırPOST /v2/{account_id}/calendars/{calendar_id}/events201 Created
Eklenen route'lar: GET /api/availability (istenen aralıktaki etkinlikler, dolu dilimler sunucu tarafında hesaplanır) ve POST /api/bookings; ikincisi etkinliği katılımcılarla birlikte kullanıcının takviminde oluşturur ve dönen etkinlik ID'sini saklar. Saat dilimleri takvimden alınır. Development uygulamasında bir test etkinliği oluşturuldu.4 dosya değişti · Development uygulamasında test edildi

Kullanıcınızın bağladığı takvimde uygunluk ve etkinlik oluşturma

Google Calendar ve Outlook Calendar aynı takvim route'larını paylaşır. Gemini CLI takvim, etkinlik ve katılımcı şemalarını sunucu üzerinden okur, uygunluk hesaplamasını ve rezervasyon route'unu yazar ve siz diff'i incelemeden önce bir test takviminde bir etkinlik oluşturur.
Ajanın kullandığı endpoint'ler
GET/v2/{account_id}/calendarsGET/v2/{account_id}/calendars/{calendar_id}/eventsPOST/v2/{account_id}/calendars/{calendar_id}/events
Sık yapılan hata: Uygunluğu tarayıcının saat diliminde hesaplamak. API yanıtındaki takvim saat dilimini kullanın; aksi hâlde uzaktaki bir katılımcı için zaman aralığı saatlerce kayar.
Unipile MCP sunucusundaki tüm kanalları görün
Gemini CLI · support-inboxDevelopment uygulaması
Inbox'ımız LinkedIn ve WhatsApp'ı zaten Unipile ile senkronize ediyor. Aynı thread modeli ve aynı yanıt endpoint'iyle Instagram ve Telegram ekle.
Endpoint ara"chats messages attendees"3 eşleşme
İsteği çalıştırGET /v2/{account_id}/chats200 OK
Yeni model yok: Instagram ve Telegram sohbetleri aynı chat ve message route'larından gelir; bu yüzden senkronizasyon işi artık sağlayıcıdan bağımsız olarak bağlı her hesabı dolaşıyor, yanıt endpoint'i de sohbetin kendi hesabı üzerinden gönderiyor. İki sağlayıcı rozeti eklendi ve senkronizasyon Development uygulamasında bir Instagram ve bir Telegram test hesabıyla çalıştırıldı.3 dosya değişti · 4 kanal tek listede

Aynı route'lar, iki kanal daha, yeni model yok

Her mesajlaşma sağlayıcısı aynı chat route'larıyla sunulduğu için bir inbox'ı genişletmek, hesapları Hosted Auth ile bağlamak ve senkronizasyonun onları kapsamasına izin vermekten ibarettir. Ajan, katılımcı tanımlayıcıları gibi sağlayıcıya özgü alanları şemalarda kontrol eder ve thread modelini değiştirmeden bırakır.
Ajanın kullandığı endpoint'ler
GET/v2/accountsGET/v2/{account_id}/chatsGET/v2/{account_id}/chats/{chat_id}/messagesPOST/v2/{account_id}/chats/{chat_id}/messages/send
Sık yapılan hata: Sağlayıcıyı senkronizasyona sabit kodlamak. accounts route'u üzerinde dolaşın ve rozeti kod yolu değil, her hesabın provider alanı belirlesin.
Ajanla birleşik inbox oluşturun
Gemini CLI · crm-appDevelopment uygulaması
Mevcut Unipile entegrasyonumu hatalı ID'ler, güvensiz yeniden denemeler ve webhook olması gereken çağrılar açısından incele ve düzeltmeleri öner.
Endpoint'i okuPOST /v2/{account_id}/chats/{chat_id}/messages/sendşema yüklendi
Endpoint'i okuPOST /v2/webhooks/endpoints/şema yüklendi
Üç sorun bulundu: gönderim çağrısı sohbetin hesabı yerine workspace'in ilk hesabını kullanıyordu; yeniden deneme sarmalayıcısı zaman aşımında mesajları yeniden gönderiyordu; inbox chats route'unu 30 saniyede bir yokluyordu. Önerilen yamalar: hesap ID'si sohbetten alınır, yeniden denemeler okumalarla sınırlanır, mesaj olayları için bir webhook endpoint'i. Uygulandı ve Development uygulamasında doğrulandı.3 bulgu · 3 yama · Development uygulamasında doğrulandı

Belleğe göre değil, gerçek sözleşmeye göre bir denetim

Ajan, kodunuzu sunucu üzerinden okuduğu istek ve yanıt şemalarıyla karşılaştırır: hesabı hangi alan taşıyor, hangi çağrılar idempotent, webhook olayları hangi polling döngülerinin yerini alıyor. İnceleme, uygulayabileceğiniz ve Development uygulamanızda test edilmiş bir diff olarak gelir.
Ajanın kullandığı endpoint'ler
GET/v2/accounts/{account_id}POST/v2/{account_id}/chats/{chat_id}/messages/sendPOST/v2/webhooks/endpoints/GET/v2/webhooks/conversations/
Sık yapılan hata: Bir yazmayı yeniden deneyen bir düzeltmeyi kabul etmek. Bir mesaj ya da e-posta yalnızca bir kez çıkmalı; güvenli yeniden deneme okuma tarafındadır ve doğruluk kaynağı webhook'tur.
Webhook'ları bir ajanla bağlayın
Development'tan Production'a

Önce bir Development uygulamasında test edin

Unipile dashboard'u bir Development uygulaması ile bir Production uygulamasını birbirinden ayırır. Gemini CLI'a Development uygulamasından Scope'a bağlı bir anahtar ve Hosted Auth ile bağlanmış bir veya iki test hesabı verin. Ajan bu hesaplarda, onları bağlayan kimliği doğrulanmış kullanıcı adına ve her sağlayıcının sınırları içinde gerçek istekler çalıştırır; siz yayına alana kadar kullanıcılarınızın hesaplarına hiçbir şey dokunmaz. Geliştirme boyunca sunucu kaydındaki trust ayarını boş bırakın; böylece CLI, yazma yapan her işlemden önce onay ister.
Bağlantı akışını uçtan uca doğrulayın: auth link sunucu tarafında oluşturulur, hesap ID'si kullanıcı üzerinde saklanır.
Özellik başına bir okuma ve bir yazma doğrulayın: sohbetleri listeleyin, test hesabından bir mesaj gönderin.
Anahtarı Production'a geçirmeden önce bir webhook teslimatını ve bir yeniden bağlanma ya da checkpoint durumunu doğrulayın.
crm-app · DevelopmentGemini CLI kullanıyor
Scopedev-tests · 2 hesap
AnahtarScope'a bağlı Account API anahtarı
HesaplarLinkedIn test hesabı, Gmail test posta kutusu
Webhook'lar1 endpoint · mesaj olayları
crm-app · ProductionDokunulmadı
Scopeworkspace başına bir tane
AnahtarScope'a bağlı anahtarlar, yalnızca backend'inizde
Hesaplarkullanıcılarınızın kendi hesapları, Hosted Auth ile
Sorun giderme

Sık karşılaşılan hatalar ve anlamları

Bir kayıt doğru olmadığında gemini mcp list ve /mcp'nin gösterdikleri ve her birinin çözümü. Çoğu taşıma anahtarına, kapsama, klasör güvenine ya da anahtara dayanır.
No MCP servers configured.
gemini mcp list geçerli klasörden hiçbir kayıt bulamıyor. ÇözümDosya şu olmalı: ~/.gemini/settings.json veya .gemini/settings.json (gemini'yi başlattığınız klasörün kökünde) ve mcpServers JSON'ın en üst düzeyinde olmalı. Sondaki bir virgül tüm dosyanın yok sayılmasına yol açar.
Disconnected
Sunucu bir çarpı ve Disconnected ile listeleniyor. ÇözümÖnce taşıma anahtarını kontrol edin: httpUrl streamable HTTP için, ya da url ile birlikte "type": "http" (komutun yazdığı gibi). Çıplak bir url SSE olarak okunur. Ardından URL'nin kendisini kontrol edin, şu kısım dahil: ?branch=v2.0; son olarak varsa kurumsal proxy'yi.
Disabled, klasör güvenilir değil
User düzeyi dahil her sunucu, klasörle ilgili bir uyarıyla birlikte daire ve Disabled gösteriyor. ÇözümGemini CLI, MCP sunucularını yalnızca güvenilir bir klasörde yükler. İlk başlatmadaki istemi kabul edin ya da projede gemini trust komutunu çalıştırın, ardından yeniden listeleyin.
Yanlış yere eklendi
Kayıt bir projede çalışıyor, diğerinde eksik. Çözümgemini mcp add varsayılan olarak project kapsamını kullanır ve geçerli klasöre .gemini/settings.json yazar. Tüm projeler için --scope user ekleyin ve aynı sunucu adı için proje dosyasının user dosyasını geçersiz kıldığını unutmayın.
İsteklerde 401 Unauthorized
Sunucu Connected gösteriyor, ajan spesifikasyonu okuyor, ama bir action'ı çalıştırmak başarısız oluyor. ÇözümConnected anahtarı kontrol etmez. Header eksik ya da headers içinde adı geçen değişken gemini'yi başlatan shell'de export edilmemiş, değerin çevresinde fazladan bir boşluk var ya da anahtar Scope'a bağlı bir Account API anahtarı değil, bir Service veya global Account anahtarı.
Zaman aşımı
El sıkışma ya da bir action sınırı aşıyor. ÇözümVarsayılan timeout değeri 600000 ms'dir. Sunucu uzaktadır, başlatılacak bir süreç yoktur: başlangıçtaki zaman aşımı ağa, bir proxy'ye veya URL'ye işaret eder. Kayıttaki timeout değerini ancak bu üçü elendikten sonra ayarlayın.
6000+ Unipile ile inovasyon yapan şirketler
Sektör liderlerinin güvendiği çözüm
1 API
Tüm büyük iletişim kanallarında operasyonları sadeleştirin
2 gün
Minimum kurulumla hızla canlı entegrasyon
30%
Bakım eforu ve kaynaklarında azalma

Yerleşik güvenlik ve uyumluluk

Verileriniz ve iş akışlarınız için kurumsal düzeyde koruma Güvenliğimiz hakkında daha fazla bilgi
SOC 2 Type II
SOC 2 Type II
Sertifikalı
Veri korumasını ve operasyonel bütünlüğü güvence altına alan, bağımsız olarak denetlenmiş güvenlik kontrolleri.
GDPR
GDPR
Uyumlu
Kullanıcı gizliliği için Avrupa veri koruma düzenlemelerine tam uyum.
99.9%
Son 24 ayda platform çalışma süresi
24/7
Yüksek performanslı API ile küresel destek

Gemini CLI MCP sunucusu SSS

Gerçekten sorulan sorular: httpUrl mi url mi, settings.json'ın yeri, JSON yerine tek komut, anahtarı dosya dışında tutmak, Disconnected, No MCP servers configured, VS Code eklentisi ve anahtarlar.
Dokümantasyon httpUrl alanını streamable HTTP endpoint'i, url alanını ise SSE endpoint'i olarak tanımlar. gemini mcp add --transport http komutu url alanını şununla birlikte yazar: "type": "http"; iki biçim de güncel sürümlerde bağlanır. Dosyayı elle yazıyorsanız şunu kullanın: httpUrl; tipi olmayan çıplak bir url SSE olarak okunur, bu da Disconnected bir sunucunun en sık gösterilen nedenidir.
User ayarları şurada: ~/.gemini/settings.json, project ayarları ise projenizin kökündeki .gemini/settings.json içinde; ikisi de mcpServers anahtarı altındadır ve project ayarları user ayarlarını geçersiz kılar. Komutun varsayılanına dikkat edin: gemini mcp add siz şunu vermedikçe project kapsamına yazar: --scope user.
Evet, önerilen yol da budur: gemini mcp add --transport http --scope user --header "X-API-KEY: your-scoped-api-key" unipile "https://developer.unipile.com/mcp?branch=v2.0". Bu --header bayrağı tekrarlanabilir ve komutun herhangi bir yerinde olabilir. gemini-cli 0.60.0 üzerinde doğrulandı.
Header değerini şöyle yazın: "$UNIPILE_API_KEY" veya "${UNIPILE_API_KEY}". Gemini CLI, headers dahil settings.json içindeki ortam değişkenlerini genişletir; böylece proje dosyası gizli bilgi olmadan commit edilebilir ve her geliştirici gemini'yi başlatmadan önce kendi Scope'a bağlı Account API anahtarını export eder.
Sırasıyla: taşıma anahtarı (httpUrl streamable HTTP için, ya da url ile birlikte "type": "http"), sizinkini geçersiz kılan bir project settings.json ya da tersi, klasör güveni (güvenilmeyen bir klasör tüm sunucuları devre dışı bırakır) ve son olarak action'lar çalışırken Disconnected görünen bir durum; bu, spesifikasyondaki isteğe bağlı bir ping'den kaynaklanır. Önce gemini mcp list, ardından /mcp komutunu oturum içinde çalıştırın.
Gemini CLI, geçerli klasörden okuduğu yapılandırmada hiçbir mcpServers kaydı bulamadı. Dosyanın şurada olduğunu kontrol edin: ~/.gemini/ ya da .gemini/ (proje kökünde); ayrıca mcpServers alanının JSON'ın en üst düzeyinde durduğunu ve JSON'ın geçerli olduğunu doğrulayın: sondaki tek bir virgül dosyanın yok sayılmasına yeter.
Bu sayfa terminaldeki Gemini CLI'ı kapsar; burada anlatılan yapılandırma, CLI'ın okuduğu settings.json dosyasıdır. Eklentinin VS Code'da kendi MCP ayarları vardır; dosyanın paylaşıldığını varsaymadan önce eklentinin dokümantasyonuna bakın.
Ajan yalnızca API spesifikasyonunu okuduğunda sunucu anahtarsız yanıt verir. Gerçek istekler çalıştırmak için Development uygulamanızda bir Scope oluşturun, test hesaplarını atayın ve bu Scope'a bağlı bir Account API anahtarı üretin. Bir MCP istemcisine asla Service anahtarı veya global Account anahtarı vermeyin.