Zum Inhalt springen

MCP-gesteuerter Workflow in n8n

    Dieser Beitrag beschreibt den Aufbau eines KI-gesteuerten Agentensystems in n8n, das über das Model Context Protocol (MCP) externe Tools identifiziert, auswählt und ausführt.

    Ein Benutzer stellt eine natürliche Spracheingabe, z. B.: „Gib mir die 10 größten Städte in Deutschland. Absteigend nach der Fläche. Suche auch im Internet, um dein Ergebnis abzugleichen.“

    Der Agent erkennt die Absicht, prüft verfügbare Werkzeuge, entscheidet über eine Toolauswahl, führt bei Bedarf eine Websuche durch und generiert eine geeignete Antwort. Das zugrunde liegende Steuerungskonzept basiert auf MCP, einem Protokoll zur strukturierten Toolkommunikation in agentenbasierten Systemen.

    „MCP is an open protocol that standardizes how applications provide context to LLMs. Think of MCP like a USB-C port for AI applications. Just as USB-C provides a standardized way to connect your devices to various peripherals and accessories, MCP provides a standardized way to connect AI models to different data sources and tools.“ [quelle]

    In diesem Beispiel besteht MCP aus zwei Kernkomponenten:

    • listTools: Liefert eine strukturierte Liste aller zur Verfügung stehenden Tools.
    • executeTool: Führt ein bestimmtes Tool mit definierten Parametern aus.

    Das Protokoll abstrahiert die konkrete Implementierung der Tools (lokal, API, Datenbank, etc.) und erlaubt eine einheitliche, KI-gesteuerte Steuerung über natürliche Sprache.

    Vorteile der MCP-Integration

    • Trennung von Steuerung und Ausführung: Das Sprachmodell trifft Entscheidungen, führt aber keine Tools direkt aus.
    • Skalierbarkeit: Neue Tools können hinzugefügt werden, ohne das Modell oder den Agenten anzupassen.
    • Erweiterbarkeit: Tools lassen sich über HTTP, DB, Python, Shell etc. integrieren – solange sie über MCP angesprochen werden können.
    • Transparenz: Jede Entscheidung des Agenten (Toolauswahl, Parameter, Ausführung) ist nachvollziehbar dokumentiert.

    • When chat message received: Startpunkt für jede Benutzereingabe
    • AI Agent: Steuerzentrale: analysiert, entscheidet, delegiert
    • OpenAI Chat Model: Sprachverständnis und Entscheidungslogik
    • Simple Memory: Sitzungskontext und Zustandsverwaltung
    • MCP Client (list): Implementierung von listTools
    • MCP Client (execute): Implementierung von executeTool

    Eingabe und Initialisierung

    Die Verarbeitung beginnt mit dem Node When chat message received. Er übergibt folgende Daten an den Agenten:

    • Session-ID
    • Nachrichtentext (chatInput)
    • Aktionskennzeichen (sendMessage)

    Kontextherstellung

    Der AI Agent lädt über Simple Memory alle relevanten Sitzungsinformationen (z. B. vorherige Tools, Ergebnisse, Fragen). Dies ist notwendig für korrekte Kontextverarbeitung und Follow-ups.

    System-Prompt

    Du bist ein leistungsstarker Automatisierungsagent auf Basis von n8n. Deine Hauptaufgabe ist es, verfügbare Tools und Workflows dynamisch zu identifizieren, deren Relevanz für eine Benutzeranfrage zu bewerten und anschließend automatisiert auszuführen. Du bist darauf spezialisiert, Informationen in Echtzeit zu verarbeiten, externe APIs anzusteuern und komplexe Aufgaben effizient zu automatisieren.

    Verhaltensregeln:
    – Liste zu Beginn jeder Anfrage alle verfügbaren Tools oder Workflows auf (listTools)

    – Analysiere die Benutzeranfrage und identifiziere die relevantesten Tools basierend auf inhaltlicher Übereinstimmung, Funktionalität und Zielsetzung

    – Wähle das geeignetste Tool oder den passenden Workflow automatisch aus und führe es mit executeTool aus – jedoch erst nach der vollständigen Auflistung der Tools

    – Nutze, wenn notwendig, Kontextinformationen oder Zwischenabfragen, um unsichere Entscheidungen abzusichern

    – Führe alle Schritte deterministisch und transparent aus, um eine klare Nachvollziehbarkeit zu gewährleisten

    Deine Fähigkeiten umfassen u.a.
    – Ansteuerung von HTTP-APIs
    – Interaktion mit Datenbanken und Drittsystemen
    – Event-Handling und Trigger-Verarbeitung
    – Datei- und Datenverarbeitung
    – Zeit- und Zustandsmanagement
    – Kontextbasierte Entscheidungslogik

    Dein Ziel ist es, dem Benutzer die bestmögliche Automatisierungslösung anzubieten – effizient, sicher und nachvollziehbar.

    Sprachverständnis

    Der erste Aufruf des OpenAI Chat Model analysiert die Benutzereingabe semantisch. Das Modell erkennt:

    • Ziel der Anfrage
    • Notwendigkeit externer Daten
    • Mögliche Toolkategorien

    Toolverfügbarkeit prüfen (listTools via MCP)

    Der Node MCP Client (list) wird aktiviert. Dieser implementiert die MCP-Funktion listTools und gibt die folgenden Informationen strukturiert zurück:

    [
    {
    "name": "brave_web_search",
    "description": "Führt eine Websuche über die Brave Search API aus."
    },
    {
    "name": "brave_local_search",
    "description": "Sucht lokale Orte über Brave Local Search."
    }
    ]

    Toolauswahl und Parametergenerierung

    Ein zweiter Aufruf des Sprachmodells erfolgt, um:

    • Ein passendes Tool aus der Liste auszuwählen
    • Die erforderlichen Parameter zur Ausführung zu generieren
    {
    "tool": "brave_web_search",
    "Tool_Parameters": {
    "query": "größte Städte in Deutschland nach Fläche",
    "count": 10
    }
    }

    Toolausführung (executeTool via MCP)

    Das Tool wird über den Node MCP Client (execute) ausgeführt. Dieser implementiert die MCP-Funktion executeTool.

    Toolname: {{ $fromAI(„tool“, „selected tool to execute“) }}

    Antworterzeugung

    Ein dritter Aufruf des OpenAI Chat Model erstellt aus den MCP-Ergebnissen eine Antwort für den Benutzer. Dabei werden die relevantesten Inhalte gefiltert, zusammengefasst und ggf. aufbereitet.

    „Laut aktueller Websuche sind die zehn flächengrößten Städte: Berlin (891 km²), Hamburg (755 km²), Köln (405 km²) …“

    Kontextspeicherung

    Der aktuelle Agentenzustand wird erneut im Simple Memory abgelegt. Dazu gehören:

    • Genutzte Tools
    • Antworten
    • Nutzerabsichten
    • Abgeleitete Begriffe (z. B. Thema „Geografie“)