Anmerkung
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel erfahren Sie, wie Sie Remotemodellkontextprotokollserver (MCP) auf Azure Functions hosten. Außerdem erfahren Sie, wie Sie die integrierte Authentifizierung verwenden, um die Autorisierung des Serverendpunkts zu konfigurieren und Ihre KI-Tools besser zu schützen.
Es gibt zwei Möglichkeiten zum Hosten eines MCP-Remoteservers in Azure Functions:
| MCP-Serveroption | Description | Am besten geeignet für: |
|---|---|---|
| MCP-Erweiterungsserver | Verwendet die McP-Erweiterung von Azure Functions , um benutzerdefinierte MCP-Server zu erstellen, auf denen der Erweiterungstrigger Ihnen die Definition Ihrer Toolendpunkte ermöglicht. Diese Server werden in allen Funktionensprachen unterstützt und werden als jede andere Funktions-App entwickelt, bereitgestellt und verwaltet. | Wenn Sie bereits mit Funktionen und dem bindungensbasierten Programmiermodell vertraut sind. |
| Selbst gehosteter Server | Funktionen können ein MCP-Serverprojekt hosten, das mit den standardmäßigen MCP-SDKs erstellt wurde. | Wenn Sie Ihren Server bereits mit den offiziellen MCP-SDKs erstellt haben und nach ereignisgesteuertem, serverlosen und skalierbarem Hosting in Azure suchen. |
Hinweis
Die Möglichkeit, dass Azure Functions MCP-Server hosten, die Sie mit offiziellen MCP-SDKs erstellen, befindet sich derzeit in der Vorschau.
In diesem Lernprogramm werden beide MCP-Serveroptionen behandelt, die von Funktionen unterstützt werden. Wählen Sie die Registerkarte aus, die am besten zu Ihrem Szenario passt.
In diesem Lernprogramm verwenden Sie Visual Studio Code für Folgendes:
- Erstellen Sie ein MCP-Serverprojekt mit der MCP-Erweiterung.
- Führen Sie Ihren MCP-Server lokal aus und überprüfen Sie ihn.
- Erstellen Sie eine Funktions-App in Azure.
- Stellen Sie Ihr MCP-Serverprojekt bereit.
- Aktivieren Sie die integrierte Authentifizierung.
Von Bedeutung
Dieser Artikel unterstützt derzeit nur C#, Python und TypeScript. Um die Schnellstartanleitung abzuschließen, wählen Sie oben im Artikel eine dieser unterstützten Sprachen aus.
Dieser Artikel unterstützt Version 4 des Node.js Programmiermodells für Azure Functions.
Dieser Artikel unterstützt Version 2 des Python-Programmiermodells für Azure Functions.
Voraussetzungen
Visual Studio Code mit folgenden Erweiterungen:
Azure Functions-Erweiterung. Diese Erweiterung erfordert Azure Functions Core Tools und versucht, sie zu installieren, wenn sie nicht verfügbar ist.
Azure CLI Sie können auch Azure CLI-Befehle in Azure Cloud Shell ausführen.
Ein Azure-Konto mit einem aktiven Abonnement. Kostenlos ein Konto erstellen.
Erstellen des MCP-Serverprojekts
Verwenden Sie Visual Studio Code, um lokal ein MCP-Serverprojekt in Ihrer bevorzugten Sprache zu erstellen.
Drücken Sie in Visual Studio Code F1, um die Befehlspalette zu öffnen. Suchen und ausführen Sie den Befehl
Azure Functions: Create New Project....Wählen Sie den Verzeichnisspeicherort für Ihren Projektarbeitsbereich und anschließend Auswählen aus. Sie sollten entweder einen neuen Ordner erstellen oder einen leeren Ordner für den Projektarbeitsbereich auswählen. Wählen Sie keinen Projektordner aus, der bereits Teil eines Arbeitsbereichs ist.
Geben Sie bei entsprechender Aufforderung die folgenden Informationen ein:
Prompt Auswahl Projekttyp auswählen Wählen Sie die Option C#.Auswählen einer .NET-Laufzeit Wählen Sie die Option .NET 8.0 LTS.Auswählen einer Vorlage für die erste Funktion Ihres Projekts Wählen Sie die Option MCP Tool trigger.Angeben eines Funktionsnamens Geben Sie McpTriggerein.Bereitstellen eines Namespaces Geben Sie My.Functionsein.Autorisierungsstufe Wählen Sie FUNCTION, wobei beim Herstellen einer Verbindung mit dem Remote-MCP-Server ein Zugriffsschlüssel erforderlich ist.Auswählen, wie Sie Ihr Projekt öffnen möchten Wählen Sie die Option Open in current window.
Geben Sie bei entsprechender Aufforderung die folgenden Informationen ein:
Prompt Auswahl Projekttyp auswählen Wählen Sie die Option TypeScript.Auswählen einer Vorlage für die erste Funktion Ihres Projekts Wählen Sie die Option MCP Tool trigger.Angeben eines Funktionsnamens Geben Sie mcpToolTriggerein.Autorisierungsstufe Wählen Sie FUNCTIONdie Zugriffstaste aus, die beim Herstellen einer Verbindung mit dem Remote-MCP-Server erforderlich ist.Auswählen, wie Sie Ihr Projekt öffnen möchten Wählen Sie die Option Open in current window.
Geben Sie bei entsprechender Aufforderung die folgenden Informationen ein:
Prompt Auswahl Projekttyp auswählen Wählen Sie die Option Python.Auswählen einer Python-Interpreters zum Erstellen einer virtuellen Umgebung Wählen Sie Ihren bevorzugten Python-Interpreter aus. Sollte eine Option nicht angezeigt werden, geben Sie den vollständigen Pfad Ihrer Python-Binärdatei ein. Auswählen einer Vorlage für die erste Funktion Ihres Projekts Wählen Sie die Option MCP Tool trigger.Name der Funktion, die Sie erstellen möchten Geben Sie mcp_triggerein.Autorisierungsstufe Wählen Sie FUNCTIONdie Zugriffstaste aus, die beim Herstellen einer Verbindung mit dem Remote-MCP-Server erforderlich ist.Auswählen, wie Sie Ihr Projekt öffnen möchten Wählen Sie die Option Open in current window.
Mit diesen Informationen generiert Visual Studio Code ein Codeprojekt für einen MCP-Servertrigger. Die lokalen Projektdateien können im Explorer angezeigt werden.
Starten des MCP-Servers lokal
Funktions-Apps benötigen eine Speicherkomponente zum Ausführen. Starten Sie vor dem Starten des Servers den lokalen Speicher-Emulator:
Stellen Sie sicher, dass Sie in local.setting.json
"AzureWebJobsStorage": "UseDevelopmentStorage=true"haben.Drücken Sie in Visual Studio Code F1, um die Befehlspalette zu öffnen. Suchen Sie in der Befehlspalette nach
Azurite: Start, und wählen Sie sie aus.Überprüfen Sie die untere Leiste, und stellen Sie sicher, dass die Azurite-Emulationsdienste ausgeführt werden. Wenn ja, können Sie den Server jetzt lokal ausführen.
Um die lokale Ausführung zu starten, drücken Sie F5.
Funktions-Apps benötigen eine Speicherkomponente zum Ausführen. Starten Sie vor dem Starten des Servers den lokalen Speicher-Emulator:
Stellen Sie sicher in local.setting.json, dass Sie
"AzureWebJobsStorage": "UseDevelopmentStorage=true"haben.Drücken Sie in Visual Studio Code F1, um die Befehlspalette zu öffnen. Suchen Sie in der Befehlspalette nach
Azurite: Start, und wählen Sie sie aus.Überprüfen Sie die untere Leiste, und stellen Sie sicher, dass die Azurite-Emulationsdienste ausgeführt werden. Wenn ja, können Sie den Server jetzt lokal ausführen.
Um die lokale Ausführung zu starten, drücken Sie F5.
Funktions-Apps benötigen eine Speicherkomponente zum Ausführen. Starten Sie vor dem Starten des Servers den lokalen Speicher-Emulator:
Stellen Sie in local.setting.json sicher, dass Sie
"AzureWebJobsStorage": "UseDevelopmentStorage=true"haben.Drücken Sie in Visual Studio Code F1, um die Befehlspalette zu öffnen. Suchen Sie in der Befehlspalette nach
Azurite: Start, und wählen Sie sie aus.Überprüfen Sie die untere Leiste, und stellen Sie sicher, dass die Azurite-Emulationsdienste ausgeführt werden. Wenn ja, können Sie den Server jetzt lokal ausführen.
Um die lokale Ausführung zu starten, drücken Sie F5.
Testen des Servers
Suchen Sie das
.vscodeVerzeichnis, und öffnen Siemcp.jsones. Der Editor sollte die Verbindungsinformationen des Servers hinzufügen.Starten Sie den Server, indem Sie die Schaltfläche "Start " oberhalb des Servernamens auswählen.
Wenn Sie eine Verbindung mit dem Server herstellen, wird die Anzahl der tools angezeigt, die über dem Servernamen verfügbar sind.
Öffnen Sie den Visual Studio Code Copilot-Chat im Agentmodus, und stellen Sie dann eine Frage. Beispiel: "Begrüßung mit #your-local-server-name". Diese Frage stellt sicher, dass Copilot den Server verwendet, um die Frage zu beantworten.
Wenn Copilot fordert, ein Tool vom lokalen MCP-Server auszuführen, wählen Sie "Zulassen" aus.
Trennen Sie die Verbindung mit dem Server, wenn Sie den Test abgeschlossen haben, indem Sie "Beenden" auswählen und
Cntrl+Cdie Lokale Ausführung beenden.
Tipp
Wählen Sie im Fenster "Copilot-Chat" das Toolsymbol unten aus, um die Liste der Für den Chat verfügbaren Server und Tools anzuzeigen. Stellen Sie sicher, dass der lokale MCP-Server beim Testen überprüft wird.
Remote-MCP-Serverautorisierung
Es gibt zwei Möglichkeiten, die nicht autorisierte Verwendung Ihrer MCP-Serverendpunkte zu reduzieren oder zu verhindern:
| Methode | Description |
|---|---|
| Integrierte Serverauthentifizierung (Vorschau) | Funktionen umfassen integrierte App Service-Authentifizierung und Autorisierung , die die OAuth-Anforderungen des MCP-Autorisierungsspezifikationsprotokolls implementiert. Clients, die versuchen, auf den Server zuzugreifen, werden zur Authentifizierung an einen konfigurierten Identitätsanbieter umgeleitet, z. B. Microsoft Entra ID, bevor eine Verbindung hergestellt werden kann. Diese Methode bietet die höchste Sicherheitsstufe für Ihre Toolendpunkte. |
| Schlüsselbasierte Authentifizierung | Standardmäßig implementiert Functions eine Anforderung für Zugriffsschlüssel, sodass Clients, die versuchen, MCP-Servertools zu verwenden, einen gemeinsam genutzten Schlüsselwert im Anforderungsheader vorlegen müssen. Zugriffstasten erschweren den Zugriff auf öffentliche Tools, während sie nicht die gleiche Sicherheitsstufe wie die OAuth-basierte Authentifizierung bieten. Verwenden Sie eine Anonymous Zugriffsstufe, um Zugangsschlüssel auf Ihrem Server bei Verwendung der OAuth-basierten Authentifizierung zu deaktivieren. |
Hinweis
Dieses Lernprogramm enthält detaillierte Konfigurationsanweisungen für die integrierte Serverautorisierungs- und Authentifizierungsfunktion, die auch in anderen Artikeln als App-Dienstauthentifizierung bezeichnet werden kann. Eine Übersicht über das Feature und einige Verwendungsanleitungen finden Sie im Artikel " Konfigurieren der integrierten Serverautorisierung (Vorschau) ".
Deaktivieren der schlüsselbasierten Authentifizierung
Das integrierte Serverautorisierungsfeature ist eine Komponente, die von Azure Functions getrennt ist. Wenn Sie die Serverauthentifizierung verwenden, sollten Sie zuerst die schlüsselbasierte Authentifizierung deaktivieren, indem Sie anonymen Zugriff zulassen.
Um die hostbasierte Authentifizierung auf Ihrem MCP-Server zu deaktivieren, legen Sie system.webhookAuthorizationLevel auf Anonymous in der host.json Datei fest.
{
"version": "2.0",
"extensions": {
"mcp": {
...
"system": {
"webhookAuthorizationLevel": "Anonymous"
}
}
}
}
Erstellen der Funktions-App in Azure
Erstellen Sie eine Funktions-App im Flex-Verbrauchsplan in Azure, die Ihren MCP-Server hosten.
Wählen Sie im Azure-Portal im Menü oder auf der Startseite die Option Ressource erstellen aus.
Wählen Sie Erste Schritte und dann Erstellen unter Funktions-App aus.
Wählen Sie unter Auswählen einer Hosting-Option die Option Flex-Verbrauch>Auswählen.
Verwenden Sie auf der Seite „Grundlagen“ die Funktions-App-Einstellungen, wie in der folgenden Tabelle angegeben.
Setting Vorgeschlagener Wert Description Subscription Ihr Abonnement Das Abonnement, unter dem Sie Ihre neue Funktions-App erstellen. Ressourcengruppe myResourceGroup Der Name der neuen Ressourcengruppe, in der Sie Ihre Funktions-App erstellen. Name der Funktions-App Global eindeutiger Name Name, der Ihre neue Funktions-App bezeichnet Gültige Zeichen sind a-z(Groß-/Kleinschreibung nicht beachtet),0-9und-.Region Bevorzugte Region Wählen Sie eine Region in Ihrer Nähe oder in der Nähe anderer Dienste aus, auf die Ihre Funktionen zugreifen können. Nicht unterstützte Regionen werden nicht angezeigt. Weitere Informationen finden Sie unter Derzeit unterstützte Regionen anzeigen. Runtime-Stack Bevorzugte Sprache Wählen Sie einen der unterstützten Sprachlaufzeitstapel aus. Die Bearbeitung im Portal mit Visual Studio Code für das Web ist derzeit nur für Node.js-, PowerShell- und Python-Apps verfügbar. C#-Klassenbibliotheksfunktionen und Java-Funktionen müssen lokal entwickelt werden. Version Sprachversion Wählen Sie eine unterstützte Version Ihres Sprachlaufzeitstapels aus. Instanzgröße Standard Bestimmt die Menge des Instanzspeichers, der für jede Instanz Ihrer App zugewiesen wurde. Weitere Informationen finden Sie unter Instanzengrößen. Übernehmen Sie auf der Seite " Speicher " das Standardverhalten, ein neues Hostspeicherkonto zu erstellen, oder wählen Sie ein vorhandenes Speicherkonto aus.
Stellen Sie auf der Seite "Überwachung " sicher, dass "Application Insights aktivieren" ausgewählt ist. Übernehmen Sie die Standardeinstellung, um eine neue Application Insights-Instanz zu erstellen, oder wählen Sie andernfalls eine vorhandene Instanz aus. Wenn Sie eine Application Insights-Instanz erstellen, werden Sie auch aufgefordert, einen Log Analytics-Arbeitsbereich auszuwählen.
Ändern Sie auf der Seite " Authentifizierung " den Authentifizierungstyp in "Verwaltete Identität " für alle Ressourcen. Mit dieser Option wird auch eine vom Benutzer zugewiesene verwaltete Identität erstellt, die Ihre App für den Zugriff auf diese Azure-Ressourcen mithilfe der Microsoft Entra ID-Authentifizierung verwendet. Verwaltete Identitäten mit Microsoft Entra ID bieten die höchste Sicherheitsstufe für die Verbindung mit Azure-Ressourcen.
Akzeptieren Sie die Standardoptionen auf den verbleibenden Registerkarten, und wählen Sie dann "Überprüfen" und "Erstellen" aus, um die von Ihnen ausgewählte App-Konfiguration zu überprüfen.
Wenn Sie zufrieden sind, wählen Sie "Erstellen" aus, um die Funktionsanwendung und die zugehörigen Ressourcen bereitzustellen und zu implementieren.
Wählen Sie oben rechts im Portal das Benachrichtigungssymbol aus, und achten Sie auf die Meldung Bereitstellung erfolgreich.
Wählen Sie Zu Ressource wechseln, um Ihre neue Funktionen-App anzuzeigen. Sie können auch die Option An Dashboard anheften auswählen. Wenn Sie die Funktions-App anheften, können Sie einfacher über das Dashboard auf sie zugreifen.
Bereitstellen des MCP-Serverprojekts
Von Bedeutung
Bei der Bereitstellung in einer vorhandenen Funktions-App wird der Inhalt dieser App in Azure immer überschrieben.
Geben Sie in der Befehlspalette Azure Functions: In Funktions-App bereitstellen ein, und wählen Sie diese Option aus.
Wählen Sie die eben erstellte Funktions-App aus. Wenn Sie aufgefordert werden, vorherige Bereitstellungen zu überschreiben, wählen Sie Bereitstellen aus, um Ihren Funktionscode in der neuen Funktions-App-Ressource bereitzustellen.
Wählen Sie nach Abschluss der Bereitstellung Ausgabe anzeigen aus, um die Erstellungs- und Bereitstellungsergebnisse (auch die von Ihnen erstellten Azure-Ressourcen) anzuzeigen. Wenn Sie die Benachrichtigung übersehen haben, wählen Sie unten rechts das Glockensymbol aus, um sie erneut anzuzeigen.
Python-Apps erfordern außerdem, dass Sie diese App-Einstellung hinzufügen:
PYTHONPATH=/home/site/wwwroot/.python_packages/lib/site-packages.
Jetzt können Sie das Serverprojekt bereitstellen:
Von Bedeutung
Bei der Bereitstellung in einer vorhandenen Funktions-App wird der Inhalt dieser App in Azure immer überschrieben.
Geben Sie in der Befehlspalette Azure Functions: In Funktions-App bereitstellen ein, und wählen Sie diese Option aus.
Wählen Sie die eben erstellte Funktions-App aus. Wenn Sie aufgefordert werden, vorherige Bereitstellungen zu überschreiben, wählen Sie Bereitstellen aus, um Ihren Funktionscode in der neuen Funktions-App-Ressource bereitzustellen.
Wählen Sie nach Abschluss der Bereitstellung Ausgabe anzeigen aus, um die Erstellungs- und Bereitstellungsergebnisse (auch die von Ihnen erstellten Azure-Ressourcen) anzuzeigen. Wenn Sie die Benachrichtigung übersehen haben, wählen Sie unten rechts das Glockensymbol aus, um sie erneut anzuzeigen.
Nach Abschluss der Bereitstellung sollte eine Benachrichtigung in Visual Studio Code zum Herstellen einer Verbindung mit dem Server angezeigt werden. Wählen Sie die Schaltfläche Verbinden aus, um den Editor zu veranlassen, Serververbindungsinformationen in mcp.json einzurichten.
Aktivieren der integrierten Serverautorisierung und Authentifizierung
Die folgende Anweisung zeigt, wie Sie das integrierte Autorisierungs- und Authentifizierungsfeature in der Server-App aktivieren und Microsoft Entra-ID als Identitätsanbieter konfigurieren. Wenn Sie fertig sind, testen Sie, indem Sie eine Verbindung mit dem Server in Visual Studio Code herstellen und sehen, dass Sie aufgefordert werden, sich zu authentifizieren, bevor Sie eine Verbindung herstellen.
Konfigurieren der Authentifizierung in der Server-App
Öffnen Sie die Server-App im Azure-Portal, und wählen Sie im linken Menü dieEinstellungsauthentifizierung> aus.
Wählen Sie Add identity provider>Microsoft als den Identitätsanbieter hinzu.
Wählen Sie einen Mandanten für Ihre Anwendung und deren Benutzer aus, und wählen Sie Personalkonfiguration (aktueller Mandant) aus.
Verwenden Sie unter "App-Registrierung" die folgenden Einstellungen:
Setting Auswahl App-Registrierungstyp Erstellen einer neuen App-Registrierung Name Geben Sie einen beschreibenden Namen für Ihre App ein. Ablauf des Client-Geheimnisses Empfohlen: 180 Tage Unterstützte Kontotypen Aktueller Mandant – Einzelner Mandant Wählen Sie unter "Zusätzliche Überprüfungen:" für clientanwendungsanforderung"Anforderungen von bestimmten Clientanwendungen zulassen", wählen Sie das Stiftsymbol aus, fügen Sie die Client-ID
aebc6443-996d-45c2-90f0-388ff96faa56von Visual Studio Code hinzu, und wählen Sie "OK" aus. Lassen Sie die anderen Abschnitte wie sie sind.Verwenden Sie unter "App Service-Authentifizierungseinstellungen " die folgenden Einstellungen:
Setting Auswahl Zugriff einschränken Authentifizierung erforderlich Nicht authentifizierte Anforderungen HTTP 401 Nicht autorisiert: empfohlen für APIs Tokenspeicher Aktivieren Sie das Kontrollkästchen, das die Tokenaktualisierung zulässt. Wählen Sie Hinzufügen aus. Nachdem die Einstellungen übernommen wurden, sollte das folgende Ergebnis angezeigt werden:
Vorautorisieren von Visual Studio Code als Client
Wählen Sie den Namen der Entra-App neben Microsoft aus. Diese Aktion führt Sie zur Übersicht über die Entra-App-Ressource.
Suchen Sie im linken Menü " Verwalten–> Verfügbarmachen einer API".
Wählen Sie unter "Autorisierte Clientanwendungen" die Option "+Clientanwendung hinzufügen" aus.
Geben Sie die Client-ID von Visual Studio Code ein:
aebc6443-996d-45c2-90f0-388ff96faa56.Wählen Sie das Feld vor dem Bereich aus, das aussieht wie
api://abcd123-efg456-hijk-7890123/user_impersonation.Wählen Sie "Anwendung hinzufügen" aus.
Konfigurieren geschützter Ressourcenmetadaten (Vorschau)
Suchen Sie in derselben API-Ansicht nach dem Abschnitt Geltungsbereiche, und kopieren Sie den Geltungsbereich, der es Administratoren und Benutzern ermöglicht, der Entra-App zuzustimmen. Dieser Wert sieht aus wie
api://abcd123-efg456-hijk-7890123/user_impersonation.Führen Sie denselben Befehl wie zuvor aus, um die Einstellung
WEBSITE_AUTH_PRM_DEFAULT_WITH_SCOPEShinzuzufügen:az functionapp config appsettings set --name <function-app-name> --resource-group <resource-group-name> --settings "WEBSITE_AUTH_PRM_DEFAULT_WITH_SCOPES=<scope>"Suchen Sie auch in der Ansicht API verfügbar machen den Anwendungs-ID-URI (sieht wie
api://abcd123-efg456-hijk-7890123aus), der sich oben befindet, und speichern Sie ihn für den späteren Schritt.
Herstellen einer Verbindung mit dem Server
Öffnen Sie mcp.json im .vscode Verzeichnis.
Wenn Sie " Verbinden" im Popup nach der Bereitstellung auswählen, füllt Visual Studio Code die Datei mit Serververbindungsinformationen auf.
Wenn Sie diesen Schritt verpassen, können Sie auch die Ausgabe (Ctrl/Cmd+Shift+U) öffnen, um die Inlineverbindungsschaltfläche am Ende der Bereitstellungsprotokolle zu finden.
Sie können auch Verbindungsinformationen manuell hinzufügen:
Rufen Sie die Serverdomäne ab, indem Sie den folgenden Befehl ausführen:
az functionapp show --name <FUNCTION_APP_NAME> --resource-group <RESOURCE_GROUP_NAME> --query "defaultHostName" --output tsvÖffnen Sie in Visual Studio Code die Befehlspalette, suchen Sie nach dem MCP: Befehl "Server hinzufügen" und führen Sie sie aus, und folgen Sie dann den folgenden Eingabeaufforderungen:
Prompt Vorschlag Typ des hinzuzufügenden Servers HTTP URL Ihres MCP-Servers https://<FUNCTION_APP_NAME>.azurewebsites.azurewebsites.net/runtime/webhooks/mcpServername remote-mcp-server Wo der Server installiert werden soll Workspace Visual Studio Code öffnet die
mcp.jsonEinstellungsdatei für Sie.
Folgen Sie den Anweisungen im nächsten Abschnitt, um je nach Konfiguration der Authentifizierung eine Verbindung mit dem Server herzustellen.
Mit integrierter Authentifizierung und Autorisierung
Starten Sie den Remoteserver, indem Sie die Schaltfläche "Start " oberhalb des Servernamens auswählen.
Wenn Sie zur Authentifizierung bei Microsoft aufgefordert werden, wählen Sie "Zulassen" aus, und melden Sie sich dann mit Ihrer E-Mail an (die zum Anmelden beim Azure-Portal verwendete).
Wenn Sie erfolgreich eine Verbindung mit dem Server herstellen, wird die Anzahl der tools angezeigt, die über dem Servernamen verfügbar sind.
Öffnen Sie den Visual Studio Code Copilot-Chat im Agentmodus, und stellen Sie dann eine Frage. Beispiel:
Greet with #your-remote-mcp-server-name.Beenden Sie den Server, wenn der Test abgeschlossen ist.
Ausführliche Informationen dazu, was passiert, wenn Visual Studio Code versucht, eine Verbindung mit dem Remote-MCP-Server herzustellen, finden Sie unter Serverautorisierungsprotokoll.
Mit Zugriffstaste
Wenn Sie die integrierte Authentifizierung und Autorisierung nicht aktivieren und stattdessen mithilfe eines Zugriffsschlüssels eine Verbindung mit Ihrem MCP-Server herstellen möchten, sollte der mcp.json Funktionszugriffsschlüssel in den Anforderungsheadern einer Serverregistrierung enthalten.
Visual Studio füllt den Zugriffsschlüssel automatisch aus, wenn Sie den Server starten.
Die mcp.json Datei sollte wie im folgenden Beispiel aussehen:
{
"servers": {
"remote-mcp-server": {
"type": "http",
"url": "https://${input:functionapp-domain}/runtime/webhooks/mcp",
"headers": {
"x-functions-key": "${input:functions-key}"
}
}
},
"inputs": [
{
"type": "promptString",
"id": "functions-key",
"description": "Functions App Key",
"password": true
},
{
"type": "promptString",
"id": "functionapp-domain",
"description": "The domain of the function app.",
"password": false
}
]
}
Wenn Sie die Zugriffstaste selbst finden möchten, wechseln Sie zur Funktions-App im Azure-Portal. Suchen Sie im linken Menü "Funktionen –> App-Tasten". Im Abschnitt Systemschlüssel finden Sie den Namen mcp_extension.
Tipp
Um Verbindungsprotokolle anzuzeigen, wechseln Sie zum Servernamen, und wählen Sie dann "Weitere>Ausgabe anzeigen" aus. Wenn Sie weitere Details zur Interaktion zwischen dem Client (Visual Studio Code) und dem Remote-MCP-Server benötigen, klicken Sie auf das Zahnradsymbol und wählen Sie Trace.
Konfigurieren des Azure AI Foundry-Agents für die Verwendung Ihrer Tools
Sie können einen Agent in Azure AI Foundry so konfigurieren, dass tools verwendet werden, die von MCP-Servern verfügbar gemacht werden, die auf Azure Functions gehostet werden.
Suchen Sie im Foundry-Portal den Agent, den Sie mit MCP-Servern konfigurieren möchten, die auf Funktionen gehostet werden.
Wählen Sie unter "Extras" die Schaltfläche "Hinzufügen " und dann "+Neues Tool hinzufügen" aus.
Wählen Sie die Registerkarte "Benutzerdefiniert " und dann " Model Context Protocol(MCP)" und die Schaltfläche " Erstellen " aus.
Geben Sie die folgenden Informationen ein:
- Name: Name des Servers
- Remote MCP Server-Endpunkt:
- MCP-Erweiterungsserver:
https://<server domain>/runtime/webhooks/mcp - Selbst gehosteter Server:
https://<server domain>/mcp
- MCP-Erweiterungsserver:
- Authentifizierung: Wählen Sie "Microsoft Entra" aus.
- Typ: Wählen Sie "Projektverwaltete Identität" aus.
- Zielgruppe: Dies ist der Entra-App-ID-URI aus "Geschützte Ressourcenmetadaten konfigurieren"
Beispiel:
Wählen Sie Verbinden aus.
Testen Sie, indem Sie eine Frage stellen, die mit Hilfe eines Servertools im Chatfenster beantwortet werden kann.
Serverautorisierungsprotokoll
In der Debugausgabe von Visual Studio Code wird eine Reihe von Anforderungen und Antworten angezeigt, während der MCP-Client und der Server interagieren. Wenn Sie die integrierte MCP-Serverautorisierung verwenden, wird die folgende Abfolge von Ereignissen angezeigt:
- Der Editor sendet eine Initialisierungsanforderung an den MCP-Server.
- Der MCP-Server antwortet mit einem Fehler, der angibt, dass die Autorisierung erforderlich ist. Die Antwort enthält einen Zeiger auf die Metadaten der geschützten Ressourcen (PRM) für die Anwendung. Das integrierte Autorisierungsfeature generiert den PRM für die Server-App.
- Der Editor ruft das PRM ab und verwendet ihn, um den Autorisierungsserver zu identifizieren.
- Der Editor versucht, Autorisierungsservermetadaten (ASM) von einem bekannten Endpunkt auf dem Autorisierungsserver abzurufen.
- Microsoft Entra ID unterstützt ASM auf dem bekannten Endpunkt nicht, sodass der Editor auf die Verwendung des OpenID Connect-Metadatenendpunkts zurückfällt, um das ASM abzurufen. Es versucht, dies zu ermitteln, indem der bekannte Endpunkt vor allen anderen Pfadinformationen eingefügt wird.
- Die OpenID Connect-Spezifikationen definierten tatsächlich den bekannten Endpunkt nach Pfadinformationen, und dort hostet Microsoft Entra ID ihn. Der Editor versucht also erneut mit diesem Format.
- Der Editor ruft das ASM erfolgreich ab. Anschließend verwendet sie diese Informationen mit einer eigenen Client-ID, um eine Anmeldung durchzuführen. An diesem Punkt fordert der Editor Sie auf, sich anzumelden und der Anwendung zuzustimmen.
- Wenn Sie sich erfolgreich anmelden und zustimmen, schließt der Editor die Authentifizierung ab. Sie wiederholt die Intialisierungsanforderung an den MCP-Server, diesmal einschließlich eines Autorisierungstokens in der Anforderung. Dieser Versuch ist auf der Debug-Ausgabeebene nicht sichtbar, aber Sie können ihn auf der Trace-Ausgabeebene sehen.
- Der MCP-Server überprüft das Token und antwortet mit einer erfolgreichen Antwort auf die Initialisierungsanforderung. Der standardmäßige MCP-Fluss wird von diesem Punkt fortgesetzt, was letztendlich dazu führt, dass das in diesem Beispiel definierte MCP-Tool ermittelt wird.
Problembehandlung
Wenn Probleme auftreten, bitten Sie GitHub Copilot um Hilfe. Hier sind einige spezifische Ideen für die Problembehandlung:
Zurzeit keine anderen Ideen. Denken Sie daran, den Copilot-Chat nach Fehlern zu fragen, die auftreten.
Nächste Schritte
Erfahren Sie, wie Sie von Azure Functions gehostete MCP-Server im Azure API Center registrieren.