Model Context Protocol

ChatGPT ve Codex'i araçlarınıza ve bilgilerinize bağlayın.

Model Context Protocol (MCP), ChatGPT ve Codex'in diğer sistemlerdeki araçları ve bilgileri kullanmasını sağlar. Bir MCP server, kullanılabilir araçları tanımlar ve bu araçlara yönelik istekleri işler; örneğin bir destek kaydını arar veya dokümantasyonu getirir.

Görevinize uygun yolu seçin:

123 numaralı destek kaydıyla ilgili bir soru, ChatGPT'den MCP server üzerinden destek kayıt sistemine iletilir. Sonuç sunucu üzerinden geri döner ve ChatGPT kaydın açık olduğunu bildirir.

Örnek: ekibinizin destek sistemindeki bir kaydı kontrol etme.

Bir eklenti, MCP bağlantısını ChatGPT'de kullanılmak üzere paketler. Eklentiler, yeniden kullanılabilir talimatlar içeren beceriler de barındırabilir. Yalnızca talimatlara ihtiyacınız varsa Eklenti oluşturma bölümüne bakın.

Plugin Creator ve Sites ile bir MCP eklentisi oluşturun

Eklentinizi oluşturmak ve düzenlemek için Plugin Creator'ı, MCP server'ı barındırmak için Sites kullanın.

Başlamadan önce

Önce Eklenti dizinini kontrol edin. Yeni bir bağlantıya ihtiyacınız varsa sisteminizin API dokümantasyonunu ve onaylanmış bir bağlantı yöntemini hazırlayın. Yardıma ihtiyacınız olursa sistemin sorumlusuna danışın.

Aşağıdaki örnekte bir Destek Kaydı Arama eklentisi oluşturulur. [destek kayıt sistemi] ifadesini sisteminizin adıyla değiştirin.

ChatGPT Enterprise mı kullanıyorsunuz?

Çalışma alanı sahibinizden veya yöneticinizden Workspace settings → Permissions & roles bölümünü kontrol etmesini isteyin:

  • Eklenti oluşturmak, düzenlemek ve kullanmak için Use plugins izni. Düzenleme için ayrıca eklentiye düzenleme erişimi gerekir.
  • Site oluşturup yayımlamak için Sites erişimi.
  • MCP destekli eklentiyi yayımlayan Site sahibi için Upload plugins ve Create plugins with MCPs izinleri.

Use plugins varsayılan olarak açıktır; iki MCP yayımlama izni ise varsayılan olarak kapalıdır. Sites erişimi ve eklenti izinleri hakkındaki bilgilere bakın.

1. Eklentinizi oluşturun

Yeni bir Work görevi başlatın, @Plugin Creator seçeneğini seçin ve API belgelerinizi ekleyin. Görevi açıklayın:

Eklentinizi oluşturun:

Create a Support Ticket Lookup plugin with an MCP server hosted on Sites, using the attached [ticketing system] API docs. Let me look up a ticket's status, owner, and latest update by ticket number. Make it read-only and tell me what's needed to connect it.

API erişimini henüz ayarlamadınız mı? Plugin Creator'dan şimdilik örnek veriler kullanmasını isteyin.

2. Sisteminizi bağlayın

Aynı konuşmada Plugin Creator'dan sunucuyu sisteminizin API'sine bağlamasını ve oturum açma adımlarında size rehberlik etmesini isteyin. Kuruluşunuzun onayladığı kimlik doğrulama yöntemini kullanın; parolaları, API key değerlerini ve diğer gizli bilgileri sohbette paylaşmayın.

Bağlantı ve barındırma ayrıntıları

Sites, ChatGPT ile MCP server'ınız arasındaki oturum açma işlemini yönetir. Sunucunuzun yine de sisteminizin API'sine onaylı bir bağlantısı olması gerekir; bu API, sunucunun erişebileceği kayıtları ve gerçekleştirebileceği eylemleri belirler.

Başka bir barındırma ortamı için önce MCP server oluşturma, ardından eklentinizi bağlama ve test etme adımlarını izleyin. Oturum açma yapılandırması için kimlik doğrulama kılavuzuna bakın.

3. Yayımlayın ve yükleyin

Plugin Creator'dan mevcut erişim ayarlarınızı koruyarak sunucuyu Sites ile yayımlamasını ve eklenti bağlantısını size vermesini isteyin. Eklentinin oluşturulması için Site sahibinin yayımlama işlemini yapması gerekir; düzenleyiciler bunu sahibinden istemelidir.

  1. Eklenti kartını açın veya Plugins → Personal → Created by you bölümünden eklentiyi bulun.
  2. Install ve Connect adımlarını izleyin ve gerekli oturum açma işlemlerini tamamlayın.

4. Eklentinizi kullanın

Yeni bir Work görevi başlatın, @ ile eklentinizi seçin ve sisteminizdeki bir destek talebi numarasını kullanarak “123 numaralı destek talebinin durumu nedir?” diye sorun. Eklentinin araçlarını aynı konuşmada diğer eklentilerle birlikte kullanabilirsiniz.

Eklentinizi paylaşın veya düzenleyin

Business veya Enterprise'da, eklentinin paylaşım kontrollerini kullanarak ekip arkadaşlarınızı davet edin. Share plugins iznine ihtiyacınız vardır; eklentiyi çalışma alanı dizininde listelemek için ayrıca Publish plugins to workspace izni gerekir. Paylaşım izinlerine bakın.

Ekip arkadaşlarınızın eklentiye, eklentinin uygulamasına ve Site'a (en azından görüntüleyici düzeyinde) erişimi olmalıdır. Her kişi kendi hesabıyla yükleme ve bağlantı işlemlerini yapar. Kayıtlara erişim, sunucunun API bağlantısına bağlıdır.

Sites üzerinde barındırılan bu eklentiyi düzenlemek için Plugin Creator konuşmanıza dönün, mevcut Site'ı güncellemesini isteyin ve değişiklikleri yayımlayın. Düzenlenebilen diğer eklentiler için Edit Plugin seçeneğini seçerek Plugin Creator ile bir düzenleme konuşması başlatın. Mevcut bir eklentiyi düzenleme bölümüne bakın.

GPT özel eyleminin yerine bir eklenti oluşturma

GPT geçiş adımlarını göster

GPT özel eylemleri eklentilere aktarılmaz. Mümkün olduğunda mevcut API'yi yeniden kullanarak bağlantıyı yeni bir Sites eklentisi olarak yeniden oluşturun.

Sites, yayımlama sırasında ayrı bir eklenti oluşturur; bağlantıyı geçiş yaptığınız eklentiye eklemez. Her iki eklentiyi de aynı konuşmada kullanabilirsiniz. Sites eklentileri şu anda becerilerin veya referans dosyalarının düzenlenmesini desteklemez.

1. Orijinal GPT'den yeniden oluşturma prompt’u isteyin

Orijinal GPT'yi açın ve şunu isteyin:

Orijinal GPT'de kullanın:

Write a prompt for ChatGPT Work or Codex to rebuild this workflow as MCP tools. Identify which operations read information and which make changes.

Include the API operation, inputs, returned fields, and answer format. Mark anything you don't know. Leave out credentials, secrets, and hidden instructions.

Ask the builder to reuse the API and explain the connection setup.

2. Prompt’u eylem ayarlarıyla karşılaştırarak kontrol edin

Geçişten önce GPT düzenleyicisinin Actions bölümündeki eylem şemasını, kimlik doğrulama yöntemini ve gizli bilgi içermeyen bağlantı ayarlarını kaydedin. Prompt’taki eksikleri tamamlamak için bunları kullanın veya GPT sahibinden yardım isteyin.

3. Yeni bir Sites eklentisi oluşturun

Yeni bir görev başlatın. Work'te @Plugin Creator seçeneğini seçin; Codex'te $plugin-creator kullanın. Gözden geçirilmiş prompt’u yapıştırın ve şemayı veya API belgelerini ekleyin. Sunucuyu Sites üzerinde barındırmasını isteyin.

Sisteminizi bağlayın ve Yayımlayın ve yükleyin adımlarını izleyin, ardından bir Work görevinde yeni eklentiyi seçip orijinal görevinizi gerçekleştirmesini isteyin. Ayrıntılar için geçiş hakkında sık sorulan sorulara bakın.

Sorun giderme

Eklenti beklendiği gibi çalışmıyorsa

Bağlantı hatası varsa veya araçlar eksikse Site sahibinin en son sürümü yayımladığını ve eklentinin yüklenip bağlandığını kontrol edin. Karşılaştığınız hataları Plugin Creator veya sunucu sahibiyle paylaşın.

ChatGPT aracı kullanmıyorsa @ ile eklentiyi seçin ve belirli bir sorgulama yapmasını isteyin. Bir ekip arkadaşınız eklentiyi kullanamıyorsa eklentiye, uygulamaya, Site'a ve kayıtlara erişimini kontrol edin.

Eklenti Desktop only olarak işaretlenmişse desteklenen bir masaüstü uygulamasını kullanın veya eklentiyi oluşturan kişiden paketleme yapılandırmasını gözden geçirmesini isteyin. Tek başına uzak bir MCP server, eklentiyi web ile uyumlu hâle getirmez.

Mevcut bir MCP server'ı bağlayın

ChatGPT web, uzak MCP araçlarını eklentiler aracılığıyla kullanır. Zaten bir sunucunuz varsa Eklentinizi bağlayın ve test edin kılavuzunu izleyin. Yerel Codex istemcileri de MCP server'lara doğrudan bağlanabilir ve yapılandırmalarını paylaşabilir.

Kurulum ve yapılandırma seçeneklerini görmek için kullandığınız arayüzü seçin.

ChatGPT masaüstü uygulaması, Codex CLI ve IDE uzantısı MCP server öğelerini destekler ve aynı Codex ana makinesi için MCP yapılandırmasını paylaşır.

Aşağıda belirtilen desteklenen sunucu özellikleri, bir Codex ana makinesinde yapılandırılmış MCP server öğeleri için geçerlidir. Barındırılan eklenti araçlarının yetenekleri farklı olabilir.

Desteklenen MCP özellikleri

  • STDIO sunucuları: Yerel bir işlem olarak çalışan (bir komutla başlatılan) sunucular.
    • Ortam değişkenleri
  • Akış destekli HTTP sunucuları: Bir adres üzerinden eriştiğiniz sunucular.
    • Bearer belirteciyle kimlik doğrulama
    • Client ID Metadata Documents (CIMD) ve Dynamic Client Registration (DCR) dâhil OAuth kimlik doğrulaması
    • Güvenilir birinci taraf sunucular için ChatGPT oturumuyla kimlik doğrulama
  • Sunucu talimatları: Codex, başlatma sırasında döndürülen MCP instructions alanını okur ve sunucunun araçlarının yanı sıra sunucu genelinde geçerli yönlendirme olarak kullanır.

Codex için bir MCP server geliştiriyor veya bakımını yapıyorsanız sunucu genelinde geçerli olan araçlar arası iş akışları, kısıtlamalar ve istek sınırları için instructions kullanın. Codex sunucuyu nasıl kullanacağına karar verirken en önemli yönlendirmenin erişilebilir olması için ilk 512 karakteri kendi başına anlaşılır tutun.

Codex'i bir MCP server öğesine bağlama

Codex, MCP yapılandırmasını diğer Codex yapılandırma ayarlarıyla birlikte config.toml içinde saklar. Varsayılan olarak bu konum ~/.codex/config.toml şeklindedir; ancak MCP server öğelerini .codex/config.toml ile bir proje kapsamında da yapılandırabilirsiniz (yalnızca güvenilir projeler).

ChatGPT masaüstü uygulaması, Codex CLI ve IDE uzantısı bu yapılandırmayı paylaşır. MCP server öğelerinizi yapılandırdıktan sonra kurulumu yeniden yapmadan bu istemciler arasında geçiş yapabilirsiniz.

ChatGPT masaüstü uygulamasında yapılandırma

  1. Ayarlar bölümünü açın, ardından MCP server öğeleri seçeneğini seçin.
  2. Server ekle seçeneğini seçin.
  3. Bir ad girin, STDIO veya Streamable HTTP seçeneğini belirleyin ve sunucunun komutunu veya URL'sini sağlayın.
  4. Sunucuyu kaydedin, ardından Yeniden başlat seçeneğini seçin.

Sunucu listesi, hangi sunucuların etkin olduğunu ve hangilerinin OAuth gerektirdiğini gösterir. Bir OAuth sunucusu oturum açılmasını gerektirdiğinde Kimlik doğrula seçeneğini seçin. Bağlı sunucuları görüntülemek için mesaj yazma alanına /mcp yazın.

config.toml ile yapılandırma

Daha ayrıntılı denetim için ~/.codex/config.toml dosyasını veya proje kapsamındaki .codex/config.toml dosyasını düzenleyin. Desteklenen tüm MCP seçeneklerinin aranabilir bir listesi için yapılandırma başvurusuna bakın.

Her MCP server öğesini yapılandırma dosyasında bir [mcp_servers.<server-name>] tablosuyla yapılandırın.

STDIO sunucuları

  • command (zorunlu): Sunucuyu başlatan komut.
  • args (isteğe bağlı): Sunucuya geçirilecek bağımsız değişkenler.
  • env (isteğe bağlı): Sunucu için ayarlanacak ortam değişkenleri.
  • env_vars (isteğe bağlı): İzin verilecek ve iletilecek ortam değişkenleri.
  • cwd (isteğe bağlı): Sunucunun başlatılacağı çalışma dizini.
  • experimental_environment (isteğe bağlı): Kullanılabilir olduğunda stdio sunucusunu uzak bir yürütücü ortamı üzerinden başlatmak için remote olarak ayarlayın.

env_vars, düz değişken adları veya kaynak içeren nesneler barındırabilir:

env_vars = ["LOCAL_TOKEN", { name = "REMOTE_TOKEN", source = "remote" }]

Dize girdileri ve source = "local", Codex'in yerel ortamından okur. source = "remote", uzak yürütücü ortamından okur ve uzak MCP stdio gerektirir.

Akış destekli HTTP sunucuları

  • url (zorunlu): Sunucu adresi.
  • auth (isteğe bağlı): Yapılandırılmış bearer tokenleri ve yetkilendirme üstbilgilerinden sonra denenecek kimlik doğrulama yöntemi. Saklanan MCP OAuth kimlik bilgileri için oauth (varsayılan) kullanın. Güvenilir birinci taraf ChatGPT kaynağında mevcut ChatGPT oturumunu kullanmak ve saklanan OAuth'ı yedek olarak tutmak için chatgpt kullanın.
  • bearer_token_env_var (isteğe bağlı): Authorization içinde gönderilecek bearer belirtecinin ortam değişkeni adı.
  • http_headers (isteğe bağlı): Üstbilgi adlarını statik değerlerle eşleyen harita.
  • env_http_headers (isteğe bağlı): Üstbilgi adlarını ortam değişkeni adlarıyla eşleyen harita (değerler ortamdan alınır).
  • http_headers_helper (isteğe bağlı): Üstbilgi adları ile dize değerlerinden oluşan bir JSON nesnesi yazdıran yerel komut; örneğin {"X-Auth": "temporary-token"}. Yerel ortamdan kurulan HTTP MCP bağlantıları için desteklenir; stdio sunucuları veya uzak bir yürütme ortamı üzerinden kurulan bağlantılar için desteklenmez.

Codex, yardımcı üstbilgilerini bağlantı için önbelleğe alır. Aynı kaynaklı bir POST isteği 401 veya 403 döndürdükten sonra üstbilgileri bir kez yeniler ve yalnızca yardımcı değişmiş değerler döndürürse yeniden dener. Açıkça belirtilen bearer tokenleri ve OAuth kimlik bilgileri, yardımcı tarafından sağlanan Authorization üstbilgisine göre önceliklidir. Yetersiz kapsam bildiren bir OAuth 403 yanıtı yardımcı yenilemesini tetiklemez.

Hiçbir kimlik bilgisi kaynağı çözümlenemezse Codex, sunucuya kimlik doğrulaması olmadan bağlanabilir. MCP OAuth oturum açma işlemini başlatmak için codex mcp login <server-name> komutunu ayrıca çalıştırın.

Diğer yapılandırma seçenekleri

  • startup_timeout_sec (isteğe bağlı): Sunucunun başlaması için zaman aşımı (saniye). Varsayılan: 10.
  • tool_timeout_sec (isteğe bağlı): Sunucunun bir aracı çalıştırması için zaman aşımı (saniye). Varsayılan: 60.
  • enabled (isteğe bağlı): Bir sunucuyu silmeden devre dışı bırakmak için false olarak ayarlayın.
  • required (isteğe bağlı): Bu etkin sunucu başlatılamazsa başlangıcın başarısız olması için true olarak ayarlayın.
  • enabled_tools (isteğe bağlı): Araç izin listesi.
  • disabled_tools (isteğe bağlı): Araç engelleme listesi (enabled_tools sonrasında uygulanır).
  • default_tools_approval_mode (isteğe bağlı): Bu sunucudaki araçlar için varsayılan onay davranışı. Desteklenen değerler auto, prompt, writes ve approve şeklindedir. writes modu, salt okunur olarak işaretlenmemiş araçlar için onay ister.
  • tools.<tool>.approval_mode (isteğe bağlı): Araç başına onay davranışı geçersiz kılma ayarı.
  • tools.<tool>.output_token_limit (isteğe bağlı): Standart %20 serileştirme payından önce, tek bir aracın çıktısı için pozitif token bütçesi. Modelin o araca yönelik varsayılan çıktı kısaltma bütçesini geçersiz kılar.

Üst düzey mcp_optional_startup_grace_ms ayarı, Codex'in ilk araç kataloğunu oluştururken isteğe bağlı MCP server öğelerini ne kadar bekleyeceğini denetler. Varsayılan değer 1000 milisaniyedir. Her sunucunun startup_timeout_sec değerini beklemek için bunu 0 olarak ayarlayın. Zorunlu sunucular yine kendi başlangıç zaman aşımlarını kullanır.

OAuth istemci kaydı ve geri çağrılar

Yetkilendirme sunucunuz önceden kaydedilmiş bir OAuth istemcisi gerektiriyorsa MCP server öğesini eklerken istemci kimliğini sağlayın:

codex mcp add example --url https://mcp.example.com --oauth-client-id my-client

Gizli istemciler için --oauth-client-secret seçeneğini de iletin. Gizli değeri bir ortam değişkeninden okuyun:

codex mcp add example --url https://mcp.example.com --oauth-client-id my-client --oauth-client-secret "$MCP_CLIENT_SECRET"

Bu seçenek, boş olmayan bir istemci kimliği ve gizli değer gerektirir. Codex gizli değeri mcp_servers.example.oauth.client_secret olarak config.toml dosyasına kaydeder. Bu dosyayı gizli tutun ve sürüm kontrolüne dahil etmeyin.

Codex, sağlayıcınıza kaydetmeniz gereken eksiksiz geri çağrı URL'sini görüntüler:

OAuth callback URL: http://127.0.0.1/callback

Codex, daha sonraki oturum açma işlemleri için geri çağrıyı istemci kimliğiyle birlikte config.toml içinde saklar:

[mcp_servers.example]
url = "https://mcp.example.com"

[mcp_servers.example.oauth]
client_id = "my-client"
callback_url = "http://127.0.0.1/callback"

Yeni eklenen önceden kaydedilmiş istemciler, yalnızca yetkilendirme sunucusu authorization_response_iss_parameter_supported: true desteğini duyurur ve bir meta veri issuer sağlarsa kararlı bir geri çağrı kullanır. Düzenleyen kimliği desteği duyurulmazsa Codex, http://127.0.0.1/callback/XuuuHAzzHOni gibi sunucuya özgü bir geri çağrı kimliği ekler. Kayıtlı bir geri çağrısı olmayan mevcut istemciler, geri çağrı kimliğine özgü yönlendirmelerini kullanmayı sürdürür.

Oturum açma sırasında geri çağrı seçimi, OAuth yapılandırmasına ve yetkilendirme sunucusunun meta verilerine bağlıdır:

OAuth yapılandırması Düzenleyen kimliği desteği Kullanılan geri çağrı
callback_url, client_id olmadan Destekleniyor Yapılandırılmış geri çağrı istemci kaydı için kullanılır.
callback_url, client_id olmadan Desteklenmiyor Yapılandırılmış geri çağrı, sunucuya özgü geri çağrı kimliği eklenerek istemci kaydı için kullanılır.
client_id ve callback_url Destekleniyor Yapılandırılmış geri çağrı yeniden kullanılır; yetkilendirme yanıtı eşleşen iss değerini içermelidir.
client_id ve doğru geri çağrı kimliğiyle biten bir callback_url Desteklenmiyor Yapılandırılmış geri çağrı değiştirilmeden yeniden kullanılır.
client_id ve doğru geri çağrı kimliği eksik olan bir callback_url Desteklenmiyor Yapılandırılmış geri çağrı yok sayılır. Codex, geri çağrı kimliği eklenmiş şekilde mcp_oauth_callback_url veya ayarlanmamışsa http://127.0.0.1/callback kullanır.
Yapılandırılmış bir callback_url olmadan client_id Destekleniyor veya desteklenmiyor Codex, sunucuya özgü geri çağrı kimliği eklenmiş genel veya varsayılan geri çağrıyı kullanır.

Geri dönüş mekanizması, saklanan geri çağrı URL'sini değiştirmez. Codex, geri çağrı kimliğini yolu ve sorgu dizesi dâhil MCP server URL'sinden türetir. Aynı seçim kuralları otomatik ve açık oturum açma işlemleri için geçerlidir.

Özel bir geri çağrı yoluna veya uzak Devbox giriş URL'sine ihtiyacınız olduğunda mcp_oauth_callback_url ayarını yapın. Yeni eklenen önceden kaydedilmiş istemciler, sağlayıcıları düzenleyen kimliğinin tanımlanmasını destekliyorsa bu URL'yi değiştirmeden kullanır. Aksi takdirde yapılandırılmış URL'yi sunucuya özgü geri çağrı kimliği eklenmiş olarak kullanırlar. Daima codex mcp add tarafından görüntülenen tam geri çağrıyı kaydedin.

Açıkça belirtilmiş bir bağlantı noktası içermeyen http://127.0.0.1 geri çağırımlarında Codex, dinleyici bağlantı noktasını görüntülediği ve sakladığı URL'ye eklemez; etkin dinleyici bağlantı noktasını yetkilendirme sırasında ekler. Bu değiştirme işlemi localhost, IPv6 ana makineleri, HTTPS URL'leri veya zaten bağlantı noktası içeren geri çağırımlar için geçerli değildir. Yetkilendirme sunucuları, değişken geri döngü bağlantı noktalarını RFC 8252, Bölüm 7.3 uyarınca kabul etmelidir.

Sabit bir genel dinleyici bağlantı noktası seçmek için mcp_oauth_callback_port ayarını yapın veya tek bir sunucu için bu ayarı geçersiz kılmak üzere mcp_servers.<server-name>.oauth.callback_port ayarını yapın. Geri çağırım URL'sinde açıkça belirtilen bağlantı noktası, dinleyiciyi yapılandırmaz. Doğrudan bir geri döngü geri çağırımı için http://127.0.0.1 adresini bağlantı noktası belirtmeden kullanın veya aynı bağlantı noktasını hem geri çağırım URL'si hem de dinleyici için açıkça yapılandırın. Proxy üzerinden yapılan bir geri çağırım, yerel dinleyici bağlantı noktasından farklı bir harici URL bağlantı noktasını bilinçli olarak kullanabilir. Yerel geri çağırım URL'leri yerel arayüze bağlanır; yerel olmayan geri çağırım URL'leri ise 0.0.0.0 adresine bağlanır.

Codex, yetkilendirme kodunu takas etmeden önce döndürülen tüm iss değerlerini doğrular. Eşleşmeyen bir iss her zaman yanıtın reddedilmesine yol açar. Düzenleyen kimliği desteği duyurulduğunda eksik bir iss değeri de yanıtın reddedilmesine yol açar. Her iki hatada da kod takas edilmez veya başka bir geri çağrıya dönülmez. Hatalı biçimlendirilmiş bir geri çağrı URL'si ya da meta verilerde düzenleyen kimliği olmadan duyurulan düzenleyen kimliği desteği de kesin hata olarak kalır. Bkz. Kullanıcıların kimliğini doğrulama.

Bir sunucu için OAuth kapsamlarını seçmek üzere config.toml içinde mcp_servers.<server-name>.scopes değerini ayarlayın. Tek bir oturum açma işlemi için bunları geçersiz kılmak üzere codex mcp login <name> --scopes read,write komutunu çalıştırın. İkisi de ayarlanmamışsa Codex, mevcut olduğunda bildirilen OAuth kapsamlarını kullanır.

Boş bir liste (scopes = []), kapsamları yine OAuth kitaplığının seçmesine olanak tanır. Yetkilendirme sunucusu destekliyorsa kitaplık offline_access kapsamını da ekleyebilir.

OAuth istemci kaydı

Codex, OAuth Client ID Metadata Documents (CIMD) ve Dynamic Client Registration'ı (DCR) destekler. Codex varsayılan olarak yetkilendirme sunucusu client_id_metadata_document_supported: true desteğini duyurduğunda, token_endpoint_auth_methods_supported içinde none bulunduğunda ve geri çağrı desteklenen bir geri döngü URL'si kullandığında otomatik olarak CIMD'yi seçer. Aksi takdirde Codex, kullanılabiliyorsa DCR'yi kullanır. Yapılandırılmış bir OAuth istemci kimliği her zaman önceliklidir ve istemci kaydını atlar.

Düzenleyen kimliğine bağlı yanıtların kullanılmadığı CIMD için Codex CLI, ChatGPT'de barındırılan ve MCP server öğesine özgü bir meta veri belgesi kullanır:

https://chatgpt.com/oauth/codex/<callback_id>/client.json

Codex, <callback_id> değerini MCP server URL'sinden türetir ve bunu http://127.0.0.1:<port>/callback/<callback_id> gibi geri döngü yönlendirme URI'sine ekler. Meta veri belgesi, eşleşen geri döngü URI'sini bağlantı noktası olmadan kaydeder. Yetkilendirme sunucuları, RFC 8252 gereğince ana makine ve yolu tam olarak eşleştirirken oturum açma sırasında seçilen bağlantı noktasını kabul etmelidir. Özel geri çağrı ana makineleri, yolları veya sorgu parametreleri DCR ya da yapılandırılmış bir OAuth istemci kimliği gerektirir.

Codex CLI ayrıca sabit, paylaşılan bir CIMD belgesini de destekler:

https://chatgpt.com/oauth/codex/client.json

Codex CLI, yetkilendirme sunucusu aşağıdaki koşulları karşıladığında paylaşılan /callback yoluyla sabit belgeyi kullanır: yetkilendirme sunucusu authorization_response_iss_parameter_supported: true desteğini bildirir, meta verilerinde geçerli bir issuer sağlar ve yetkilendirme yanıtlarında eşleşen bir iss içerir. Düzenleyen kimliğine bağlı yanıtlar sağlamayan sunucular, geri çağırıma özgü belgeyi kullanır.

Tek bir CLI oturum açma işlemi için kayıt yöntemi seçmek üzere --oauth-client-registration kullanın:

codex mcp login <server-name> --oauth-client-registration cimd
codex mcp login <server-name> --oauth-client-registration dcr

Varsayılan değer auto şeklindedir. Kayıt seçimleri yalnızca mevcut oturum açma işlemi için geçerlidir ve config.toml içinde saklanmaz.

config.toml örnekleri

[mcp_servers.context7]
command = "npx"
args = ["-y", "@upstash/context7-mcp"]
env_vars = ["LOCAL_TOKEN"]

[mcp_servers.context7.env]
MY_ENV_VAR = "MY_ENV_VALUE"
# Optional MCP OAuth callback overrides (used by `codex mcp login`)
mcp_oauth_callback_port = 5555
mcp_oauth_callback_url = "https://devbox.example.internal/callback"
[mcp_servers.figma]
url = "https://mcp.figma.com/mcp"
bearer_token_env_var = "FIGMA_OAUTH_TOKEN"
http_headers = { "X-Figma-Region" = "us-east-1" }
[mcp_servers.chrome_devtools]
url = "http://localhost:3000/mcp"
enabled_tools = ["open", "screenshot"]
disabled_tools = ["screenshot"] # applied after enabled_tools
default_tools_approval_mode = "prompt"
startup_timeout_sec = 20
tool_timeout_sec = 45
enabled = true

[mcp_servers.chrome_devtools.tools.open]
approval_mode = "approve"
output_token_limit = 30000

Eklentiler tarafından sağlanan MCP server öğeleri

Yüklü eklentiler, eklenti bildirimlerinde MCP server öğelerini paketleyebilir. Bu sunucular eklentiden başlatıldığından kullanıcı yapılandırması aktarım komutlarını ayarlamaz. Kullanıcı yapılandırması, plugins.<plugin>.mcp_servers.<server> altında açma/kapatma durumunu ve araç politikasını yine de denetleyebilir.

[plugins."sample@test".mcp_servers.sample]
enabled = true
default_tools_approval_mode = "prompt"
enabled_tools = ["read", "search"]

[plugins."sample@test".mcp_servers.sample.tools.search]
approval_mode = "approve"

Eklentiler tarafından sağlanan HTTP MCP server öğeleri, OAuth ayarlarını .mcp.json içinde de bildirebilir. Eklenti bildirimleri clientId, callbackUrl ve callbackPort camelCase alan adlarını kullanır:

{
  "mcpServers": {
    "sample": {
      "type": "http",
      "url": "https://mcp.example.com/mcp",
      "oauth": {
        "clientId": "my-pre-registered-client",
        "callbackUrl": "http://127.0.0.1/callback/registered"
      }
    }
  }
}

Eklentiler tarafından sağlanan MCP server öğeleri, diğer MCP server öğeleriyle aynı geri çağrı seçimi kurallarını izler. Bir eklenti clientId sağlıyorsa, sağlayıcısı düzenleyen kimliğine bağlı geri çağrıları desteklemiyorsa ve callbackUrl sunucuya özgü geri çağrı kimliğini içermiyorsa Codex, oturum açma sırasında bu URL'yi yok sayar ve geri çağrı kimliği eklenmiş şekilde mcp_oauth_callback_url veya ayarlanmamışsa http://127.0.0.1/callback kullanır. Yapılandırılmış callbackUrl değişmeden kalır.

Bir eklentinin oauth.callbackPort değeri, genel mcp_oauth_callback_port değerini geçersiz kılar; ikisi de ayarlanmamışsa Codex geçici bir bağlantı noktası seçer. callbackUrl içine gömülü bağlantı noktası, dinleyici bağlantı noktasını seçmez. Sabit bağlantı noktasına sahip doğrudan bir geri döngü geri çağrısı için iki değeri de eşleşecek şekilde yapılandırın:

{
  "callbackUrl": "http://127.0.0.1:4321/callback/registered",
  "callbackPort": 4321
}

Uzak giriş veya başka bir proxy için, proxy yapılandırılmış dinleyiciye yönlendirme yaptığında geri çağrı URL'sinin bağlantı noktası ile yerel dinleyici bağlantı noktası bilinçli olarak farklı olabilir.

Yararlı MCP server örnekleri

MCP server öğelerinin listesi büyümeye devam ediyor. Yaygın örneklerden bazıları şunlardır:

  • OpenAI Docs MCP: OpenAI geliştirici belgelerinde arama yapın ve bunları okuyun.
  • Context7: Güncel geliştirici belgelerine bağlanın.
  • Figma Yerel ve Uzak: Figma tasarımlarınıza erişin.
  • Playwright: Playwright kullanarak bir tarayıcıyı denetleyin ve inceleyin.
  • Chrome Developer Tools: Chrome'u denetleyin ve inceleyin.
  • Sentry: Sentry günlüklerine erişin.
  • GitHub: GitHub'ı git tarafından desteklenenlerin ötesinde yönetin (örneğin pull request'ler ve sorunlar).