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ý umožňuje jazykovým modelům a agentům efektivněji zjišťovat a používat externí zdroje a nástroje dat.
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 aktivačních událostí nástroje MCP, které klienti MCP, jako jsou jazykové modely a agenti, můžou dotazovat a přistupovat k určitým úlohám.
| Action | Typ |
|---|---|
| Spuštění funkce z žádosti o volání nástroje MCP | Trigger |
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). Při použití připojení založených na identitách se ujistěte, ž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: Čtenář dat fronty služby Storage a Procesor 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 2.0.2 nebo novější balíčku
Microsoft.Azure.Functions.Worker.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.
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.
Pomocí části v extensions.mcp této části můžete host.json definovat 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 se během počátečních připojení přes přenos SSE poskytuje jako relativní identifikátor URI. Pokud je nastavená hodnota true, koncový bod zprávy se vrátí jako 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 vystaveného vaší aplikací funkcí, musíte klientovi MCP poskytnout 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řadily přenos událostí Server-Sent. Pokud to váš klient výslovně nevyžaduje, měli byste místo toho použít přenos HTTP streamable.
Při hostování v Azure ve výchozím nastavení vyžadují koncové body zveřejněné rozšířením také systémový klíč s názvem mcp_extension. Pokud není zadaný 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 je místní testování pomocí nástrojů Azure Functions Core Tools. Druhým 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. Použití vstupů zajišťuje, že tajné kódy, jako je systémový klíč, se neuloží do souboru a budou vráceny se změnami 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}"
}
}
}
}