Présentation du serveur MCP SQL, par Jerry Nixon
Le serveur MCP SQL (SQL MCP Server) offre aux entreprises un moyen sécurisé et riche en fonctionnalités de permettre aux agents d'accéder aux données. Cela est possible sans exposer le schéma, sans compromettre la cohérence des données et sans s'appuyer sur une analyse syntaxique en langage naturel, souvent peu fiable. Le serveur MCP SQL est une fonctionnalité de Data API Builder. Les déploiements bénéficient ainsi d’un système d’abstraction d’entités éprouvé, d’une sécurité RBAC au niveau de la couche API avec intégration à Azure Key Vault, d’une prise en charge personnalisée d’OAuth et de Microsoft Entra, d’une mise en cache de premier et deuxième niveaux avec intégration à Redis et Azure Managed Redis, ainsi que d’une instrumentation et d’une télémétrie complètes avec intégration à Azure Log Analytics, Application Insights et OpenTelemetry.
Tel un chien de garde d’élite à la porte de votre SQL
Il prend en charge les requêtes hybrides et les sources de données multiples sur Microsoft SQL, PostgreSQL, Azure Cosmos DB et MySQL. Data API Builder (DAB) 2.0 offre une interface prête pour la production pour REST, GraphQL et MCP avec une configuration automatique, une intégration native avec Microsoft Foundry, un générateur de requêtes de premier ordre et des outils de développement tels que des extensions VS Code dédiées, des outils REST et GraphQL intégrés, ainsi qu'une interface CLI multiplateforme.
Le serveur MCP SQL est un simple conteneur MCR qui nécessite un fichier de configuration JSON. Il s'agit d'une solution sans code qui réduit les frictions, les dépendances et des blocs entiers de code CRUD répétitif et sujet aux erreurs provenant d'applications métier, de sites web personnalisés, d'applications mobiles sur mesure et d'agents IA.
Mentions légales à lire
Mieux encore, le serveur MCP SQL est open source et gratuit. Il fonctionne dans n'importe quel cloud, y compris sur site. Il a été conçu, est géré et maintenu par Microsoft comme une approche normative visant à exposer les bases de données d'entreprise aux applications et aux agents de manière sécurisée et riche en fonctionnalités, sans exigence de langage ou de framework et sans pilotes ni bibliothèques à installer.
Protocole MCP (Model Context Protocol)
Le Model Context Protocol (MCP) est une norme ouverte et un cadre open source lancé par Anthropic en novembre 2024 afin de normaliser la manière dont les systèmes d'intelligence artificielle (IA), tels que les grands modèles de langage (LLM), intègrent et partagent des données avec des outils, des systèmes et des sources de données externes. Le MCP fournit une interface universelle permettant de lire des fichiers, d'exécuter des fonctions et de traiter des invites contextuelles. Suite à son annonce, le protocole a été adopté par les principaux fournisseurs d'IA, notamment OpenAI et Google DeepMind.
Le protocole MCP (Model Context Protocol) est une norme qui définit la manière dont les agents IA découvrent et appellent des outils externes. Un outil correspond à une opération unique, telle que la création d’un enregistrement ou la lecture de données. Chaque outil décrit ses entrées, ses sorties et son comportement. Le protocole MCP offre aux agents un moyen prévisible de découvrir et d’utiliser des fonctionnalités.
Basé sur des normes : Le serveur MCP SQL implémente la version 2025-06-18 du protocole MCP par défaut. Il prend en charge deux modes de transport : HTTP streamable pour les scénarios d'hébergement standard et stdio pour les scénarios locaux ou en ligne de commande. Lors de l'initialisation, le serveur annonce ses capacités en matière d'outils et de journalisation et renvoie des métadonnées afin que les agents puissent comprendre son intention.
Cas d'utilisation des agents
Les entreprises recherchent des solutions basées sur des agents qui prennent au sérieux la sécurité, les performances, l'évolutivité et l'exposition. Le serveur MCP SQL a été conçu pour résoudre les problèmes liés au fossé entre les agents IA et les données de production. Il offre un large éventail d'applications potentielles. En voici quelques-unes :
- Permettre aux copilotes ou aux chatbots d'effectuer des opérations CRUD en toute sécurité
- Créer des automatisations internes sans écrire de code SQL
- Ajouter des capacités d’agent sans exposer directement la base de données
- Assurer l’interopérabilité avec plusieurs bases de données, l’une sur site et l’autre dans le cloud
- Intégrer un agent dans une application métier basée sur REST
Le cas d’utilisation multimodal du générateur d’API de données est l’un de ses principaux facteurs de différenciation. Combiné à ses capacités multi-sources de données et à sa large gamme d’intégrations, le moteur s’impose comme une pierre angulaire de l’écosystème de développement Azure Data.
Points de terminaison : Data API Builder (DAB) prend en charge les points de terminaison REST, GraphQL et MCP dans n'importe quelle combinaison. Dans le schéma ci-dessus, DAB expose simultanément REST et MCP, offrant le même accès riche aux données via les deux protocoles.
MCP pour Microsoft SQL
Le serveur MCP SQL est le moteur dynamique et open source de Microsoft destiné aux applications agentiques accédant à SQL. Il expose les opérations sur les données sous la forme d’une petite famille d’outils MCP afin que les agents puissent interagir avec les entités de la base de données via un contrat contrôlé. Le serveur est auto-hébergé, mais les développeurs peuvent également l’exécuter localement via la ligne de commande DAB. Vous le configurez à l’aide d’un fichier JSON qui définit :
1. Comment se connecter à votre base de données
2. Quelles tables, vues ou procédures stockées exposer
3. Les autorisations qui s'appliquent à chaque objet
Aperçu de la configuration
L'interface CLI DAB permet de créer, configurer et exécuter le serveur MCP SQL à l'aide de trois commandes simples : init, add et start. Voici un exemple simplifié pour illustrer comment vous pouvez vous lancer.
Code JSON : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9dab init --database-type mssql --connection-string "@env('sql_connection_string')" dab add Customers --source dbo.Customers --permissions "anonymous:*" dab start
Secrets de configuration : Les valeurs des propriétés de configuration peuvent prendre la forme de chaînes littérales, de variables d'environnement ou de secrets Azure Key Vault.
Sécurisez votre schéma
Data API Builder utilise une couche d'abstraction d'entités bien définie qui répertorie toutes les tables, vues et procédures stockées exposées via l'API dans la configuration. Cette couche vous permet de créer des alias pour les noms et les colonnes, de décrire les objets et les paramètres, et de limiter les champs accessibles à différents rôles.
Sécurité basée sur les rôles : Data API Builder (DAB) prend en charge les rôles et n'expose que les entités et les opérations auxquelles le rôle actuel est autorisé à accéder.
Le serveur MCP SQL étant une fonctionnalité de Data API Builder, il utilise également cette couche d'abstraction. Cette approche empêche l'exposition du schéma interne aux consommateurs externes et vous permet de définir des familles d'objets et de relations complexes, voire inter-sources de données, au niveau de la couche API.
Configuration automatique
Dans certains cas, une API pilotée par schéma suffit. Elle simplifie la mise en route et réduit la complexité de la configuration. La configuration automatique, introduite dans la version 2.0, permet aux entreprises à l'aise avec une abstraction limitée de fonctionner sans fichier de configuration statique. À la place, le système inspecte la base de données à chaque démarrage du conteneur sans état et construit la configuration de manière dynamique.
Cela offre une flexibilité pour une configuration rapide et la modification des schémas, tout en permettant à d'autres entreprises de définir une configuration plus contrôlée et abstraite lorsqu'elles ont besoin de limites et d'une protection plus strictes.
Prise en charge du DDL
Le DDL (Data Definition Language) est le langage de base de données utilisé pour créer et modifier des objets tels que des tables et des vues. SQL MCP Server s'articule autour du DML (Data Manipulation Language), le langage de base de données utilisé pour créer, lire, mettre à jour et supprimer des données dans les tables et vues existantes. Le DML couvre également l'exécution des procédures stockées. Par conséquent, SQL MCP Server est conçu pour fonctionner avec des données, et non avec des schémas. Cette conception s'aligne sur les cas d'utilisation de MCP en production où des agents IA interagissent avec des systèmes critiques ou sensibles sur le plan commercial.
Visual Studio Code : Pour modifier le schéma pendant le développement local, vous pouvez utiliser l'extension Microsoft SQL Server (MSSQL) dans Visual Studio Code, qui offre une prise en charge complète du DDL.
Prise en charge du DML
SQL Model Context Protocol (MCP) Server met à la disposition des agents IA sept outils de langage de manipulation des données (DML). Ces outils fournissent une interface CRUD typée pour les opérations sur la base de données, permettant de créer, lire, mettre à jour et supprimer des enregistrements, d'agréger des données et d'exécuter des procédures stockées. Tous les outils respectent le contrôle d'accès basé sur les rôles (RBAC), les autorisations d'entité et les politiques définies dans votre configuration.
Les outils DML (langage de manipulation des données) gèrent les opérations sur les données : création, lecture, mise à jour et suppression d'enregistrements, agrégation de données et exécution de procédures stockées. Contrairement au DDL (langage de définition des données), qui modifie le schéma, le DML opère exclusivement sur le plan des données dans les tables et les vues existantes.
- describe_entities – Découvre les entités et les opérations disponibles
- create_record – Insère de nouvelles lignes dans une table ou une vue
- read_records – Interroge les tables et les vues
- update_record – Modifie les lignes existantes d'une table ou d'une vue
- delete_record – Supprime des lignes d'une table ou d'une vue
- execute_entity – Exécute des procédures stockées
- aggregate_records – Effectue des requêtes d'agrégation
La fenêtre de contexte est l'espace de réflexion de l'agent. Lorsque trop d'outils sont exposés, cet espace se remplit de définitions d'outils au lieu de raisonnements. Le serveur MCP SQL évite cela en utilisant un petit ensemble fixe d'outils, quelle que soit la taille de la base de données. Cela permet de maintenir le contexte concentré afin que l'agent puisse d'abord réfléchir, puis accéder aux données. Chaque outil peut toujours être configuré indépendamment dans le fichier de configuration, ce qui vous permet de contrôler le comportement sans élargir la surface d'intervention.
Code JSON : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 "runtime": { "mcp": { "enabled": true, // default: true "path": "/mcp", // default: /mcp "dml-tools": { "describe-entities": true, // default: true "create-record": true, // default: true "read-records": true, // default: true "update-record": true, // default: true "delete-record": true, // default: true "execute-entity": true, // default: true "aggregate-records": true // default: true } } }
Définissez dml-tools sur true ou false pour activer ou désactiver tous les outils, ou utilisez un objet avec des commutateurs par outil.
Outils personnalisés
Certaines entreprises souhaiteront créer une expérience MCP spécifique avec des outils sur mesure plutôt qu’une famille générique. La désactivation des outils DML intégrés est accessible à tous les clients. Le serveur MCP SQL prend également en charge ce scénario. La promotion des procédures stockées de votre base de données en tant qu'outils personnalisés vous permet d'affiner l'expérience des agents grâce à des routines qui encapsulent les processus métier, les workflows et les validations spécialisées. Les outils personnalisés vous permettent de configurer et de créer une interface MCP sur mesure, aidant ainsi les agents à atteindre une véritable réussite.
Résoudre le problème NL2SQL
Le serveur MCP SQL adopte une approche différente de celle de nombreux serveurs MCP de bases de données à courte vue disponibles aujourd'hui. Un exemple clé est que le serveur MCP SQL ne prend délibérément pas en charge NL2SQL.
Pourquoi ? Les modèles ne sont pas déterministes, et les requêtes complexes sont les plus susceptibles de produire des erreurs subtiles. Ces requêtes complexes sont souvent celles que les utilisateurs espèrent voir générées par l'IA, mais ce sont aussi celles qui nécessitent le plus de vigilance lorsqu'elles sont produites de manière non déterministe.
Déterminisme : Déterministe signifie qu'une même entrée produit toujours la même sortie. Il n'y a ni aléatoire ni variation d'un appel à l'autre, ce qui rend les résultats prévisibles, testables et sûrs à automatiser.
À la place, le serveur MCP SQL prend en charge ce que l'on pourrait appeler un modèle NL2DAB. Cette approche utilise la couche d'abstraction d'entité sécurisée du générateur d'API de données et le générateur de requêtes DAB intégré. Ensemble, ils produisent du Transact-SQL (T-SQL) précis et bien formé de manière entièrement déterministe. Cette approche élimine les risques, la surcharge et les inconvénients associés au NL2SQL tout en préservant la sécurité et la fiabilité des requêtes générées par l'agent.
Prise en charge du RBAC
Portée de l'autorisation : Des contraintes basées sur les rôles s'appliquent à chaque étape de l'interaction avec l'agent.
Le serveur MCP SQL bénéficie du même système éprouvé de contrôle d'accès basé sur les rôles (RBAC) que celui utilisé dans l'ensemble du Data API Builder. Chaque entité de votre configuration définit quels rôles peuvent lire, créer, mettre à jour ou supprimer des données, et quels champs sont inclus ou exclus pour ces rôles. Ces règles s'appliquent automatiquement à tous les outils MCP, garantissant une sécurité cohérente entre REST, GraphQL et MCP sans configuration supplémentaire requise.
Prise en charge de la mise en cache
Le serveur MCP SQL met automatiquement en cache les résultats de l'outil read_records. La mise en cache dans Data API Builder est activée globalement, et vous pouvez la configurer par entité. Les mises en cache de niveau 1 et de niveau 2 contribuent à réduire la charge de la base de données, à prévenir les pics de requêtes et à prendre en charge les scénarios de démarrage à chaud dans les environnements à évolutivité horizontale.
Prise en charge de la surveillance
Le serveur MCP SQL génère des journaux et des données de télémétrie qui permettent aux entreprises de surveiller et de valider l'activité à partir d'un tableau de bord unique. Cette fonctionnalité inclut Azure Log Analytics, Application Insights et les journaux de fichiers locaux au sein d'un conteneur.
Contrôles d'intégrité
Le serveur MCP SQL fournit un rapport d'intégrité détaillé et des contrôles d'intégrité des entités sur les points de terminaison REST, GraphQL et MCP. La fonctionnalité « Health » de Data API Builder permet aux développeurs de définir des attentes en matière de performances, de fixer des seuils et de vérifier que chaque point de terminaison fonctionne comme prévu.
Guidage sémantique
Les descriptions sont des métadonnées sémantiques qui aident les agents IA à comprendre le schéma de base de données de votre serveur Model Context Protocol (MCP) SQL. Lorsque vous ajoutez des descriptions aux entités, aux champs et aux paramètres, les modèles linguistiques prennent de meilleures décisions concernant les données à interroger et la manière de les utiliser. Cet article montre comment ajouter des descriptions à tous les niveaux à l'aide de l'interface CLI du générateur d'API de données, améliorant ainsi la précision des agents IA et la découverte des outils.
Utilisation par les agents : Les agents IA s'appuient sur le contexte pour comprendre vos données. Sans descriptions, un agent ne voit que des noms techniques tels que ProductID ou dbo.Orders. Avec des descriptions, l'agent comprend que ProductID est « l'identifiant unique de chaque produit du catalogue » et que dbo.Orders contient « les bons de commande des clients avec les lignes de commande et les détails d'expédition ».
Pourquoi des descriptions ?
- Découverte des outils – Les agents trouvent plus rapidement les bonnes entités
- Précision des requêtes – Les agents construisent de meilleures requêtes avec un contexte approprié
- Utilisation des paramètres – Les agents fournissent des valeurs correctes aux procédures stockées
- Sélection des champs – Les agents ne renvoient que les champs pertinents
Commencez ici
Vous pouvez constater à maintes reprises comment le serveur MCP SQL améliore la manière dont les agents traitent les données. En remplaçant les requêtes fragiles et les résultats imprévisibles, il établit une interface contrôlée et déterministe, fondée sur des modèles éprouvés. Une fois le contrat défini, chaque interaction de l'agent le respecte avec précision. Cela se traduit par des systèmes plus sûrs, une architecture plus simple et une voie claire vers la mise à l'échelle de solutions agentiques sans compromettre vos données.
Commencez avec le serveur MCP SQL
Source : Présentation du serveur MCP SQL
Et vous ?
Pensez-vous que cette présentation est crédible ou pertinente ?
Quel est votre avis sur le sujet ?
Voir aussi :
IA générative avec des grands modèles de langage en C# en 2026 : une base pour les développeurs .NET/C# travaillant avec Microsoft Foundry, GitHub Models et AI Extensions, par Jeremy Likness
Mise à l'échelle de PostgreSQL pour prendre en charge 800 millions d'utilisateurs ChatGPT, par Bohan Zhang
Présentation de Microsoft Agent Framework (Preview) : simplifier les agents IA pour tous les développeurs, par Luis Quintanilla









Pensez-vous que cette présentation est crédible ou pertinente ?
Répondre avec citation
Partager