Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Important
Cette fonctionnalité en préversion est soumise aux conditions d’utilisation supplémentaires pour les préversions de Microsoft Azure.
Lors de l’aperçu, des serveurs MCP hébergés sont disponibles dans les régions suivantes : Ouest central des États-Unis, Asie de l’Est, Centre des États-Unis et Europe du Nord.
Dans ce démarrage rapide, vous créez un serveur hébergé Model Context Protocol (MCP) dans un espace de noms Connector et le connectez aux clients MCP. Utilisez le sélecteur de serveur en haut de cette page pour choisir le serveur que vous souhaitez déployer.
Les serveurs MCP sont une ressource de première classe dans Connector Namespace. Connector Namespace est un service entièrement géré qui héberge des connecteurs, des connexions, des déclencheurs et des serveurs MCP.
Lorsque vous créez un serveur MCP hébergé dans un espace de noms, la plateforme exécute une image prédéfinie du serveur dans le calcul dédié qu’elle provisionne. Vous contrôlez la configuration du serveur, les variables d’environnement et les paramètres. L’espace de noms gère l’hébergement, la mise à l’échelle et la gestion des informations d’identification. Les agents IA tels que Copilot, les agents personnalisés ou tout client prenant en compte MCP découvrent et appellent les outils du serveur à l'aide du modèle de connexion de l'espace de noms.
Les serveurs MCP hébergés diffèrent des serveurs MCP managés, qui sont des implémentations gérées par la plateforme basées sur des connecteurs. L’espace de noms gère les définitions et la configuration des outils pour les serveurs managés.
Déployer à l’aide d’Azure Developer CLI
La façon la plus simple de déployer un serveur SQL MCP est d’aller dans l’exemple azure-sql-mcp et de suivre les instructions README pour déployer en utilisant la CLI Azure Developer ou azd. L’exemple contient des fichiers biceps qui vous permettent de provisionner un espace de noms Connector, un serveur SQL MCP, une base de données SQL et d’autres ressources Azure nécessaires avec une seule commande.
Si vous préférez déploier progressivement un serveur SQL MCP et les ressources nécessaires du début à la fin, suivez les instructions ci-dessous.
Prerequisites
Un compte et un abonnement Azure. Si vous n’en avez pas, créez un compte Azure gratuit.
Visual Studio Code installé.
Azure CLI installé.
Ressource d’espace de noms de connecteur existante. Si vous n’en avez pas, créez un espace de noms de connecteur.
Une ressource Application Insights existante. Si vous n’en avez pas, créez une ressource Application Insights.
Un serveur Azure SQL Database avec une base de données. Si vous n'en avez pas, créez une base de données Azure SQL.
L’interface CLI du Générateur d’API de données (DAB) est installée.
Amorçage de la base de données SQL
Dans le portail Azure, accédez à votre base de données SQL (et non au serveur).
Dans le menu de gauche, sélectionnez l’éditeur de requête et connectez-vous en tant qu’administrateur de base de données.
Sélectionnez Nouvelle requête et exécutez la commande suivante pour amorçage de la base de données :
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');
Générer le fichier de configuration DAB
Le serveur MCP hébergé par SQL repose sur le générateur d’API de données (DAB), qui fournit une API de données sécurisée sur votre base de données et expose ses entités (tables) en tant qu’outils MCP. Le serveur nécessite un fichier de configuration DAB qui définit la connexion de base de données et les entités à exposer.
Générez un fichier de configuration DAB pour votre base de données et activez uniquement MCP :
dab init --database-type "mssql" --host-mode "Development" --graphql.enabled false --rest.enabled false --connection-string "<your-sql-connection-string>"Parce que le serveur accède à la base de données sous-jacente en utilisant une identité managée (SAMI) attribuée par le système, la chaîne de connexion doit ressembler à l’exemple suivant :
Server=<your-sql-server>.database.windows.net;Database=<your-database>;Authentication=Active Directory Default;Encrypt=True;TrustServerCertificate=False;Ajoutez l’entité Books et l’autorisation associée :
dab add Books --source "dbo.Books" --permissions "anonymous:*"Pour plus d’informations sur la configuration des entités et des autorisations, consultez l’autorisation du générateur d’API de données.
Voici un exemple de fichier de configuration :
{ "$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": "*" } ] } ] } } }
Créer un serveur MCP hébergé
Connectez-vous au portail Azure.
Recherchez votre ressource espace de noms du connecteur.
Sélectionnez Se connecter à l’espace de noms pour ouvrir le portail de l’espace de noms dans un nouvel onglet du navigateur.
Lorsque vous êtes redirigé, connectez-vous à l'aide de votre compte Microsoft associé à l'espace de noms.
Dans l’instance d’espace de noms, recherchez la section du connecteur MCP et sélectionnez le bouton + Créer .
- Recherchez Playwright et sélectionnez-le pour créer le serveur.
Cherchez SQL MCP Server et sélectionnez-le pour créer le serveur.
Dans la fenêtre de création, sélectionnez Gérer l’identité pour la méthode d’authentification sortante.
Chargez le fichier de configuration DAB généré précédemment.
Cliquez sur Créer.
Attendez que la connexion et le serveur requis soient provisionnés et déployés. Ne fermez pas la boîte de dialogue Créer après le déploiement. Vous allez configurer une ressource Application Insights pour collecter les données de télémétrie à partir de votre serveur.
Activer la surveillance sur le serveur
Ouvrez un autre onglet pour obtenir le chaîne de connexion de votre ressource Application Insights dans le portail Azure.
Revenez au portail d’espace de noms et sélectionnez Activer la surveillance.
Collez le chaîne de connexion dans la zone, puis sélectionnez Activer.
Sélectionnez Terminé lorsque Application Insights est configuré.
Vous êtes automatiquement dirigé vers la page d’aperçu du serveur déployé, où vous pouvez trouver le point de terminaison. Si ce n’est pas le cas, sélectionnez l’onglet Connecteurs MCP dans le menu de gauche et recherchez le serveur que vous avez déployé.
Accorder à l’identité de l’espace de noms l’accès à votre base de données
Le serveur SQL hébergé utilise le SAMI de l’espace de noms pour accéder à votre base de données. Vous pouvez activer un SAMI lors de la création de l’espace de noms.
Si vous n’avez pas activé un SAMI lors de la création, vous devez l’activer en accédant à votre instance d’espace de noms dans le portail web. Dans le menu de gauche, recherchez l’onglet Identité. Définissez le bouton bascule Affecté par le système sur Activé, puis enregistrez les modifications.
Accédez à votre base de données SQL dans le portail Azure, ouvrez l’éditeur de requête et exécutez la commande suivante pour accorder l’accès à l’identité managée :
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>];
Remplacez <your-connector-namespace-name> par le nom de votre ressource d’espace de noms de connecteur.
Se connecter à partir de GitHub Copilot dans Visual Studio Code
Pour connecter votre serveur MCP hébergé à GitHub Copilot dans Visual Studio Code, ajoutez la configuration du serveur à vos paramètres MCP :
{ "servers": { "my-hosted-server": { "url": "<your-mcp-endpoint-url>", "type": "http" } } }Remplacez
<your-mcp-endpoint-url>l’URL du point de terminaison que vous avez copiée à partir de la page Vue d’ensemble du serveur.Sélectionnez Démarrer au-dessus du nom du serveur. Vous êtes invité à vous authentifier auprès de Microsoft. Connectez-vous avec l’adresse e-mail que vous avez utilisée pour vous connecter au portail Azure.
Vérifiez que le nombre d’outils disponibles apparaît au-dessus du nom du serveur.
- Ouvrez assistant Copilot mode et demandez « Quelle est la pizza la plus proche de 11 Times Square ? »
- Ouvrez assistant Copilot mode et demandez « Quelles tables sont disponibles ? »
Se connecter depuis MCP Inspector
À partir du terminal, exécutez :
az loginObtenez un jeton d’accès à partir de votre
az loginsession pour vous connecter au serveur :MCP_TOKEN=$(az account get-access-token --resource https://apihub.azure.com --query accessToken -o tsv)Appelez le serveur pour obtenir une liste d’outils :
npx @modelcontextprotocol/inspector --cli \ "<your-mcp-endpoint-url>" \ --transport http \ --method tools/list \ --header "Authorization: Bearer $MCP_TOKEN"
Appelez un outil spécifique. Par exemple, la commande suivante appelle l’outil
browser_navigate: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"
Appelez un outil spécifique. Par exemple, la commande suivante appelle l’outil
describe_entitiespour répertorier les entités disponibles :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'Appelez l’outil
read_recordspour récupérer des enregistrements à partir d’une entité (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
Le passage manuel de jetons d’accès convient uniquement au développement et aux tests locaux. Pour les scénarios de production, utilisez des identités managées ou des flux OAuth pour acquérir automatiquement des jetons.
Afficher les journaux du serveur
Accédez au portail Azure et recherchez la ressource Application Insights que vous avez configurée avec le serveur MCP.
Dans le menu de gauche, recherchez Investiguer>Recherche.
Réglez le filtre Heure locale en haut sur les 30 dernières minutes. Affichez les journaux sous forme de traces ou d’éléments individuels.
Résoudre les problèmes liés au serveur SQL
Si votre serveur SQL MCP hébergé ne se connecte pas ou ne retourne pas de données comme prévu, vérifiez les éléments suivants :
- Fichier de configuration DAB. Vérifiez que le fichier de configuration DAB chargé est valide, utilise la chaîne de connexion correcte et définit les entités et autorisations que vous prévoyez d’exposer.
- Identité managée affectée par le système. Vérifiez qu’un SAMI est activé sur l’espace de noms. Accédez à votre instance d’espace de noms dans le portail web, sélectionnez l’onglet Identité et vérifiez que l’affectation du système est activée.
- Accès à la base de données. Vérifiez que l’identité de l’espace de noms est autorisée à accéder à la base de données. Voir Accorder à l’identité de l’espace de noms l’accès à votre base de données.