Hermes n8n MCP
Hermes n8n MCP Plus
Lokale stdio-MCP-Brücke zur Verwaltung von n8n von Hermes Agent aus — jetzt mit Schreib-Tools.
Dies ist ein Fork von CyberSamuraiX/hermes-n8n-mcp, erweitert um create_workflow, update_workflow und delete_workflow auf Basis des ursprünglichen schreibgeschützten/Operations-Toolsets. Es bietet Hermes die vollständige n8n-Workflow-Verwaltung, ohne n8n über das öffentliche Internet zugänglich zu machen und ohne API-Schlüssel in deiner Hermes-Konfiguration abzulegen.
Was es tut
Stellt diese MCP-Tools bereit:
health— prüft die Erreichbarkeit der n8n-API und optional den Docker-Containerstatuslist_workflows— listet Workflows auf, optional nach aktivem Status gefiltertget_workflow— inspiziert einen Workflow, wobei Felder mit Geheimnissen geschwärzt sindfind_workflows— durchsucht Workflow-Metadatenlist_executions— listet letzte Ausführungen aufget_execution— inspiziert eine Ausführung; die Payload-Daten sind standardmäßig deaktiviertrecent_failures— letzte fehlgeschlagene/fehlerhafte Ausführungenexport_workflow— ruft geschwärztes Workflow-JSON für Backup/Überprüfung abactivate_workflow— aktiviert einen Workflow per IDdeactivate_workflow— deaktiviert einen Workflow per IDcontainer_logs— optionale Docker-Logs mit zeilenweiser Schwärzungcreate_workflow— erstellt einen neuen Workflow aus einer JSON-Definition. Standardmäßig als Dry-run.update_workflow— patcht einen bestehenden Workflow per ID (Name, Knoten, Verbindungen, Einstellungen, Tags). Zeigt den aktuellen Zustand vor dem Anwenden an. Standardmäßig als Dry-run.delete_workflow— löscht einen Workflow dauerhaft per ID. Zeigt vor dem Löschen eine Export-Backup-Vorschau an. Standardmäßig als Dry-run.
Alle drei Schreib-Tools erfordern ein explizites confirm=true-Argument, um tatsächlich etwas zu verändern. Bei Aufruf mit confirm=false (Standard) geben sie eine Vorschau dessen zurück, was passieren würde, und tätigen keinen API-Aufruf, der n8n verändert.
Related MCP server: n8n-ops-mcp
Sicherheitsvorkehrungen
Nur Stdio. Kein HTTP-Server. Kein öffentlicher Port.
Der API-Schlüssel wird aus der Umgebung oder aus einer lokalen dotenv-Datei geladen.
.envist gitignoriert.Die Beispielkonfiguration verwendet
REPLACE_ME, niemals einen echten Schlüssel.Tool-Antworten schwärzen offensichtliche Credential-, Token-, Secret-, Passwort- und Autorisierungsfelder.
Die Payload-Daten der Ausführung sind in
get_executionstandardmäßig deaktiviert.Workflow-Aktivierung/-Deaktivierung, Erstellen, Aktualisieren und Löschen sind allesamt Produktionsänderungen. Behandle sie wie geladene Waffen.
Schreib-Tools führen standardmäßig nur eine Dry-run-Vorschau aus; nichts wird erstellt, gepatcht oder gelöscht, außer der Aufrufer übergibt explizit
confirm=true.delete_workflowruft vor einem bestätigten Löschen immer eine Export-/Backup-Vorschau des Workflows ab.
Voraussetzungen
Python 3.10+
Hermes Agent mit aktiviertem nativem MCP
n8n-API-Schlüssel
n8n erreichbar von der Maschine, auf der Hermes läuft, normalerweise
http://127.0.0.1:5678
Kritische Abhängigkeits-Fixierung: mcp==1.29.0
Das offizielle PyPI-Paket mcp hat am 2026-07-28 ein abwärtsinkompatibles Release v2.0.0 veröffentlicht, das mcp.server.fastmcp vollständig entfernt hat (umbenannt in MCPServer, Modulpfade verschoben, httpx durch httpx2 ersetzt und mehr). Wenn requirements.txt eine lockere Einschränkung wie mcp>=1.29.0 verwendet, wird pip install auf 2.0.0 aufgelöst und der Server stürzt beim Import ab mit:
ModuleNotFoundError: No module named 'mcp.server.fastmcp'Dieses Repository fixiert mcp==1.29.0 (die letzte stabile Version vor v2) als feste Version, nicht als Untergrenze. Lockere diese Einschränkung nicht, bis die Codebasis auf die v2-MCPServer-API migriert ist. Falls du den obigen Fehler jemals siehst, überprüfe pip show mcp — wenn es 2.0.0 oder neuer meldet, führe aus:
pip uninstall -y mcp
pip install "mcp==1.29.0"Installation
git clone https://github.com/csenguttuvan/hermes-n8n-mcp-plus.git
cd hermes-n8n-mcp-plus
python3 -m venv .venv
. .venv/bin/activate
pip install -r requirements.txtVerifiziere, dass die Installation auf der richtigen SDK-Version gelandet ist, bevor du weitermachst:
pip show mcp
python -c "from mcp.server.fastmcp import FastMCP; print('OK')"Speichere deinen n8n-Schlüssel
Manuelle Version:
install -d -m 700 ~/.config/n8n-mcp-plus
cat > ~/.config/n8n-mcp-plus/env <<'EOF'
N8N_BASE_URL=http://127.0.0.1:5678
N8N_API_KEY=REPLACE_ME
N8N_MCP_TIMEOUT=30
N8N_CONTAINER_NAME=n8n
N8N_MCP_ALLOW_DOCKER_LOGS=true
EOF
chmod 600 ~/.config/n8n-mcp-plus/envErsetze REPLACE_ME lokal. Committe die echte Datei nicht.
Die Tools dieses Forks lesen N8N_API_KEY / N8N_API_URL auch direkt aus der Umgebung, nicht nur aus einer dotenv-Datei, sodass du sie alternativ direkt aus ~/.hermes/config.yaml per ${N8N_API_KEY}-Interpolation injizieren kannst — siehe unten.
Hermes-Konfiguration
Füge dies unter mcp_servers zu ~/.hermes/config.yaml hinzu. Wenn die ursprüngliche n8n-Brücke bereits registriert ist, füge dies als zweiten, separaten Eintrag (n8n_plus) hinzu, anstatt es zu ersetzen — so bleibt ein sicherer schreibgeschützter Fallback verfügbar:
mcp_servers:
n8n:
command: /Users/admin/.hermes/mcp-installs/n8n/.venv/bin/python
args:
- /Users/admin/.hermes/mcp-installs/n8n/server.py
enabled: true
env:
N8N_API_KEY: "${N8N_API_KEY}"
N8N_API_URL: "http://localhost:5678/api/v1"
n8n_plus:
command: /Users/admin/projects/hermes-n8n-mcp-plus/.venv/bin/python
args:
- /Users/admin/projects/hermes-n8n-mcp-plus/server.py
enabled: true
env:
N8N_API_KEY: "${N8N_API_KEY}"
N8N_API_URL: "http://localhost:5678/api/v1"Die Einrückung ist wichtig. Sowohl n8n: als auch n8n_plus: müssen auf derselben Einrückungsebene direkt unter mcp_servers: stehen, ohne dass ein anderer Top-Level-Schlüssel den Block dazwischen unterbricht. Prüfe, dass die Datei korrekt geparst wird, bevor du neu lädst:
python3 -c "import yaml; d = yaml.safe_load(open('/Users/admin/.hermes/config.yaml')); print(list(d.get('mcp_servers', {}).keys()))"Lade dann MCP in Hermes neu:
/reload-mcpOder über die Shell:
hermes mcp test n8n_plusDie Tools registrieren sich mit dem Servernamen-Präfix, z. B. mcp__n8n_plus__create_workflow, mcp__n8n_plus__health, unterscheidbar von den mcp__n8n__*-Tools der ursprünglichen Brücke, falls beide parallel laufen.
Rauchtest außerhalb von Hermes
. .venv/bin/activate
python -m py_compile server.py
python -c "import server; print('imported OK')"
hermes mcp test n8n_plusWenn import server hängt oder einen ModuleNotFoundError: No module named 'mcp.server.fastmcp' wirft, überprüfe die mcp==1.29.0-Fixierung oben — das ist fast immer ein Problem der Abhängigkeitsversion, kein Code-Problem.
Verwendung der Schreib-Tools
Alle drei Schreib-Tools folgen demselben Muster, bei dem standardmäßig ein Dry-run ausgeführt wird. Beispielablauf für create_workflow:
Call mcp__n8n_plus__create_workflow with workflow={"name": "test", "nodes": [], "connections": {}} and confirm=false.Gibt eine Vorschau zurück, keine Änderung:
{
"ok": false,
"error": "Dry run only. Set confirm=true to create the workflow.",
"workflow_preview": { "name": "test", "nodes": [], "connections": {} }
}Sobald die Vorschau richtig aussieht, führe sie erneut mit confirm=true aus, um den Workflow tatsächlich zu erstellen. Dasselbe Muster gilt für update_workflow (zeigt den aktuellen Zustand und den vorgeschlagenen Patch an) und delete_workflow (zeigt vor dem Löschen eine Export-Backup-Vorschau an).
Empfohlene Testreihenfolge für jede neue Umgebung: create_workflow, dann list_workflows, um zu bestätigen, dass es angekommen ist, dann update_workflow, dann delete_workflow — jeweils mit einem Wegwerf-Workflow und in jedem Schritt gegen die n8n-Oberfläche verifiziert.
Docker-Logs
container_logs ruft Docker über die Shell auf. Wenn der Benutzer, der Hermes ausführt, keinen Zugriff auf Docker hat, setze:
N8N_MCP_ALLOW_DOCKER_LOGS=falseDie übrigen API-Tools funktionieren weiterhin.
Hinweise für den Produktionseinsatz
Halte n8n hinter deinem Reverse-Proxy an Loopback gebunden.
Stelle diese MCP-Brücke nicht über Caddy-, nginx- oder Docker-Ports bereit.
Rotiere n8n-API-Schlüssel, falls sie jemals in Chat-Logs, Terminals, CI-Ausgaben, Screenshots oder Issue-Trackern auftauchen.
Sichere Workflows, bevor du sie veränderst.
update_workflowunddelete_workflowzeigen beide den Zustand vor der Bestätigung an, aber überprüfe die Vorschau immer selbst, bevor duconfirm=trueübergibst.Lockere die
mcp==1.29.0-Fixierung inrequirements.txtniemals, ohne zuvor gegen dieMCPServer-v2-API zu testen.
Roadmap
Migriere von
FastMCP(v1.x) zuMCPServer(v2.x), sobald die v2-API stabil ist und das Toolset dieses Forks als kompatibel verifiziert wurde.Ziehe in Betracht,
run_workflowals viertes Schreib-Tool für manuelle Auslöser hinzuzufügen.
Lizenz
MIT. Siehe LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Open-source Zapier/n8n alternative as an MCP server: agents build, run and debug your workflows.
n8n MCP — query your own n8n instance (BYO).
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Security scanner for n8n workflows + live MCP Trust-Check. 18 rules, OWASP mapped. Paid x402 API.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server for n8n workflow automation, enabling management of workflows, executions, credentials, tags, users, and webhooks via an MCP-compatible client.MIT
- AlicenseAqualityBmaintenanceProvides ops-focused n8n tools for MCP-compatible agents, enabling listing, inspecting, triggering, validating, managing tags, running security audits, and safely editing n8n workflows with auto-backup and confirm gates.2016 npm1MIT
- AlicenseBqualityDmaintenanceMCP server for managing n8n workflows and executions. Enables listing, activating, deactivating, and executing workflows, as well as monitoring executions and instance health.9MIT
- AlicenseAqualityDmaintenanceFree and open-source MCP server for managing n8n workflows, executions, and tags via n8n's API. Enables workflow creation, activation, debugging, and deletion from any MCP client.122MIT