Aracılığıyla paylaş


Azure İşlevleri üzerinde kendi kendine barındırılan uzaktan MCP sunucusu (genel önizleme)

Azure İşlevleri, uzak MCP sunucularını barındırmanın iki yolunu sağlar:

İlk yaklaşımla, MCP sunucusunu oluşturmak için tetikleyiciler ve bağlamalarla Azure İşlevleri programlama modelini kullanabilirsiniz. Ardından, sunucuyu bir İşlev uygulamasına dağıtarak uzaktan barındırabilirsiniz.

Resmi MCP SDK'ları ile oluşturulmuş bir MCP sunucunuz zaten varsa ve yalnızca uzaktan barındırmak istiyorsanız, ikinci yaklaşım büyük olasılıkla ihtiyaçlarınıza uygundur. Azure İşlevleri'ni barındırmak için sunucuda kod değişikliği yapmanız gerekmez. Bunun yerine gerekli İşlev yapıtlarını ekleyebilirsiniz ve sunucu dağıtılmaya hazırdır. Bu nedenle, bu sunucular kendi kendine barındırılan MCP sunucuları olarak adlandırılır.

İşlev uygulamasını ve özel işleyici uygulamalarını barındırmayı gösteren diyagram.

Bu makalede şirket içinde barındırılan MCP sunucularına genel bir bakış ve ilgili makalelere ve örneklere bağlantılar sağlanmaktadır.

Özel işleyiciler

Kendi sunucusunda barındırılan MCP sunucuları Azure İşlevleri platformuna özel işleyiciler olarak dağıtılır. Özel işleyiciler, İşlevler konağından olay alan basit web sunucularıdır. İşlev platformu programlama modelinden farklı çerçevelerle oluşturulmuş ya da doğrudan desteklenmeyen dillerdeki uygulamaların çalışmasını sağlamak için bir yol sunar. Daha fazla bilgi için bkz. özel işleyicileri Azure İşlevleri.

Azure İşlevleri'ne MCP SDK tabanlı bir sunucu dağıttığınızda, projenize bir host.json eklemeniz gerekir. En düşük host.json şöyle görünür:

{
   "version": "2.0",
    "configurationProfile": "mcp-custom-handler",
    "customHandler": {
        "description": {
            "defaultExecutablePath": "python",
            "arguments": ["Path to main script file, e.g. hello_world.py"] 
        },
        "port": "<MCP server port>"
    }
}
{
   "version": "2.0",
    "configurationProfile": "mcp-custom-handler",
    "customHandler": {
        "description": {
            "defaultExecutablePath": "npm",
            "arguments": ["run", "start"] 
        },
        "port": "<MCP server port>"
    }
}
{
   "version": "2.0",
    "configurationProfile": "mcp-custom-handler",
    "customHandler": {
        "description": {
            "defaultExecutablePath": "dotnet",
            "arguments": ["Path to the compiled DLL, e.g. HelloWorld.dll"] 
        },
        "port": "<MCP server port>"
    }
}

Uyarı

Azure İşlevleri'ne dağıtılan yük dizinin içeriği bin/output olduğundan, derlenen DLL'nin yolu proje köküne değil bu dizine göredir.

Örnek henüz mevcut değil.

değerinin configuration Profilemcp-custom-handler kullanılması, MCP sunucunuzu Azure İşlevleri'nde çalıştırmak için gereken bu İşlevler ana bilgisayar ayarlarını otomatik olarak yapılandırıyor:

  • http.enableProxying'dan true'e
  • http.routes'dan [{ "route": "{*route}" }]'e
  • extensions.http.routePrefix'dan ""'e

Bu örnekte, profil mcp-custom-handler kullanımıyla eşdeğer ayarlanmış ek özel işleyici özelliklerine sahip bir host.json dosyası gösterilmektedir.

{
    "version": "2.0",
    "extensions": {
        "http": {
            "routePrefix": ""
        }
    },
    "customHandler": {
        "description": {
            "defaultExecutablePath": "",
            "arguments": [""]
        },
        "http": {
            "enableProxying": true, 
            "defaultAuthorizationLevel": "anonymous", 
            "routes": [ 
                {
                    "route": "{*route}",
                    // Default authorization level is `defaultAuthorizationLevel`
                },
                {
                    "route": "admin/{*route}",
                    "authorizationLevel": "admin"
                }
            ]
        }
    }
}

Bu tabloda, varsayılan değerlerin yanı sıra özellikleri customHandler.httpaçıklanmaktadır:

Mülkiyet Ne yapar? Varsayılan değer
enableProxying Azure İşlevleri ana bilgisayarının özel işleyicilere yönelik HTTP isteklerini nasıl işlediğini denetler. enableProxying olarak ayarlandığında trueİşlevler ana bilgisayarı ters ara sunucu işlevi görür ve http isteğinin tamamını (üst bilgiler, gövde, sorgu parametreleri dahil) doğrudan özel işleyiciye iletir. Bu ayar, özel işleyiciye özgün HTTP isteği ayrıntılarına tam erişim sağlar.

enableProxying false olduğunda, İşlevler ana bilgisayarı isteği işler ve özel işleyiciye geçirmeden önce Azure İşlevleri isteği/yanıt biçimine dönüştürür.
false
defaultAuthorizationLevel Özel işleyici uç noktalarına erişmek için kimlik doğrulama gereksinimini denetler. Örneğin, function erişmek için işleve özgü bir API anahtarı gerektirir. Daha fazla bilgi için bkz. yetkilendirme düzeyleri. function
route Özel işleyicinin yanıt verdiği URL yolu desenini belirtir. {*route} herhangi bir URL yoluyla eşleşir (örneğin /, /mcp, /api/tools veya /anything/nested/path) ve isteği özel işleyiciye iletir. {*route}

Yerleşik sunucu kimlik doğrulaması

App Service platformu tarafından sağlanan OAuth tabanlı kimlik doğrulaması ve yetkilendirme, 401 sınaması verme ve Korumalı Kaynak Meta Verileri (PRM) belgesini ortaya çıkarma gibi MCP yetkilendirme belirtiminin gereksinimlerini uygular. Yerleşik kimlik doğrulamasını etkinleştirdiğinizde, sunucuya erişmeye çalışan istemciler bağlanmadan önce kimlik doğrulaması için Microsoft Entra Id gibi kimlik sağlayıcılarına yönlendirilir.

Daha fazla bilgi için bkz. Yerleşik sunucu yetkilendirmesini yapılandırma (önizleme) ve Azure İşlevleri'nde MCP sunucularını barındırma.

Azure AI Foundry etmen tümleştirmeleri

Azure AI Foundry'deki aracılar, Azure İşlevleri'nde barındırılan MCP sunucularındaki araçları kullanacak şekilde yapılandırılabilir .

Sunucunuzu Azure API Center'a kaydetme

MCP sunucunuzu Azure API Center'a kaydettiğinizde, özel bir kuruluş aracı kataloğu oluşturursunuz. Bu yaklaşım, mcp sunucularını kuruluşunuz genelinde tutarlı idare ve bulunabilirlikle paylaşmak için önerilir. Daha fazla bilgi için bkz. Azure API Center'da Azure İşlevleri'nde barındırılan MCP sunucularını kaydetme.

Genel önizleme desteği

İşlevler'de kendi SDK tabanlı MCP sunucularınızı barındırma özelliği şu anda önizleme aşamasındadır ve şu özellikleri destekler:

  • Streamable-http aktarımını kullanan durum bilgisi olmayan sunucular. Sunucunuzun durum bilgisi olması gerekiyorsa İşlevler MCP uzantısını kullanmayı göz önünde bulundurun.
  • Python, TypeScript, C# veya Java MCP SDK'ları ile uygulanan sunucular.
  • Projeyi yerel olarak çalıştırırken Azure İşlevleri Çekirdek Araçları (func start komutunu) kullanmanız gerekir. Şu anda hata ayıklayıcıyla çalışmaya başlamak için kullanamazsınız F5 .
  • Sunucular Esnek Tüketim planı uygulamaları olarak barındırılmalıdır.

Samples

Henüz kullanılamıyor.

Azure İşlevleri özel işleyicileri