Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Model Bağlam Protokolü (MCP), yapay zeka uygulamalarını dış veri kaynaklarına ve araçlarına bağlayan açık bir standarttır. MCP kullanarak GitHub Copilot gibi yapay zeka istemcileri, kullanıma sunduğunuz özellikleri keşfedebilir ve çağırarak API'lerinizi, veritabanlarınızı ve iş mantığınızı yapay zeka aracısının doğal dil aracılığıyla kullanabileceği araçlara dönüştürebilir.
Azure Container Apps, MCP sunucuları için iki barındırma modeli destekler:
| Barındırma modeli | Description |
|---|---|
| Tek başına container uygulaması | Oluşturduğunuz herhangi bir MCP sunucusunu HTTP girişiyle kapsayıcı olarak dağıtın. |
| Dinamik oturumlar | Korumalı kod yürütme için yerleşik MCP araçlarıyla platform tarafından yönetilen oturum havuzlarını kullanın. |
Model Bağlam Protokolü (MCP) nedir?
MCP sunucusu istemcilere üç tür özellik sunar:
| Kapasite | Description | Example |
|---|---|---|
| Tools | Yapay zeka modelinin çağırabileceği işlevler (kullanıcı onayıyla) |
createTask, listTasks, deleteTask |
| Kaynaklar | İstemcinin getirebileceği salt okunur veriler | Yapılandırma dosyaları, veritabanı şemaları |
| İstemler | Yaygın görevler için önceden yazılmış şablonlar | "Tüm açık görevleri özetle" |
İstemciler , akışla aktarılabilir HTTP aktarımını kullanarak HTTP üzerinden MCP sunucularıyla iletişim kurar. İstemci JSON-RPC 2.0 istekleri gönderir. Sunucu, araç sonuçları, kaynak içeriği veya istem şablonlarıyla yanıt verir.
İstek akışı şu deseni izler:
MCP istemcisi (GitHub Copilot, Claude veya özel bir istemci) sunucuya JSON-RPC 2.0 iletisi içeren bir HTTPS isteği gönderir.
MCP sunucusu (kapsayıcı uygulamanız) isteği işler ve veritabanı veya API gibi ihtiyaç duyduğu arka uç hizmetlerini çağırır.
Sunucu, araç sonuçları, kaynak içeriği veya istem şablonlarıyla JSON-RPC 2.0 yanıtı döndürür.
Bağımsız kapsayıcı uygulama
Resmi bir MCP SDK'sını (.NET, Python, TypeScript, Java, Go, Kotlin ve diğerleri için kullanılabilir) kullanarak bir MCP sunucusu oluşturur, ardından kapsayıcıya alır ve Azure Container Apps'e dağıtırsınız.
Bu modelde Container Apps'in MCP'ye özgü farkındalığı yoktur. Platform aşağıdakileri sağlar:
- Otomatik TLS sonlandırma ile HTTPS girişi
- Scale-to-zero dahil Otomatik Ölçeklendirme (etkileşimli MCP kullanımı için en az bir replika önerilir)
- VS Code ve tarayıcı tabanlı istemcilerden çıkış noktaları arası isteklere izin veren CORS ilkesi
- Microsoft Entra Id ile yerleşik kimlik doğrulaması (isteğe bağlı)
- Özel etki alanları, trafik bölme, Dapr, hizmetler arası ağ iletişimi, yönetilen kimlik ve diğer tüm standart Container Apps özellikleri
İstek akışı
Bir MCP sunucusunu tek başına kapsayıcı uygulaması olarak dağıttığınızda, istemci istekleri Container Apps girişi aracılığıyla kapsayıcınıza akar ve burada MCP uç noktanız JSON-RPC iletisini işler ve sonuçları döndürür.
- MCP istemcisi, kapsayıcı uygulamasının FQDN'sine bir HTTPS isteği gönderir.
- Container Apps girişi TLS'yi sonlandırır ve isteği yapılandırılan hedef bağlantı noktasında (örneğin, 8080) kapsayıcınıza iletir.
- Web çerçeveniz (ASP.NET, FastAPI, Express, Spring Boot) isteği MCP uç noktasına (genellikle
/mcp) yönlendirir. - MCP sunucunuz isteği işler, arka uç hizmetlerini çağırır ve JSON-RPC 2.0 yanıtı döndürür.
Ne zaman kullanılır?
Herhangi bir dilde özel MCP araçları oluşturmak, arka uç hizmetleriyle tümleştirmek ve standart Container Apps özelliklerini kullanmak istiyorsanız tek başına kapsayıcı uygulamasını kullanın.
- Araç tanımları, ara yazılım ve iş mantığı üzerinde tam denetim sahibi olmak istiyorsunuz.
- MCP sunucunuz bir MCP SDK'sı ile herhangi bir dilde yazılır.
- Arka uç veritabanlarına, API'lere veya Azure hizmetlerine bağlanmanız gerekir.
- Dapr, hizmet-hizmet ağı veya yönetilen kimlik gibi Container Apps özelliklerini kullanmak istiyorsunuz.
Dinamik oturumlar (platform tarafından yönetilen MCP)
Azure Container Apps dinamik oturumları , kodu yalıtılmış olarak çalıştırmak için korumalı ortamlar sağlar. Oturum havuzunda MCP'yi etkinleştirdiğinizde platform, istemcilerin kabuk veya Python ortamlarını başlatmak ve komutları uzaktan yürütmek için kullanabileceği bir JSON-RPC uç noktası kullanıma sunar.
Bu modelde, platform MCP sunucusunu yönetir. MCP sunucu kodu yazmaz veya dağıtmazsınız. Platform aşağıdaki önceden tanımlanmış araçları sağlar:
| Tool | Description |
|---|---|
launchShell |
Yeni bir ortam oluşturur ve bir environmentId döndürür. |
runShellCommandInRemoteEnvironment |
Mevcut bir ortamda bir kabuk komutu yürütür. |
runPythonCodeInRemoteEnvironment |
Python kodunu mevcut bir ortamda yürütür |
Uyarı
Platform tarafından yönetilen MCP sunucusu, oturum havuzundan bağımsız olarak tüm üç aracı açığa çıkarır. Hem kabuk hem de Python havuzları için ortam oluşturmak için kullanın launchShell .
İstek akışı
Dinamik oturumları kullanarak bir MCP sunucusu dağıttığınızda platform sunucuyu yönetir ve istemcilerin korumalı ortamlarda kabuk veya Python kodu yürütmek için kullandığı bir JSON-RPC uç noktası sağlar.
- MCP istemcisi, oturum havuzunun
/mcpuç noktasına kimlik doğrulaması için üst bilgi içeren birx-ms-apikeyHTTPS isteği gönderir. - Platform ters ara sunucusu API anahtarını doğrular ve isteği uygun Hyper-V korumalı oturuma yönlendirir.
- Oturum, korumalı alanın içinde istenen kabuk komutunu veya Python kodunu yürütür.
- Platform, yürütme sonuçlarını içeren bir JSON-RPC 2.0 yanıtı döndürür.
Ne zaman kullanılır?
- Güvenilmeyen veya LLM tarafından oluşturulan kod için izole edilmiş kod yürütmeye ihtiyacınız var.
- Kullanım örneğiniz Python veya kabuk betiğidir ve özel bir araç gerekmez.
- Oturumlar arasında güvenlik amacıyla Hyper-V yalıtımı istiyorsunuz.
- BIR MCP sunucu uygulaması oluşturmak veya bakımını yapmak istemezsiniz.
Authentication
Dinamik oturumlar MCP, header aracılığıyla API anahtarı kimlik doğrulamasını x-ms-apikey kullanır. Bu mekanizma, standart oturum havuzu API'leri tarafından kullanılan taşıyıcı belirteç kimlik doğrulamasından farklıdır.
Azure CLI'yi kullanarak API anahtarını alın:
az rest --method POST \
--uri "https://management.azure.com/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP_NAME>/providers/Microsoft.App/sessionPools/<POOL_NAME>/fetchMCPServerCredentials" \
--uri-parameters api-version=2025-02-02-preview \
--query "apiKey" -o tsv
Protokol ayrıntıları
Dinamik oturumlar için platform tarafından yönetilen MCP sunucusu aşağıdaki protokol belirtimlerini uygular:
| Mülkiyet | Değer |
|---|---|
| MCP protokol sürümü | 2025-03-26 |
| Sunucu adı | Microsoft Container Apps MCP Server |
| Transport | HTTP üzerinden JSON-RPC 2.0 |
| API sürümü | 2025-02-02-preview |
| Desteklenen yöntemler |
initialize, tools/list, tools/call |
Önemli
Dinamik oturumlar için platform tarafından yönetilen MCP özelliği önizleme aşamasındadır. API sürümü 2025-02-02-preview ve mcpServerSettings Azure Resource Manager (ARM) özellikleri değiştirilebilir.
Giriş ve ağ
Container Apps giriş transport alanı, auto, http, http2 ve tcp'yi destekler. MCP, akış yapılabilir HTTP taşıma protokolü olarak standart HTTP üzerinden kapsayıcınızın içinde çalışır, bu nedenle transportauto veya varsayılan olarak http şeklinde ayarlayın. Özel bir MCP aktarım değeri yoktur.
VS Code veya tarayıcı tabanlı istemciler MCP sunucunuza erişiyorsa bir CORS ilkesi yapılandırmanız gerekir. En azından, MCP istemcinizin gerektirdiği kaynaklara, yöntemlere ve üst bilgilere izin verin.
Barındırma seçeneklerini karşılaştırma
Aşağıdaki tablo iki barındırma modeliyle karşılaştırır.
| Değerlendirme | Bağımsız kapsayıcı uygulama | Dinamik oturumlar (yönetilen MCP) |
|---|---|---|
| Özel araçlar | Evet, istediğiniz araçları tanımlayın | Hayır, yalnızca platform tanımlı araçlar |
| Languages | MCP SDK'sı olan herhangi bir dil | Yalnızca Python ve komut satırı çalıştırma |
| MCP taşıma | Akışa uygun HTTP (kapsayıcı içinde) | HTTP üzerinden JSON-RPC (platform yönetimli) |
| Authentication | Yerleşik kimlik doğrulaması (Microsoft Entra Id) | API anahtarı (x-ms-apikey) |
| Yalıtım | Kapsayıcı Seviyesi | Oturum başına Hyper-V |
| Scaling | Düzeltme tabanlı otomatik ölçeklendirme | Oturum başına, havuz tarafından yönetilen |
| Kullanım örneği | Genel amaçlı MCP sunucuları | Korumalı kod yürütme |
App Service ve Azure İşlevleri içeren daha geniş bir karşılaştırma için bkz. MCP sunucunuz için Azure hizmeti seçme.