Mit dem MCP Client-Connector in Jitterbit Studio eine Verbindung zu einem MCP-Server aufbauen
Einführung
Das Model Context Protocol (MCP) ist ein offener Standard zum Verbinden von LLMs mit externen Tools und Datenquellen. Ein MCP-Server stellt eine Sammlung benannter Tools zur Verfügung, jedes mit einem definierten Eingabeschema. Ein MCP-Client erkennt diese Tools, übergibt ihre Schemas als verfügbare Funktionen an ein LLM und führt die Tool-Aufrufe aus, die das LLM auswählt.
Der MCP Client-Connector bietet zwei Aktivitäten, die den Tool-Calling-Zyklus abdecken:
- Tools auflisten: Ruft das Tool-Manifest vom MCP-Server ab. Verwende dies, um die verfügbaren Tools des LLM vor jeder Konversation zu füllen.
- Tools aufrufen: Führt ein bestimmtes Tool auf dem MCP-Server mit den vom LLM ausgewählten Argumenten aus. Verwende dies, nachdem das LLM eine
tool_calls-Antwort zurückgibt.
Diese Anleitung behandelt die Verbindungseinrichtung, den Abruf des Tool-Manifests und den Tool-Aufruf auf Connector-Ebene. Für die komplette Multi-Round-Schleife, die diese Schritte mit einem LLM verbindet, siehe Implementiere eine LLM-Tool-Calling-Schleife. Für eine vollständige Agent-Anleitung, die diese Komponenten zu einem funktionierenden KI-Agenten zusammenbaut, siehe So erstellst du einen KI-Agenten mit MCP. Falls der MCP-Server, zu dem du eine Verbindung aufbaust, in Jitterbit MCP erstellt wurde, siehe Mit dem MCP Client-Connector eine Verbindung zu einem Jitterbit MCP-Server aufbauen für den Ort, wo du seine Server-URL und sein Authentifizierungstoken findest.
Designmuster
Der MCP-Tool-Ausführungszyklus verwendet zwei Operationen. Eine Tool-Erkennung-Operation ruft das Tool-Manifest einmalig (oder am Anfang jeder Sitzung) ab und registriert die verfügbaren Tools beim LLM. Eine Tool-Aufruf-Operation wird jedes Mal ausgeführt, wenn das LLM ein Tool auswählt und das Ergebnis an das LLM zurückgibt.
List Tools"] --> B["Transformation
Map to LLM
tool schemas"] B --> C["LLM call
(tools registered)"] C --> D{"tool_calls
in response?"} D -->|Yes| E["Script
Extract tool name
and arguments"] E --> F["Transformation
Map arguments
to tool input"] F --> G["MCP Client
Invoke Tools"] G --> H["Script
Append result
to messages"] H --> C D -->|No| I["Final LLM
response"]
| Operation | Schritte | Zweck |
|---|---|---|
| Tool-Erkennung | Tools auflisten (Quelle) → Transformation → LLM-Aktivität | Rufe das Tool-Manifest vom MCP-Server ab und registriere es beim LLM. |
| Tool-Aufruf | Transformation (Quelle) → Tools aufrufen (Ziel) | Führe das vom LLM ausgewählte Tool aus und erfasse das Ergebnis. |
Teil 1: Konfiguriere die MCP Client-Verbindung
-
Öffne im Projekt-Designer die Projekt-Endpunkte und -Connectoren-Registerkarte der Design-Komponentenpalette.
-
Klicke unter Verfügbare Endpunkte auf MCP Client, um die verfügbaren Aktivitätstypen anzuzeigen.
-
Klicke auf Neuen Endpunkt hinzufügen, um eine neue Verbindung zu erstellen. Der Verbindungskonfigurationsbildschirm wird geöffnet.
-
Gib einen Verbindungsnamen ein. Der Name muss eindeutig im Projekt sein und darf kein
/oder:enthalten. -
Gib in MCP-Server-URL die vollständige Endpunkt-URL des MCP-Servers ein, einschließlich Protokoll und Pfad. Beispiel:
https://api.example.com/mcp. -
Wähle unter Authentifizierungsmechanismus die Option, die dem MCP-Server entspricht:
- Keine Authentifizierung: Es sind keine Anmeldedaten erforderlich.
- Zugriffstoken: Gib ein vom MCP-Server oder seinem Dienstanbieter ausgegebenes Bearer-Token ein.
- Authorization Code Grant: Wähle eine in App-Registrierungen konfigurierte OAuth-Anwendung aus und klicke auf Mit OAuth anmelden. Informationen zu den Anforderungen finden Sie in den 3LO-Voraussetzungen. Agent-Version 10.83 / 11.21 oder später ist erforderlich.
-
(Optional) Klicke auf Optionale Einstellungen, um zusätzliche Einstellungen zu konfigurieren:
- Protokollversion: Wähle die MCP-Protokollversion. Der Standard (
2025-06-18) wird empfohlen, es sei denn, der MCP-Server erfordert eine bestimmte Version. - Timeout (in Millisekunden): Erhöhe diesen Wert, wenn der MCP-Server langsam reagiert. Der Standard ist
30000(30 Sekunden). - Benutzerdefinierte Request-Header: Füge alle Header hinzu, die der Server bei jeder Anfrage benötigt.
- Protokollversion: Wähle die MCP-Protokollversion. Der Standard (
-
Klicken Sie auf Test, um die Verbindung zu überprüfen. Ein erfolgreiches Test lädt auch die neueste Connector-Version in die Agentgruppe herunter, die der aktuellen Umgebung zugewiesen ist.
-
Klicken Sie auf Save Changes.
Hinweis
Wenn Sie die Verbindung testen, speichert der Connector alle Session-IDs, die der MCP-Server in den Antwortheadern zurückgibt, und fügt sie automatisch in alle nachfolgenden Anfragen ein. Sie müssen die Session-ID nicht als benutzerdefinierten Request-Header hinzufügen.
Part 2: Tool-Manifest abrufen
Die List Tools-Aktivität ruft alle Tools ab, die derzeit auf dem MCP-Server registriert sind. Jeder Tool-Eintrag enthält seinen Namen, eine Beschreibung und ein Eingabeschema. Führen Sie diesen Vorgang vor dem ersten LLM-Aufruf in einem Workflow oder am Anfang jeder Sitzung aus, wenn sich der Tool-Bestand des Servers dynamisch ändert.
-
Ziehen Sie den Aktivitätstyp List Tools aus der Design-Komponentenpalette in eine Drop-Zone auf der Design-Canvas. Eine neue Operation wird erstellt.
-
Doppelklicken Sie auf die Aktivität, um ihre Konfiguration zu öffnen.
-
Geben Sie im Feld Name einen Namen für die Aktivität ein (z. B.
MCP - List Tools). -
Klicken Sie auf Next, um zu Schritt 2 zu gehen, wo das vom MCP-Server zurückgegebene Antworschema angezeigt wird. Klicken Sie auf Refresh, wenn das Schema nicht angezeigt wird.
-
Klicken Sie auf Finished.
-
Fügen Sie eine Transformation rechts neben der List Tools-Aktivität in derselben Operation hinzu. Die Transformation ordnet die MCP-Tool-Definitionen dem Format zu, das das LLM erwartet. Siehe Part 3 für die Zuordnungsdetails.
Part 3: Tool-Manifest dem LLM-Format zuordnen
Die List Tools-Antwort enthält ein tools-Array. Jeder Eintrag enthält die folgenden Felder:
| MCP-Feld | Typ | Beschreibung |
|---|---|---|
name |
String | Der eindeutige Bezeichner des Tools, der in tool_calls-Antworten verwendet und als Eingabe für die Invoke Tools-Aktivität verwendet wird. |
description |
String | Eine verständliche Beschreibung, die das LLM verwendet, um zu entscheiden, wann das Tool aufgerufen werden soll. |
inputSchema |
Object | Ein JSON-Schema-Objekt, das die erforderlichen und optionalen Parameter des Tools beschreibt. |
Die meisten LLM-APIs, einschließlich OpenAI Chat Completions und Azure OpenAI, erwarten Tools, die als Funktionsschemata übergeben werden:
{
"type": "function",
"function": {
"name": "<tool name>",
"description": "<tool description>",
"parameters": { "<inputSchema contents>" }
}
}
Ordnen Sie in der Transformation nach List Tools die Felder name, description und inputSchema den entsprechenden Feldern im Request-Schema des LLM zu. Wenn Sie einen LLM-Connector verwenden (z. B. OpenAI oder Amazon Bedrock), der eine Register Tools-Aktivität bereitstellt, platzieren Sie diese Aktivität rechts neben der Transformation als Ziel der Operation.
Wenn die Operation ausgeführt wird, speichert Jitterbit die registrierten Tool-Schemata im Speicher auf dem privaten Agent. Jede Operation, die nach dieser verkettet werden soll, hat automatisch Zugriff auf diese Schemata, wenn sie das LLM aufruft. Sie müssen die Register Tools-Antwort nicht erfassen oder die Tool-Definitionen explizit an die nachfolgende Prompt-Operation übergeben. Dieser speicherinterne Speicher ist eine Private-Agent-Funktion, weshalb ein privater Agent erforderlich ist, um die Register Tools-Aktivität zu verwenden.
Hinweis
Die obige Private-Agent-Anforderung gilt für die klassische Register Tools-Aktivität, die Tool-Schemata im Agent-Speicher hält. Die neueren Aktivitäten Register Tools V2 und Register MCP Server Tools des OpenAI-Connectors (zusammen mit der Prompt V2-Aktivität verwendet) unterstützen auch Cloud-Agentgruppen: Aktivieren Sie Store chat context across operations in der OpenAI-Verbindung, um die registrierten Tools und die Konversation über Operationen hinweg beizubehalten, die dieselbe chatId gemeinsam nutzen.
Tipp
Pro Workflow-Ausführung ist nur eine Register Tools-Operation erforderlich. Die Prompt-Operation benötigt kein Tool-Manifest in ihrer Anfrage. Jitterbit stellt die gespeicherten Schemata aus dem Agent-Speicher automatisch bereit.
Wenn Sie das LLM mit dem HTTP v2 Connector aufrufen, fügen Sie das serialisierte Tool-Array im Feld tools des LLM-Request-Body ein. Speichern Sie das Ergebnis als Projektvariable (z. B. mcp_tools_json), damit es in jedem LLM-Request wiederverwendet werden kann, ohne List Tools erneut aufzurufen. Informationen zur Konstruktion des LLM-Request-Body und zur Einrichtung des HTTP v2-Aufrufs finden Sie unter REST-API mit dem HTTP v2 Connector aufrufen.
Teil 4: Ein Tool auf dem MCP-Server aufrufen
Wenn das LLM eine tool_calls-Antwort zurückgibt, extrahieren Sie den Tool-Namen und die Argumente und führen Sie das Tool dann mit der Aktivität Invoke Tools aus.
Tool Call aus der LLM-Antwort extrahieren
Fügen Sie nach dem LLM-Aufruf einen Skriptschritt hinzu, um die Antwort zu lesen und die Tool-Call-Variablen zu setzen:
$tool_call_id = TrimChars(GetJSONString($jitterbit.response,
"/choices/0/message/tool_calls/0/id"), "\"");
$function_name = TrimChars(GetJSONString($jitterbit.response,
"/choices/0/message/tool_calls/0/function/name"), "\"");
$function_args = GetJSONString($jitterbit.response,
"/choices/0/message/tool_calls/0/function/arguments");
function_name muss exakt dem name-Wert entsprechen, der von List Tools zurückgegeben und auf dem MCP-Server definiert wurde. function_args ist ein JSON-String mit den vom LLM ausgewählten Parameterwerten. Parsen Sie ihn mit JSONParser, um einzelne Werte zu extrahieren, bevor Sie diese an die Transformation im nächsten Schritt übergeben.
Mehrere Tool Calls verarbeiten
Das obige Skript liest tool_calls/0, den ersten Tool Call in der Antwort. Ein LLM kann mehrere Tool Calls in einer einzelnen Antwort zurückgeben (parallele Tool Calls), und alle Calls nach dem ersten werden von diesem Skript ignoriert. Um jeden Call zu verarbeiten, führen Sie einen der folgenden Schritte durch:
- Deaktivieren Sie parallele Tool Calls im LLM-Request, sodass das Modell höchstens einen Call pro Antwort zurückgibt. Für die OpenAI und Azure OpenAI Chat Completions APIs setzen Sie
parallel_tool_callsim Request-Body auffalse. - Durchlaufen Sie das
tool_calls-Array, rufen Sie das Tool auf und fügen Sie für jeden Eintrag einetool-Resultat-Nachricht an, bevor der nächste LLM-Aufruf erfolgt. Verwenden SieGetJSONStringmit einem inkrementellen Index (z. B.tool_calls/1/...), um jeden Call zu lesen, und geben Sie einetool-Nachricht protool_call_idzurück. Die LLM-API erfordert für jedetool_call_idin der Assistant-Nachricht eine entsprechendetool-Resultat-Nachricht.
Aktivität „Invoke Tools" konfigurieren
-
Ziehen Sie den Aktivitätstyp Invoke Tools aus der Design-Komponentenpalette in eine Drop Zone auf der Design-Canvas.
-
Doppelklicken Sie auf die Aktivität, um ihre Konfiguration zu öffnen.
-
Geben Sie im Feld Name einen Namen für die Aktivität ein (z. B.
MCP - Invoke Tool). -
Wählen Sie unter Choose tool die Methode zur Angabe des Tools:
- Inform tool name manually: Geben Sie
[function_name]im Feld Tool name ein. Dies übergibt zur Laufzeit die Variable, die den vom LLM ausgewählten Tool-Namen enthält, und ermöglicht einer einzelnen Aktivitätsinstanz, ein beliebiges Tool auf dem MCP-Server aufzurufen. - Select tool from list: Wählen Sie zur Entwurfszeit ein spezifisches Tool aus der Liste. Verwenden Sie diesen Ansatz, wenn der Vorgang einem bekannten Tool gewidmet ist.
- Inform tool name manually: Geben Sie
-
Klicken Sie auf Next, um das Datenschema für das ausgewählte Tool zu überprüfen, und klicken Sie dann auf Finished.
-
Fügen Sie eine Transformation links der Aktivität Invoke Tools hinzu. Die Transformation ordnet die aus
function_argsextrahierten Argumentwerte den Eingabefeldern zu, die iminputSchemades Tools definiert sind. Das Schema ist spezifisch für das ausgewählte Tool und steht in Schritt 2 der Aktivität zur Verfügung.
Tool-Resultat erfassen
Nachdem die Aktivität Invoke Tools ausgeführt wurde, ist die Antwort des MCP-Servers über das Datenschema der Aktivität verfügbar. Fügen Sie einen Skriptschritt oder eine Transformation nach der Aktivität hinzu, um das Tool-Resultat function_resp zuzuweisen. Übergeben Sie function_resp an den Nachrichtenbauschritt in LLM-Tool-Calling-Schleife implementieren, um das Resultat zur Konversation hinzuzufügen und den nächsten LLM-Aufruf auszulösen.
Hinweis
Wenn das Tool-Resultat strukturierte Daten sind (z. B. ein JSON-Objekt), serialisieren Sie diese vor der Zuweisung zu function_resp zu einem String. Das Feld content der tool-Rollen-Nachricht in der LLM-API erfordert einen String-Wert.
Integration überprüfen
-
Stellen Sie die Tool Discovery-Operation bereit und führen Sie sie aus. Bestätigen Sie in den Operationslogs, dass die List Tools-Aktivität ein nicht leeres Manifest zurückgegeben hat. Verwenden Sie
WriteToOperationLog, um Toolnamen zu protokollieren und zu überprüfen, dass die erwarteten Tools aufgelistet sind. -
Führen Sie einen Test-LLM-Aufruf mit dem registrierten Tool-Manifest durch. Senden Sie eine Benutzernachricht, die eindeutig einem der registrierten Tools entspricht. Bestätigen Sie in den Logs, dass die LLM-Antwort einen
tool_calls-Eintrag enthält und dassfunction_nameeinem Toolnamen aus dem Manifest entspricht. -
Stellen Sie die Tool Invocation-Operation bereit und führen Sie sie aus, wobei
function_nameundfunction_argsauf einen gültigen Tool-Aufruf gesetzt sind. Überprüfen Sie in den Logs, dass die Invoke Tools-Aktivität abgeschlossen wurde und dassfunction_respdie erwartete Ausgabe vom MCP-Server enthält. -
Falls die Invoke Tools-Aktivität mit einem Schemafehler fehlschlägt, klicken Sie auf Refresh in Schritt 2 der Aktivität, um das Schema vom MCP-Server neu zu generieren, und überprüfen Sie dann die Transformationszuordnung.
-
Wenn das LLM ein Tool auswählt, das auf dem MCP-Server nicht verfügbar ist (beispielsweise aufgrund einer Namensabweichung), gibt die Invoke Tools-Aktivität einen Fehler zurück. Aktivieren Sie Continue on error in der Aktivitätskonfiguration, um den Fehler zu protokollieren, ohne die Operation zu stoppen, und geben Sie dann eine aussagekräftige Fehlermeldung an das LLM als Tool-Ergebnis zurück, damit das Modell entsprechend reagieren kann.