İçeriğe atla
Yapay Zekâ

10 commitlik a2a-mcp-bridge, uzak ajanları MCP aracına çeviriyor

A2A ile çalışan uzak ajanları MCP istemcilerine araç olarak gösteren deneysel köprü, görev durumunu sunucuda tutmak yerine şifreli bir tanıtıcıyla taşıyor.

2 okunma4 dk okumaa2a-mcp-bridge GitHub deposu

10 commitlik a2a-mcp-bridge, uzak ajanları MCP aracına çeviriyor

Bir yapay zekâ istemcisi araçları Model Context Protocol, yani MCP üzerinden çağırırken başka bir uzak ajan iş devrini Agent2Agent, yani A2A ile kabul edebilir. GitHub'da yalnız 10 commitlik geçmişe sahip a2a-mcp-bridge, bu iki komşu fakat farklı protokolü birbirine bağlamayı deneyen küçük bir Python projesi.

Köprü, yapılandırılmış A2A ajanlarının “Agent Card” belgelerini okuyor. Her ajanın ilan ettiği beceriyi ad alanı ayrılmış bir MCP aracı olarak istemciye gösteriyor; çağrıyı A2A görevi biçimine çeviriyor, durum sorgularını ve ek kullanıcı girdisini iki protokol arasında taşıyor. Proje A2A 1.0'ı ve MCP'nin 28 Temmuz 2026 tarihli görev uzantılı belirtimini hedeflediğini söylüyor.

Bu araç son kullanıcıya yönelik yeni bir sohbet uygulaması değil. Farklı ajan altyapılarını tek araç listesinden çağırmak isteyen geliştiriciler, protokol deneyleri yapan platform ekipleri ve yatay ölçeklenebilen bir görev köprüsünü incelemek isteyenler için teknik bir yapı taşı.

“Durumsuz köprü” ne demek?

Uzun süren bir ajan görevi, başlatıldıktan sonra çalışma, kullanıcı girdisi bekleme, kimlik doğrulama isteme, tamamlanma veya hata durumlarına geçebilir. Sıradan bir köprü bu bilgiyi kendi veritabanında tutabilir. a2a-mcp-bridge ise gerçek görev durumunu uzak A2A ajanında bırakıyor; devam etmek için gereken ajan kimliği, görev kimliği, bağlam kimliği ve süre sonunu şifrelenmiş bir taskId içine koyuyor.

Tanıtıcı AES-256-GCM ile mühürlenmiş CBOR zarfı. Aynı anahtarı ve aynı ajan yapılandırmasını bilen herhangi bir köprü örneği tanıtıcıyı açıp görevi sürdürebiliyor. Böylece yük dengeleyicinin arkasındaki ilk süreç kapanırsa istek başka örneğe gidebiliyor; ortak görev veritabanı gerekmiyor.

Karşılığı, sıradan UUID'den daha uzun tanıtıcılar ve dikkatli anahtar yönetimi. README, tanıtıcıların ajan kimliği uzunluğuna göre çoğunlukla 100-130 base64 karakterine ulaştığını belirtiyor. Anahtar döndürürken önceki anahtarın bir geçiş süresince yalnız açma için tutulması gerekiyor; anahtarı erken kaldırmak yürüyen görevleri erişilemez yapabilir.

Somut kullanım örnekleri

  1. Belge özetleyen bir A2A ajanını, MCP kullanan masaüstü istemcide docs__summarize aracı gibi göstermek.
  2. Dakikalar süren veri işleme görevini başlatıp aynı köprü sürecine bağlı kalmadan daha sonra durumunu sorgulamak.
  3. Biri belge, biri test, biri araştırma yapan uzak ajanların becerilerini tek, ad alanlı araç kataloğunda toplamak.
  4. Kullanıcıdan ek bilgi isteyen A2A görevine MCP tasks/update çağrısıyla kontrollü yanıt vermek.

Örnek deneme istemi:

“Önce araç listesini getir ve yalnız docs ajanının summarize becerisini seç. Kısa, hassas veri içermeyen bir metin gönder. Dönen görev tanıtıcısını değiştirmeden durumunu sorgula; görev ek bilgi isterse yalnız belge dili sorusunu yanıtla. Kimlik doğrulama isterse parola veya API anahtarı üretme, görevi durdurup insan işlemi gerektiğini bildir.”

Son cümle özellikle önemli. Köprü, A2A'nın AUTH_REQUIRED durumunu sıradan kullanıcı girdisinden ayrı ele alıyor. Modelin doldurabileceği parola veya API anahtarı şeması üretmiyor ve kimlik doğrulama bekleyen göreve içerik iletmiyor. Bu yaklaşım, bir uzak ajanın “anahtarınızı buraya yazın” mesajını model bağlamına taşımaması için bilinçli bir kısıtlama.

Nasıl kurulur?

Proje Python 3.12 veya üzerini istiyor. Kaynak depo sanal ortama düzenlenebilir paket olarak kuruluyor. Sunucuya en az iki ayar veriliyor: ajan kimlikleri ve adreslerinden oluşan BRIDGE_AGENTS_CONFIG ile base64url biçiminde 32 baytlık BRIDGE_STATE_KEY. Ardından uvicorn üzerinden Streamable HTTP uç noktası başlatılıyor.

İlk denemede gerçek kurum ajanı yerine deponun sahte A2A ajanı ve Docker demosu kullanılmalı. README, Docker bulunmayan ortamlarda konteyner düzeyi testlerin açık gerekçeyle atlandığını özellikle söylüyor. Test dosyasının varlığı, testin sizin ortamınızda gerçekten çalıştığı anlamına gelmez; pytest özetindeki “skipped” satırları da okunmalı.

Sınırlar, lisans ve güvenlik

Bilinen sınırlamalar arasında tam eser ayrıntısını sonradan getiren çağrının bulunmaması, AUTH_REQUIRED durumunun bağlantı içinde çözülememesi, tanıtıcıda gerçek oluşturulma zamanının taşınmaması ve ajan zinciri boyunca kimlik aktarımının uygulanmamış olması yer alıyor. README ayrıca yalnız Streamable HTTP yönüne odaklanıyor; tam MCP özellik setinin yerine belirli görev köprüsünü hedefliyor.

Köprünün kendi veritabanını kaldırması saldırı yüzeyini otomatik olarak yok etmez. Mühür anahtarı sızarsa tanıtıcı gizliliği ve bütünlüğü tehlikeye girer. Ajan adreslerine eklenen başlıklar sır içerebilir; bunlar kod deposuna yazılmamalı. Uzak Agent Card her araç listesinde yeniden alındığı için ağ güveni, TLS ve hedef adres izin listesi önemlidir.

1 Eylül 2026 kontrolünde depoda açık bir LICENSE dosyası görünmüyordu. Kaynak kodunun herkese açık olması, otomatik olarak yeniden kullanma, dağıtma veya ticari ürüne gömme izni vermez. Okuyucu deneme ve incelemenin ötesine geçmeden önce proje sahibinden lisansın netleştirilmesini istemeli. Bu nedenle araç “açık kaynak lisanslı” diye değil, “kamuya açık GitHub projesi” diye tanımlanıyor.

Bugün yapılabilecek en güvenli çalışma, sahte ajanlı yerel demoyu çalıştırıp iki farklı köprü örneğinden aynı görevi sürdürme testini gözlemlemek. Ajan protokollerini yalnız moda sözcüklerle değil, gerçek durum ve kimlik sınırlarıyla anlamak için Mülk Rehberi Gazetesi'ni takip edin.

Kaynaklar

İlgili haberler

Yapay Zekâ sayfasına dön