Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
Model Context Protocol (MCP) er en fremvoksende standard inden for AI-landskabet, som gør det muligt for AI-systemer at forbinde sig med værktøjer og data uden for sig selv. Den definerer, hvordan en AI-model kan opdage, hvad der er tilgængeligt, og interagere med det på en konsekvent måde. I stedet for at bygge enkeltstående integrationer tilbyder MCP en standard måde at koble ting ind på, som fungerer på tværs af forskellige apps og tjenester. Denne tilgang gør det meget lettere for AI-systemer at gå ud over deres indbyggede viden, samtidig med at tingene forbliver konsistente. Det hjælper også teams med at bevæge sig hurtigere, da de ikke behøver at genopfinde de samme forbindelser hver gang.
MCP har to hoveddele: klienten og serveren.
En MCP-klient er den app eller oplevelse, som brugeren interagerer med. Det er her, du stiller spørgsmål eller udløser handlinger. Klienten kontakter MCP-servere for at finde værktøjer og bruge dem. For eksempel kan Visual Studio Code fungere som en MCP-klient, når den forbinder til eksterne værktøjer for at hente data eller hjælpe dig med at skrive og køre kode.
En MCP-server eksponerer værktøjer, data eller tjenester, så klienter kan bruge dem. Den fortæller klienten, hvad der er tilgængeligt, og hvordan det skal bruges. For eksempel kan en Fabric-dataagent fungere som en MCP-server ved at eksponere virksomhedsdata og forespørgsler, som et AI-system kan bruge.
Sammen gør klient og server det nemt at forbinde AI-systemer med reelle data og handlinger uden at skulle bygge brugerdefinerede integrationer hver gang.
Vigtigt
Denne funktion er en prøveversion.
Vigtigt
Når du bruger en Fabric-dataagent som en MCP-server, kan svar, der returneres af dataagenten, blive sendt uden for Fabric's compliance-grænse eller geografiske område og behandlet eller gemt i henhold til vilkårene og datahåndteringspolitikkerne for den MCP-klient, du bruger.
Forudsætninger
- A betalt F2 eller højere Fabric kapacitet, eller en Power BI Premium pr. kapacitet (P1 eller højere) kapacitet med Microsoft Fabric aktiveret.
- Cross-geo behandling og cross-geo lagring for AI aktiveret, baseret på kravene i Fabric data agent tenant-indstillinger.
- Mindst én datakilde, der har data: et lager, et søhus, en Power BI semantisk model, en KQL-database, en spejlet database eller en ontologi. Du skal have læseadgang til datakilden.
- En offentliggjort dataagent. MCP-serveren virker kun, efter du har offentliggjort dataagenten. Du kan få flere oplysninger under Opret en Fabric-dataagent.
Sådan fungerer det
En offentliggjort Fabric-dataagent eksponerer et enkelt MCP-værktøj. Det værktøj repræsenterer selve dataagenten, så en MCP-klient sender et spørgsmål til værktøjet og får et svar, der er baseret på de data, dataagenten har adgang til i Fabric OneLake.
Fordi klienten selv beslutter, hvornår værktøjet skal kaldes, betyder beskrivelsen af dataagenten noget. Når du udgiver en dataagent, bliver dens beskrivelse til den værktøjsbeskrivelse, som MCP-serveren reklamerer med. Kunder og orkestratorer læser beskrivelsen for at beslutte, hvornår og hvordan de skal ringe til dataagenten, så skriv en klar og specifik beskrivelse, der forklarer, hvad agenten ved, og hvilke slags spørgsmål den kan besvare.
Du kan forbruge dataagentens MCP-server fra enhver MCP-klient, ikke kun ét værktøj eller en editor. Så længe din klient taler MCP over streambar HTTP og kan tilknytte et gyldigt Fabric bearer-token til sine forespørgsler, kan den forbinde. De følgende afsnit viser to klienter: et Python-script og Visual Studio Code. Det samme endpoint og det samme token virker for enhver anden MCP-klient, du bygger eller adopterer.
Alt, der taler med MCP-serveren, skal tale MCP, så per definition fungerer det som en MCP-klient. Udtrykket "MCP-klient" betyder ikke et specifikt produkt eller SDK. Det betyder enhver kode, der følger protokollen. Endpointet er ikke et almindeligt REST API, som du kan sende en vilkårlig anmodning til. En forbindelse følger MCP-beskedens flow: et initialize håndtryk, et tools/list opkald for at opdage værktøjet og en tools/call anmodning om at stille et spørgsmål. Et SDK som MCP Python SDK håndterer det flow for dig, men du kan også selv implementere det over almindelig HTTP, så længe dine forespørgsler følger protokollen. En generisk HTTP-klient, der springer håndtryk og beskedformat over, vil ikke fungere.
Notat
Dataagentens MCP-server understøtter ikke dynamisk klientregistrering. Din klient kan ikke registrere sig selv og automatisk få legitimationsoplysninger via protokollen. I stedet får du et Fabric-token gennem din egen autentificeringsflow og knytter det til hver anmodning, som vist i eksemplerne i denne artikel.
Få MCP-serverdetaljerne
Efter du har offentliggjort dataagenten, åbner du dens indstillinger og går til fanen Model Context Protocol . Denne fane viser:
- Dataagent MCP servernavn
- MCP-serverens URL (kopier denne værdi; du bruger den i alle klienter)
- Dataagent MCP-værktøjsnavn
- MCP-serverværktøjsbeskrivelse
Du kan også downloade mcp.json-filen fra denne fane for at konfigurere klienter, der læser det format, såsom Visual Studio Code.
Du kan også selv bygge URL'en ud fra dit workspace-ID og dataagent-ID:
https://api.fabric.microsoft.com/v1/mcp/workspaces/{WorkspaceId}/dataagents/{DataAgentId}/agent
| Pladsholder | Beskrivelse |
|---|---|
{WorkspaceId} |
ID'et for Fabric-arbejdsområdet, der indeholder dataagenten. |
{DataAgentId} |
ID'et på den publicerede dataagent. |
En manuelt opbygget URL virker kun, efter du har offentliggjort dataagenten. Hvis agenten ikke er offentliggjort, returnerer endpointet en fejl, selv når URL'en er korrekt.
Godkendelse
Hver anmodning til MCP-endepunktet skal autentificeres mod Fabric. Din klient vedhæfter et bærertoken i Authorization headeren, og tokenet skal have tilladelse til at få adgang til målarbejdsområdet og dataagenten. Tokenet kan repræsentere enten en brugeridentitet eller en tjenesteprincipal.
Hvordan du får tokenet, afhænger af din klient. Visual Studio Code beder dig om at logge ind interaktivt. I et Python-script henter du tokenet gennem et bibliotek som azure-identity og tilføjer det selv til anmodningsheaderne. Uanset klienten, anmod om tokenet til scopet https://api.fabric.microsoft.com/.default .
Forbind fra Python
Dette eksempel forbinder til dataagentens MCP-endpoint fra et selvstændigt Python-script, opdager værktøjet, sender et spørgsmål og udskriver svaret. Den bruger MCP Python SDK og biblioteketazure-identity.
Forudsætninger for Python-klienten
- Python 3.10 eller nyere.
- Og
mcpazure-identitypakkerne. - En måde at logge ind på Fabric. Dette eksempel bruger Azure CLI. Installer Azure CLI, kør
az loginog log ind med en konto, der har adgang til arbejdsområdet og dataagenten.
Installer pakkerne:
pip install mcp azure-identity
Byg klienten trin for trin
De følgende afsnit bygger manuskriptet én del ad gangen. Hver blok fortsætter den samme fil, så du kan indsætte dem i rækkefølge i én fil .py og køre den.
Importer bibliotekerne og sæt dine værdier. Erstat workspace-ID, dataagent-ID og spørgsmål med dine egne værdier. Følgende mcp_url er det endpoint-format, der blev beskrevet tidligere.
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"
)
Erhverv et token og opbygg autentificeringsheaderen.
AzureCliCredential genbruger login-funktionen fra az login. Hjælperen anmoder om et token til Fabric-scope og returnerer det som en Authorization header, som hver anmodning bærer.
credential = AzureCliCredential()
def get_auth_headers():
token = credential.get_token("https://api.fabric.microsoft.com/.default")
return {"Authorization": f"Bearer {token.token}"}
Åbn forbindelsen, find værktøjet, og stil spørgsmålet. Denne funktion åbner en streambar HTTP-forbindelse med auth-headeren, kører MCP-håndtrykket med initialize, lister værktøjerne og læser det enkelte værktøj, som dataagenten eksponerer. Den finder navnet på spørgsmålsargumentet fra værktøjets inputskema, så du hårdkoder det ikke, kalder derefter værktøjet og samler teksten fra svaret.
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)
Kør det og print svaret.
query_data_agent er en korutine, så asyncio.run den drives til fuldendelse og returnerer resultatet.
answer = asyncio.run(query_data_agent(question))
print(answer)
Fordi scriptet læser det første værktøj, serveren annoncerer, og finder spørgsmålsargumentet fra værktøjets inputskema, fortsætter det med at fungere, selv hvis værktøjsnavnet eller argumentets navn ændres. Du behøver ikke at hardkode nogen af værdierne.
Tips
AzureCliCredential læser den login, du har oprettet med az login. For at køre uden opsyn, som i en tjeneste eller et job, brug i stedet en serviceprincipal-credential, for eksempel ClientSecretCredential eller DefaultAzureCredential. Resten af koden forbliver den samme som før.
Forbind fra Visual Studio Code
Visual Studio Code kan fungere som en MCP-klient. De følgende trin tilføjer dataagentens MCP-server og stiller spørgsmål fra editoren. Disse trin er et eksempel; endpoint og token er de samme, som enhver anden MCP-klient bruger.
Tilføj MCP-serveren
Åbn Visual Studio Code og vælg en mappe at arbejde i.
Opret en .vscode-mappe i den valgte mappe.
Inde i .vscode opretter du en fil kaldet
mcp.json.Visual Studio Code viser en blå 'Tilføj server'-knap nederst til højre i vinduet.
Vælg Add Server, og vælg derefter HTTP. Når du bliver bedt om en URL, indsæt den MCP-server-URL , du kopierede tidligere.
Tryk Enter og giv et navn til serveren. Visual Studio Code bruger dette navn til at vise serveren.
Visual Studio Code forsøger at autentificere. Vælg Tillad og log ind med dine legitimationsoplysninger.
Serveren bliver oprettet.
Aktivér agenttilstand
Når du har tilføjet serveren, skal du aktivere agent-tilstand, så Visual Studio Code kan videresende dine spørgsmål til dataagenten:
Åbn kommandopaletten (Ctrl+Shift+P eller cmd+shift+P).
Søg efter Enable Agent Mode og vælg den.
Bekræft eventuelle prompts for at aktivere tilstanden.
Når agent-tilstand er aktiv, vælg en orkestrator til at håndtere dine spørgsmål. Orchestratoren styrer flowet mellem dine spørgsmål i editoren og dataagentens MCP-server. Tilgængelige orkestratorer i preview inkluderer GPT-5, GPT-4.1, Claude Sonnet 4.5, Gemini 2.5 Pro og andre.
Stil spørgsmål
Med agent-tilstand slået til og en orkestrator valgt, kan du stille spørgsmål direkte fra editoren. Orkestratoren viderestiller hvert spørgsmål til dataagentens MCP-server, og agenten returnerer et svar baseret på de data, den har adgang til i OneLake. Du bliver i editoren, mens du bringer organisatorisk viden ind i dine AI-workflows.