{count, plural, one {Program} other {Program}}
Muhtemelen şimdiye kadar yapay zekâ kodlama ajanlarının karmaşık fonksiyonlar yazmanız veya zorlu hataları ayıklamanız gerektiğinde son derece kullanışlı olduğunu fark etmişsinizdir. Ama çoğu zaman bir duvara tosluyorlar. Genellikle, proje dosyalarınızın içinde hazır bulunmayan bilgilere ihtiyaç duyduğunuz anda faydalı olmaktan çıkıyorlar.
Peki ya kodlama ajanınız o ortamın dışına çıkıp canlı verileri çekebilse, güncel dokümantasyonu arayabilse veya sizin adınıza çeşitli araçları kullanabilseydi? İşte o zaman bu ajanlar çok daha güçlü hale gelebilir.
Bu eğitimde, bunu Codex CLI ve Model Context Protocol (MCP) kullanarak nasıl gerçekleştireceğinizi adım adım göstereceğim. Codex CLI ve MCP’nin birlikte nasıl çalıştığının temellerini ele alacak, canlı hisse verileriyle sıfırdan bir finans panosu projesi geliştirecek, çoklu ajan kalıplarını inceleyecek ve güvenlik en iyi uygulamalarını tartışacağız.
Bundan en iyi şekilde faydalanmak için adımları benimle birlikte uygulamanızı şiddetle tavsiye ederim. Yeni bir Next.js projesi oluşturun, Codex CLI’nin çalışır durumda yüklendiğinden emin olun ve Alpha Vantage’tan ücretsiz bir API anahtarı alın; böylece inşa etmeye hazır oluruz.
Ajanik yapay zekâya yeniyseniz, AI Agent Fundamentals beceri yolumuza kaydolmanızı kesinlikle öneririm.
Codex CLI MCP Temelleri
Gerçek kodlamaya geçmeden önce, kullandığımız araçları anlamamız gerekiyor. MCP’nin tam olarak ne olduğunu ve Codex CLI’nin bunu nasıl kullandığını parçalara ayıralım.
MCP nedir?
Peki MCP nedir? Model Context Protocol ifadesinin kısaltmasıdır. Yapay zekâ sistemlerinin harici araçlara ve veri kaynaklarına nasıl bağlandığını standartlaştırmak için Anthropic tarafından sunulan açık bir standarttır. Teknik olarak konuşursak, STDIO (standart girdi/çıktı) veya HTTP üzerinden JSON-RPC 2.0 ile çalışır.

Kaynak: truefoundry
Bunun önemli olmasının nedeni, büyük bir sorunu — bir “entegrasyon kâbusunu” — fiilen çözmesidir: Geçmişte, bir LLM’i belirli bir veritabanına veya araca bağlamak istediğinizde, çoğu zaman o çifte özel bir bağlayıcı geliştirmeniz gerekirdi. Dağınık, bakım zorlu ve ölçeklenmesi güçtü.
MCP ile artık tüm LLM araç bağlantıları için tek bir birleşik protokole sahibiz. Özel entegrasyonları standart bir arayüzle değiştirerek bu tabloyu basitleştirir.
Kulis arkasında neler olup bittiğini anlamak isterseniz, sıfırdan bir MCP sunucusu ve istemcisi oluşturma yürüyüşü iyi bir tamamlayıcıdır.
Codex CLI nedir?
Şimdi de Codex CLI’den bahsedelim. Bu, OpenAI’nin hafif, terminal tabanlı kodlama ajanıdır. Claude Code veya Cursor gibi diğer yapay zekâ kodlama araçları gibi, yalnızca açık olan dosyayı değil, tüm proje bağlamınızı gerçekten anlamak üzere tasarlanmıştır.
Her şeyi tek bir yerde bir araya getirir; verimli kod indeksleme, konuşma geçmişiniz ve gerçek komut yürütmeyi tek bir Metin Kullanıcı Arayüzünde (TUI) birleştirir. Davranışının neredeyse tamamı bir config.toml dosyasını düzenleyerek kontrol edilebilir ve özelleştirilebilir; bu da yönetimini kolaylaştırır.
Codex MCP’yi nasıl uygular
MCP uygulamasına geldiğinde, Codex hem STDIO sunucularını hem de Akışlanabilir HTTP sunucularını destekler:
- STDIO sunucuları yerel süreçler olarak çalışır. Bunları, doğrudan makinenizde çalışan belirli komutlar ve argümanlar olarak düşünebilirsiniz.
- Akışlanabilir HTTP sunucuları bir URL üzerinden uzaktan bağlanır ve isteğe bağlı olarak erişim için bearer token veya OAuth kimlik doğrulamasını destekler.

Buradaki gerçekten kullanışlı özelliklerden biri, Codex CLI ile IDE uzantısının aynı config.toml dosyasını paylaşmasıdır. Bu sayede terminalde veya editörünüzde çalışıyor olun, tutarlı MCP araçlarını kullanırsınız; iki kez yapılandırma yapmanıza gerek kalmaz, bu da çok zaman kazandırır.
Codex, kimlik doğrulamayı da oldukça iyi yönetir ve codex mcp login <server-name> komutu üzerinden OAuth desteği sunar. Ayrıca yapılandırmanızdaki enabled_tools veya disabled_tools ayarlarıyla belirli araçları filtrelemenize izin vererek ajanın neler yapabileceği üzerinde ince ayarlı bir kontrol sağlar.
Codex CLI MCP Kurulumu
Artık teoriyi ele aldığımıza göre, işe koyulma ve ortamı kurma zamanı. Bu bölümde, MCP sunucularınızı sizin için çalışacak şekilde nasıl yapılandıracağınızı adım adım anlatacağız.
Önkoşullar
Codex’i MCP ve Agents SDK ile birbirine bağlamaya başlamadan önce aşağıdakilerin hazır olduğundan emin olun:
-
Bu makinede Codex CLI kurulu. Terminalinizi açıp
npm install -g @openai/codexkomutunu çalıştırarak global olarak kurabilirsiniz. Kurulumu doğrulamak içincodex --versionile her şeyin çalıştığını teyit edin. -
Codex bu makinede kimliği doğrulanmış durumda. Bir kez
codex login(veya başsız ortamlardacodex login --device-auth) çalıştırın ve terminalinizde Codex’in normal şekilde çalıştığını doğrulayın. -
Çoklu ajan iş akışı için ayrıca bir OpenAI API anahtarına ihtiyacınız var. OpenAI konsolundan edinin ve kabuğunuzda
export OPENAI_API_KEY="sk-..."komutuyla ayarlayın. -
Harici araçlar için ortam değişkenleri ayarlı. Örneğin, Alpha Vantage piyasa verisi anahtarınızı
ALPHA_VANTAGE_KEYdeğişkeninden okur; örnekleri çalıştırmadan önce bunu da aynı şekilde dışa aktarmalısınız.
Bir AlphaVantage API anahtarı edinmek için:
- AlphaVantage destek sayfasına gidin.
- Kısa kayıt formunu (kurum, rol ve e-posta) doldurun.
- API anahtarınız hemen görüntülenecek. Kopyalayın ve güvenle saklayın.
Ücretsiz katman günde 25 API isteğine kadar izin verir. Daha yoğun kullanım için Alpha Vantage’ın premium planları mevcuttur.
CLI üzerinden MCP sunucuları ekleme
Sırada, komut satırı arayüzü ve codex mcp add komutunu kullanarak yeni bir sunucu ekleyeceğiz. Böylece yapılandırma dosyalarıyla elle uğraşmanız gerekmez ve Codex işin çoğunu sizin yerinize yapar.
Örneğin, dokümantasyon aramalarında yardımcı olacak bir sunucu eklemek isterseniz Context7 MCP sunucusunu kullanabilirsiniz. Kurmak için terminalinizde şu komutu çalıştırın:
codex mcp add context7 -- npx -y @upstash/context7-mcp
config.toml üzerinden MCP sunucuları ekleme
CLI komutları hızlı başlamak için harika olsa da bazen biraz daha fazla kontrole ihtiyaç duyarsınız ya da perde arkasında neler olduğunu birebir görmek istersiniz. Bu durumda yapılandırma dosyasını doğrudan düzenleyebilirsiniz.
Bu yapılandırmanın aslında iki yerde bulunduğunu ve kapsamlarının farklı olduğunu bilmek önemlidir:
-
Tüm projeleriniz için geçerli olan
~/.codex/config.tomlkonumundaki genel yapılandırma dosyası -
Belirli proje klasörünüzün içinde yer alan
.codex/config.tomlkonumundaki proje kapsamlı yapılandırma dosyası. Genellikle, bir çatışma olduğunda proje kapsamlı ayarlar genel ayarların üzerine yazar.
Tüm MCP sunucuları özel bir CLI kurulum komutuyla gelmez. Bu durumlarda, Codex’in sunucu sürecini başlatmak için ihtiyaç duyduğu komutu ve argümanları belirterek doğrudan ~/.codex/config.toml içinde yapılandırırsınız. Bu size sunucunun nasıl başlatıldığı üzerinde tam kontrol sağlar; yerelde STDIO ile çalışabilir veya uzaktan HTTP ile bağlanabilir.
AlphaVantage MCP sunucusu bunlardan biridir. config.toml dosyasını açın ve aşağıdaki bloğu ekleyin:
[mcp_servers.alphavantage]
command = "uvx"
args = ["av-mcp", "<your-key>”]
Feragat: Bir API anahtarını doğrudan config.toml içine sabitlemek gerçek dünyadaki projeler için önerilmez. Bunu sürüm kontrolünde olan (ör. GitHub’da), diğer geliştiricilerle paylaşılan veya bir sunucuya dağıtılan hiçbir projede yapmayın; dosyaya erişimi olan herkes anahtarınızı okuyup kötüye kullanabilir. Bu eğitim için kabul edilebilir; çünkü config.toml ev dizininizde (~/.codex/) bulunur ve makinenize özeldir.
Bloğa eklemek için faydalı bir satır da varsayılan 10 saniyelik zaman aşımını geçersiz kılmak için startup_timeout_sec=30 eklemektir; bu, bağlantının kurulması için yeterli süre sağlar.
MCP sunucularını yönetme
Birkaç sunucu kurduktan sonra, bunları nasıl yöneteceğinizi bilmeniz gerekir. Codex, her şeyi düzenli tutmanız için bir dizi komut sunar.
Şu anda nelerin kurulu olduğunu görmek isterseniz codex mcp list komutunu çalıştırabilirsiniz. Az önce eklediğimiz Alpha Vantage gibi bir sunucunun ayrıntılarını kontrol etmek isterseniz codex mcp get alphavantage komutunu çalıştırabilirsiniz. Ve elbette artık bir sunucuya ihtiyacınız olmadığını düşünürseniz, örneğin Context7 sunucusunu codex mcp remove context7 komutunu çalıştırarak kaldırabilirsiniz.
Son olarak, etkin bir Codex oturumunda çalışırken her şeyin doğru şekilde çalıştığını doğrulayabilirsiniz. Sohbet arayüzüne doğrudan /mcp yazın; bağlı araçlarınızın durumunu gösterecektir. alphavantage ve context7 için Status: enabled ibaresini görmelisiniz.
Codex ve MCP ile Hisse Senedi Portföy Risk Panosu Oluşturma
Teori faydalıdır, ancak öğrenmenin en iyi yolu gerçek bir şey inşa etmektir. Bu bölümde, Codex ve MCP’yi kullanarak gerçek piyasa verilerini çekip risk metriklerini hesaplayan işlevsel bir Hisse Senedi Portföy Risk Panosunu sıfırdan oluşturacağız.
Panoyu görüntülemek için proje, JavaScript tabanlı bir programlama dili olan TypeScript’i kullanır. Farklı seviyeler için bir hatırlatmaya ihtiyacınız varsa, TypeScript Mülakat Soruları rehberimize göz atmanızı öneririm.
Projeyi kurma
Projeyi kurmak için aşağıdaki adımları izleyin:
-
Projeyi başlatın: Terminalinizde standart Next.js oluşturma komutunu çalıştırın:
npx create-next-app@latest portfolio-dashboard --typescript -
Varsayılan istemleri kabul ederek standart bir yapılandırma sağlayın
-
Yeni proje klasörünüzdeki dizine gidin:
cd portfolio-dashboard -
UI bileşenleriniz için bir alt dizin oluşturarak bileşen yapısını hazırlayın:
mkdir components -
Portföy kartı öğesini
componentsalt klasöründe bir.tsxdosyası olarak oluşturun:components/PortfolioCard.tsx
Bileşen, AAPL ve TSLA gibi sahte hisse pozisyonlarının listesini gösteren, her hissenin sembolünü, hisse adetini ve mevcut fiyatını sunan stilli bir kart oluşturan PortfolioCard’ı tanımlar. Düzen ve stil için Tailwind CSS sınıflarını kullanır; beyaz bir kart konteyneri ve zümrüt yeşili fiyat biçimlendirmesi vardır. Şuna benzemelidir:
// components/PortfolioCard.tsx
import React from 'react';
type Position = {
symbol: string;
shares: number;
price: number;
};
const mockPositions: Position[] = [
{ symbol: 'AAPL', shares: 10, price: 150.00 },
{ symbol: 'TSLA', shares: 5, price: 900.00 },
];
export const PortfolioCard = () => {
return (
// Added text-slate-900 to ensure visibility on the white background
<div className="p-6 border border-slate-200 rounded-xl shadow-sm bg-white text-slate-900">
<h2 className="text-xl font-bold mb-4">My Portfolio</h2>
<ul className="divide-y divide-slate-100">
{mockPositions.map((pos) => (
<li key={pos.symbol} className="flex justify-between py-3">
<div className="flex flex-col">
<span className="font-bold text-slate-800">{pos.symbol}</span>
<span className="text-sm text-slate-500">{pos.shares} shares</span>
</div>
<span className="font-mono font-semibold text-emerald-600">
${pos.price.toFixed(2)}
</span>
</li>
))}
</ul>
</div>
);
};
Bu dosyayı kaydettikten sonra, tarayıcıda görebilmek için ana app/page.tsx dosyanız içinde <PortfolioCard/>’ı içe aktarıp kullanmayı unutmayın:
// app/page.tsx
import { PortfolioCard } from "../components/PortfolioCard";
export default function Page() {
return (
<main className="min-h-screen flex items-center justify-center bg-slate-50">
<PortfolioCard />
</main>
);
}
Şimdi npm run dev komutunu çalıştırdığınızda, tarayıcınızda şu tarz bir çıktı görmelisiniz:

Yapay zekâ ile kodlamaya başlamadan önce, ajanlarımızın etkin olduğundan emin olmalıyız. npm run dev ile terminali çalışır bırakın. Yeni bir terminal penceresinde:
-
Henüz yapmadıysanız, daha önce bahsettiğimiz MCP yapılandırma komutlarını çalıştırın
-
API anahtarınızı şu şekilde dışa aktarın: export
ALPHA_VANTAGE_KEY=”<your-key>” -
Aynı terminal penceresinde
codexkomutunu çalıştırarak Codex ajanını başlatın
Sharpe oranı özelliğini uygulama
İlk hesaplayacağımız özellik, bir yatırımın risk ayarlı getirisini değerlendirmek için kritik bir metrik olan Sharpe oranı olacak. Genellikle formülü aramak ve hesaplamak için doğru kütüphaneyi bulmak biraz zahmetlidir. Bunu Codex’e bırakacağız.
Codex terminal oturumunuzda şu istemi yazın:
"PortfolioCard.tsx içine her pozisyon için Sharpe oranı hesaplaması ekleyin. Gerekirse Context7 ile fonksiyon imzasını kontrol edin."
Codex’in harekete geçtiğini göreceksiniz. Önce, doğru girdileri kullandığından emin olmak için teknik analiz kütüphanesinin (ta-lib veya JavaScript eşdeğeri) dokümantasyonunu aramak üzere Context7 aracını kullanabilir. Ardından PortfolioCard.tsx dosyanızı otomatik olarak değiştirecektir.
Muhtemelen mockPositions dizisini genişletecek ve aşağıdaki gibi oranın hesaplanması için bir yardımcı fonksiyon ekleyecektir:
function calculateSharpe(prices: number[]) {
// Codex implements the logic here using standard deviation and mean returns
// resulting in a return value like 1.23
}
Ve yeni metriği göstermek için JSX’inizi güncelleyecektir:
<PortfolioCard sharpe={calculateSharpe(prices)}/>
Tarayıcınızı kontrol ettiğinizde, artık pozisyonlarınızın yanında bir Sharpe oranı (ör. 1.23) görüntülendiğini görmelisiniz; şöyle:

Volatilite uyarıları ekleme
Şimdi panoyu tepkisel hale getirelim ve AlphaVantage’tan gerçek finansal verileri kullanalım. Bir hissenin aşırı oynak hale gelip gelmediği konusunda uyarı almak istiyoruz. "Yüksek volatilite"yi 7 günlük volatilitenin %3’ü aşması olarak tanımlayacağız.
Codex terminalinde şu istemi girin:
"Listemdeki semboller için fiyat geçmişini getirerek 7 günlük volatilitesi %2’yi aşan pozisyonları işaretleyin. Alpha Vantage verilerini kullanın."
MCP’nin parladığı yer burası. Codex’in harici veriye ihtiyaç duyduğunu algılayacaktır. Gerçek dünya veri noktalarını almak için alphavantage.get_price_history("AAPL") ve alphavantage.get_price_history("TSLA") çağrılarını yapacaktır.
Verileri aldıktan sonra, bu fiyatların standart sapmasını hesaplayacak mantığı yazacaktır. Son olarak, riskin görsel olarak vurgulanması için bileşeninizin stilini güncelleyecektir.
PortfolioCard kodunuzun koşullu biçimlendirmeyi içerecek şekilde güncellendiğini göreceksiniz. Mantık şöyle görünebilir:
<li className={volatility > 2 ? "text-red-500 font-bold" : "text-green-500"}>
{pos.symbol}: {volatility}%
</li>
Çalışan uygulamanıza baktığınızda, ajanın çektiği canlı piyasa verilerine göre, AAPL’ı yeşil (güvenli) ve TSLA’yı kırmızı (oynak) görebilirsiniz.
Son çıktı aşağıdaki gibi görünmelidir:

Codex’in yapıyı nasıl kurguladığına bağlı olarak son arayüzünüz yukarıdakinden biraz farklı olabilir. Elbette, isteminizde daha kesin olup Codex’e nihai sonucun nasıl görünmesi gerektiğini söyleyebilirsiniz.
Daha büyük sistemler tasarlamak ve devirler, araç sınırları ve değerlendirme hakkında bilgi edinmek isterseniz Building Scalable Agentic Systems kursumuzu öneririm.
Codex’i Bir MCP Sunucusu Olarak Çalıştırma
Şimdiye kadar, Codex’i diğer araçları çağıran ana arayüz olarak kullandık. Ancak işlerin gerçekten ilginçleştiği yer burası: Codex aynı zamanda bir MCP sunucusu olarak da çalışabilir.
Bu, Codex’in güçlü dosya düzenleme ve komut yürütme yeteneklerini diğer MCP istemcilerine açabileceğiniz anlamına gelir; böylece diğer yapay zekâ ajanlarının kendi iş akışlarında Codex’i bir araç olarak kullanmasına imkân tanırsınız. En büyük avantajı paralel yürütmeyi mümkün kılmasıdır.
Öyle bir iş akışı tasarlayabilirsiniz ki bir ajan Codex’i kullanarak ön yüz UI’nızı geliştirirken, tamamen farklı bir ajan ayrı bir Codex örneğiyle arka uç API’nizi yazar. Ayrı süreçler olarak çalıştıkları için aynı anda çalışabilir, geliştirme sürenizi potansiyel olarak yarıya indirebilirler.
Codex sunucu modunu başlatma
Codex’i bu moda almak için belirli bir komut kullanırız: codex mcp-server.
Bunu çalıştırdığınızda Codex bir sohbet arayüzü gibi davranmayı bırakır ve başka bir programdan gelecek talimatları dinlemeye başlar. Yeteneklerini standart girdi/çıktı (STDIO) kanalı üzerinden sunar.
Bunu karmaşık bir sisteme entegre etmeye çalışmadan önce, gerçekten çalıştığından emin olmak için test etmek her zaman iyi bir fikirdir. Model Context Protocol ekibi tam da bu amaç için kullanışlı bir denetçi aracı sağlar. Yerel Codex örneğinize bağlanan bir web arayüzünü başlatmak için terminalinizde aşağıdaki komutu çalıştırabilirsiniz:
npx @modelcontextprotocol/inspector codex mcp-server
Bu, Codex’e elle komut gönderebileceğiniz ve nasıl yanıt verdiğini tam olarak görebileceğiniz bir tarayıcı penceresi açacaktır; hata ayıklama için oldukça yararlıdır. Arayüz şu şekildedir:

OpenAI Agents SDK entegrasyonu
Bir Python geliştiricisiyseniz, Codex’i OpenAI Agents SDK’yı kullanarak özel bir betik içinde orkestre etmek isteyebilirsiniz. Bu, belirli kodlama görevlerini yapması için Codex’i “tutabilecek” bir Python programı oluşturmanıza olanak tanır.
Bunu nasıl kuracağınızı hızlıca gösteren bir örnek burada. Codex sürecini başlatmak için MCPServerStdio kullanırsınız:
Python sanal ortamınızda openai-agents paketini kurun:
pip install openai-agents
Codex sürecini kurmak için, aşağıdaki kodla bir orchestrator.py dosyası oluşturun:
from agents import Agent
from agents.mcp import MCPServerStdio
# initialize connection
codex_server = MCPServerStdio(
name="Codex CLI",
params={
"command": "npx",
"args": ["-y", "codex", "mcp-server"]
},
client_session_timeout_seconds=360000,
)
# create codex agent
agent = Agent(
name="Lead Developer",
mcp_servers=[codex_server]
)
Bu kurulumda Codex MCP sunucusu iki ana aracı açığa çıkarır: codex() ve codex-reply(). Aralarındaki farkı anlamak önemlidir; çünkü bu ayrım, ajanın üzerinde çalıştığı bağlamı korumasını sağlar.
- Yeni bir oturum veya göreve başlamak istediğinizde
codex()kullanılır. - Mevcut bir konuşmayı sürdürmek ya da az önce yapılan iş üzerinde yineleme yapmak istediğinizde
codex-reply()kullanılır. İsteği doğru konuşmayla eşlemek için bir conversationId parametresi gerektirir.
client_session_timeout_sessions, istemcinin ilgili MCP STDIO sunucusuyla bir oturumu açık tuttuğu azami süredir. Codex için 360.000 saniye (100 saat) gibi cömert bir değer kullanıyoruz; böylece uzun süreli iş akışları aynı MCP oturumunu boşta kalma zaman aşımlarına takılmadan yeniden kullanabilir.
Topluluk sarmalayıcıları
Topluluk da bunu daha da kolaylaştıracak sarmalayıcılar oluşturdu. Dikkate değer projelerden biri GitHub’daki codex-mcp-wrapper deposudur. Bu sarmalayıcı, Claude Code gibi diğer ortamlara Codex’i entegre etmenizi sağlamak üzere özel olarak tasarlanmıştır.
Codex CLI MCP Çoklu Ajan Finans Hattını Orkestre Etme
Artık Codex’i bir sunucu olarak çalıştırmayı anladığımıza göre, bunun güçlü hale geldiği gerçek bir senaryoya bakalım. Birden çok yapay zekâ ajanının birlikte çalışarak tek bir ajana kıyasla finans panomuzu çok daha hızlı yükselttiği çoklu ajanlı bir hattı orkestre edeceğiz.

Çoklu ajan tasarımı soyut geliyorsa, yaygın ajan mimarilerinin net bir özeti ve çoklu ajan kurulumlarının gerçekten nerede yardımcı olduğuna bakın.
Risk ve UI ajanlarını koordine etme
Bu kurulumda, iş akışını yönetmek için bir Python betiğini orkestratörümüz olarak kullanıyoruz. Her şeyi tek bir ajandan istemek yerine, iki uzmanlaşmış ajan oluşturuyoruz:
- Nicel analize odaklı Codex-Risk
- Ön yüz uygulamasına odaklı Codex-UI
Artık Codex’i Agents SDK’dan başsız bir MCP sunucusu olarak çalıştırdığımız için, sadece etkileşimli Codex CLI değil hem SDK hem de Codex süreçleri OpenAI’a karşı kimlik doğrulaması yapmalıdır.
İşleri basit ve güvenilir tutmak için, orkestratörü çalıştırmadan önce ortamınızda OPENAI_API_KEY’in (veya isteğe bağlı olarak CODEX_API_KEY’in) ayarlı olduğundan emin olun; böylece zincirin her parçası modellere erişebilir. Yeni bir terminalde şu komutu çalıştırın:
export OPENAI_API_KEY=<your-key>
İki bağımsız Codex MCP sunucusunu, kararlı ve yalıtılmış bağlantılar (ajan başına bir süreç) sağlamak için bir async with bloğu içinde başlatıyoruz; gerçekte onların paralel çalışmasını mümkün kılan budur. orchestrator.py adlı orkestrasyon betiği şudur:
import os
import asyncio
from dotenv import load_dotenv
from agents import Agent, Runner
from agents.mcp import MCPServerStdio
load_dotenv()
async def main():
async with MCPServerStdio(
name="Codex-Risk-Server",
params={
"command": "npx",
"args": ["-y", "codex", "mcp-server"],
# Codex itself uses your existing auth (codex login / OPENAI_API_KEY)
"env": {
# pass through any env you already rely on inside Codex
"OPENAI_API_KEY": os.getenv("OPENAI_API_KEY", ""),
"CODEX_API_KEY": os.getenv("CODEX_API_KEY", ""),
},
},
client_session_timeout_seconds=360000,
) as codex_risk_server, MCPServerStdio(
name="Codex-UI-Server",
params={
"command": "npx",
"args": ["-y", "codex", "mcp-server"],
"env": {
"OPENAI_API_KEY": os.getenv("OPENAI_API_KEY", ""),
"CODEX_API_KEY": os.getenv("CODEX_API_KEY", ""),
},
},
client_session_timeout_seconds=360000,
) as codex_ui_server:
# 1. Define specialized agents (both just use the 'codex' tool)
risk_agent = Agent(
name="Codex-Risk",
instructions=(
"You are a quant analyst. Use the 'codex' tool to compute VaR and "
"Sharpe ratio for all positions in the portfolio-dashboard project. "
"Assume Alpha Vantage integration and volatility logic are already implemented "
"in the code; reuse and extend that code instead of re-calling external APIs."
),
mcp_servers=[codex_risk_server],
)
ui_agent = Agent(
name="Codex-UI",
instructions=(
"You are a frontend developer. Use the 'codex' tool to update the UI in "
"the portfolio-dashboard project. Your job is to add a VaR (95%) column "
"to the RiskTable / PortfolioCard views, with clear red/green conditional styling."
),
mcp_servers=[codex_ui_server],
)
# 2. Run Risk + UI agents concurrently
risk_task = Runner.run(
risk_agent,
"Compute portfolio VaR (95%) for all positions and write the results into the codebase "
"in a way that the UI can easily consume (e.g., exported constants or helper functions).",
)
ui_task = Runner.run(
ui_agent,
"Prepare or update the RiskTable / PortfolioCard components to display a VaR (95%) "
"column, assuming the risk logic already exists in the project.",
)
risk_result, ui_result = await asyncio.gather(risk_task, ui_task)
print("=== Codex-Risk result ===")
print(risk_result.final_output)
print("\n=== Codex-UI result ===")
print(ui_result.final_output)
# 3. Optional second pass: let UI agent consume the exact risk output
followup_ui_result = await Runner.run(
ui_agent,
(
"Now update the UI to wire in the actual VaR values. "
f"Context from the risk agent: {risk_result.final_output}"
),
)
print("\n=== Codex-UI follow-up ===")
print(followup_ui_result.final_output)
if __name__ == "__main__":
asyncio.run(main())
OpenAI API anahtarınızı ayarladığınız aynı terminal penceresinde orkestrasyon betiğini çalıştırın:
python orchestrator.py
Bu ajanlar bağımsız olarak MCP üzerinden Alpha Vantage dokümantasyonunu kontrol edecek, geçmiş verileri getirecek ve portföyünüz için Riskteki Değer’i (VaR) hesaplamak üzere Python veya TypeScript mantığını yazacaktır.
İki codex örneği gerekli değişiklikleri yaptıktan sonra, npm run dev komutunu tekrar çalıştırarak bunları görselleştirebilir ve son sonucu tarayıcıda görebilirsiniz. Şuna benzeyecektir:

Bu sorumlulukları ayırarak, normalde 20 dakikalık ileri-geri sohbet gerektirebilecek bir süreci tamamen otomatik bir hatta dönüştürüyoruz. Risk Ajanı matematikle ilgilenir, UI Ajanı uygulamayı üstlenir ve pano birkaç saniye içinde güncellenir.
Paralel görev yürütme
Asıl sihir yürütme modelinde. Standart bir sohbet arayüzünde araç çağrıları sıralıdır; yani verilerin getirilmesini beklemeden grafiğin güncellenmesini isteyemezsiniz.
MCP ve bu çoklu ajan yaklaşımıyla gerçek eşzamanlılık elde ediyoruz. Codex-Risk ajanı Alpha Vantage API’sinden gelen ağ isteklerini beklerken, Codex-UI ajanı tablo sütunlarını iskeletini çıkarmaya ve CSS sınıflarını ayarlamaya başlayabilir.
Bu sorumlulukları ayırarak, 15–20 dakikalık ileri-geri sohbet gerektirebilecek bir süreci yalın bir hatta dönüştürüyoruz. Ham veri çekmeden karmaşık risk analizine ve tam uygulanmış UI özelliklerine yaklaşık 5 dakikada geçiyorsunuz.
Güvenlik Hususları ve Sınırlamalar
Kodunuzu dış dünyaya bağlayan her güçlü araçta olduğu gibi, güvenlikten bahsetmemiz gerekir. Codex ve MCP olağanüstü yeteneklerin kilidini açsa da, üretim ortamına dağıtmadan önce farkında olmanız gereken yeni saldırı yüzeyleri ve pratik sınırlamalar da getirir.
Yapılandırma açıkları
En kritik güvenlik noktası yapılandırma dosyasının kendisidir. Codex CLI’nin önceki sürümlerinde, config.toml dosyasıyla birlikte CODEX_HOME’u yerel bir dizine yönlendiren bir .env dosyası kullanıldığında kötü amaçlı komutların enjekte edilebildiği bilinen bir açık vardı. Bu yamalandı; bu yüzden en az v0.23.0 sürümünü çalıştırdığınızdan emin olmanız kesinlikle önemlidir.
Ancak risk yazılım güncellemeleriyle tamamen ortadan kalkmaz. Codex proje kapsamlı yapılandırmalara saygı duyduğu için, .codex/config.toml içinde kötü amaçlı bir dosya ve CODEX_HOME=./.codex ayarını yapan bir .env dosyası içeren bir depoyu klonlarsanız, o klasörde codex çalıştırmak, bu dosyada tanımlanan beklenmedik komutları yürütebilir.
Klonladığınız her yeni projenin yapılandırma dosyasını incelemeyi alışkanlık haline getirin. Herhangi bir şey çalıştırmadan önce azami dikkatle ele alın.
MCP sınırlamaları
Pratik tarafta beklemeniz gereken pürüzler var. Şu anda CLI’ı başlatırken yerleşik bir “bağlantı testi” yok. Codex, başlatma sırasında bir MCP sunucusu kapalıysa veya ulaşılamaz durumdaysa bunu kendiliğinden söylemez. Bağlantının gerçekten çalıştığını doğrulaması için modele “Araçlarımı kontrol et” gibi bir şeyler sormanız gerekir.
Ayrıca, mevcut tüm araçları kurmak cazip gelse de seçici olmanız gerekir. Çok fazla MCP sunucusu eklerseniz modelin performansı belirgin şekilde kötüleşir. Ne kadar çok araç eklerseniz modelin filtrelemesi gereken “gürültü” de o kadar artar; bu da onu şaşırtabilir veya halüsinasyonlara yol açabilir. İhtiyacınız olan MCP sunucularını eklemek iyi bir uygulamadır.
Codex CLI ve Claude Code Karşılaştırması
Son olarak, Codex CLI’ı yakın rakibi Claude Code ile karşılaştırmaya değer.
Hedefiniz otomasyon ve sürekli entegrasyon (CI) hatlarıysa, Codex CLI genellikle daha iyi bir seçenektir. Hafif, kullanıcı dostu ve oldukça betiklenebilirdir. Öte yandan Claude Code, editör içindeki etkileşimli kodlama deneyimiyle, yeniden düzenlemeler, test çalıştırmaları ve proje başına asistanlar için güçlü yerleşik bir kullanıcı deneyimi sunar.
Yapılandırma tarzları da farklıdır. Codex, hem CLI hem de IDE uzantısı tarafından kullanılan ortak ~/.codex/config.toml dosyasına ve her depo içinde isteğe bağlı .codex/config.toml üzerinden proje düzeyinde geçersiz kılmalara dayanan TOML dosyalarını kullanır. Bu, ortamınızın varsayılan olarak paylaşıldığı, ancak projeye göre özelleştirilebildiği anlamına gelir.
Claude Code genellikle JSON tabanlı ayarları kullanır; küresel bir yapılandırma (örneğin ~/.claude.json) ve her depo için kendi MCP sunucularını ve davranışlarını tanımlamayı sağlayan ek proje kapsamlı dosyalar (örneğin .mcp.json veya proje ayarları) sunar; bu, izolasyonu artırır ancak proje başına biraz daha fazla kurulum anlamına gelebilir.
Her iki araç da yapay zekâ kodlama ajanlarının en ileri noktasını temsil ederken, aralarındaki seçim belirli iş akışınıza bağlıdır; ajanı esas olarak bir terminalde veya CI işinde yaşayan bir şey olarak düşünüyorsanız Codex daha iyi uyma eğilimindedir; ilk olarak editör odaklı bir kodlama yardımcısı istiyorsanız Claude Code sıklıkla daha doğal gelir.
|
Özellik |
Codex CLI |
Claude Code |
|
Birincil kullanım durumu |
CI/CD otomasyonu, başsız betikler, ajan arka uçları |
IDE içinde editör öncelikli, derin etkileşimli kodlama oturumları |
|
Yapılandırma formatı |
TOML ( |
JSON tabanlı ayarlar ( |
|
Yapılandırma kapsamı |
Proje geçersiz kılmalarıyla paylaşılan küresel profil |
Küresel varsayılanlar ve güçlü proje başına izolasyon |
|
Ortam |
Terminal ve ajan merkezli, Agents SDK ve CI ile kolay entegrasyon |
IDE merkezli, düzenleme içi UX, yeniden düzenlemeler, test çalıştırmaları ve MCP destekli araçlara odaklı |
|
Otomasyon |
Yüksek derecede betiklenebilir, codex mcp-server ile başsız çalıştırması kolay |
Projelerde MCP’yi destekler, ancak öncelikle etkileşimli, arayüz odaklı iş akışları için tasarlanmıştır |
|
Kurulum yükü |
|
Depo yerelinde ince ayarlı yapılandırma karşılığında proje başına biraz daha fazla kurulum |
Bu karşılaştırmaya daha derin bir dalış için Codex vs Claude Code rehberimizi okumanızı öneririm.
Sonuç
Bugün MCP’nin temel tanımlarından kendi Codex ajanımızı oluşturmaya kadar pek çok konuya değindik. Ancak bu eğitimden tek bir şey alacaksanız, bunun iş akışının gücü olması olsun. MCP sunucunuzu yapılandırma, Codex’i çalıştırma ve araçların ihtiyaç duydukları verileri kendiliğinden keşfetmesini izleme süreci, özellikleri bir insandan daha hızlı inşa etmenizi sağlar.
Yeni başlıyorsanız, işleri hemen karmaşıklaştırmamanızı şiddetle öneririm. Dokümantasyon için Context7 ile başlayın ve belki bugün kurduğumuz Alpha Vantage gibi sadece bir API tabanlı MCP ekleyin. Birden fazla ajanla çalışmayı denemeden önce bu akışta rahat olun.
O güveni kazandıktan sonra sınır gökyüzü. Diğer MCP’leri keşfedin. Tasarımlardan doğrudan UI kodu üretmek için Figma’yı bağlayın ya da Codex’in üretim hatalarını otomatik olarak teşhis edip düzeltmesi için Sentry’yi devreye alın. Codex alt ajanlarıyla deneyler yapın ve rutin işinizin ne kadarını devredebileceğinizi görün. Araçlar burada, güçlüler ve kullanımınıza hazırlar.
Yapay zekâ uygulamaları geliştirmekle ilgileniyorsanız, AI Engineering with LangChain beceri yolumuza kaydolmanızı kesinlikle öneririm. Eğitim içeriği yapay zekâ yerelidir; yani seviyenizden başlayıp gerçek bir yapay zekâ iş akışı mühendisine dönüşmeniz için gereken becerileri size öğreten kişisel bir eğitmene sahip olursunuz.
Codex CLI MCP SSS
Codex CLI, MCP araçlarını kullanırken gerçek zamanlı güncellemeleri nasıl işler?
Codex CLI kendisi arka planda “canlı güncellenen” bir yapı değildir. Oturumunuz sırasında bir MCP aracını çağırmaya karar verdiğinde taze bilgi çeker; örneğin bir Alpha Vantage MCP sunucusu üzerinden en son hisse fiyatlarını almak veya bir dokümantasyon MCP’siyle güncel dokümanlara bakmak gibi. Her zaman taze veri gerekiyorsa, iş akışınızı aracın veriyi gerektiğinde (veya tetiklediğiniz bir zamanlamayla) yeniden çağıracağı şekilde tasarlayın; daha önce getirilenlere güvenmeyin.
MCP’nin, Codex’i Alpha Vantage gibi harici hizmetlerle entegre etmedeki rolü nedir?
MCP, Codex’in harici araçları güvenle çağırmasını bir standart arayüz üzerinden sağlayan köprüdür; her hizmet için tek seferlik entegrasyonlar yazmanızın önüne geçer. Pratikte, MCP sunucularını (yerel STDIO veya uzaktan HTTP) yapılandırırsınız. Codex bu “araçları” keşfeder ve veri çekmek, eylemler çalıştırmak ve daha sonra kod üretmek veya güncellemek için kullandığı yapılandırılmış çıktıları döndürmek üzere onları çağırabilir.
Codex CLI ile Claude Code arasındaki temel farklar nelerdir?
Codex CLI, güçlü betikleme ve otomasyon potansiyeline sahip, terminal öncelikli bir iş akışı etrafında tasarlanmıştır; ayrıca paylaşılan bir config.toml üzerinden ortak bir yapılandırma yaklaşımı sunar. Claude Code ise genellikle daha etkileşimli bir kodlama deneyimi olarak konumlanır. Pratik fark iş akışınıza bağlıdır. Tekrarlanabilir CLI akışları ve MCP araçları üzerinden yönlendirebileceğiniz hafif bir ajan istiyorsanız Codex genellikle daha iyi uyar. Daha uzun, yüksek derecede sohbet temelli kodlama oturumları ve daha az hareketli parça istiyorsanız Claude Code çoğu zaman daha akıcı hissettirir.
MCP araçları devredeyken Codex’in performansı diğer yapay zekâ kodlama ajanlarıyla nasıl kıyaslanır?
Araçlar oyunun kurallarını değiştirir. Araçsız bir kodlama ajanı, yalnızca deponuzda olanlarla ve eğitimden “hatırladıklarıyla” sınırlıdır. MCP ile Codex gerçek verileri çekebilir, doğru dokümanları bulabilir ve komutlar çalıştırabilir; bu da genellikle halüsinasyonları azaltır ve uygulamayı hızlandırır. Değiş tokuş, performansın büyük ölçüde MCP kurulumunuza bağlı olmasıdır. Çok fazla araç veya kötü kapsamlandırılmış araçlar gürültü ekleyebilir, kararları yavaşlatabilir veya dağınık çıktılar üretebilir.
Codex CLI’da MCP sunucularını yapılandırmak için en iyi uygulamalar nelerdir?
Minimum ve açık tutun. Görev için gereken sunucuları ekleyin ve ajanın dokunmasını istemediğiniz araçları devre dışı bırakın veya kapsamlarını belirleyin. Sırlar için ortam değişkenleri kullanın (anahtarları asla sabitlemeyin). Bir depoda yeniden üretilebilirlik gerektiğinde proje kapsamlı .codex/config.toml tercih edin; projeler arasında güvendiğiniz varsayılanlar için küresel ~/.codex/config.toml kullanın. Son olarak, derinlere inmeden önce kırık sunucuları yakalamak için bir Codex oturumu içinde araçları erken doğrulayın.

