Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Azure Functions biedt twee manieren om externe MCP-servers te hosten:
- MCP-servers die zijn gemaakt met de Functions MCP-extensie
- MCP-servers gebouwd met de officiële MCP SDK's
Met de eerste benadering kunt u het Azure Functions-programmeermodel gebruiken met triggers en bindingen om de MCP-server te bouwen. Vervolgens kunt u de server extern hosten door deze te implementeren in een functie-app.
Als u al een MCP-server hebt gemaakt met de officiële MCP-SDK's en deze alleen op afstand wilt hosten, past de tweede benadering waarschijnlijk aan uw behoeften. U hoeft geen codewijzigingen aan te brengen op de server om deze te hosten in Azure Functions. In plaats daarvan kunt u de vereiste Functions-artefacten toevoegen en de server is klaar om te worden geïmplementeerd. Als zodanig worden deze servers aangeduid als zelf-hostende MCP-servers.
Dit artikel bevat een overzicht van zelf-hostende MCP-servers en koppelingen naar relevante artikelen en voorbeelden.
Aangepaste handlers
Zelfgehoste MCP-servers worden uitgerold op het Azure Functions-platform als aangepaste handlers. Aangepaste handlers zijn lichtgewicht webservers die gebeurtenissen ontvangen van de Functions-host. Ze bieden een manier om te worden uitgevoerd op de Functions-platformtoepassingen die zijn gebouwd met frameworks die afwijken van het Functions-programmeermodel of in talen die niet standaard worden ondersteund. Zie aangepaste handlers van Azure Functions voor meer informatie.
Wanneer u een MCP SDK-server implementeert in Azure Functions, moet u een host.json opnemen in uw project. De minimale host.json ziet er als volgt uit:
{
"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>"
}
}
Opmerking
Omdat de payload die is geïmplementeerd in Azure Functions de inhoud van de bin/output map is, is het pad naar de gecompileerde DLL relatief tot die map, niet tot de hoofdmap van het project.
Voorbeeld is nog niet beschikbaar.
Met een waarde van configuration Profile voor mcp-custom-handler configureert u automatisch deze Functions host-instellingen, die nodig zijn om uw MCP-server in Azure Functions uit te voeren.
-
http.enableProxyingtot en mettrue -
http.routestot en met[{ "route": "{*route}" }] -
extensions.http.routePrefixtot en met""
In dit voorbeeld ziet u een host.json bestand met extra aangepaste handlereigenschappen die gelijk zijn aan het gebruik van het mcp-custom-handler profiel:
{
"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"
}
]
}
}
}
In deze tabel worden de eigenschappen van customHandler.http, samen met standaardwaarden uitgelegd:
| Vastgoed | Wat het doet | Standaardwaarde |
|---|---|---|
enableProxying |
Hiermee bepaalt u hoe de Azure Functions-host HTTP-aanvragen verwerkt voor aangepaste handlers. Wanneer enableProxying is ingesteld op true, fungeert de Functions-host als een omgekeerde proxy en stuurt de volledige HTTP-aanvraag (inclusief headers, body, queryparameters) rechtstreeks door naar de aangepaste handler. Met deze instelling krijgt de aangepaste handler volledige toegang tot de oorspronkelijke HTTP-aanvraagdetails. Wanneer enableProxying is false, verwerkt de Functions-host de aanvraag eerst en transformeert deze in de Azure Functions-aanvraag-/-antwoordindeling voordat deze wordt doorgegeven aan de aangepaste handler. |
false |
defaultAuthorizationLevel |
Hiermee bepaalt u de verificatievereiste voor toegang tot aangepaste handler-eindpunten. Hiervoor is bijvoorbeeld function een functiespecifieke API-sleutel vereist voor toegang. Zie autorisatieniveaus voor meer informatie. |
function |
route |
Hiermee geeft u het URL-padpatroon op waarop de aangepaste handler reageert.
{*route}komt overeen met een URL-pad (zoals /, /mcpof /api/tools/anything/nested/path) en stuurt de aanvraag door naar de aangepaste handler. |
{*route} |
Ingebouwde serververificatie
Verificatie en autorisatie op basis van OAuth die door het App Service-platform worden geleverd, implementeert de vereisten van de MCP-autorisatiespecificatie, zoals het uitgeven van 401-vraag en het weergeven van het PRM-document (Protected Resource Metadata). Wanneer u ingebouwde verificatie inschakelt, worden clients die toegang proberen te krijgen tot de server omgeleid naar id-providers zoals Microsoft Entra ID voor verificatie voordat ze verbinding maken.
Zie Ingebouwde serverautorisatie (preview) configureren en MCP-servers hosten op Azure Functions voor meer informatie.
Integraties van de Azure AI Foundry-agent
Agents in Azure AI Foundry kunnen worden geconfigureerd voor het gebruik van hulpprogramma's in MCP-servers die worden gehost in Azure Functions.
Uw server registreren in Azure API Center
Wanneer u uw MCP-server registreert in Azure API Center, maakt u een persoonlijke organisatiehulpprogrammacatalogus. Deze benadering wordt aanbevolen voor het delen van MCP-servers binnen uw organisatie met consistente governance en vindbaarheid. Zie MCP-servers registreren die worden gehost in Azure Functions in Azure API Center voor meer informatie.
Ondersteuning voor openbare preview
De mogelijkheid om uw eigen OP SDK gebaseerde MCP-servers in Functions te hosten, is momenteel in preview en biedt ondersteuning voor deze functies:
- Staatloze servers die gebruikmaken van het streamable http-transport . Als u wilt dat uw server stateful is, kunt u overwegen om de Functions MCP-extensie te gebruiken.
- Servers die zijn geïmplementeerd met de Python-, TypeScript-, C#- of Java MCP-SDK's.
- Wanneer u het project lokaal uitvoert, moet u de Azure Functions Core Tools (
func startopdracht) gebruiken. U kunt momenteel niet gebruikenF5om te beginnen met het foutopsporingsprogramma. - Servers moeten worden gehost als Flex Consumption plan-apps.
Samples
Nog niet beschikbaar.