Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Model Context Protocol (MCP) är en framväxande standard i AI-landskapet som gör att AI-system kan ansluta med verktyg och data utanför sig själva. Den definierar hur en AI-modell kan identifiera vad som är tillgängligt och interagera med den på ett konsekvent sätt. I stället för att skapa engångsintegreringar erbjuder MCP ett standardsätt för att ansluta saker som fungerar i olika appar och tjänster. Den här metoden gör det mycket enklare för AI-system att gå utöver sin inbyggda kunskap samtidigt som saker och ting hålls konsekventa. Det hjälper också team att röra sig snabbare, eftersom de inte behöver återuppfinna samma anslutningar varje gång.
MCP har två huvuddelar: klienten och servern.
En MCP-klient är den app eller upplevelse som användaren interagerar med. Det är där du ställer frågor eller utlöser åtgärder. Klienten kontaktar MCP-servrar för att hitta verktyg och använda dem. Till exempel kan Visual Studio Code fungera som en MCP-klient när den ansluter till externa verktyg för att hämta data eller hjälpa dig att skriva och köra kod.
En MCP-server exponerar verktyg, data eller tjänster så att klienter kan använda dem. Den talar om för klienten vad som är tillgängligt och hur den ska användas. Till exempel kan en Fabric dataagent fungera som en MCP-server genom att exponera företagsdata och frågor som ett AI-system kan använda.
Tillsammans gör klienten och servern det enkelt att ansluta AI-system med verkliga data och åtgärder, utan att skapa anpassade integreringar varje gång.
Viktigt!
Den här funktionen är i förhandsversion.
Viktigt!
När du använder en Fabric dataagent som en MCP-server kan svar som returneras av dataagenten skickas utanför Fabric efterlevnadsgräns eller geografiska region och bearbetas eller lagras enligt villkoren och datahanteringsprinciperna för den MCP-klient som du använder.
Förutsättningar
- En betald F2 eller högre Fabric Kapacitet, eller en Power BI Premium kapacitet per kapacitet (P1 eller högre) med Microsoft Fabric Aktiverat.
- Cross-geo-bearbetning och lagring mellan geografiska områden för AI aktiverat, baserat på kraven i Fabric klientinställningar för dataagenten.
- Minst en datakälla som har data: ett lager, ett sjöhus, en Power BI semantisk modell, en KQL-databas, en speglad databas eller en ontologi. Du måste ha läsbehörighet till datakällan.
- En publicerad dataagent. MCP-servern fungerar bara när du har publicerat dataagenten. Mer information finns i Skapa en fabric-dataagent.
Så här fungerar det
En publicerad Fabric dataagent exponerar ett enda MCP-verktyg. Verktyget representerar själva dataagenten, så en MCP-klient skickar en fråga till verktyget och får tillbaka ett svar som baseras på de data som dataagenten har åtkomst till i Fabric OneLake.
Eftersom klienten bestämmer när verktyget ska anropas är beskrivningen av dataagenten viktig. När du publicerar en dataagent blir dess beskrivning den verktygsbeskrivning som MCP-servern annonserar. Klienter och orkestrerare läser den beskrivningen för att bestämma när och hur dataagenten ska anropas, så skriv en tydlig och specifik beskrivning som förklarar vad agenten vet och vilka typer av frågor den kan besvara.
Du kan använda dataagentens MCP-server från valfri MCP-klient, inte bara ett verktyg eller en redigerare. Så länge din klient talar MCP över streambar HTTP och kan bifoga en giltig Fabric-bärartoken till sina begäranden, kan den ansluta. Avsnitten som följer visar två klienter: ett Python skript och Visual Studio Code. Samma slutpunkt och samma token fungerar för alla andra MCP-klienter som du skapar eller antar.
Allt som pratar med MCP-servern måste tala MCP, så per definition fungerar det som en MCP-klient. Termen "MCP-klient" betyder inte en specifik produkt eller SDK. Det innebär all kod som följer protokollet. Slutpunkten är inte ett vanligt REST API som du kan skicka en godtycklig begäran till. En anslutning följer MCP-meddelandeflödet: en initialize handskakning, ett tools/list anrop för att identifiera verktyget och en tools/call begäran om att ställa en fråga. Ett SDK som MCP-Python SDK hanterar det flödet åt dig, men du kan också implementera det själv via vanlig HTTP så länge dina begäranden följer protokollet. En allmän HTTP-klient som hoppar över handskaknings- och meddelandeformatet fungerar inte.
Anmärkning
MCP-servern för dataagenten stöder inte dynamisk klientregistrering. Klienten kan inte registrera sig själv och hämta autentiseringsuppgifter automatiskt via protokollet. I stället skaffar du en Fabric token via ditt eget autentiseringsflöde och bifogar den till varje begäran, enligt exemplen i den här artikeln.
Hämta MCP-serverinformationen
När du har publicerat dataagenten öppnar du dess inställningar och går till fliken Modellkontextprotokoll . Den här fliken visar:
- McP-servernamn för dataagenten
- MCP-server-URL (kopiera det här värdet, du använder det i varje klient)
- MCP-verktygsnamn för dataagent
- Beskrivning av MCP-serververktyget
Du kan också ladda ned filenmcp.json från den här fliken för att konfigurera klienter som läser formatet, till exempel Visual Studio Code.
Du kan också skapa URL:en själv från ditt arbetsyte-ID och dataagent-ID:
https://api.fabric.microsoft.com/v1/mcp/workspaces/{WorkspaceId}/dataagents/{DataAgentId}/agent
| Placeholder | Description |
|---|---|
{WorkspaceId} |
ID:t för den Fabric arbetsyta som innehåller dataagenten. |
{DataAgentId} |
ID:t för den publicerade dataagenten. |
En manuellt skapad URL fungerar bara när du har publicerat dataagenten. Om agenten inte publiceras returnerar slutpunkten ett fel även när URL:en är korrekt.
Authentication
Varje begäran till MCP-slutpunkten måste autentiseras mot Fabric. Klienten bifogar en bearer-token i Authorization-headern, och tokenen måste ha behörighet att få åtkomst till målarbetsytan och dataagenten. Token kan representera antingen en användaridentitet eller ett huvudnamn för tjänsten.
Hur du hämtar token beror på din klient. Visual Studio Code uppmanar dig att logga in interaktivt. I ett Python skript hämtar du token via ett bibliotek som azure-identity och lägger själv till den i begäranderubrikerna. Oavsett vilken klient det gäller, begär tokenen för scopet https://api.fabric.microsoft.com/.default.
Ansluta från Python
Det här exemplet ansluter till MCP-slutpunkten för dataagenten från ett fristående Python skript, identifierar verktyget, skickar en fråga och skriver ut svaret. Den använder MCP-Python SDK och azure-identity biblioteket.
Förutsättningar för Python-klienten
- Python 3.10 eller senare.
- paketen
mcpochazure-identity. - Ett sätt att logga in på Fabric. I det här exemplet används Azure CLI. Installera Azure CLI och kör
az loginoch logga sedan in med ett konto som har åtkomst till arbetsytan och dataagenten.
Installera paketen:
pip install mcp azure-identity
Skapa klienten steg för steg
I följande avsnitt skapas skriptet en bit i taget. Varje block fortsätter samma fil, så du kan klistra in dem i ordning i en enda .py fil och köra den.
Importera biblioteken och ange dina värden. Ersätt arbetsytans ID, dataagent-ID och fråga med dina egna värden. Följer mcp_url det slutpunktsformat som beskrevs tidigare.
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"
)
Hämta en token och skapa autentiseringshuvudet.
AzureCliCredential återanvänder inloggningen från az login. Hjälpkomponenten begär en token för Fabric-omfånget och returnerar den i ett Authorization-huvud som varje begäran innehåller.
credential = AzureCliCredential()
def get_auth_headers():
token = credential.get_token("https://api.fabric.microsoft.com/.default")
return {"Authorization": f"Bearer {token.token}"}
Öppna anslutningen, identifiera verktyget och ställ frågan. Den här funktionen öppnar en strömmande HTTP-anslutning med autentiseringshuvudet, kör MCP-handskakningen med initialize, listar verktygen och läser det enda verktyg som dataagenten exponerar. Den hittar namnet på frågeargumentet från verktygets indataschema, så att du inte hårdkodar det och anropar sedan verktyget och samlar in texten från 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 den och skriv ut svaret.
query_data_agent är en korutin, så asyncio.run kör den till slut och returnerar resultatet.
answer = asyncio.run(query_data_agent(question))
print(answer)
Eftersom skriptet läser det första verktyget som servern annonserar och hittar frågeargumentet från verktygets indataschema, fortsätter det att fungera även om verktygsnamnet eller argumentnamnet ändras. Du behöver inte hårdkoda något av värdena.
Tip
AzureCliCredential läser inloggningen som du skapade med az login. Om du vill köra obevakad, till exempel i en tjänst eller ett jobb, använder du en autentiseringsuppgift för tjänstens huvudnamn i stället, till exempel ClientSecretCredential eller DefaultAzureCredential. Resten av koden förblir densamma.
Ansluta från Visual Studio Code
Visual Studio Code kan fungera som en MCP-klient. Följande steg lägger till MCP-servern för dataagenten och ställer frågor från redigeraren. De här stegen är ett exempel. slutpunkten och token är samma som andra MCP-klienter använder.
Lägg till MCP-servern
Öppna Visual Studio Code och välj en mapp att arbeta i.
Skapa en .vscode-mapp i den valda mappen.
I .vscode skapar du en fil med namnet
mcp.json.Visual Studio Code visar en blå knappen Lägg till server längst ned till höger i fönstret.
Välj Lägg till server och välj sedan HTTP. När du uppmanas att ange en URL klistrar du in den MCP-server-URL som du kopierade tidigare.
Tryck på Retur och ange ett namn för servern. Visual Studio Code använder det här namnet för att visa servern.
Visual Studio Code försöker autentisera. Välj Tillåt och logga in med dina autentiseringsuppgifter.
Servern skapas.
Aktivera agentläge
När du har lagt till servern aktiverar du agentläget så att Visual Studio Code kan dirigera dina frågor till dataagenten:
Öppna kommandopaletten (Ctrl+Skift+P eller Cmd+Skift+P).
Sök efter Aktivera agentläge och välj det.
Bekräfta eventuella uppmaningar om att aktivera läget.
När agentläget är aktivt väljer du en orkestrerare för att hantera dina frågor. Dirigeraren hanterar flödet mellan dina frågor i redigeraren och dataagentens MCP-server. Tillgängliga orkestratorer i förhandsversionen inkluderar GPT-5, GPT-4.1, Claude Sonnet 4.5, Gemini 2.5 Pro och andra.
Ställ frågor
När agentläget är aktiverat och en orkestrerare har valts ställer du frågor direkt från redigeraren. Orchestrator dirigerar varje fråga till MCP-servern för dataagenten och agenten returnerar ett svar som baseras på de data som den har åtkomst till i OneLake. Du stannar kvar i redigeringsprogrammet medan du tar med organisationskunskaper i dina AI-arbetsflöden.
Relaterat innehåll
- Skapa en Fabric-dataagent
- Fabric dataagent Python SDK
- Fabric klientinställningar för dataagenten