Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Het Model Context Protocol (MCP) is een opkomende standaard in het AI-landschap waarmee AI-systemen verbinding kunnen maken met hulpprogramma's en gegevens buiten zichzelf. Er wordt gedefinieerd hoe een AI-model kan ontdekken wat er beschikbaar is en op een consistente manier ermee kan communiceren. In plaats van eenmalige integraties te bouwen, biedt MCP een standaardmethode om dingen aan te sluiten die geschikt zijn voor verschillende apps en services. Deze aanpak maakt het veel eenvoudiger voor AI-systemen om verder te gaan dan hun ingebouwde kennis, terwijl dingen consistent blijven. Het helpt teams ook sneller te bewegen, omdat ze niet elke keer dezelfde verbindingen opnieuw hoeven uit te vinden.
MCP heeft twee hoofdonderdelen: de client en de server.
Een MCP-client is de app of ervaring waarmee de gebruiker communiceert. Hier stelt u vragen of voert u acties uit. De client bereikt MCP-servers om hulpprogramma's te vinden en te gebruiken. Visual Studio Code kan bijvoorbeeld fungeren als een MCP-client wanneer deze verbinding maakt met externe hulpprogramma's om gegevens op te halen, of om u te helpen code te schrijven en uit te voeren.
Een MCP-server maakt hulpprogramma's, gegevens of services beschikbaar, zodat clients deze kunnen gebruiken. Hiermee wordt aan de client aangegeven wat er beschikbaar is en hoe deze moet worden gebruikt. Een Fabric gegevensagent kan bijvoorbeeld fungeren als een MCP-server door zakelijke gegevens en query's weer tegeeft die een AI-systeem kan gebruiken.
Samen maken de client en server het eenvoudig om AI-systemen te verbinden met echte gegevens en acties, zonder dat u elke keer aangepaste integraties hoeft te bouwen.
Belangrijk
Deze functie is beschikbaar als preview-versie.
Belangrijk
Wanneer u een Fabric gegevensagent als een MCP-server gebruikt, kunnen antwoorden die door de gegevensagent worden geretourneerd, buiten de nalevingsgrens of geografische regio van Fabric worden verzonden en verwerkt of opgeslagen volgens de voorwaarden en het beleid voor gegevensverwerking van de MCP-client die u gebruikt.
Vereiste voorwaarden
- Een betaalde Fabric-capaciteit van F2 of hoger of een Power BI Premium-capaciteit van P1 of hoger waarin Microsoft Fabric is ingeschakeld.
- Verwerking en opslag in meerdere geografische gebieden voor AI ingeschakeld, op basis van de vereisten in tenantinstellingen voor Fabric-gegevensagent.
- Ten minste één gegevensbron met gegevens: een magazijn, een lakehouse, een Power BI semantisch model, een KQL-database, een gespiegelde database of een ontologie. U moet leestoegang hebben tot de gegevensbron.
- Een gepubliceerde gegevensagent. De MCP-server werkt pas nadat u de gegevensagent hebt gepubliceerd. Zie Een Fabric-gegevensagent maken voor meer informatie.
Hoe het werkt
Een gepubliceerde Fabric gegevensagent maakt één MCP-hulpprogramma beschikbaar. Dit hulpprogramma vertegenwoordigt de gegevensagent zelf, dus een MCP-client stuurt een vraag naar het hulpprogramma en krijgt een antwoord terug dat is gebaseerd op de gegevens waartoe de gegevensagent toegang heeft in Fabric OneLake.
Omdat de client bepaalt wanneer het hulpprogramma moet worden aangeroepen, is de beschrijving van de gegevensagent belangrijk. Wanneer u een gegevensagent publiceert, wordt de beschrijving ervan de beschrijving van het hulpprogramma dat door de MCP-server wordt aangekondigd. Clients en orchestrators lezen die beschrijving om te bepalen wanneer en hoe de gegevensagent moet worden aangeroepen, dus schrijf een duidelijke en specifieke beschrijving waarin wordt uitgelegd wat de agent weet en welke vragen de agent kan beantwoorden.
U kunt de MCP-server van de gegevensagent gebruiken vanuit elke MCP-client, niet slechts één hulpprogramma of editor. Zolang uw client MCP spreekt via streambare HTTP en een geldig Fabric bearer-token aan de aanvragen kan koppelen, kan deze verbinding maken. In de volgende secties ziet u twee clients: een Python script en Visual Studio Code. Hetzelfde eindpunt en hetzelfde token werken voor elke andere MCP-client die u bouwt of gebruikt.
Alles wat met de MCP-server praat, moet MCP spreken, dus het fungeert per definitie als een MCP-client. De term 'MCP-client' betekent niet een specifiek product of een specifieke SDK. Dit betekent elke code die het protocol volgt. Het eindpunt is geen gewone REST API waarnaar u een willekeurige aanvraag kunt verzenden. Een verbinding volgt de MCP-berichtstroom: een initialize handshake, een tools/list aanroep om het hulpprogramma te detecteren en een tools/call aanvraag om een vraag te stellen. Een SDK zoals de MCP Python SDK verwerkt die stroom voor u, maar u kunt deze ook zelf implementeren via gewone HTTP zolang uw aanvragen het protocol volgen. Een algemene HTTP-client die de handshake en berichtindeling overslaat, werkt niet.
Opmerking
De MCP-server van de gegevensagent biedt geen ondersteuning voor dynamische clientregistratie. Uw client kan zichzelf niet registreren en referenties automatisch verkrijgen via het protocol. In plaats daarvan verkrijgt u een Fabric token via uw eigen verificatiestroom en koppelt u het aan elke aanvraag, zoals wordt weergegeven in de voorbeelden in dit artikel.
De details van de MCP-server ophalen
Nadat u de gegevensagent hebt gepubliceerd, opent u de instellingen en gaat u naar het tabblad ModelContext Protocol . Op dit tabblad ziet u:
- Servernaam van de MCP-gegevensagent
- MCP-server-URL (kopieer deze waarde; u gebruikt deze in elke client)
- Naam van het MCP-hulpprogramma gegevensagent
- Beschrijving van mcp-serverhulpprogramma
U kunt het mcp.json bestand ook downloaden van dit tabblad om clients te configureren die die indeling lezen, zoals Visual Studio Code.
U kunt de URL ook zelf maken vanuit uw werkruimte-id en gegevensagent-id:
https://api.fabric.microsoft.com/v1/mcp/workspaces/{WorkspaceId}/dataagents/{DataAgentId}/agent
| Placeholder | Description |
|---|---|
{WorkspaceId} |
De id van de Fabric-werkruimte die de data-agent bevat. |
{DataAgentId} |
De ID van de gepubliceerde data-agent. |
Een handmatig gebouwde URL werkt alleen nadat u de gegevensagent hebt gepubliceerd. Als de agent niet is gepubliceerd, geeft het eindpunt een foutmelding, zelfs wanneer de URL correct is.
Authentication
Elke aanvraag voor het MCP-eindpunt moet worden geverifieerd op basis van Fabric. Uw client koppelt een Bearer-token in de Authorization header en het token moet gemachtigd zijn om toegang te krijgen tot de doelwerkruimte en gegevensagent. Het token kan een gebruikersidentiteit of een service-principal vertegenwoordigen.
Hoe u het token verkrijgt, is afhankelijk van uw client. Visual Studio Code vraagt u zich interactief aan te melden. In een Python script verkrijgt u het token via een bibliotheek, zoals azure-identity en voegt u het zelf toe aan de aanvraagheaders. Ongeacht de client, vraag het token aan voor de https://api.fabric.microsoft.com/.default-scope.
Verbinding maken vanuit Python
Dit voorbeeld maakt verbinding met het MCP-eindpunt van de gegevensagent vanuit een zelfstandig Python script, detecteert het hulpprogramma, verzendt een vraag en drukt het antwoord af. Het maakt gebruik van de MCP Python SDK en de azure-identity bibliotheek.
Vereisten voor de Python-client
- Python 3.10 of hoger.
- De pakketten
mcpenazure-identity. - Een manier om u aan te melden bij Fabric. In dit voorbeeld wordt de Azure CLI gebruikt. Installeer de Azure CLI en meld u vervolgens aan
az loginmet een account dat toegang heeft tot de werkruimte en gegevensagent.
Installeer de pakketten:
pip install mcp azure-identity
Bouw stap voor stap de client
In de volgende secties wordt het script één stuk tegelijk gebouwd. Elk blok bouwt voort op hetzelfde bestand, zodat u ze in de juiste volgorde in één enkel .py-bestand kunt plakken en het kunt uitvoeren.
Importeer de bibliotheken en stel uw waarden in. Vervang de werkruimte-id, de gegevensagent-id en de vraag door uw eigen waarden. Hier mcp_url volgt de eindpuntindeling die eerder is beschreven.
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"
)
Haal een token op en stel de authenticatieheader samen.
AzureCliCredential gebruikt de aanmelding van az login opnieuw. De helper vraagt een token aan voor het Fabric bereik en retourneert het als een Authorization header die elke aanvraag draagt.
credential = AzureCliCredential()
def get_auth_headers():
token = credential.get_token("https://api.fabric.microsoft.com/.default")
return {"Authorization": f"Bearer {token.token}"}
Open de verbinding, ontdek het hulpprogramma en stel de vraag. Met deze functie wordt een streambare HTTP-verbinding met de auth-header geopend, wordt de MCP-handshake uitgevoerd met initialize, worden de tools opgehaald en wordt de enige tool uitgelezen die de data-agent beschikbaar stelt. De naam van het vraagargument wordt gevonden in het invoerschema van het hulpprogramma, dus u hoeft het niet hardcode te schrijven, roept het hulpprogramma aan en verzamelt de tekst uit het antwoord.
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)
Voer het uit en druk het antwoord af.
query_data_agent is een coroutine, dus asyncio.run voert deze volledig uit en geeft het resultaat terug.
answer = asyncio.run(query_data_agent(question))
print(answer)
Omdat het script het eerste hulpprogramma leest dat door de server wordt aangekondigd en het vraagargument wordt gevonden in het invoerschema van het hulpprogramma, blijft het werken, zelfs als de naam van het hulpprogramma of argument wordt gewijzigd. U hoeft geen van beide waarden in code te coden.
Tip
AzureCliCredential leest de aanmelding die u met az login hebt gemaakt. Als u iets zonder toezicht wilt uitvoeren, bijvoorbeeld in een service of taak, gebruikt u in plaats daarvan de aanmeldingsgegevens van een service-principal, bijvoorbeeld ClientSecretCredential of DefaultAzureCredential. De rest van de code blijft hetzelfde.
Verbinding maken vanuit Visual Studio Code
Visual Studio Code kan fungeren als een MCP-client. Met de volgende stappen voegt u de MCP-server van de gegevensagent toe en stelt u vragen uit de editor. Deze stappen zijn één voorbeeld; het eindpunt en het token zijn dezelfde die door andere MCP-clients worden gebruikt.
De MCP-server toevoegen
Open Visual Studio Code en selecteer een map waarin u wilt werken.
Maak een .vscode-map in de geselecteerde map.
Maak in .vscode een bestand met de naam
mcp.json.Visual Studio Code toont rechtsonder in het venster een blauwe knop Server toevoegen.
Selecteer Server toevoegen en selecteer vervolgens HTTP. Wanneer u om een URL wordt gevraagd, plakt u de MCP-server-URL die u eerder hebt gekopieerd.
Druk op Enter en geef een naam op voor de server. Visual Studio Code gebruikt deze naam om de server weer te geven.
Visual Studio Code probeert te verifiëren. Selecteer Toestaan en aanmelden met uw referenties.
De server wordt gemaakt.
Agentmodus inschakelen
Nadat u de server hebt toegevoegd, schakelt u de agentmodus in, zodat Visual Studio Code uw vragen naar de gegevensagent kunt routeren:
Open het opdrachtenpalet (Ctrl+Shift+P of Cmd+Shift+P).
Zoek de agentmodus inschakelen en selecteer deze.
Bevestig eventuele aanwijzingen om de modus te activeren.
Wanneer de agentmodus actief is, selecteert u een orchestrator om uw vragen af te handelen. De orchestrator beheert de stroom tussen uw vragen in de editor en de MCP-server van de gegevensagent. Beschikbare orchestrators in preview zijn GPT-5, GPT-4.1, Claude Sonnet 4.5, Gemini 2.5 Pro en andere.
Stel vragen
Als de agentmodus is ingeschakeld en een orchestrator is geselecteerd, stelt u rechtstreeks vanuit de editor vragen. De orchestrator stuurt elke vraag naar de MCP-server van de gegevensagent en de agent retourneert een antwoord dat is geaard in de gegevens waar deze toegang toe heeft in OneLake. U blijft in de editor terwijl u organisatiekennis in uw AI-werkstromen brengt.