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), dil modellerinin ve aracılarının dış veri kaynaklarını ve araçlarını daha verimli bir şekilde bulmasına ve kullanmasına olanak sağlayan bir istemci-sunucu protokolüdür.
Azure İşlevleri MCP uzantısı, uzak MCP sunucuları oluşturmak için Azure İşlevleri'ni kullanmanıza olanak tanır. Bu sunucular, dil modelleri ve aracılar gibi MCP istemcilerinin belirli görevleri sorgulaması ve bunlara erişmesi için MCP aracı tetikleyici işlevlerini barındırabilir.
| Action | Type |
|---|---|
| BIR MCP aracı çağrı isteğinden işlev çalıştırma | Trigger |
Important
MCP uzantısı şu anda PowerShell uygulamalarını desteklemez.
Prerequisites
- SSE aktarımını kullandığınızda, MCP uzantısı varsayılan konak depolama hesabı (
AzureWebJobsStorage) tarafından sağlanan Azure Kuyruk depolama alanına dayanır. Kimlik tabanlı bağlantıları kullanırken, işlev uygulamanızın konak depolama hesabında en az şu rol tabanlı izinlere sahip olduğundan emin olun: Depolama Kuyruğu Veri Okuyucusu ve Depolama Kuyruğu Veri İleti İşlemcisi. - McP uzantısı yerel olarak çalışırken Azure Functions Core Tools'un 4.0.7030 veya sonraki bir sürümünü gerektirir.
- Paketin 2.1.0 veya sonraki bir
Microsoft.Azure.Functions.Workersürümünü gerektirir. - Paketin 2.0.2 veya sonraki bir sürümünü
Microsoft.Azure.Functions.Worker.Sdkgerektirir.
Uzantıyı yükleme
Note
C# için Azure İşlevleri MCP uzantısı yalnızca yalıtılmış çalışan modelini destekler.
Bu NuGet paketini tercih ettiğiniz şekilde yükleyerek uzantıyı projenize ekleyin:
Microsoft.Azure.Functions.Worker.Extensions.Mcp
- Bağımlılığın 3.2.2 veya sonraki bir
azure-functions-java-librarysürümünü gerektirir. - Bağımlılığın 1.40.0 veya sonraki bir
azure-functions-maven-pluginsürümünü gerektirir.
- Bağımlılığın 4.9.0 veya sonraki bir
@azure/functionssürümünü gerektirir
- Paketin 1.24.0 veya sonraki bir sürümünü
azure-functionsgerektirir.
Paket yükleme
Bu bağlama uzantısını uygulamanızda kullanabilmek için projenizin kökündeki host.json dosyasının şu extensionBundle başvuruyu içerdiğinden emin olun:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.0.0, 5.0.0)"
}
}
Bu örnekte, version değeri [4.0.0, 5.0.0) İşlevler konağına en az 4.0.0 ama daha küçük 5.0.0olan ve 4.x'in tüm olası sürümlerini içeren bir paket sürümü kullanma talimatı verir. Bu gösterim, uygulamanızı v4.x uzantı paketinin mevcut en son küçük sürümünde etkili bir şekilde güncel tutar.
Mümkün olduğunda, en son uzantı paketi ana sürümünü kullanmanız ve çalışma zamanının en son ikincil sürümü otomatik olarak korumasına izin vermelisiniz. Uzantı paketleri yayın sayfasında en son paketin içeriğini görüntüleyebilirsiniz. Daha fazla bilgi için bkz. Azure İşlevleri uzantı paketleri.
host.json ayarları
Bu bölümde, 2.x ve sonraki sürümlerde bu bağlama için kullanılabilen yapılandırma ayarları açıklanmaktadır. host.json dosyasındaki ayarlar, bir işlev uygulaması örneğindeki tüm işlevler için geçerlidir. İşlev uygulaması yapılandırma ayarları hakkında daha fazla bilgi için bkz. Azure İşlevleri içinhost.json başvuru.
MCP sunucu bilgilerini tanımlamak için içindeki extensions.mcp bölümünü kullanabilirsinizhost.json.
{
"version": "2.0",
"extensions": {
"mcp": {
"instructions": "Some test instructions on how to use the server",
"serverName": "TestServer",
"serverVersion": "2.0.0",
"encryptClientState": true,
"messageOptions": {
"useAbsoluteUriForEndpoint": false
},
"system": {
"webhookAuthorizationLevel": "System"
}
}
}
}
| Property | Description |
|---|---|
| instructions | İstemcilere uzak MCP sunucusuna nasıl erişeceklerini açıklar. |
| serverName | Uzak MCP sunucusu için kolay bir ad. |
| serverVersion | Uzak MCP sunucusunun geçerli sürümü. |
| encryptClientState | İstemci durumunun şifrelenip şifrelenmediğini belirler. Varsayılan değer true'dır. False olarak ayarlamak hata ayıklama ve test senaryoları için yararlı olabilir, ancak üretim için önerilmez. |
| messageOptions | SSE aktarımındaki ileti uç noktası için Seçenekler nesnesi. |
| messageOptions.UseAbsoluteUriForEndpoint | Varsayılan olarak false değerini alır. Yalnızca sunucu tarafından gönderilen olaylar (SSE) aktarımı için geçerlidir; bu ayar Streamable HTTP aktarımını etkilemez. olarak ayarlanırsa false, ileti uç noktası SSE aktarımı üzerinden yapılan ilk bağlantılar sırasında göreli URI olarak sağlanır. olarak ayarlanırsa true, ileti uç noktası mutlak bir URI olarak döndürülür. Belirli bir nedeniniz olmadığı sürece göreli URI kullanılması önerilmez. |
| sistem |
Sistem düzeyinde yapılandırma için Seçenekler nesnesi. |
| system.webhookAuthorizationLevel | Web kancası uç noktası için gereken yetkilendirme düzeyini tanımlar. Varsayılan olarak "Sistem" olur. İzin verilen değerler "Sistem" ve "Anonim" değerleridir. Değeri "Anonim" olarak ayarladığınızda, istekler için artık erişim anahtarı gerekmez. Anahtar gerekip gerekmediğine bakılmaksızın, yerleşik MCP sunucu yetkilendirmesini kimlik tabanlı erişim denetimi katmanı olarak kullanabilirsiniz. |
MCP sunucunuza bağlanma
İşlev uygulamanız tarafından kullanıma sunulan MCP sunucusuna bağlanmak için uygun uç nokta ve aktarım bilgilerini bir MCP istemcisine sağlamanız gerekir. Aşağıdaki tabloda Azure İşlevleri MCP uzantısı tarafından desteklenen aktarımlar ve ilgili bağlantı uç noktaları gösterilmektedir.
| Transport | Bitiş noktası |
|---|---|
| Akışla aktarılabilir HTTP | /runtime/webhooks/mcp |
| Server-Sent Olayları (SSE)1 | /runtime/webhooks/mcp/sse |
1 Daha yeni protokol sürümleri Server-Sent Olayları aktarımını kullanım dışı bırakılmıştır. İstemciniz bunu özel olarak gerektirmediği sürece bunun yerine Streamable HTTP aktarımını kullanmanız gerekir.
Azure'da barındırıldığında, uzantı tarafından kullanıma sunulan uç noktalar varsayılan olarak adlı mcp_extension da gerektirir. HTTP üst bilgisinde x-functions-key veya sorgu dizesi parametresinde code sağlanmadıysa, istemciniz bir 401 Unauthorized yanıt alır. içindeki özelliğini system.webhookAuthorizationLevelhost.jsonolarak ayarlayarak Anonymous bu gereksinimi kaldırabilirsiniz. Daha fazla bilgi için host.json ayarları bölümüne bakın.
İşlev erişim anahtarlarınızı alma bölümünde açıklanan yöntemlerden herhangi birini kullanarak anahtarı alabilirsiniz. Aşağıdaki örnek, Azure CLI ile anahtarın nasıl alınıp alınamını gösterir:
az functionapp keys list --resource-group <RESOURCE_GROUP> --name <APP_NAME> --query systemKeys.mcp_extension --output tsv
MCP istemcileri bu yapılandırmayı çeşitli şekillerde kabul ediyor. Seçtiğiniz istemcinin belgelerine bakın. Aşağıdaki örnektemcp.json kullanabileceğiniz gibi bir dosya gösterilmektedir. Örnek, her ikisi de Streamable HTTP aktarımını kullanarak iki sunucu ayarlar. Birincisi, Azure İşlevleri Temel Araçları ile yerel test içindir. İkincisi, Azure'da barındırılan bir işlev uygulaması içindir. Yapılandırma, uzak sunucuyu ilk kez çalıştırdığınızda Visual Studio Code'un sizden istemde bulunduğu giriş parametrelerini alır. Girişlerin kullanılması, sistem anahtarı gibi gizli dizilerin dosyaya kaydedilmemesini ve kaynak denetimine iade edilmesini sağlar.
{
"inputs": [
{
"type": "promptString",
"id": "functions-mcp-extension-system-key",
"description": "Azure Functions MCP Extension System Key",
"password": true
},
{
"type": "promptString",
"id": "functionapp-host",
"description": "The host domain of the function app."
}
],
"servers": {
"local-mcp-function": {
"type": "http",
"url": "http://localhost:7071/runtime/webhooks/mcp"
},
"remote-mcp-function": {
"type": "http",
"url": "https://${input:functionapp-host}/runtime/webhooks/mcp",
"headers": {
"x-functions-key": "${input:functions-mcp-extension-system-key}"
}
}
}
}