Repository navigation
n8n
n8n ist im Heimnetz der Automatisierer: Er reagiert auf Ereignisse (neue Datei, Uhrzeit, E-Mail) und verbindet Dienste. MultiGPT und n8n sprechen über MCP in beide Richtungen miteinander:
| Richtung | Wer ruft wen? | Wofür |
|---|---|---|
| A: MultiGPT nutzt n8n | MultiGPT ist MCP-Client, n8n ist MCP-Server („MCP Server Trigger“) | Modelle in MultiGPT rufen n8n-Workflows als Werkzeuge auf (z. B. „Licht aus“, „Termin eintragen“). |
| B: n8n nutzt MultiGPT | n8n ist MCP-Client („MCP Client“ bzw. „MCP Client Tool“), MultiGPT ist MCP-Server | n8n lädt Dateien hoch, startet und überwacht die Indexierung, fragt Modelle, holt PDFs ab. |
Ob beides eingerichtet ist, zeigt der Admin unter Knoten › Integrationen: n8n-MCP-Server (eingerichtet? online?) und API-Keys (aktiv? benutzt?).
n8n-Dokumentation: MCP Server Trigger, MCP Client, MCP Client Tool.
-
In n8n einen Workflow mit dem Knoten MCP Server Trigger anlegen. Daran hängen die Werkzeuge, die MultiGPT nutzen soll (z. B. „Custom n8n Workflow Tool“ oder HTTP Request).
-
Im Trigger Authentication auf „Bearer auth“ stellen und ein Token als Zugangsdaten anlegen. Path bei Bedarf sprechend setzen.
-
Den Workflow veröffentlichen und die Production URL kopieren (die Test-URL gilt nur, solange „Listen for Test Event“ läuft). Der Trigger spricht SSE und Streamable HTTP; MultiGPT nutzt Streamable HTTP.
-
In MultiGPT (Admin → Chat › MCP-Server) einen Server anlegen: Transport HTTP, URL = Production URL, Zugangsdaten = das Token (oder
{"bearer_token": "…"}). Alternativ „Aus JSON importieren“ mit einermcpServers-Konfiguration, z. B.{"mcpServers": {"n8n": {"type": "http", "url": "https://n8n.example/mcp/haus", "headers": {"Authorization": "Bearer …"}}}} -
Jetzt prüfen → Status „online“ und die Werkzeugliste erscheinen. Werkzeuge einstufen (ohne bzw. mit Rückfrage), die Rolle bzw. „MCP“ je Modell freigeben – siehe MCP-Server.
Tipp: Den Server „n8n …“ nennen oder die URL von n8n verwenden; daran erkennt die Seite „Integrationen“ ihn.
-
Key anlegen: In MultiGPT als das Konto, in dessen Namen n8n arbeiten soll, unter
Einstellungen → API-Keys einen Key mit den nötigen Rechten anlegen (oder
sudo mgpt-ctl apikey create …). Nur so viele Rechte wie nötig, ggf. „Nur diese Sammlungen“. Für Verzeichnisquellen muss das Konto Verwalter sein. Siehe API-Keys. - In n8n Zugangsdaten vom Typ Bearer Auth mit dem Key anlegen.
- Knoten wählen:
-
MCP Client (normaler Workflow-Schritt): Server Transport „HTTP Streamable“,
MCP Endpoint URL
https://<hostname>/mcp/, Authentication „Bearer Auth“, dann das Tool wählen (die Liste kommt von MultiGPT) und die Argumente setzen (Input Mode „Manual“ oder „JSON“). Fürget_file: Option Convert to Binary.create_pdf,generate_imageundrun_pythonliefern ihre Dateien direkt im Ergebnis mit (ebenfalls Convert to Binary);chat_idund die Anhang-IDs stehen dann als JSON im letzten Textblock, siehe Was Werkzeuge zurückgeben. - MCP Client Tool (Werkzeuge für einen AI Agent in n8n): gleiche Adresse und Zugangsdaten, Tools to Include auf die benötigten Werkzeuge beschränken.
-
Ältere n8n-Versionen bzw. SSE: Der Knoten „MCP Client Tool“ kennt in Version 1 nur
SSE (Feld SSE Endpoint); in neueren Versionen gibt es unter Server Transport neben
„HTTP Streamable“ (Standard) noch „Server Sent Events (Deprecated)“. Dann als Adresse
https://<hostname>/mcp/sseeintragen, siehe unten.
-
MCP Client (normaler Workflow-Schritt): Server Transport „HTTP Streamable“,
MCP Endpoint URL
- Läuft MultiGPT mit dem selbstsignierten snakeoil-Zertifikat, vertraut n8n ihm nicht. Besser
ein eigenes Zertifikat einspielen (nginx und TLS); sonst dem n8n-Container
das Zertifikat bekannt machen (
NODE_EXTRA_CA_CERTS).
Stand der n8n-Doku und des Quelltexts (Oktober 2026): „MCP Client Tool“ (Knotenversion 1.4) bietet unter Server Transport „HTTP Streamable“ (Standard ab Version 1.2) und „Server Sent Events (Deprecated)“ (Standard in 1.1); Version 1 kennt nur SSE mit dem Feld SSE Endpoint. Authentication: „Bearer Auth“, „Header Auth“, „MCP OAuth2“, „Multiple Headers Auth“ oder „None“. Der Knoten „MCP Client“ hat ebenfalls Server Transport und MCP Endpoint URL.
Wenn „HTTP Streamable“ fehlt oder nicht funktioniert:
| Feld | Wert |
|---|---|
| Server Transport | „Server Sent Events (Deprecated)“ (in Version 1 entfällt das Feld) |
| Endpoint bzw. SSE Endpoint | https://<hostname>/mcp/sse |
| Authentication | „Header Auth“: Name Authorization, Value Bearer mgpt_… – oder „Bearer Auth“ mit dem Key |
Die Seite „API-Keys“ zeigt diese Felder unter SSE (ältere Clients …) mit dem Key zum Kopieren. n8n öffnet den Stream je Ausführung und schließt ihn danach; jeder offene Stream belegt einen Thread in MultiGPT (höchstens 2 je Key, siehe API-Keys). Läuft ein Workflow mit vielen parallelen Agenten auf denselben Key, kann 503 kommen – dann Streamable HTTP oder je Workflow einen eigenen Key nehmen.
Alternativ ohne MCP-Knoten: HTTP Request mit POST https://<hostname>/mcp/, Header
Authorization: Bearer …, Accept: application/json, text/event-stream und als JSON-Body z. B.
{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"run_status","arguments":{"run_id":12}}}.
Ein initialize vorab ist nicht nötig (MultiGPT ist zustandslos).
Rechte: docs.write. Ablauf:
- Local File Trigger (bzw. Trigger des NAS) auf „Datei hinzugefügt“ im Ordner.
-
Read/Write Files from Disk → Datei als Binärdaten; Extract from File bzw. ein
Code-Knoten macht daraus base64 (
$binary.data.data). -
MCP Client → Tool
upload_document, Argumente:{"collection": "Haus", "filename": "{{ $json.fileName }}", "content_base64": "{{ $json.data }}"}. Ergebnis:document_idundrun_id. (Das Hochladen startet die Indexierung schon selbst;reindexbraucht es nur für bereits vorhandene Dokumente.) -
Wait 30 Sekunden → MCP Client →
run_statusmit{"run_id": {{ $json.run_id }}}. -
If
openisttrue→ zurück zu Schritt 4, sonst weiter (z. B. Meldung beidocs_failed > 0).
Dateien, die schon auf dem Server liegen, besser als Verzeichnisquelle einlesen lassen (Beispiel 2) – dann werden sie nicht kopiert.
Rechte: index.control, Konto mit Verwalterrolle.
- Schedule Trigger täglich 02:00.
-
MCP Client →
list_sources→ Split Out übersources. -
MCP Client →
start_scanmit{"source": {{ $json.id }}}(läuft schon ein Lauf, kommt dessen ID zurück,new: false). - Optional wie in Beispiel 1 mit
run_statusbis zum Ende warten und das Ergebnis (files_new,files_changed,docs_failed) per Mail schicken.
Die Quellen lesen sich ohnehin periodisch selbst ein (Intervall je Quelle); der Workflow ist für feste Zeiten oder Abhängigkeiten von anderen Abläufen gedacht.
Rechte: chat.ask, docs.read.
- Schedule Trigger (z. B. montags 07:00).
-
MCP Client →
askmit{"prompt": "Welche Wartungstermine stehen laut Handbüchern diesen Monat an?", "collections": ["Haus"], "model": "gpt-5-mini"}. -
Send Email mit
{{ $json.content[0].text }}als Text; die Quellen stehen instructuredContent.sources, der Chat in MultiGPT unterstructuredContent.chat_url.
Die Antwort ist Modelltext: Nicht ungeprüft als Anweisung weiterverarbeiten (z. B. nicht als Befehl in einen weiteren Knoten geben).
- Ein Key je Workflow bzw. Zweck, mit Namen („n8n NAS-Upload“). Dann zeigt das Audit-Log, wer was tut, und ein Widerruf trifft nur diesen Zweck.
- Kosten von
askundgenerate_imagegehen auf das Konto des Keys und zählen gegen dessen Budget. -
start_scanundlist_sourcesgibt es nur für Verwalter (wie „Jetzt einlesen“ im Admin). - Ein Key mit „Nur diese Sammlungen“ sieht andere Sammlungen nicht, auch nicht beim Suchen.
- Läuft n8n auf demselben Rechner, zählt seine Adresse für die Drosselung je IP; bei vielen Fehlversuchen anderer Programme von dort wird auch n8n kurz gesperrt.
MultiGPT setzt n8n nicht hart voraus und startet auch ohne. Die Übersicht Admin → Knoten › Integrationen zeigt aber deutlich, wenn
- kein n8n-MCP-Server eingerichtet bzw. keiner online ist (Richtung A),
- es keinen aktiven API-Key gibt (Richtung B),
und wie viele Aufrufe in den letzten 24 Stunden kamen.
MultiGPT-Wiki
- Startseite
- Konfiguration (.env)
- nginx und TLS
- Chat-Bedienung (Zitieren, Kontextmenü, Scrollen, Tasten)
- Chat-Einstellungen (Grundregeln, Kreativität, Denktiefe)
- Projekte
- Chats teilen
- Anbieter und Modelle
- MCP-Server
- API-Keys (MultiGPT als MCP-Server)
- n8n
- Bilder erzeugen
- Berechnungen
- Runner (Arbeitsumgebung)
- Blätter und Dokumente (PDF)
- Kosten und Budgets
- mgpt-ctl (Verwaltungsbefehle)
Dokumente (RAG)
Websuche
Projekt