TR
Codex · MCP Sunucusu

Codex MCP Sunucusu: ürününüzde mesajlaşma ve e-posta

Üç satırlık config.toml şunu bağlar: Unipile MCP sunucusu. Ardından Codex, ürününüze LinkedIn, WhatsApp ve e-posta özellikleri ekler.
7 gün ücretsiz deneme, kredi kartı gerekmez.
Codex · crm-app
Unipile MCP bağlı
Sarah
CRM'ime LinkedIn kişi araması ekle.
Endpoint'i okuPOST /v2/{account_id}/linkedin/searchşema yüklendi
Arama route'u ve sonuç listesi eklendi. Her satır, profilin sağlayıcı ID'sini saklı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 Codex'e bağlıyken bu okumayı ajan sizin yerinize yapar ve kodu CLI'dan, IDE eklentisinden ya da masaüstü uygulamasından, sizin stack'inizde yazar.
Unipile MCP sunucusunu Codex'e 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
Codex 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.
config.toml, CLI ve IDE

Unipile MCP sunucusunu ekleyin: Codex

Sunucu uzaktadır: streamable HTTP üzerinden tek bir URL ve tek bir header. npx yok, yerel süreç yok. config.toml içindeki tek bir kaydı Codex CLI, Codex IDE eklentisi ve ChatGPT masaüstü uygulaması okur; yani bir kez yapılandırırsınız.
Codex CLI kurulu (npm i -g @openai/codex) ya da Codex IDE eklentisi kurulu, oturum açılmış.
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
codex mcp add, ardından headerURL'yi ~/.codex/config.toml içine kaydeder
G
Global yapılandırma~/.codex/config.toml
P
Proje yapılandırması.codex/config.toml (güvenilir proje)
E
Anahtar bir ortam değişkenindenenv_http_headers
?
CLI'da neden iki adım?codex mcp add, --url ve bir bearer token değişkeni alır, ancak özel header bayrağı yoktur. Unipile sunucusu X-API-KEY ile kimlik doğrular; bu yüzden komut URL'yi kaydeder, header ise elle ya da env_http_headers ile config.toml dosyasına eklenir.
terminal
# 1. Barındırılan Unipile MCP sunucusunu kaydedin (global yapılandırma) codex mcp add unipile --url "https://developer.unipile.com/mcp?branch=v2.0" # Added global MCP server 'unipile'. # 2. X-API-KEY header'ını ~/.codex/config.toml içindeki kayda ekleyin [mcp_servers.unipile] url = "https://developer.unipile.com/mcp?branch=v2.0" http_headers = { "X-API-KEY" = "your-scoped-api-key" } # 3. Doğrulayın codex mcp get unipile
[mcp_servers.unipile] url = "https://developer.unipile.com/mcp?branch=v2.0" http_headers = { "X-API-KEY" = "your-scoped-api-key" }
[mcp_servers.unipile] url = "https://developer.unipile.com/mcp?branch=v2.0" http_headers = { "X-API-KEY" = "your-scoped-api-key" } # Yalnızca güvenilir bir projede okunur. Anahtarı git dışında tutun: env_http_headers tercih edin.
[mcp_servers.unipile] url = "https://developer.unipile.com/mcp?branch=v2.0" env_http_headers = { "X-API-KEY" = "UNIPILE_API_KEY" } # codex'i başlatmadan önce: export UNIPILE_API_KEY=your-scoped-api-key
Dosyayı kaydedin ve Codex'i yeniden başlatın. codex mcp list, unipile'ı enabled olarak gösterir; oturum içinde /mcp de sunucuyu listeler. codex-cli 0.154.0 üzerinde doğrulandı.
Her satır ne yapar (codex-cli 0.154.0 üzerinde doğrulandı)
codex mcp add unipileGlobal config.toml içinde [mcp_servers.unipile] tablosunu oluşturur. Adı siz seçersiniz; kısa tutun, araç öneki olur.
--url "https://developer.unipile.com/mcp?branch=v2.0"Streamable HTTP taşıması. URL'yi tırnak içine alın: soru işareti zsh'te bir glob karakteridir.
http_headers = { "X-API-KEY" = "…" }Her istekte gönderilen statik header. Scope'a bağlı Account API anahtarınızı kullanın, asla Service veya global Account anahtarı değil.
env_http_headers = { "X-API-KEY" = "UNIPILE_API_KEY" }Aynı header; değer başlatma anında ortamdan okunur. Git'te duran bir proje config.toml dosyası için doğru biçim.
startup_timeout_sec = 30İsteğe bağlı. Varsayılan 10 sn'dir; yavaş bir ağda ilk el sıkışma zaman aşımına uğruyorsa yükseltin.
enabled = falseİsteğe bağlı. Kaydı silmeden sunucuyu devre dışı bırakır; Development ve Production anahtarları arasında geçiş için kullanışlıdır.
Yalnızca Codex'e özgü kısım

API anahtarınızı config.toml dışında tutun

http_headers anahtarı düz metin olarak; yedeklere ve proje yapılandırmasında git'e giden bir dosyaya yazar. Codex'in X-API-KEY header'ını göndermek için üç yolu var; dosyanın bulunduğu yere uyanı seçin.
1http_headers, statik değerUnipile dokümantasyonundaki biçim. Kendi makinenizdeki bir kullanıcı yapılandırması için uygundur, depoda paylaşılan bir dosya için asla.http_headers = { "X-API-KEY" = "your-scoped-api-key" }
2env_http_headers, başlatmada okunurHeader adını bir ortam değişkeninin adına eşler. Dosya gizli bilgi taşımaz, her geliştirici kendi Scope'a bağlı anahtarını export eder. Proje config.toml dosyası için doğru biçim.env_http_headers = { "X-API-KEY" = "UNIPILE_API_KEY" } export UNIPILE_API_KEY=your-scoped-api-key
3http_headers_helper, bir komuttanHeader'ları JSON olarak yazdıran yerel bir komut; anahtarları bir kasadan (vault) çeken ekipler için. CODEX_HOME'u da unutmayın: tüm yapılandırma dizinini taşır, bu yüzden bir terminalde kaydedilen sunucu diğerinde eksik olabilir.http_headers_helper = "./scripts/unipile-headers.sh"
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.
1Codex CLI'dalist, her sunucu için URL'si ve durumuyla bir satır yazdırır. get ise taşımayı, header'ları ve kaldırma komutunu gösterir.codex mcp list codex mcp get unipile
2Bir oturum içindeCodex TUI'de, IDE eklentisinde (dişli menüsü, MCP servers) ve ChatGPT masaüstü uygulamasında (Settings, MCP servers) aynı kayıt görünür: tek yapılandırma, üç arayüz./mcp # Status enabled, Auth Unsupported beklenen durumdur: sunucu OAuth değil, header kullanır
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 Codex'e 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.
Codex · crm-appDevelopment uygulaması
CRM'ime LinkedIn kişi araması ekle, ardından kullanıcının seçilen profili açıp oradan bir konuşma başlatmasını sağla.
Endpoint ara"linkedin search people profile"3 eşleşme
İsteği çalıştırPOST /v2/{account_id}/linkedin/search10 sonuç
Eklenen route'lar: GET /api/linkedin/search (anahtar kelimeler, sayfalama cursor'ı) ve GET /api/linkedin/profiles/:identifier. Sonuç listesi aramanın döndürdüğü sağlayıcı ID'sini saklar, profil route'u onu yeniden kullanır ve "Mesaj" butonu onu sohbet oluşturmaya iletir. İkisi de Development uygulamasında çalıştırıldı.4 dosya değişti · Development uygulamasında test edildi

Arama sonucundan konuşmaya tek bir tanımlayıcı

Bir LinkedIn özelliğinin zor kısmı çağrılar değil, arama satırından profile, oradan da mesaja aynı tanımlayıcıyı korumaktır. Codex üç sözleşmeyi sunucu üzerinden okur, her yanıtta bu tanımlayıcıyı hangi alanın taşıdığını görür ve route'ları hiçbir şeyi tahmin etmeden yazar.
Ajanın kullandığı endpoint'ler
POST/v2/{account_id}/linkedin/searchGET/v2/{account_id}/users/{identifier}POST/v2/{account_id}/chats
Sık yapılan hata: Bir hesapla arayıp başka bir hesapla mesaj göndermek. Profil ve sohbet, aramayı çalıştıran account_id üzerinde açılmalıdır.
LinkedIn entegrasyonu geliştirin
Codex · messaging-sdkDevelopment uygulaması
Kullandığımız Unipile chats ve emails route'ları için API şemalarından tipli bir Node.js ve Python istemcisi üret; 429'da yeniden deneme olsun.
Endpoint'i okuGET /v2/{account_id}/emailsşema yüklendi
İsteği çalıştırGET /v2/{account_id}/chats200 OK
Yazılanlar: unipile-client.ts ve unipile_client.py (istek ve yanıt şemalarından): chats ve emails için tipli list ve send metotları, cursor sayfalama yardımcısı, 429'da Retry-After header'ıyla üstel geri çekilme. İki istemci de liste çağrılarını Development uygulamasında çalıştırdı.2 istemci üretildi · şemalar sunucu üzerinden okundu

Bellekten değil, gerçek şemalardan tipli istemciler

Codex payload'ları tahmin etmez. Her route'un istek gövdesini ve yanıt şemasını sunucu üzerinden okur, tipleri üretir ve siz diff'i incelemeden önce Development uygulamanızda metot başına bir çağrı çalıştırır. Resmi Node.js ve Python SDK'ları referans olmaya devam eder; üretilen istemci sizindir ve küçük kalabilir.
Ajanın kullandığı endpoint'ler
GET/v2/{account_id}/chatsPOST/v2/{account_id}/chats/{chat_id}/messages/sendGET/v2/{account_id}/emailsPOST/v2/{account_id}/emails/send
Sık yapılan hata: Zaman aşımında idempotency kontrolü olmadan bir gönderimi yeniden denemek. Bir mesaj yalnızca bir kez çıkmalı; yazmaları değil, okuma çağrılarını yeniden deneyin.
Resmi SDK'lara bakın
Codex · saas-backendDevelopment uygulaması
SaaS'ımın her kullanıcısı için birden fazla bağlı hesabı destekle: birkaç LinkedIn ve e-posta hesabı bağlayabilsinler ve hangisinin göndereceğini seçebilsinler.
Endpoint'i okuGET /v2/accountsşema yüklendi
İsteği çalıştırGET /v2/accounts3 hesap
Eklenenler: bir accounts tablosu (anahtarı kullanıcı ve account_id), composer'da bir hesap seçici ve POST /api/messages route'u; bu route seçilen hesap üzerinden gönderir. accounts route'undan gelen yeniden bağlanma durumları rozet olarak gösterilir. Development uygulamasında üç hesapla doğrulandı.5 dosya değişti · 3 hesap, tek composer

Bir kullanıcı, birkaç hesap, workspace başına bir Scope

Kullanıcılarınızın Hosted Auth ile bağladığı her hesabın kendine ait bir kimliği vardır: account_id. Ajan, kullanıcılarınız ile bu ID'ler arasındaki eşlemeyi tasarlar, yeniden bağlanma ve checkpoint durumlarını göstermek için hesap durumu route'unu okur ve her gönderimi kullanıcının seçtiği hesaba yönlendirir.
Ajanın kullandığı endpoint'ler
GET/v2/accountsGET/v2/accounts/{account_id}POST/v2/auth/linkPOST/v2/{account_id}/chats
Sık yapılan hata: Hesap ID'sini kullanıcı yerine workspace üzerinde saklamak. Hesaplar onları bağlayan kişiye aittir; workspace yalnızca Scope'ları ve anahtarları gruplar.
Hosted Auth'u bir ajanla uygulayı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. Codex'e 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. Her yazmayı onaylamak istiyorsanız geliştirme boyunca default_tools_approval_mode ayarını prompt değerinde tutun.
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 · DevelopmentCodex 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 Codex MCP kaydı doğru olmadığında gördükleriniz ve her birinin çözümü. Çoğu; dosyaya, TOML'a, güven düzeyine ya da anahtara dayanır.
config.toml düzenlendikten sonra sunucu görünmüyor
codex mcp list hiçbir şey yazdırmıyor ya da kayıt oturum içinde eksik. Çözümİstemciyi yeniden başlatın: dosya başlangıçta okunur. Ardından şunu kontrol edin: CODEX_HOME: tüm yapılandırma dizinini taşır, bu yüzden bir terminalde kaydedilen sunucu diğerinde görünmeyebilir. Codex'i başlattığınız aynı shell'de codex mcp list komutunu çalıştırın.
Proje yapılandırması yok sayılıyor
.codex/config.toml depo kökünde, ama Codex yine global kaydı kullanıyor ya da hiçbirini kullanmıyor. ÇözümCodex proje katmanını yalnızca güvenilir bir proje için yükler. Kullanıcı yapılandırmasında trust_level = "trusted" satırını şu tablonun altına ekleyin: [projects."/path/to/repo"] ya da kaydı şuraya taşıyın: ~/.codex/config.toml.
Geçersiz TOML
Dosya ayrıştırılamıyor ve tüm sunucular bir anda kayboluyor. ÇözümTablonun adı tam olarak [mcp_servers.unipile] olmalı, header tablosunda "X-API-KEY" tırnak içinde yazılmalı, şu alan da string değil tablo olmalı: http_headers. Kapanmayan tek bir süslü parantez tüm dosyayı çökertir.
İsteklerde 401 Unauthorized
Sunucu listeleniyor ve spesifikasyonu okuyor, ama bir isteği çalıştırmak başarısız oluyor. ÇözümHeader eksik ya da env_http_headers içinde adı geçen değişken Codex'i başlatan shell'de export edilmemiş ya da anahtar, Development uygulamanızdan Scope'a bağlı bir Account API anahtarı değil, bir Service veya global Account anahtarı.
Ayarlar sunucunun kullanılamadığını söylüyor
IDE eklentisi veya masaüstü uygulaması sunucuyu işaretliyor, yine de işlemler çalışıyor. ÇözümBu kontrol resource arar; Unipile sunucusu ise resource değil, action sunar. Oturum içinde /mcp ile ve bir okuma çağrısı çalıştırarak doğrulayın. Sizin tarafınızda değiştirilecek bir şey yok.
Zaman aşımı
Başlangıç ya da bir çağrı sınırı aşıyor. ÇözümVarsayılanlar: startup_timeout_sec = 10 ve tool_timeout_sec = 60. Sunucu uzaktadır, başlatılacak bir süreç yoktur: zaman aşımlarını yükseltmeden önce URL'yi (?branch=v2.0 dahil), ağı ve varsa kurumsal proxy'yi kontrol edin.
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

Codex MCP sunucusu SSS

Gerçekten sorulan sorular: mcp.json yerine config.toml, dosyanın yeri, codex mcp add, anahtarı dosya dışında tutmak, üç arayüz, hiçbir şey görünmediğinde neye bakılacağı, zaman aşımları ve anahtarlar.
Hayır. Codex MCP yapılandırmasını şurada saklar: ~/.codex/config.toml, TOML biçiminde, sunucu başına bir tablo olarak; tablo adı: [mcp_servers.<name>]. Codex'te mcp.json yoktur ve dosya kurulumda oluşturulmaz: onu siz oluşturursunuz ya da codex mcp add sizin için oluşturur. Güvenilir bir proje, kökünde bir .codex/config.toml dosyası da taşıyabilir.
~/.codex/config.toml kullanıcı yapılandırması içindir, .codex/config.toml ise depo kökünde, proje yapılandırması içindir. CODEX_HOME ortam değişkeni tüm yapılandırma dizinini taşır: bir sunucu bir terminalde görünüp diğerinde görünmüyorsa önce bunu kontrol edin. Codex CLI, IDE eklentisi ve masaüstü uygulaması aynı dosyayı okur.
Kısmen. codex mcp add unipile --url "https://developer.unipile.com/mcp?branch=v2.0" komutu streamable HTTP sunucusu için tabloyu yazar, --bearer-token-env-var ise Bearer token alan sunucuları kapsar. Unipile sunucusu kimlik doğrulamayı bir X-API-KEY header'ıyla yapar ve komut bunu ayarlayamaz; bu yüzden oluşturduğu kayda http_headers veya env_http_headers ekleyin. codex-cli 0.154.0 üzerinde doğrulandı.
Şunu kullanın: env_http_headers = { "X-API-KEY" = "UNIPILE_API_KEY" }; bu satır header adını bir değer yerine bir ortam değişkeninin adına eşler, böylece dosya gizli bilgi olmadan commit edilebilir ve her geliştirici kendi Scope'a bağlı Account API anahtarını export eder. http_headers statik değerler içindir, http_headers_helper ise yerel bir komutun header'ları JSON olarak üretmesini sağlar.
Evet. Bir Codex kurulumunun üç arayüzü aynı yapılandırmayı okur; bir kez eklenen sunucu her yerde kullanılabilir. Masaüstü uygulamasında ve eklentide sunucuyu Settings, MCP servers, Add server yolundan Streamable HTTP seçerek de ekleyebilirsiniz. Dosyayı kaydettikten sonra istemciyi yeniden başlatın.
Sırasıyla dört neden: istemci yeniden başlatılmadı; dosya mevcut shell'inizden farklı bir CODEX_HOME altında duruyor; tablo bir proje .codex/config.toml dosyasında ve proje şu şekilde işaretlenmemiş: trust_level = "trusted", bu durumda Codex proje katmanını tamamen atlar; ya da TOML geçersiz. Önce codex mcp list, ardından /mcp komutunu oturum içinde çalıştırın.
startup_timeout_sec varsayılan 10 saniyelik başlangıç zaman aşımını, tool_timeout_sec ise araç başına varsayılan 60 saniyelik zaman aşımını geçersiz kılar; ikisi de sunucu tablosunun altında yer alır. Unipile sunucusu HTTP üzerinden uzaktadır ve başlatılacak yerel bir süreç yoktur; bu yüzden başlangıç zaman aşımı neredeyse her zaman sunucuya değil URL'ye, ağa ya da kurumsal bir proxy'ye işaret eder.
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.