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.
Le protocole MCP (Model Context Protocol) est une norme émergente dans le paysage de l’IA qui permet aux systèmes IA de se connecter avec des outils et des données en dehors d’eux-mêmes. Il définit comment un modèle IA peut découvrir ce qui est disponible et interagir avec lui de manière cohérente. Au lieu de créer des intégrations ponctuelles, MCP offre un moyen standard de brancher des éléments qui fonctionnent entre différentes applications et services. Cette approche permet beaucoup plus facilement aux systèmes d’IA d’aller au-delà de leurs connaissances intégrées, tout en garantissant la cohérence. Elle aide également les équipes à se déplacer plus rapidement, car elles n’ont pas besoin de réinventer les mêmes connexions à chaque fois.
MCP a deux parties principales : le client et le serveur.
Un client MCP est l’application ou l’expérience avec lesquelles l’utilisateur interagit. C’est là que vous posez des questions ou déclenchez des actions. Le client s’adresse aux serveurs MCP pour trouver des outils et les utiliser. Par exemple, Visual Studio Code peut agir en tant que client MCP lorsqu’il se connecte à des outils externes pour récupérer des données, ou vous aider à écrire et à exécuter du code.
Un serveur MCP expose des outils, des données ou des services afin que les clients puissent les utiliser. Il indique au client ce qui est disponible et comment l’utiliser. Par exemple, un agent de données Fabric peut agir en tant que serveur MCP en exposant les données d’entreprise et les requêtes qu’un système IA peut utiliser.
Ensemble, le client et le serveur facilitent la connexion des systèmes IA avec des données et des actions réelles, sans créer d’intégrations personnalisées à chaque fois.
Important
Cette fonctionnalité est en version préliminaire.
Important
Lorsque vous consommez un agent de données Fabric en tant que serveur MCP, les réponses retournées par l'agent de données peuvent être envoyées en dehors de la limite de conformité ou de la région géographique de Fabric, et traitées ou stockées en fonction des termes et des stratégies de gestion des données du client MCP que vous utilisez.
Prerequisites
- Une capacité de Fabric payante F2 ou supérieure, ou une capacité Power BI Premium par capacité (P1 ou supérieur) avec Microsoft Fabric activé.
- Traitement et stockage entre zones géographiques pour l’IA activés, conformément aux exigences définies dans les paramètres du locataire de l’agent de données Fabric.
- Au moins une source de données contenant des données : un entrepôt, un lakehouse, un modèle sémantique Power BI, une base de données KQL, une base de données en miroir ou une ontologie. Vous devez disposer d’un accès en lecture à la source de données.
- Un agent de données publié. Le serveur MCP fonctionne uniquement après avoir publié l’agent de données. Pour plus d’informations, consultez Créer un agent de données Fabric.
Fonctionnement
Un agent de données Fabric publié expose un seul outil MCP. Cet outil représente l'agent de données lui-même, de sorte qu'un client MCP envoie une question à l'outil et récupère une réponse basée sur les données auxquelles l'agent de données a accès dans Fabric OneLake.
Étant donné que le client décide quand appeler l’outil, la description de l’agent de données est importante. Lorsque vous publiez un agent de données, sa description devient la description de l’outil publiée par le serveur MCP. Les clients et les orchestrateurs lisent cette description pour décider quand et comment appeler l’agent de données. Écrivez donc une description claire et spécifique qui explique ce que l’agent sait et les types de questions qu’il peut répondre.
Vous pouvez utiliser le serveur MCP de l’agent de données à partir de n’importe quel client MCP, pas seulement un seul outil ou éditeur. Tant que votre client parle MCP via HTTP en continu et peut inclure un jeton du porteur Fabric valide dans ses requêtes, il peut se connecter. Les sections suivantes montrent deux clients : un script Python et Visual Studio Code. Le même point de terminaison et le même jeton fonctionnent pour tout autre client MCP que vous générez ou adoptez.
Tout ce qui parle au serveur MCP doit parler MCP. Par définition, il agit en tant que client MCP. Le terme « client MCP » ne signifie pas un produit ou un SDK spécifique. Cela signifie tout code qui suit le protocole. Le point de terminaison n’est pas une API REST simple à laquelle vous pouvez envoyer une requête arbitraire. Une connexion suit le flux de messages MCP : un initialize établissement de liaison, un appel tools/list pour découvrir l’outil et une requête tools/call pour poser une question. Un SDK tel que mcP Python SDK gère ce flux pour vous, mais vous pouvez également l’implémenter vous-même sur HTTP brut tant que vos requêtes suivent le protocole. Un client HTTP générique qui ignore le format de liaison et de message ne fonctionnera pas.
Note
Le serveur MCP de l’agent de données ne prend pas en charge l’inscription dynamique du client. Votre client ne peut pas s’inscrire et obtenir automatiquement des informations d’identification via le protocole. Au lieu de cela, vous obtenez un jeton Fabric par le biais de votre propre flux d’authentification et l’attachez à chaque requête, comme indiqué dans les exemples de cet article.
Obtenir les détails du serveur MCP
Après avoir publié l’agent de données, ouvrez ses paramètres et accédez à l’onglet Protocole de contexte du modèle . Cet onglet affiche :
- Nom du serveur MCP de l’agent de données
- URL du serveur MCP (copiez cette valeur ; vous l’utilisez dans chaque client)
- Nom de l’outil MCP de l’agent de données
- Description de l’outil serveur MCP
Vous pouvez également télécharger le fichier mcp.json à partir de cet onglet pour configurer les clients qui lisent ce format, tels que Visual Studio Code.
Vous pouvez également générer l’URL vous-même à partir de votre ID d’espace de travail et de l’ID de l’agent de données :
https://api.fabric.microsoft.com/v1/mcp/workspaces/{WorkspaceId}/dataagents/{DataAgentId}/agent
| Placeholder | Description |
|---|---|
{WorkspaceId} |
ID de l’espace de travail Fabric qui contient l’agent de données. |
{DataAgentId} |
L’ID de l’agent de données publié. |
Une URL générée manuellement fonctionne uniquement après avoir publié l’agent de données. Si l’agent n’est pas publié, le point de terminaison retourne une erreur même lorsque l’URL est correcte.
Authentication
Chaque demande adressée au point de terminaison MCP doit être authentifiée sur Fabric. Votre client attache un jeton de porteur dans l’en-tête Authorization , et le jeton doit avoir l’autorisation d’accéder à l’espace de travail cible et à l’agent de données. Le jeton peut représenter une identité d’utilisateur ou un principal de service.
La façon dont vous obtenez le jeton dépend de votre client. Visual Studio Code vous invite à vous connecter de manière interactive. Dans un script Python, vous récupérez le jeton via une bibliothèque telle que azure-identity, puis vous l’ajoutez vous-même aux en-têtes de la requête. Quel que soit le client, demandez le jeton pour la portée https://api.fabric.microsoft.com/.default.
Se connecter à partir de Python
Cet exemple se connecte au point de terminaison MCP de l’agent de données à partir d’un script de Python autonome, découvre l’outil, envoie une question et imprime la réponse. Il utilise le Kit de développement logiciel (SDK) mcP Python et la azure-identity bibliothèque.
Conditions préalables pour le client Python
- Python 3.10 ou version ultérieure.
- Packages
mcpetazure-identity. - Un moyen de se connecter à Fabric. Cet exemple utilise le Azure CLI. Installez le Azure CLI, puis exécutez
az loginet connectez-vous avec un compte qui a accès à l’espace de travail et à l’agent de données.
Installez les packages :
pip install mcp azure-identity
Générer le client étape par étape
Les sections suivantes créent le script un morceau à la fois. Chaque bloc continue le même fichier. Vous pouvez donc les coller dans un seul .py fichier et l’exécuter.
Importez les bibliothèques et définissez vos valeurs. Remplacez l’ID de l’espace de travail, l’ID de l’agent de données et la question par vos propres valeurs. Le mcp_url suit le format de point de terminaison décrit précédemment.
import asyncio
from azure.identity import AzureCliCredential
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client
workspace_id = "<your-workspace-id>"
data_agent_id = "<your-data-agent-id>"
question = "<your question>"
mcp_url = (
f"https://api.fabric.microsoft.com/v1/mcp/workspaces/{workspace_id}"
f"/dataagents/{data_agent_id}/agent"
)
Acquérir un jeton et générer l’en-tête d’authentification.
AzureCliCredential réutilise la connexion à partir de az login. L’assistance demande un jeton pour l’étendue de Fabric et le retourne en tant qu’en-tête Authorization que chaque requête contient.
credential = AzureCliCredential()
def get_auth_headers():
token = credential.get_token("https://api.fabric.microsoft.com/.default")
return {"Authorization": f"Bearer {token.token}"}
Ouvrez la connexion, découvrez l’outil et posez la question. Cette fonction ouvre une connexion HTTP streamable avec l’en-tête d’authentification, exécute l’établissement d’une liaison MCP avec initialize, répertorie les outils et lit l’outil unique exposé par l’agent de données. Il trouve le nom de l’argument de question à partir du schéma d’entrée de l’outil, de sorte que vous ne le codez pas en dur, puis appelle l’outil et collecte le texte de la réponse.
async def query_data_agent(question):
headers = get_auth_headers()
async with streamablehttp_client(mcp_url, headers=headers) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
# The data agent exposes a single tool. Discover it, then call it.
tools = await session.list_tools()
tool = tools.tools[0]
question_arg = next(iter(tool.inputSchema["properties"]))
result = await session.call_tool(tool.name, {question_arg: question})
answers = [block.text for block in result.content if block.type == "text"]
return "\n".join(answers)
Exécutez-la et imprimez la réponse.
query_data_agent est une coroutine, donc asyncio.run l’exécute jusqu’à son terme et renvoie le résultat.
answer = asyncio.run(query_data_agent(question))
print(answer)
Étant donné que le script lit le premier outil que le serveur publie et trouve l’argument d’interrogation du schéma d’entrée de l’outil, il continue de fonctionner même si le nom de l’outil ou le nom de l’argument change. Vous n’avez pas besoin de coder en dur l’une ou l’autre valeur.
Tip
AzureCliCredential lit la connexion que vous avez créée avec az login. Pour exécuter en mode non interactif, par exemple dans un service ou une tâche, utilisez plutôt des informations d’identification d’un principal de service, par exemple ClientSecretCredential ou DefaultAzureCredential. Le reste du code reste le même.
Se connecter à partir de Visual Studio Code
Visual Studio Code peut agir en tant que client MCP. Les étapes suivantes permettent d’ajouter le serveur MCP de l’agent de données et de poser des questions depuis l’éditeur. Ces étapes sont un exemple ; le point de terminaison et le jeton sont les mêmes que tous les autres clients MCP utilisent.
Ajouter le serveur MCP
Ouvrez Visual Studio Code et sélectionnez un dossier dans lequel travailler.
Créez un dossier .vscode dans le dossier sélectionné.
À l’intérieur de .vscode, créez un fichier nommé
mcp.json.Visual Studio Code affiche un bouton bleu Ajouter un serveur en bas à droite de la fenêtre.
Sélectionnez Ajouter un serveur, puis sélectionnez HTTP. Lorsque vous êtes invité à entrer une URL, collez l’URL du serveur MCP que vous avez copiée précédemment.
Appuyez sur Entrée et indiquez un nom pour le serveur. Visual Studio Code utilise ce nom pour afficher le serveur.
Visual Studio Code tente de s’authentifier. Sélectionnez Autoriser et se connecter avec vos informations d’identification.
Le serveur est créé.
Activer le mode agent
Après avoir ajouté le serveur, activez le mode agent afin que Visual Studio Code puissiez acheminer vos questions vers l’agent de données :
Ouvrez la palette de commandes (Ctrl+Maj+P ou Cmd+Maj+P).
Recherchez Activer le mode agent et sélectionnez-le.
Confirmez les messages pour activer le mode.
Lorsque le mode agent est actif, sélectionnez un orchestrateur pour gérer vos questions. L’orchestrateur gère le flux entre vos questions dans l’éditeur et le serveur MCP de l’agent de données. Les orchestrateurs disponibles en préversion incluent GPT-5, GPT-4.1, Claude Sonnet 4.5, Gemini 2.5 Pro et d’autres.
Poser des questions
Avec le mode agent activé et un orchestrateur sélectionné, posez des questions directement à partir de l’éditeur. L’orchestrateur achemine chaque question vers le serveur MCP de l’agent de données, et l’agent retourne une réponse fondée sur les données auquel il a accès dans OneLake. Vous restez dans l’éditeur tout en intégrant les connaissances de votre organisation à vos flux de travail d’IA.