Daten-Agent als Model Context Protocol-Server (Vorschau)

Das Model Context Protocol (MCP) ist ein neuer Standard in der KI-Landschaft, mit dem KI-Systeme eine Verbindung mit Tools und Daten außerhalb von sich selbst herstellen können. Es definiert, wie ein KI-Modell erkennen kann, was verfügbar ist und auf konsistente Weise damit interagieren kann. Anstatt einmalige Integrationen zu erstellen, bietet MCP eine Standardmethode zum Einbinden von Elementen, die in verschiedenen Apps und Diensten funktionieren. Dieser Ansatz erleichtert ES KI-Systemen, über ihr integriertes Wissen hinauszugehen und gleichzeitig die Dinge konsistent zu halten. Außerdem hilft es Teams, schneller zu wechseln, da sie die gleichen Verbindungen nicht jedes Mal neu erfinden müssen.

MCP verfügt über zwei Hauptkomponenten: den Client und den Server.

Ein MCP-Client ist die App oder Erfahrung, mit der der Benutzer interagiert. Hier stellen Sie Fragen oder lösen Aktionen aus. Der Client greift auf MCP-Server zu, um Tools zu finden und sie zu verwenden. Beispielsweise kann Visual Studio Code als MCP-Client fungieren, wenn eine Verbindung mit externen Tools zum Abrufen von Daten hergestellt wird, oder Sie beim Schreiben und Ausführen von Code unterstützen.

Ein MCP-Server macht Tools, Daten oder Dienste verfügbar, damit Clients sie verwenden können. Er teilt dem Client mit, was verfügbar ist und wie er verwendet wird. Beispielsweise kann ein Fabric-Daten-Agent als MCP-Server fungieren, indem Unternehmensdaten und Abfragen verfügbar sind, die ein KI-System verwenden kann.

Gemeinsam erleichtern client und server die Verbindung von KI-Systemen mit realen Daten und Aktionen, ohne jedes Mal benutzerdefinierte Integrationen zu erstellen.

Von Bedeutung

Dieses Feature befindet sich in der Vorschauphase.

Von Bedeutung

Wenn Sie einen Fabric-Daten-Agent als MCP-Server nutzen, werden die vom Daten-Agent zurückgegebenen Antworten möglicherweise außerhalb der Compliancegrenze oder der geografischen Region von Fabric gesendet und gemäß den Bedingungen und Richtlinien zur Datenverarbeitung des von Ihnen verwendeten MCP-Clients verarbeitet oder gespeichert.

Voraussetzungen

Funktionsweise

Ein veröffentlichter Fabric-Daten-Agent stellt ein einziges MCP-Tool bereit. Dieses Tool stellt den Datenagenten selbst dar, sodass ein MCP-Client eine Frage an das Tool sendet und als Antwort eine Antwort erhält, die auf den Daten basiert, auf die der Datenagent in Fabric OneLake Zugriff hat.

Da der Client entscheidet, wann das Tool aufgerufen werden soll, ist die Beschreibung des Datenagenten wichtig. Wenn Sie einen Datenagenten veröffentlichen, wird seine Beschreibung zur Beschreibung des Tools, die der MCP-Server bereitstellt. Clients und Orchestratoren lesen diese Beschreibung, um zu entscheiden, wann und wie der Daten-Agent aufgerufen werden soll. Schreiben Sie daher eine klare und spezifische Beschreibung, die erläutert, was der Agent weiß und welche Arten von Fragen er beantworten kann.

Sie können den MCP-Server des Daten-Agenten mit jedem MCP-Client nutzen, nicht nur mit einem einzigen Tool oder Editor. Solange Ihr Client MCP über streamingfähiges HTTP spricht und seinen Anfragen ein gültiges Fabric-Bearer-Token hinzufügen kann, kann er eine Verbindung aufbauen. In den folgenden Abschnitten werden zwei Clients angezeigt: ein Python Skript und Visual Studio Code. Derselbe Endpunkt und dasselbe Token funktionieren für jeden anderen MCP-Client, den Sie erstellen oder übernehmen.

Alles, was mit dem MCP-Server spricht, muss MCP sprechen, so dass es per Definition als MCP-Client fungiert. Der Begriff "MCP-Client" bedeutet kein bestimmtes Produkt oder SDK. Dies bedeutet beliebigen Code, der dem Protokoll folgt. Der Endpunkt ist keine einfache REST-API, an die Sie eine beliebige Anforderung senden können. Eine Verbindung folgt dem MCP-Nachrichtenfluss: ein initialize Handshake, ein tools/list Aufruf zum Ermitteln des Tools und eine tools/call Anforderung, eine Frage zu stellen. Ein SDK wie das MCP-Python SDK behandelt diesen Ablauf für Sie, aber Sie können es auch selbst über reines HTTP implementieren, solange Ihre Anforderungen dem Protokoll folgen. Ein generischer HTTP-Client, der den Handshake und das Nachrichtenformat überspringt, funktioniert nicht.

Hinweis

Der MCP-Server des Daten-Agents unterstützt keine dynamische Clientregistrierung. Ihr Client kann sich nicht selbst registrieren und die Anmeldeinformationen automatisch über das Protokoll abrufen. Stattdessen erwerben Sie ein Fabric-Token über Ihren eigenen Authentifizierungsfluss und fügen es an jede Anforderung an, wie in den Beispielen in diesem Artikel gezeigt.

MCP-Serverdetails abrufen

Nachdem Sie den Daten-Agent veröffentlicht haben, öffnen Sie dessen Einstellungen , und wechseln Sie zur Registerkarte " Modellkontextprotokoll" . Diese Registerkarte zeigt:

  • Name des MCP-Servers des Datenagents
  • MCP-Server-URL (kopieren Sie diesen Wert; Sie verwenden ihn in jedem Client)
  • MCP-Toolname des Datenagenten
  • MCP-Servertoolbeschreibung

Sie können die mcp.json Datei auch von dieser Registerkarte herunterladen, um Clients zu konfigurieren, die dieses Format lesen, z. B. Visual Studio Code.

Screenshot der Registerkarte

Sie können die URL auch selbst aus Ihrer Arbeitsbereichs-ID und Daten-Agent-ID erstellen:

https://api.fabric.microsoft.com/v1/mcp/workspaces/{WorkspaceId}/dataagents/{DataAgentId}/agent
Platzhalter Beschreibung
{WorkspaceId} Die ID des Fabric-Arbeitsbereichs, der den Daten-Agenten enthält.
{DataAgentId} Die ID des veröffentlichten Daten-Agents.

Eine manuell erstellte URL funktioniert erst, nachdem Sie den Datenagent veröffentlicht haben. Wenn der Agent nicht veröffentlicht wird, gibt der Endpunkt auch dann einen Fehler zurück, wenn die URL korrekt ist.

Authentication

Jede Anforderung an den MCP-Endpunkt muss für Fabric authentifiziert werden. Ihr Client fügt ein Bearertoken in der Authorization Kopfzeile an, und das Token muss über die Berechtigung zum Zugreifen auf den Zielarbeitsbereich und den Daten-Agent verfügen. Das Token kann entweder eine Benutzeridentität oder einen Dienstprinzipal darstellen.

Wie Sie das Token erhalten, hängt von Ihrem Client ab. Visual Studio Code fordert Sie auf, sich interaktiv anzumelden. In einem Python-Skript rufen Sie das Token über eine Bibliothek wie azure-identity ab und fügen es selbst zu den Request-Headern hinzu. Was auch immer der Client ist, fordern Sie das Token für den https://api.fabric.microsoft.com/.default Bereich an.

Verbinden von Python

In diesem Beispiel wird eine Verbindung mit dem MCP-Endpunkt des Daten-Agents aus einem eigenständigen Python-Skript hergestellt, das Tool ermittelt, eine Frage gesendet und die Antwort gedruckt. Es verwendet das MCP Python SDK und die azure-identity Bibliothek.

Voraussetzungen für den Python-Client

  • Python 3.10 oder höher.
  • Die Pakete mcp und azure-identity.
  • Eine Möglichkeit zum Anmelden bei Fabric. In diesem Beispiel wird die Azure CLI verwendet. Installieren Sie die Azure CLI, führen Sie dann az login aus, und melden Sie sich mit einem Konto an, das Zugriff auf den Arbeitsbereich und den Daten-Agent hat.

Installieren Sie die Pakete:

pip install mcp azure-identity

Erstellen des Clients schritt für Schritt

In den folgenden Abschnitten wird das Skript einzeln erstellt. Jeder Block setzt dieselbe Datei fort, sodass Sie sie in eine einzelne .py Datei einfügen und ausführen können.

Importieren Sie die Bibliotheken, und legen Sie Ihre Werte fest. Ersetzen Sie die Arbeitsbereichs-ID, die Daten-Agent-ID und die Frage durch Ihre eigenen Werte. Das mcp_url entspricht dem zuvor beschriebenen Endpunktformat.

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"
)

Erwerben Sie ein Token, und erstellen Sie den Authentifizierungsheader. AzureCliCredential verwendet die Anmeldung von az login. Der Helfer fordert ein Token für den Fabric Bereich an und gibt es als Authorization Header zurück, den jede Anforderung trägt.

credential = AzureCliCredential()


def get_auth_headers():
    token = credential.get_token("https://api.fabric.microsoft.com/.default")
    return {"Authorization": f"Bearer {token.token}"}

Öffnen Sie die Verbindung, entdecken Sie das Tool, und stellen Sie die Frage. Diese Funktion öffnet eine streambare HTTP-Verbindung mit dem Authentifizierungsheader, führt den MCP-Handshake mit initialize, listet die Tools auf und liest das einzelne Tool, das der Daten-Agent verfügbar macht. Es findet den Namen des Fragearguments aus dem Eingabeschema des Tools, sodass Sie es nicht hart codieren, dann das Tool aufrufen und den Text aus der Antwort sammelt.

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)

Führen Sie es aus und drucken Sie die Antwort. query_data_agent ist eine Coroutine, daher führt asyncio.run sie vollständig aus und gibt das Ergebnis zurück.

answer = asyncio.run(query_data_agent(question))
print(answer)

Da das Skript das erste Tool liest, das der Server angibt und das Frageargument aus dem Eingabeschema des Tools findet, funktioniert es auch dann weiterhin, wenn sich der Toolname oder der Argumentname ändert. Sie müssen keinen der beiden Werte hart codieren.

Tip

AzureCliCredential verwendet die Anmeldedaten, die Sie mit az login erstellt haben. Verwenden Sie für die unbeaufsichtigte Ausführung, z. B. in einem Dienst oder einem Job, stattdessen die Anmeldeinformationen eines Dienstprinzipals, zum Beispiel ClientSecretCredential oder DefaultAzureCredential. Der Rest des Codes bleibt gleich.

Herstellen einer Verbindung mit Visual Studio Code

Visual Studio Code kann als MCP-Client fungieren. Mit den folgenden Schritten fügen Sie den MCP-Server des Datenagenten hinzu und stellen Fragen aus dem Editor heraus. Diese Schritte sind ein Beispiel; Der Endpunkt und das Token sind dieselben, die alle anderen MCP-Clients verwenden.

Hinzufügen des MCP-Servers

  1. Öffnen Sie Visual Studio Code, und wählen Sie einen Ordner aus, in dem Sie arbeiten möchten.

  2. Erstellen Sie einen VSCODE-Ordner im ausgewählten Ordner.

  3. Erstellen Sie in VSCODE eine Datei mit dem Namen mcp.json.

  4. Visual Studio Code zeigt eine blaue Schaltfläche "Server hinzufügen" unten rechts im Fenster an.

    Screenshot der JSON-Datei des MCP-Servers.

  5. Wählen Sie "Server hinzufügen" und dann "HTTP" aus. Wenn Sie zur Eingabe einer URL aufgefordert werden, fügen Sie die ZUVOR kopierte MCP-Server-URL ein.

    Screenshot, der die Auswahl von HTTP zeigt.

    Screenshot, der zeigt, wo die URL für den MCP-Server eingegeben werden soll.

  6. Drücken Sie die EINGABETASTE , und geben Sie einen Namen für den Server an. Visual Studio Code verwendet diesen Namen, um den Server anzuzeigen.

  7. Visual Studio Code versucht, sich zu authentifizieren. Wählen Sie "Zulassen" aus, und melden Sie sich mit Ihren Anmeldeinformationen an.

Der Server wird erstellt.

Screenshot mit der MCP-Datei des Datenagenten.

Aktivieren des Agentmodus

Nachdem Sie den Server hinzugefügt haben, aktivieren Sie den Agentmodus, damit Visual Studio Code Ihre Fragen an den Daten-Agent weiterleiten können:

  1. Öffnen Sie die Befehlspalette (STRG+UMSCHALT+P oder CMD+UMSCHALT+P).

  2. Suchen Sie nach "Agentmodus aktivieren ", und wählen Sie ihn aus.

  3. Bestätigen Sie alle Eingabeaufforderungen zum Aktivieren des Modus.

    Screenshot des Daten-Agents in Visual Studio Code im Agentmodus.

Wenn der Agentmodus aktiv ist, wählen Sie einen Orchestrator aus, um Ihre Fragen zu behandeln. Der Orchestrator verwaltet den Ablauf zwischen Ihren Fragen im Editor und dem MCP-Server des Daten-Agents. Verfügbare Orchestratoren in der Vorschau umfassen GPT-5, GPT-4.1, Claude Sonnet 4.5, Gemini 2.5 Pro und andere.

Fragen stellen

Wenn der Agentmodus aktiviert und ein Orchestrator ausgewählt ist, können Sie direkt im Editor Fragen stellen. Der Orchestrator leitet jede Frage an den MCP-Server des Daten-Agents weiter, und der Agent gibt eine Antwort zurück, die in den Daten enthalten ist, auf die er in OneLake zugreifen kann. Sie bleiben im Editor, während Sie Organisationswissen in Ihre KI-Workflows einbringen.