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.
Model Context Protocol (MCP) is een open standaard die AI-toepassingen verbindt met externe gegevensbronnen en hulpprogramma's. Met behulp van MCP kunnen AI-clients zoals GitHub Copilot mogelijkheden ontdekken en aanroepen die u beschikbaar maakt, uw API's, databases en bedrijfslogica omzetten in hulpprogramma's die een AI-agent kan gebruiken via natuurlijke taal.
Azure Container Apps ondersteunt twee hostingmodellen voor MCP-servers:
| Hostingmodel | Description |
|---|---|
| Zelfstandige container-app | Implementeer een MCP-server die u bouwt als een container met HTTP-inkomend verkeer. |
| Dynamische sessies | Gebruik door platform beheerde sessiegroepen met ingebouwde MCP-hulpprogramma's voor het uitvoeren van code in de sandbox. |
Wat is Model Context Protocol (MCP)?
Een MCP-server biedt drie soorten mogelijkheden voor clients:
| Vermogen | Description | Example |
|---|---|---|
| Gereedschappen | Functies die het AI-model kan aanroepen (met goedkeuring van de gebruiker) |
createTask, listTasks, deleteTask |
| Middelen | Gegevens met alleen-lezen die de client kan ophalen | Configuratiebestanden, databaseschema's |
| Aanwijzingen | Vooraf geschreven sjablonen voor algemene taken | "Alle geopende taken samenvatten" |
Clients communiceren met MCP-servers via HTTP met behulp van het streambare HTTP-transport. De client verzendt JSON-RPC 2.0-aanvragen. De server reageert met resultaten van hulpprogramma's, inhoud van middelen of promptsjablonen.
De aanvraagstroom volgt dit patroon:
De MCP-client (GitHub Copilot, Claude of een aangepaste client) verzendt een HTTPS-aanvraag met een JSON-RPC 2.0-bericht naar de server.
De MCP-server (uw container-app) verwerkt de aanvraag en roept eventuele back-endservices aan die nodig zijn, zoals een database of API.
De server retourneert een JSON-RPC 2.0-antwoord met hulpprogrammaresultaten, resource-inhoud of promptsjablonen.
Zelfstandige container-app
U bouwt een MCP-server met behulp van een officiële MCP SDK (beschikbaar voor .NET, Python, TypeScript, Java, Go, Kotlin en andere) en vervolgens containeriseren en implementeren in Azure Container Apps.
In dit model heeft Container Apps geen MCP-specifieke kennis. Het platform biedt:
- HTTPS-ingress met automatische TLS-afhandeling
- Automatisch schalen, inclusief schalen naar nul (minimaal één replica wordt aanbevolen voor interactief MCP-gebruik)
- CORS-beleid voor het toestaan van cross-origin-aanvragen van VS Code- en browserclients
- Ingebouwde verificatie met Microsoft Entra-id (optioneel)
- Aangepaste domeinen, verkeer splitsen, Dapr, service-naar-service-netwerken, beheerde identiteit en alle andere standaardfuncties van Container Apps
Aanvraagstroom
Wanneer u een MCP-server als een zelfstandige container-app implementeert, stromen clientaanvragen via container-apps inkomend naar uw container, waarbij uw MCP-eindpunt het JSON-RPC bericht verwerkt en resultaten retourneert.
- Een MCP-client verzendt een HTTPS-aanvraag naar de FQDN van de container-app.
- Container Apps-inkomend verkeer beëindigt TLS en stuurt de aanvraag door naar uw container op de geconfigureerde doelpoort (bijvoorbeeld 8080).
- Uw webframework (ASP.NET, FastAPI, Express, Spring Boot) stuurt de aanvraag naar het MCP-eindpunt (meestal
/mcp). - Uw MCP-server verwerkt de aanvraag, roept back-endservices aan en retourneert een JSON-RPC 2.0-antwoord.
Wanneer te gebruiken
Gebruik een zelfstandige container-app als u aangepaste MCP-hulpprogramma's in elke taal wilt bouwen, integreren met back-endservices en standaardfuncties voor Container Apps wilt gebruiken.
- U wilt volledige controle over hulpprogrammadefinities, middleware en bedrijfslogica.
- Uw MCP-server is geschreven in elke taal met een MCP SDK.
- Je moet verbinding maken met back-end databases, API's of Azure-services.
- U wilt Container Apps-functies gebruiken, zoals Dapr, service-naar-service-netwerken of beheerde identiteit.
Dynamische sessies (platform-gestuurd MCP)
Dynamische sessies van Azure Container Apps bieden sandboxomgevingen voor het uitvoeren van code in isolatie. Wanneer u MCP inschakelt voor een sessiegroep, maakt het platform een JSON-RPC eindpunt beschikbaar dat clients kunnen gebruiken om shell- of Python-omgevingen te starten en opdrachten op afstand uit te voeren.
In dit model beheert het platform de MCP-server. U schrijft of implementeert geen MCP-servercode. Het platform biedt de volgende vooraf gedefinieerde hulpprogramma's:
| Tool | Description |
|---|---|
launchShell |
Hiermee maakt u een nieuwe omgeving en retourneert u een environmentId |
runShellCommandInRemoteEnvironment |
Voert een shell-opdracht uit in een bestaande omgeving |
runPythonCodeInRemoteEnvironment |
Python-code uitvoeren in een bestaande omgeving |
Opmerking
De door het platform beheerde MCP-server maakt alle drie de hulpprogramma's beschikbaar, ongeacht de sessiegroep containerType. Hiermee launchShell maakt u een omgeving voor zowel shell- als Python-pools.
Aanvraagstroom
Wanneer u een MCP-server implementeert met behulp van dynamische sessies, beheert het platform de server en biedt het een JSON-RPC eindpunt dat clients gebruiken om shell- of Python-code uit te voeren in sandboxomgevingen.
- Een MCP-client verzendt een HTTPS-aanvraag naar het eindpunt van
/mcpde sessiegroep met eenx-ms-apikeyheader voor verificatie. - De omgekeerde proxy van het platform valideert de API-sleutel en stuurt de aanvraag door naar de juiste Hyper-V sessie in de sandbox.
- De sessie voert de aangevraagde shell-opdracht of Python-code uit in de sandbox.
- Het platform retourneert een JSON-RPC 2.0-antwoord met uitvoeringsresultaten.
Wanneer te gebruiken
- U hebt code-uitvoering in de sandbox nodig voor niet-vertrouwde of door LLM gegenereerde code.
- Uw gebruikssituatie is Python- of shell scripting en er zijn geen maatwerkhulpprogramma's nodig.
- U wilt Hyper-V isolatie tussen sessies voor beveiliging.
- U wilt geen MCP-servertoepassing bouwen of onderhouden.
Authenticatie
Dynamische sessies MCP maakt gebruik van API-sleutelverificatie via de x-ms-apikey header. Dit mechanisme verschilt van de bearer-tokenverificatie die wordt gebruikt door standaard sessiegroep-API's.
Haal de API-sleutel op met behulp van de Azure CLI:
az rest --method POST \
--uri "https://management.azure.com/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP_NAME>/providers/Microsoft.App/sessionPools/<POOL_NAME>/fetchMCPServerCredentials" \
--uri-parameters api-version=2025-02-02-preview \
--query "apiKey" -o tsv
Protocol-details
De door het platform beheerde MCP-server voor dynamische sessies implementeert de volgende protocolspecificaties:
| Vastgoed | Waarde |
|---|---|
| MCP-protocolversie | 2025-03-26 |
| Servernaam | Microsoft Container Apps MCP Server |
| Transport | JSON-RPC 2.0 via HTTP |
| API-versie | 2025-02-02-preview |
| Ondersteunde methoden |
initialize, tools/list, tools/call |
Belangrijk
De door het platform beheerde MCP-functie voor dynamische sessies is in preview. De API-versie 2025-02-02-preview - en mcpServerSettings ARM-eigenschappen (Azure Resource Manager) kunnen worden gewijzigd.
Inkomend verkeer en netwerken
Het veld Inkomend transport verkeer van Container Apps ondersteunt auto, http, http2, en tcp. Het MCP-streambare HTTP-transport wordt uitgevoerd in uw container via standaard HTTP, dus ingesteld transport op auto of http (de standaardinstelling). Er is geen speciale MCP-transportwaarde.
U moet een CORS-beleid configureren als VS Code- of browserclients toegang hebben tot uw MCP-server. Sta minimaal de oorsprong, methoden en headers toe die zijn vereist voor uw MCP-client.
Hostingopties vergelijken
In de volgende tabel worden de twee hostingmodellen vergeleken.
| Overweging | Zelfstandige container-app | Dynamische sessies (beheerd MCP) |
|---|---|---|
| Aangepaste hulpprogramma's | Ja, definieer de gewenste hulpprogramma's | Nee, alleen door het platform gedefinieerde hulpprogramma's |
| Languages | Elke taal met een MCP SDK | Alleen python- en shell-uitvoering |
| MCP-transport | Streambare HTTP (binnen container) | JSON-RPC via HTTP (door platform beheerd) |
| Authenticatie | Ingebouwde verificatie (Microsoft Entra-id) | API-sleutel (x-ms-apikey) |
| Isolatie | Containerniveau | Hyper-V per sessie |
| Scaling | Revisiegebaseerde automatische schaalaanpassing | Per sessie, door pool beheerd |
| Gebruiksituatie | MCP-servers voor algemeen gebruik | Uitvoering van code in sandbox |
Zie Een Azure-service kiezen voor uw MCP-server voor een bredere vergelijking met App Service en Azure Functions.