Erste Schritte mit Remote-MCP-Servern mithilfe von Azure Functions (Node.js/TypeScript)
Dies ist eine Schnellstartvorlage zum einfachen Erstellen und Bereitstellen eines benutzerdefinierten Remote-MCP-Servers in der Cloud mithilfe von Azure-Funktionen. Sie können den Server auf Ihrem lokalen Rechner klonen, wiederherstellen und mit Debugging ausführen. azd up können Sie ihn in wenigen Minuten in der Cloud installieren. Der MCP-Server ist standardmäßig durch Schlüssel und HTTPs geschützt und bietet zusätzliche Optionen für OAuth mit EasyAuth und/oder API Management sowie Netzwerkisolation mit VNET.
Sehen Sie sich die Videoübersicht an
Wenn Sie dieses Beispiel in weiteren Sprachen suchen, sehen Sie sich die Versionen .NET/C# und Python an.
Unten sehen Sie das Architekturdiagramm für den Remote-MCP-Server mit Azure-Funktionen:

Voraussetzungen
Node.js Version 18 oder höher
Azure Functions Core Tools >=
4.0.7030So verwenden Sie Visual Studio Code zum lokalen Ausführen und Debuggen:
Docker zum Ausführen von Azurite, dem Azure Storage Emulator (optional)
Bereiten Sie Ihre lokale Umgebung vor
Für dieses spezielle Beispiel wird ein Azure Storage Emulator benötigt, da wir Ausschnitte aus dem Blob-Speicher speichern und abrufen werden.
Starten Sie Azurit
docker run -p 10000:10000 -p 10001:10001 -p 10002:10002 \ mcr.microsoft.com/azure-storage/azurite
Beachten Sie: Wenn Sie Azurite aus der VS Code-Erweiterung verwenden, müssen Sie
Azurite: Start, sonst werden Fehler angezeigt.
Führen Sie Ihren MCP-Server lokal vom Terminal aus aus
Abhängigkeiten installieren
npm installErstellen des Projekts
npm run buildStarten Sie den Functions-Host lokal:
func start
Beachten Sie , dass standardmäßig die Webhook-Route verwendet wird:
/runtime/webhooks/mcp/sse. Später verwenden wir diese in Azure, um den Schlüssel für Client-/Host-Aufrufe festzulegen:/runtime/webhooks/mcp/sse?code=<system_key>
Verwenden Sie den lokalen MCP-Server innerhalb eines Clients/Hosts
VS Code – Copilot-Bearbeitungen
Fügen Sie den MCP-Server aus der Befehlspalette hinzu und fügen Sie die URL zum SSE-Endpunkt Ihrer laufenden Funktions-App hinzu:
http://0.0.0.0:7071/runtime/webhooks/mcp/sseWählen Sie HTTP (Server-Sent-Events) als Typ des hinzuzufügenden MCP-Servers aus.
Geben Sie die URL zum SSE-Endpunkt Ihrer laufenden Funktions-App ein.
Geben Sie die Server-ID ein. (Dies kann ein beliebiger Name sein.)
Wählen Sie, ob Sie dies in Ihren Benutzereinstellungen (für alle Apps für Sie verfügbar) oder in Ihren Arbeitsbereichseinstellungen (nur für diese App verfügbar) ausführen möchten.
Listen Sie MCP-Server aus der Befehlspalette auf und starten Sie den Server. Im vorherigen Schritt wurde Ihr lokaler Server möglicherweise bereits gestartet. In diesem Fall können Sie diesen Schritt überspringen.
Geben Sie im Copilot-Chat-Agentenmodus eine Eingabeaufforderung ein, um das Tool auszulösen, z. B. wählen Sie einen Code aus und geben Sie diese Eingabeaufforderung ein
Say HelloSave this snippet as snippet1Retrieve snippet1 and apply to newFile.tsWenn Sie aufgefordert werden, das Tool auszuführen, stimmen Sie zu, indem Sie auf „Weiter“ klicken.
Wenn Sie fertig sind, drücken Sie Strg+C im Terminalfenster, um den Hostprozess
func.exezu stoppen, und listen Sie MCP-Server aus der Befehlspalette auf und stoppen Sie den lokalen Server.
MCP-Inspektor
Installieren und starten Sie MCP Inspector in einem neuen Terminalfenster .
npx @modelcontextprotocol/inspector node build/index.jsWenn Sie Ihre Funktions-App zuvor gestoppt haben, starten Sie den Functions-Host lokal:
func startKlicken Sie mit gedrückter STRG-Taste, um die MCP Inspector-Web-App von der von der App angezeigten URL zu laden (z. B. http://0.0.0.0:5173/#resources ).
Stellen Sie den Transporttyp auf
SSEeinLegen Sie die URL zum SSE-Endpunkt Ihrer laufenden Funktions-App fest und stellen Sie eine Verbindung her :
http://0.0.0.0:7071/runtime/webhooks/mcp/sseTools auflisten . Klicken Sie auf ein Tool und dann auf Tool ausführen .
Wenn Sie fertig sind, drücken Sie Strg+C im Terminalfenster, um den Hostprozess
func.exezu stoppen, und drücken Sie Strg+C im Terminalfenster, um den Hostprozess@modelcontextprotocol/inspectorzu stoppen.
Bereitstellen in Azure für Remote-MCP
Optional können Sie sich für ein im Beispiel verwendetes VNet entscheiden. (Wenn Sie diese Option wählen, tun Sie dies vor azd up .)
Führen Sie diesen Azd -Befehl aus, um die Funktions-App mit allen erforderlichen Azure-Ressourcen zu versehen und Ihren Code bereitzustellen:
Beachten Sie, dass API Management zur Verbesserung der Sicherheit und Richtlinien für Ihren MCP-Server verwendet werden kann unddass die integrierte Authentifizierung des App-Dienstes zum Einrichten Ihres bevorzugten OAuth-Anbieters, einschließlich Entra, verwendet werden kann.
Stellen Sie von einem Client aus eine Verbindung mit Ihrer Remote -MCP-Server-Funktions-App her
Ihr Client benötigt einen Schlüssel, um den neuen gehosteten SSE-Endpunkt aufzurufen. Dieser hat das Format https://<funcappname>.azurewebsites.net/runtime/webhooks/mcp/sse . Die gehostete Funktion erfordert standardmäßig einen Systemschlüssel, der über das Portal oder die CLI abgerufen werden kann ( az functionapp keys list --resource-group <resource_group> --name <function_app_name> ). Rufen Sie den Systemschlüssel mit dem Namen mcp_extension ab.
Stellen Sie im MCP Inspector eine Verbindung zum Remote-MCP-Server her
Für MCP Inspector können Sie den Schlüssel in die URL aufnehmen:
Verbindung zum Remote-MCP-Server in VS Code herstellen – GitHub Copilot
Für GitHub Copilot in VS Code sollten Sie den Schlüssel als Header x-functions-key in mcp.json festlegen und https://<funcappname>.azurewebsites.net/runtime/webhooks/mcp/sse als URL verwenden. Das folgende Beispiel stammt aus der Datei mcp.json in diesem Repository und fordert Sie beim Starten des Servers in VS Code zur Eingabe des Schlüssels auf. Ihre mcp.json Datei sieht folgendermaßen aus:
Klicken Sie auf dem Server
remote-mcp-functionin der Dateimcp.jsonauf „Start“:Geben Sie den Namen der Funktions-App ein, die Sie im Azure-Portal erstellt haben, wenn Sie von VS Code dazu aufgefordert werden.
Geben Sie den
Azure Functions MCP Extension System Keyin die Eingabeaufforderung ein. Sie können diesen aus dem Azure-Portal für Ihre Funktions-App kopieren, indem Sie zum Menüpunkt „Funktionen“ und dann zu „App-Schlüssel“ navigieren und den Schlüssel „mcp_extension“ aus den Systemschlüsseln kopieren.Geben Sie im Copilot-Chat-Agentenmodus eine Eingabeaufforderung ein, um das Tool auszulösen, z. B. wählen Sie einen Code aus und geben Sie diese Eingabeaufforderung ein
Say HelloSave this snippet as snippet1Retrieve snippet1 and apply to newFile.ts
Stellen Sie Ihren Code erneut bereit
Sie können den Befehl azd up so oft ausführen, wie Sie möchten, um sowohl Ihre Azure-Ressourcen bereitzustellen als auch Codeaktualisierungen für Ihre Funktions-App bereitzustellen.
Bereitgestellte Codedateien werden immer durch das neueste Bereitstellungspaket überschrieben.
Bereinigen von Ressourcen
Wenn Sie mit der Arbeit an Ihrer Funktions-App und den zugehörigen Ressourcen fertig sind, können Sie diesen Befehl verwenden, um die Funktions-App und die zugehörigen Ressourcen aus Azure zu löschen und so weitere Kosten zu vermeiden:
Quellcode
Der Funktionscode für die Endpunkte getSnippet und saveSnippet ist in den TypeScript-Dateien im Verzeichnis src definiert. Die MCP-Funktionsannotationen stellen diese Funktionen als MCP-Servertools bereit.
Dies zeigt den Code für einige MCP-Serverbeispiele (Zeichenfolge abrufen, Objekt abrufen, Objekt speichern):
Beachten Sie, dass die Datei host.json auch einen Verweis auf das experimentelle Paket enthält, das für Apps erforderlich ist, die diese Funktion verwenden:
Nächste Schritte
Fügen Sie Ihrem MCP-Server API Management hinzu (Authentifizierung, Gateway, Richtlinien, mehr!)
Fügen Sie Ihrem MCP-Servereine integrierte Authentifizierung hinzu
Aktivieren Sie VNET mit dem Flag VNET_ENABLED=true
Erfahren Sie mehr über verwandte MCP-Bemühungen von Microsoft
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Ein cloudbasierter benutzerdefinierter MCP-Server mit Azure Functions, der das Speichern und Abrufen von Codeausschnitten mit sicherer Kommunikation über Schlüssel, HTTPS, OAuth und Netzwerkisolationsoptionen ermöglicht.
- Voraussetzungen
- Bereiten Sie Ihre lokale Umgebung vor
- Führen Sie Ihren MCP-Server lokal vom Terminal aus aus
- Verwenden Sie den lokalen MCP-Server innerhalb eines Clients/Hosts
- Bereitstellen in Azure für Remote-MCP
- Stellen Sie von einem Client aus eine Verbindung mit Ihrer Remote -MCP-Server-Funktions-App her
- Stellen Sie Ihren Code erneut bereit
- Bereinigen von Ressourcen
- Quellcode
- Nächste Schritte
Related MCP Servers
- Asecurity-licenseAqualityA MCP server for managing and storing code snippets in various programming languages, allowing users to create, list, and delete snippets via a standardized interface.Last updated -347MIT License
- -security-license-qualityAn MCP server for interacting with Azure. Contains some common Compute and Networking actions, and extensible to add many more.Last updated -1Apache 2.0
- Asecurity-licenseAqualityAn MCP server that provides seamless interaction with Azure DevOps Git repositories, enabling users to manage repositories, branches, pull requests, and pipelines through natural language.Last updated -853
- -security-license-qualityThis project builds a read-only MCP server. For full read, write, update, delete, and action capabilities and a simplified setup, check out our free CData MCP Server for Azure Data Catalog (beta): https://www.cdata.com/download/download.aspx?sku=GNZK-V&type=betaLast updated -MIT License