Hinweis
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.
Important
Dieses Vorschaufeature unterliegt den ergänzenden Nutzungsbedingungen für Microsoft Azure Previews.
Während der Vorschau stehen gehostete MCP-Server in folgenden Regionen zur Verfügung: Westzentral-USA, Ostasien, Zentral-USA und Nordeuropa.
In diesem Quickstart erstellen Sie einen gehosteten Model Context Protocol (MCP)-Server im Connector Namespace und verbinden ihn mit MCP-Clients. Verwenden Sie die Serverauswahl oben auf dieser Seite, um den Server auszuwählen, den Sie bereitstellen möchten.
MCP-Server sind eine erstklassige Ressource im Connector Namespace. Connector Namespace ist ein vollständig verwalteter Dienst, der Connectors, Verbindungen, Trigger und MCP-Server beherbergt.
Wenn Sie in einem Namespace einen gehosteten MCP-Server erstellen, führt die Plattform ein vorgefertigtes Image des Servers auf dedizierten Rechenressourcen aus, die sie bereitstellt. Sie steuern die Serverkonfiguration, Umgebungsvariablen und Parameter. Der Namespace behandelt die Hosting-, Skalierungs- und Anmeldeinformationsverwaltung. KI-Agents wie Copilot, benutzerdefinierte Agents oder alle MCP-fähigen Clients ermitteln und aufrufen die Tools des Servers mithilfe des Namespace-Verbindungsmodells.
Gehostete MCP-Server unterscheiden sich von verwalteten MCP-Servern, bei denen es sich um plattformverwaltete Implementierungen handelt, die auf Connectors basieren. Der Namespace verarbeitet Tooldefinitionen und Konfigurationen für verwaltete Server.
Bereitstellen mithilfe der Azure Developer CLI
Der einfachste Weg, einen SQL MCP-Server zu deployen, ist, zum Beispiel azure-sql-mcp zu gehen und den README-Anweisungen zu folgen, um mit der Azure Developer CLI oder azd. zu deployen. Das Beispiel enthält Bicep-Dateien, die es ermöglichen, mit nur einem Befehl einen Connector Namespace, einen SQL MCP-Server, eine SQL-Datenbank und andere erforderliche Azure-Ressourcen bereitzustellen.
Wenn Sie lieber einen SQL-MCP-Server und benötigte Ressourcen von Anfang bis Ende bereitstellen möchten, folgen Sie den untenstehenden Anweisungen.
Voraussetzungen
Ein Azure Konto und ein Abonnement. Wenn Sie kein Konto besitzen, erstellen Sie ein kostenloses Azure-Konto.
Visual Studio Code installiert.
Azure CLI installiert.
Eine vorhandene Connector-Namespaceressource. Wenn Sie keinen haben, erstellen Sie einen Connectornamespace.
Eine vorhandene Application Insights-Ressource. Wenn Sie nicht über eine Ressource verfügen, erstellen Sie eine Application Insights-Ressource.
Ein Azure SQL-Datenbank Server mit einer Datenbank. Wenn Sie nicht über eine datenbank verfügen, create an Azure SQL database.
Data API Builder (DAB) CLI installiert.
Seeden der SQL-Datenbank
Wechseln Sie im Azure-Portal zu Ihrer SQL-Datenbank (nicht zum Server).
Wählen Sie im linken Menü den Abfrage-Editor aus, und melden Sie sich als Datenbankadministrator an.
Wählen Sie "Neue Abfrage" aus, und führen Sie den folgenden Befehl aus, um die Datenbank zu starten:
CREATE TABLE dbo.Books ( Id int IDENTITY(1,1) PRIMARY KEY, Title nvarchar(200) NOT NULL ); INSERT INTO dbo.Books (Title) VALUES (N'The little prince'); INSERT INTO dbo.Books (Title) VALUES (N'Pride and prejudice');
Generieren der DAB-Konfigurationsdatei
Der von SQL gehostete MCP-Server basiert auf dem Daten-API-Generator (DAB), der eine sichere Daten-API über Ihre Datenbank bereitstellt und seine Entitäten (Tabellen) als MCP-Tools verfügbar macht. Der Server erfordert eine DAB-Konfigurationsdatei, die die Datenbankverbindung und die Entitäten definiert, die verfügbar gemacht werden sollen.
Generieren Sie eine DAB-Konfigurationsdatei für Ihre Datenbank, und aktivieren Sie nur MCP:
dab init --database-type "mssql" --host-mode "Development" --graphql.enabled false --rest.enabled false --connection-string "<your-sql-connection-string>"Da der Server über eine systemzugewiesene verwaltete Identität (SAMI) auf die zugrunde liegende Datenbank zugreift, sollte die Verbindungszeichenfolge wie folgt aussehen:
Server=<your-sql-server>.database.windows.net;Database=<your-database>;Authentication=Active Directory Default;Encrypt=True;TrustServerCertificate=False;Entität "Bücher" und zugehörige Berechtigung hinzufügen:
dab add Books --source "dbo.Books" --permissions "anonymous:*"Ausführliche Informationen zum Konfigurieren von Entitäten und Berechtigungen finden Sie in der Autorisierung des Daten-API-Generators.
Hier ist eine Beispielkonfigurationsdatei:
{ "$schema": "https://github.com/Azure/data-api-builder/releases/download/v1.7.93/dab.draft.schema.json", "data-source": { "database-type": "mssql", "connection-string": "Server=<your-sql-server>.database.windows.net;Database=<your-database>;Authentication=Active Directory Default;Encrypt=True;TrustServerCertificate=False;", "options": { "set-session-context": false } }, "runtime": { "rest": { "enabled": false, "path": "/api", "request-body-strict": true }, "graphql": { "enabled": false, "path": "/graphql", "allow-introspection": true }, "mcp": { "enabled": true, "path": "/mcp" }, "host": { "cors": { "origins": [], "allow-credentials": false }, "authentication": { "provider": "AppService" }, "mode": "development" } }, "entities": { "Books": { "source": { "object": "dbo.Books", "type": "table" }, "graphql": { "enabled": true, "type": { "singular": "Books", "plural": "Books" } }, "rest": { "enabled": true }, "permissions": [ { "role": "anonymous", "actions": [ { "action": "*" } ] } ] } } }
Erstellen eines gehosteten MCP-Servers
Melden Sie sich im Azure-Portal an.
Suchen Sie nach Ihrer Connector Namespace-Ressource.
Wählen Sie "Mit Namespace verbinden" aus, um das Namespaceportal auf einer neuen Browserregisterkarte zu öffnen.
Wenn Sie umgeleitet werden, melden Sie sich mit Ihrem Microsoft-Konto an, der dem Namespace zugeordnet ist.
Suchen Sie in der Namespaceinstanz nach dem MCP-Connectorabschnitt , und wählen Sie die Schaltfläche "+Erstellen " aus.
- Suchen Sie nach Playwright , und wählen Sie sie aus, um den Server zu erstellen.
Suche nach SQL MCP Server und wähle ihn aus, um den Server zu erstellen.
Wählen Sie im Erstellungsfenster "Identität für die ausgehende Authentifizierungsmethode verwalten" aus.
Laden Sie die zuvor generierte DAB-Konfigurationsdatei hoch.
Wählen Sie "Erstellen" aus.
Warten Sie, bis die erforderliche Verbindung und der erforderliche Server bereitgestellt und implementiert wurden. Schließen Sie das Dialogfeld " Erstellen " nach der Bereitstellung nicht. Sie richten eine Application Insights-Ressource ein, um Telemetrie von Ihrem Server zu sammeln.
Aktivieren der Überwachung auf dem Server
Öffnen Sie eine weitere Registerkarte, um die Verbindungszeichenfolge Ihrer Application Insights-Ressource im Azure-Portal abzurufen.
Wechseln Sie zurück zum Namespaceportal, und wählen Sie "Überwachung aktivieren" aus.
Fügen Sie die Verbindungszeichenfolge in das Feld ein, und wählen Sie "Aktivieren" aus.
Wählen Sie "Fertig " aus, wenn Application Insights konfiguriert ist.
Du wirst automatisch auf die Übersichtsseite des bereitgestellten Servers weitergeleitet, wo du den Endpunkt findest. Wenn nicht, wählen Sie im linken Menü die Registerkarte "MCP-Connectors " aus, und suchen Sie den server, den Sie bereitgestellt haben.
Gewähren des Namespaceidentitätszugriffs auf Ihre Datenbank
Der gehostete SQL-Server verwendet das SAMI des Namespaces, um auf Ihre Datenbank zuzugreifen. Sie können ein SAMI während der Namespaceerstellung aktivieren.
Wenn Sie ein SAMI während der Erstellung nicht aktiviert haben, müssen Sie es aktivieren, indem Sie zur Namespaceinstanz im Webportal wechseln. Suchen Sie im linken Menü die Registerkarte " Identität ". Schalten Sie den Umschalter "System zugewiesen " auf "Ein ", und speichern Sie das Update.
Wechseln Sie im Azure-Portal zu Ihrer SQL-Datenbank, öffnen Sie den Abfrage-Editor, und führen Sie den folgenden Befehl aus, um Zugriff auf die verwaltete Identität zu gewähren:
CREATE USER [<your-connector-namespace-name>] FROM EXTERNAL PROVIDER;
ALTER ROLE db_datareader ADD MEMBER [<your-connector-namespace-name>];
ALTER ROLE db_datawriter ADD MEMBER [<your-connector-namespace-name>];
GRANT VIEW DEFINITION TO [<your-connector-namespace-name>];
Ersetzen Sie <your-connector-namespace-name> durch den Namen Ihrer Connector-Namespace-Ressource.
Verbindung mit GitHub Copilot in Visual Studio Code herstellen
Um ihren gehosteten MCP-Server mit GitHub Copilot in Visual Studio Code zu verbinden, fügen Sie die Serverkonfiguration zu Ihren MCP-Einstellungen hinzu:
{ "servers": { "my-hosted-server": { "url": "<your-mcp-endpoint-url>", "type": "http" } } }Ersetzen Sie die
<your-mcp-endpoint-url>Endpunkt-URL, die Sie von der Seite "Übersicht " des Servers kopiert haben.Wählen Sie "Start " oberhalb des Servernamens aus. Sie werden aufgefordert, sich bei Microsoft zu authentifizieren. Melden Sie sich mit der E-Mail-Adresse an, mit der Sie sich beim Azure-Portal angemeldet haben.
Vergewissern Sie sich, dass die Anzahl der verfügbaren Tools oberhalb des Servernamens angezeigt wird.
- Öffnen Sie den Copilot-Agent-Modus und fragen Sie: „Was ist die nächstgelegene Pizzeria zu 11 Times Square?“
- Öffnen Sie Copilot-Agent Modus, und fragen Sie "Welche Tabellen sind verfügbar?"
Verbinden mit dem MCP Inspector
Führen Sie im Terminal Folgendes aus:
az loginRufen Sie ein Zugriffstoken aus Ihrer
az loginSitzung ab, um eine Verbindung mit dem Server herzustellen:MCP_TOKEN=$(az account get-access-token --resource https://apihub.azure.com --query accessToken -o tsv)Rufen Sie den Server auf, um eine Liste der Tools abzurufen:
npx @modelcontextprotocol/inspector --cli \ "<your-mcp-endpoint-url>" \ --transport http \ --method tools/list \ --header "Authorization: Bearer $MCP_TOKEN"
Rufen Sie ein bestimmtes Tool auf. Beispielsweise ruft der folgende Befehl das
browser_navigateTool auf:npx @modelcontextprotocol/inspector --cli \ "<your-mcp-endpoint-url>" \ --transport http \ --method tools/call \ --tool-name browser_navigate \ --tool-arg url="https://www.google.com/search?q=pizza+near+11+Times+Square+New+York" \ --header "Authorization: Bearer $MCP_TOKEN"
Rufen Sie ein bestimmtes Tool auf. Beispielsweise ruft der folgende Befehl das
describe_entitiesTool auf, um verfügbare Entitäten auflisten zu können:npx @modelcontextprotocol/inspector --cli \ "<your-mcp-endpoint-url>" \ --transport http \ --method tools/call \ --header "Authorization: Bearer $MCP_TOKEN" \ --tool-name describe_entities \ --tool-arg 'nameOnly=true'Rufen Sie das
read_recordsTool auf, um Datensätze aus einer Entität abzurufen (Books):npx @modelcontextprotocol/inspector --cli \ "<your-mcp-endpoint-url>" \ --transport http \ --method tools/call \ --header "Authorization: Bearer $MCP_TOKEN" \ --tool-name read_records \ --tool-arg 'entity=Books' \ --tool-arg 'first=2'
Important
Das manuelle Übergeben von Zugriffstoken eignet sich nur für lokale Entwicklung und Tests. Verwenden Sie für Produktionsszenarien verwaltete Identitäten oder OAuth-Flüsse, um Token automatisch abzurufen.
Anzeigen von Serverprotokollen
Wechseln Sie zum Azure-Portal, und suchen Sie die Application Insights-Ressource, die Sie mit dem MCP-Server konfiguriert haben.
Suchen Sie im linken Menü nach Untersuchen>Suche.
Legen Sie den Filter "Ortszeit " oben auf die letzten 30 Minuten fest. Zeigen Sie die Protokolle als Ablaufverfolgungen oder einzelne Elemente an.
Problembehandlung für den SQL-Server
Wenn Ihr gehosteter SQL MCP-Server keine Verbindung herstellt oder wie erwartet Daten zurückgibt, überprüfen Sie die folgenden Elemente:
- DAB-Konfigurationsdatei. Vergewissern Sie sich, dass die hochgeladene DAB-Konfigurationsdatei gültig ist, die richtige Verbindungszeichenfolge verwendet und die Entitäten und Berechtigungen definiert, die Sie verfügbar machen möchten.
- Vom System zugewiesene verwaltete Identität. Stellen Sie sicher, dass ein SAMI im Namespace aktiviert ist. Wechseln Sie im Webportal zu Ihrer Namespaceinstanz, wählen Sie die Registerkarte " Identität " aus, und vergewissern Sie sich, dass " System zugewiesen " auf "Ein" festgelegt ist.
- Datenbankzugriff. Stellen Sie sicher, dass der Namespaceidentität Zugriff auf die Datenbank gewährt wird. Siehe Gewähren Sie der Namespaceidentität Zugriff auf Ihre Datenbank.