Zum Inhalt springen

Verbindung zu einem MCP-Server über den MCP-Client-Connector in Jitterbit Studio

Einführung

Das Model Context Protocol (MCP) ist ein offener Standard zur Verbindung von LLMs mit externen Tools und Datenquellen. Ein MCP-Server stellt eine Sammlung von benannten Tools bereit, die jeweils ein definiertes Eingabeschema haben. Ein MCP-Client entdeckt diese Tools, übergibt deren Schemata als verfügbare Funktionen an ein LLM und führt die Toolaufrufe aus, die das LLM auswählt.

Der MCP-Client-Connector bietet zwei Aktivitäten, die den Toolaufrufzyklus abdecken:

  • Tools auflisten: Ruft das Tool-Manifest vom MCP-Server ab. Verwenden Sie dies, um die verfügbaren Tools des LLM vor jedem Gespräch zu befüllen.
  • Tools aufrufen: Führt ein bestimmtes Tool auf dem MCP-Server mit den Argumenten aus, die das LLM ausgewählt hat. Verwenden Sie dies, nachdem das LLM eine tool_calls-Antwort zurückgegeben hat.

Dieser Leitfaden behandelt die Einrichtung der Verbindung, den Abruf des Tool-Manifests und den Toolaufruf auf Connector-Ebene. Für die vollständige mehrstufige Schleife, die diese Schritte mit einem LLM verbindet, siehe Implementieren einer LLM-Toolaufrufschleife. Für eine vollständige Agentenführung, die diese Komponenten zu einem funktionierenden KI-Agenten zusammenstellt, siehe Wie man einen KI-Agenten mit MCP erstellt.

Entwurfsmuster

Der MCP-Toolausführungszyklus verwendet zwei Operationen. Eine Tool Discovery-Operation ruft das Tool-Manifest einmal (oder zu Beginn jeder Sitzung) ab und registriert die verfügbaren Tools beim LLM. Eine Tool Invocation-Operation wird jedes Mal ausgeführt, wenn das LLM ein Tool auswählt, und gibt das Ergebnis an das LLM zurück.

flowchart LR A["MCP Client
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 Discovery Tools auflisten (Quelle) → Transformation → LLM-Aktivität Ruft das Tool-Manifest vom MCP-Server ab und registriert es beim LLM.
Tool Invocation Transformation (Quelle) → Tools aufrufen (Ziel) Führt das Tool aus, das das LLM ausgewählt hat, und erfasst das Ergebnis.

Teil 1: Konfigurieren der MCP-Clientverbindung

  1. Öffnen Sie im Projekt-Designer die Projektendpunkte und -verbindungen-Registerkarte der Design-Komponentenpalette.

  2. Klicken Sie unter Verfügbare Endpunkte auf MCP-Client, um ihn zu erweitern und die verfügbaren Aktivitätstypen anzuzeigen.

  3. Klicken Sie auf Neuen Endpunkt hinzufügen, um eine neue Verbindung zu erstellen. Der Bildschirm zur Konfiguration der Verbindung öffnet sich.

  4. Geben Sie einen Verbindungsnamen ein. Der Name muss innerhalb des Projekts eindeutig sein und darf keine / oder : enthalten.

  5. Geben Sie in MCP-Server-URL die vollständige Endpunkt-URL des MCP-Servers ein, einschließlich des Protokolls und des Pfads. Zum Beispiel https://api.example.com/mcp.

  6. Wählen Sie unter Authentifizierungsmechanismus die Option aus, die mit dem MCP-Server übereinstimmt:

    • Keine Authentifizierung: Es sind keine Anmeldeinformationen erforderlich.
    • Zugriffstoken: Geben Sie ein Bearer-Token ein, das vom MCP-Server oder dessen Dienstanbieter ausgegeben wurde.
    • Authorization Code Grant: Wählen Sie eine in App-Registrierungen konfigurierte OAuth-Anwendung aus und klicken Sie auf Mit OAuth anmelden. Siehe die 3LO-Voraussetzungen für die Einrichtung. Agent-Version 10.83 / 11.21 oder höher ist erforderlich.
  7. (Optional) Klicken Sie auf Optionale Einstellungen, um zusätzliche Einstellungen zu konfigurieren:

    • Protokollversion: Wählen Sie die MCP-Protokollversion aus. Die Standardversion (2025-06-18) wird empfohlen, es sei denn, der MCP-Server erfordert eine spezifische Version.
    • Zeitüberschreitung (in Millisekunden): Erhöhen Sie diesen Wert, wenn der MCP-Server langsam reagiert. Der Standardwert beträgt 30000 (30 Sekunden).
    • Benutzerdefinierte Anforderungsheader: Fügen Sie alle Header hinzu, die der Server bei jeder Anfrage benötigt.
  8. Klicken Sie auf Testen, um die Verbindung zu überprüfen. Ein erfolgreicher Test lädt auch die neueste Connector-Version in die Agentengruppe herunter, die der aktuellen Umgebung zugewiesen ist.

  9. Klicken Sie auf Änderungen speichern.

Hinweis

Wenn Sie die Verbindung testen, speichert der Connector jede Sitzungs-ID, die der MCP-Server in den Antwort-Headern zurückgibt, und fügt sie automatisch in alle nachfolgenden Anfragen ein. Sie müssen die Sitzungs-ID nicht als benutzerdefinierten Anforderungsheader hinzufügen.

Teil 2: Abrufen des Tool-Manifests

Die List Tools-Aktivität ruft alle derzeit auf dem MCP-Server registrierten Tools ab. Jeder Tool-Eintrag enthält seinen Namen, eine Beschreibung und das Eingabeschema. Führen Sie diese Operation vor dem ersten LLM-Aufruf in einem Workflow aus oder zu Beginn jeder Sitzung, wenn sich das Tool-Set des Servers dynamisch ändert.

  1. Ziehen Sie den Aktivitätstyp List Tools aus der Designkomponenten-Palette in eine Ablagezone auf der Designfläche. Eine neue Operation wird erstellt.

  2. Doppelklicken Sie auf die Aktivität, um deren Konfiguration zu öffnen.

  3. Geben Sie im Feld Name einen Namen für die Aktivität ein (zum Beispiel MCP - List Tools).

  4. Klicken Sie auf Next, um zu Schritt 2 zu gelangen, wo das Antwortschema angezeigt wird, das vom MCP-Server zurückgegeben wird. Klicken Sie auf Refresh, wenn das Schema nicht angezeigt wird.

  5. Klicken Sie auf Finished.

  6. Fügen Sie eine Transformation rechts von der List Tools-Aktivität in derselben Operation hinzu. Die Transformation ordnet die MCP-Tool-Definitionen dem Format zu, das vom LLM erwartet wird. Siehe Teil 3 für die Mapping-Details.

Teil 3: Das Tool-Manifest in das LLM-Format umwandeln

Die List Tools-Antwort enthält ein tools-Array. Jeder Eintrag enthält die folgenden Felder:

MCP-Feld Typ Beschreibung
name String Die eindeutige Kennung des Tools, die in den tool_calls-Antworten verwendet wird und als Eingabe für die Invoke Tools-Aktivität dient.
description String Eine Beschreibung in einfacher Sprache, 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, dass Tools als Funktionsschemata übergeben werden:

{
  "type": "function",
  "function": {
    "name": "<tool name>",
    "description": "<tool description>",
    "parameters": { "<inputSchema contents>" }
  }
}

In der Transformation nach List Tools ordnen Sie name, description und inputSchema den entsprechenden Feldern im Anfrage-Schema des LLM zu. Wenn Sie einen LLM-Connector verwenden (zum Beispiel OpenAI oder Amazon Bedrock), der eine Register Tools-Aktivität bereitstellt, platzieren Sie diese Aktivität rechts von der Transformation als Ziel der Operation.

Wenn die Operation ausgeführt wird, speichert Jitterbit die registrierten Tool-Schemas im Speicher des privaten Agents. Jede Operation, die nach dieser ausgeführt wird, hat automatisch Zugriff auf diese Schemas, wenn sie das LLM aufruft. Es ist nicht erforderlich, die Antwort von Register Tools zu erfassen oder die Tool-Definitionen explizit an die nachfolgende Prompt-Operation zu übergeben. Diese Speicherung im Arbeitsspeicher ist eine Fähigkeit des privaten Agents, weshalb ein privater Agent erforderlich ist, um die Aktivität Register Tools zu verwenden.

Hinweis

Die oben genannte Anforderung an den privaten Agenten gilt für die klassische Aktivität Register Tools, die Tool-Schemas im Agentenspeicher hält. Die neueren Aktivitäten des OpenAI-Connectors Register Tools V2 und Register MCP Server Tools (die mit der Aktivität Prompt V2 verwendet werden) unterstützen ebenfalls Cloud-Agentengruppen: Aktivieren Sie Store chat context across operations in der OpenAI-Verbindung, um die registrierten Tools und Gespräche über Operationen hinweg zu behalten, die dieselbe chatId teilen.

Tipp

Es ist nur eine Register Tools-Operation pro Workflow-Ausführung erforderlich. Die Prompt-Operation benötigt kein Tool-Manifest, das in ihrer Anfrage enthalten ist. Jitterbit stellt die gespeicherten Schemas automatisch aus dem Agentenspeicher zur Verfügung.

Wenn Sie das LLM mit dem HTTP v2 connector aufrufen, fügen Sie das serialisierte Tool-Array im Feld tools des LLM-Anforderungskörpers ein. Speichern Sie das Ergebnis als Projektvariable (zum Beispiel mcp_tools_json), damit es in jeder LLM-Anfrage wiederverwendet werden kann, ohne List Tools erneut aufzurufen. Für den Aufbau des LLM-Anforderungskörpers und die Einrichtung des HTTP v2-Aufrufs siehe Call a REST API using the HTTP v2 connector.

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 mit der Aktivität Invoke Tools aus.

Extrahieren Sie den Tool-Aufruf aus der LLM-Antwort

Nach dem LLM-Aufruf fügen Sie einen Skriptschritt hinzu, um die Antwort zu lesen und die Tool-Aufrufvariablen festzulegen:

$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 genau mit dem name-Wert übereinstimmen, der von List Tools zurückgegeben und auf dem MCP-Server definiert ist. function_args ist ein JSON-String, der die Parameterwerte enthält, die das LLM ausgewählt hat. Analysieren Sie ihn mit JSONParser, um einzelne Werte zu extrahieren, bevor Sie sie im nächsten Schritt an die Transformation übergeben.

Umgang mit mehreren Tool-Aufrufen

Das obige Skript liest tool_calls/0, den ersten Tool-Aufruf in der Antwort. Ein LLM kann mehrere Tool-Aufrufe in einer einzigen Antwort zurückgeben (parallele Tool-Aufrufe), und alle Aufrufe nach dem ersten werden von diesem Skript ignoriert. Um jeden Aufruf zu behandeln, tun Sie eines der Folgenden:

  • Deaktivieren Sie parallele Tool-Aufrufe in der LLM-Anfrage, sodass das Modell höchstens einen Aufruf pro Antwort zurückgibt. Für die OpenAI- und Azure OpenAI Chat Completions APIs setzen Sie parallel_tool_calls im Anfragekörper auf false.
  • Iterieren Sie über das tool_calls-Array, rufen Sie das Tool auf und fügen Sie für jeden Eintrag vor dem nächsten LLM-Aufruf eine tool-Ergebnisnachricht hinzu. Verwenden Sie GetJSONString mit einem inkrementierenden Index (zum Beispiel tool_calls/1/...), um jeden Aufruf zu lesen, und geben Sie eine tool-Nachricht pro tool_call_id zurück. Die LLM-API erfordert ein passendes tool-Ergebnis für jede tool_call_id in der Assistentennachricht.

Konfigurieren Sie die Aktivität "Invoke Tools"

  1. Ziehen Sie den Aktivitätstyp Invoke Tools aus der Designkomponentenpalette in eine Ablagezone auf der Designfläche.

  2. Doppelklicken Sie auf die Aktivität, um deren Konfiguration zu öffnen.

  3. Geben Sie im Feld Name einen Namen für die Aktivität ein (zum Beispiel MCP - Invoke Tool).

  4. Wählen Sie unter Choose tool die Methode zur Angabe des Tools:

    • Toolnamen manuell angeben: Geben Sie [function_name] im Feld Tool name ein. Dies übergibt die Variable, die den vom LLM ausgewählten Toolnamen zur Laufzeit enthält, sodass eine einzelne Aktivitätsinstanz jedes Tool auf dem MCP-Server aufrufen kann.
    • Tool aus der Liste auswählen: Wählen Sie zur Entwurfszeit ein bestimmtes Tool aus der Liste aus. Verwenden Sie diesen Ansatz, wenn die Operation einem bekannten Tool gewidmet ist.
  5. Klicken Sie auf Weiter, um das Datenschema für das ausgewählte Tool zu überprüfen, und klicken Sie dann auf Fertig.

  6. Fügen Sie eine Transformation links von der Invoke Tools-Aktivität hinzu. Die Transformation ordnet die Argumentwerte, die aus function_args extrahiert wurden, den Eingabefeldern im inputSchema des Tools zu. Das Schema ist spezifisch für das ausgewählte Tool und ist in Schritt 2 der Aktivität verfügbar.

Erfassen des Tool-Ergebnisses

Nachdem die Invoke Tools-Aktivität ausgeführt wurde, ist die Antwort des MCP-Servers über das Datenschema der Aktivität verfügbar. Fügen Sie nach der Aktivität einen Skriptschritt oder eine Transformation hinzu, um das Tool-Ergebnis function_resp zuzuweisen. Übergeben Sie function_resp an den Schritt zur Nachrichtenbildung in Implementieren einer LLM-Tool-Aufrufschleife, um das Ergebnis zur Konversation hinzuzufügen und den nächsten LLM-Aufruf auszulösen.

Hinweis

Wenn das Tool-Ergebnis strukturierte Daten (zum Beispiel ein JSON-Objekt) sind, serialisieren Sie es in einen String, bevor Sie es function_resp zuweisen. Das content-Feld der tool-Rolle in der LLM-API erfordert einen String-Wert.

Überprüfen der Integration

  1. Bereitstellen und Ausführen der Tool Discovery-Operation. Bestätigen Sie in den Betriebsprotokollen, dass die List Tools-Aktivität ein nicht leeres Manifest zurückgegeben hat. Verwenden Sie WriteToOperationLog, um Tool-Namen zu protokollieren und zu überprüfen, dass die erwarteten Tools aufgelistet sind.

  2. Führen Sie einen Test-LLM-Aufruf mit dem registrierten Tool-Manifest durch. Senden Sie eine Benutzer-Nachricht, die eindeutig einem der registrierten Tools entspricht. Bestätigen Sie in den Protokollen, dass die LLM-Antwort einen tool_calls-Eintrag enthält und dass function_name mit einem Tool-Namen aus dem Manifest übereinstimmt.

  3. Bereitstellen und Ausführen der Tool Invocation-Operation mit function_name und function_args, die auf einen gültigen Tool-Aufruf gesetzt sind. Überprüfen Sie in den Protokollen, dass die Invoke Tools-Aktivität abgeschlossen wurde und dass function_resp die erwartete Ausgabe vom MCP-Server enthält.

  4. Wenn die Invoke Tools-Aktivität mit einem Schemafehler fehlschlägt, klicken Sie auf Aktualisieren in Schritt 2 der Aktivität, um das Schema vom MCP-Server neu zu generieren, und überprüfen Sie dann die Transformationszuordnung.

  5. Wenn das LLM ein Tool auswählt, das auf dem MCP-Server nicht verfügbar ist (zum Beispiel aufgrund eines Namenskonflikts), gibt die Invoke Tools-Aktivität einen Fehler zurück. Aktivieren Sie Fortfahren bei Fehlern in der Aktivitätskonfiguration, um den Fehler zu protokollieren, ohne den Vorgang zu stoppen, und geben Sie dann eine beschreibende Fehlermeldung als Tool-Ergebnis an das LLM zurück, damit das Modell angemessen reagieren kann.