Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Protokol MCP (Model Context Protocol) je protokol klienta-server, který pomáhá jazykovým modelům a agentům efektivněji zjišťovat a používat externí zdroje dat a nástroje.
Rozšíření Azure Functions MCP umožňuje používat Azure Functions k vytváření vzdálených serverů MCP. Tyto servery můžou hostovat funkce triggerů nástroje MCP, které klienti MCP, jako jsou jazykové modely a agenti, můžou dotazovat a přistupovat k provádění konkrétních úloh. Rozšíření také podporuje aplikace MCP, které umožňují vašim nástrojům vracet interaktivní uživatelská rozhraní místo prostého textu kombinováním triggerů nástrojů s triggery prostředků.
| Action | Typ |
|---|---|
| Spuštění funkce z žádosti o volání nástroje MCP | Trigger nástroje |
| Zveřejnění funkce jako prostředku MCP | Trigger prostředku |
| Zveřejnění funkce jako výzvy MCP | Trigger výzvy |
Important
Rozšíření MCP v současné době nepodporuje aplikace PowerShellu.
Prerequisites
- Pokud používáte přenos SSE, rozšíření MCP spoléhá na službu Azure Queue Storage poskytovanou výchozím účtem úložiště hostitele (
AzureWebJobsStorage). Pokud používáte připojení založená na identitě, ujistěte se, že vaše aplikace funkcí má v účtu úložiště hostitele alespoň ekvivalent těchto oprávnění založených na rolích: Přispěvatel dat fronty služby Storage a Zpracovatel zpráv fronty úložiště. - Pokud běží místně, rozšíření MCP vyžaduje verzi 4.0.7030 nástrojů Azure Functions Core Tools nebo novější verzi.
- Vyžaduje verzi 2.1.0 nebo novější balíčku
Microsoft.Azure.Functions.Worker. - Vyžaduje verzi 1.0.0 nebo novější
Azure.Functions.Sdkprojektového SDK.
Instalace rozšíření
Note
V jazyce C# rozšíření Azure Functions MCP podporuje pouze izolovaný pracovní model.
Přidejte do projektu rozšíření instalací tohoto balíčku NuGet upřednostňovaným způsobem:
Microsoft.Azure.Functions.Worker.Extensions.Mcp
- Vyžaduje závislost verze 3.2.2 nebo novější
azure-functions-java-library. - Vyžaduje verzi 1.40.0 nebo novější
azure-functions-maven-pluginzávislosti.
- Vyžaduje závislost verze 4.9.0 nebo novější.
@azure/functions
- Vyžaduje verzi 1.24.0 nebo novější balíčku
azure-functions.
Instalace sady
Pokud chcete v aplikaci použít toto rozšíření vazeb, ujistěte se, že soubor host.json v kořenovém adresáři projektu obsahuje tento extensionBundle odkaz:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.0.0, 5.0.0)"
}
}
V tomto příkladu version hodnota [4.0.0, 5.0.0) dává hostiteli Functions pokyn, aby používal verzi sady, která je alespoň 4.0.0 , ale menší než 5.0.0, která zahrnuje všechny potenciální verze 4.x. Tato notace efektivně udržuje vaši aplikaci na nejnovější dostupné podverzi sady rozšíření v4.x.
Pokud je to možné, měli byste použít nejnovější hlavní verzi sady rozšíření a umožnit modulu runtime automaticky udržovat nejnovější podverzi. Obsah nejnovější sady můžete zobrazit na stránce verze sady rozšíření. Další informace najdete v sadách rozšíření Azure Functions.
Go momentálně tuto funkci nepodporuje.
nastavení host.json
Tato část popisuje nastavení konfigurace dostupné pro tuto vazbu ve verzi 2.x a novější. Nastavení v souboru host.json platí pro všechny funkce v instanci aplikace funkcí. Další informace o nastavení konfigurace aplikace funkcí najdete v host.json referenčních informacích ke službě Azure Functions.
extensions.mcp Pomocí části v host.json části definujte informace o serveru MCP.
{
"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 | Popisuje klienty, jak získat přístup ke vzdálenému serveru MCP. |
| serverName | Popisný název vzdáleného serveru MCP. |
| serverVersion | Aktuální verze vzdáleného serveru MCP |
| encryptClientState | Určuje, jestli je stav klienta šifrovaný. Výchozí hodnota je true. Nastavení na false může být užitečné pro scénáře ladění a testování, ale nedoporučuje se pro produkční prostředí. |
| messageOptions | Objekt Options pro koncový bod zprávy v přenosu SSE. |
| messageOptions.UseAbsoluteUriForEndpoint | Výchozí hodnota je false. Vztahuje se pouze na přenos událostí odesílaných serverem (SSE); toto nastavení nemá vliv na přenos HTTP s možností streamování. Pokud je nastavená hodnota false, koncový bod zprávy je relativní identifikátor URI během počátečních připojení přes přenos SSE. Pokud je nastavená hodnota true, koncový bod zprávy je absolutní identifikátor URI. Použití relativního identifikátoru URI se nedoporučuje, pokud k tomu nemáte konkrétní důvod. |
| systém | Objekt Options pro konfiguraci na úrovni systému. |
| system.webhookAuthorizationLevel | Definuje úroveň autorizace vyžadovanou pro koncový bod webhooku. Výchozí hodnota je "System". Povolené hodnoty jsou "System" a "Anonymous". Když nastavíte hodnotu na Anonymní, přístupový klíč už není vyžadován pro požadavky. Bez ohledu na to, jestli je klíč povinný nebo ne, můžete jako vrstvu řízení přístupu na základě identity použít integrovanou autorizaci serveru MCP . |
Připojení k serveru MCP
Pokud se chcete připojit k serveru MCP, který vaše aplikace funkcí zveřejňuje, poskytněte klientovi MCP příslušné informace o koncovém bodu a přenosu. Následující tabulka ukazuje přenosy podporované rozšířením MCP služby Azure Functions spolu s odpovídajícím koncovým bodem připojení.
| Transport | Endpoint |
|---|---|
| Streamovatelné HTTP | /runtime/webhooks/mcp |
| události Server-Sent (SSE)1 | /runtime/webhooks/mcp/sse |
1 Novější verze protokolu vyřazí přenos událostí Server-Sent. Pokud to váš klient výslovně nevyžaduje, použijte místo toho přenos HTTP streamable.
Když hostujete aplikaci funkcí v Azure, rozšíření vyžaduje systémový klíč pojmenovaný mcp_extension pro vystavené koncové body. Pokud tento klíč nezadáte v x-functions-key hlavičce HTTP nebo v parametru code řetězce dotazu, klient obdrží 401 Unauthorized odpověď. Tento požadavek můžete odebrat nastavením system.webhookAuthorizationLevel vlastnosti host.json na Anonymoushodnotu . Další informace najdete v části nastaveníhost.json .
Klíč můžete načíst pomocí některé z metod popsaných v části Získání přístupových klíčů funkce. Následující příklad ukazuje, jak získat klíč pomocí Azure CLI:
az functionapp keys list --resource-group <RESOURCE_GROUP> --name <APP_NAME> --query systemKeys.mcp_extension --output tsv
Klienti MCP tuto konfiguraci přijímají různými způsoby. Projděte si dokumentaci ke zvolenému klientovi. Následující příklad ukazuje soubor, mcp.json který můžete použít ke konfiguraci serverů MCP pro GitHub Copilot v editoru Visual Studio Code. Příklad nastaví dva servery, oba pomocí přenosu HTTP Streamable. Prvním serverem je místní testování pomocí nástrojů Azure Functions Core Tools. Druhým serverem je aplikace funkcí hostovaná v Azure. Konfigurace přebírá vstupní parametry, pro které vás Visual Studio Code vyzve při prvním spuštění vzdáleného serveru. Pomocí vstupů zajistíte, že se tajné kódy, jako je systémový klíč, neuloží do souboru a nezaškrtá se do správy zdrojového kódu.
{
"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}"
}
}
}
}