Hermes n8n MCP
Hermes n8n MCP Plus
用于从 Hermes Agent 管理 n8n 的本地 stdio MCP 桥接器——现已支持写入工具。
这是 CyberSamuraiX/hermes-n8n-mcp 的一个分支,在原有只读/运维工具集的基础上扩展了 create_workflow、update_workflow 和 delete_workflow。它让 Hermes 拥有完整的 n8n 工作流管理能力,同时无需将 n8n 暴露到公网,也无需在 Hermes 配置中存放 API 密钥。
功能
暴露以下 MCP 工具:
health— 检查 n8n API 可达性及可选的 Docker 容器状态list_workflows— 列出工作流,可按激活状态过滤get_workflow— 检查单个工作流,含敏感字段的字段会被脱敏find_workflows— 搜索工作流元数据list_executions— 列出最近的执行记录get_execution— 检查单次执行;默认不返回负载数据recent_failures— 最近的失败/错误执行export_workflow— 获取脱敏后的工作流 JSON,用于备份/审查activate_workflow— 按 ID 激活工作流deactivate_workflow— 按 ID 停用工作流container_logs— 可选的 Docker 日志,带行级脱敏create_workflow— 从 JSON 定义创建工作流。默认试运行。update_workflow— 按 ID 修补现有工作流(名称、节点、连接、设置、标签)。应用前先预览当前状态。默认试运行。delete_workflow— 按 ID 永久删除工作流。删除前先预览导出备份。默认试运行。
所有三个写入工具都需要显式传入 confirm=true 参数才会真正执行变更。以 confirm=false(默认值)调用时,它们只返回将要发生什么的预览,不会发起任何改变 n8n 的 API 调用。
Related MCP server: n8n-ops-mcp
安全态势
仅 stdio。无 HTTP 服务器。无公开端口。
API 密钥从环境变量或本地 dotenv 文件加载。
.env已被 gitignore。示例配置使用
REPLACE_ME,绝不使用真实密钥。工具响应会脱敏明显的凭据、令牌、密钥、密码和授权字段。
执行负载数据在
get_execution中默认禁用。工作流激活/停用、创建、更新和删除都是生产级变更操作。请像对待上了膛的武器一样对待它们。
写入工具默认试运行预览;除非调用方显式传入
confirm=true,否则不会创建、修补或删除任何内容。delete_workflow在确认删除执行前,始终先获取工作流的导出/备份预览。
要求
Python 3.10+
启用了原生 MCP 的 Hermes Agent
n8n API 密钥
运行 Hermes 的机器可访问 n8n,通常为
http://127.0.0.1:5678
关键依赖锁定:mcp==1.29.0
官方 mcp PyPI 包于 2026-07-28 发布了破坏性变更的 v2.0.0,完全移除了 mcp.server.fastmcp(重命名为 MCPServer,移动了模块路径,将 httpx 换成了 httpx2 等)。如果 requirements.txt 使用宽松约束(如 mcp>=1.29.0),pip install 会解析到 2.0.0,服务器将在导入时崩溃并报错:
ModuleNotFoundError: No module named 'mcp.server.fastmcp'本仓库将 mcp==1.29.0(v2 之前最后一个稳定版本)锁定为硬性固定版本,而非下限。在代码库迁移到 v2 MCPServer API 之前,不要放宽此约束。如果你看到上述错误,请检查 pip show mcp——如果报告版本为 2.0.0 或更高,请运行:
pip uninstall -y mcp
pip install "mcp==1.29.0"安装
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.txt在继续之前,请验证安装是否正确落在预期的 SDK 版本上:
pip show mcp
python -c "from mcp.server.fastmcp import FastMCP; print('OK')"存储你的 n8n 密钥
手动版本:
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/env在本地替换 REPLACE_ME。不要提交真实文件。
本分支的工具还直接从环境中读取 N8N_API_KEY / N8N_API_URL,而不仅仅从 dotenv 文件读取,因此你也可以选择使用 ${N8N_API_KEY} 插值直接从 ~/.hermes/config.yaml 注入——见下文。
Hermes 配置
在 ~/.hermes/config.yaml 的 mcp_servers 下添加此项。如果原始的 n8n 桥接器已注册,请将其作为第二个独立条目(n8n_plus)添加,而不是替换它——这样可以保留一个安全的只读回退方案:
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"缩进很重要。n8n: 和 n8n_plus: 必须位于同一缩进级别,直接放在 mcp_servers: 之下,中间不能有其他顶级键打断该块。在重新加载前,请验证文件能正确解析:
python3 -c "import yaml; d = yaml.safe_load(open('/Users/admin/.hermes/config.yaml')); print(list(d.get('mcp_servers', {}).keys()))"然后在 Hermes 中重新加载 MCP:
/reload-mcp或从 shell 执行:
hermes mcp test n8n_plus工具以服务器名称前缀注册,例如 mcp__n8n_plus__create_workflow、mcp__n8n_plus__health,与原始桥接器的 mcp__n8n__* 工具区分开来(如果两者并行运行的话)。
在 Hermes 之外进行冒烟测试
. .venv/bin/activate
python -m py_compile server.py
python -c "import server; print('imported OK')"
hermes mcp test n8n_plus如果 import server 挂起或抛出 ModuleNotFoundError: No module named 'mcp.server.fastmcp',请重新检查上面的 mcp==1.29.0 锁定——这几乎总是依赖版本问题,而不是代码问题。
使用写入工具
所有三个写入工具都遵循相同的默认试运行模式。create_workflow 的示例流程:
Call mcp__n8n_plus__create_workflow with workflow={"name": "test", "nodes": [], "connections": {}} and confirm=false.返回预览,不进行任何变更:
{
"ok": false,
"error": "Dry run only. Set confirm=true to create the workflow.",
"workflow_preview": { "name": "test", "nodes": [], "connections": {} }
}当预览看起来正确后,使用 confirm=true 重新运行以实际创建。同样的模式适用于 update_workflow(预览当前状态和提议的补丁)和 delete_workflow(删除前预览导出备份)。
任何新环境的推荐测试顺序:先 create_workflow,然后 list_workflows 确认已创建,接着 update_workflow,最后 delete_workflow——每一步都使用一次性工作流,并在 n8n UI 中逐步验证。
Docker 日志
container_logs 通过 shell 调用 Docker。如果运行 Hermes 的用户无法访问 Docker,请设置:
N8N_MCP_ALLOW_DOCKER_LOGS=false其余 API 工具仍可正常工作。
生产使用注意事项
将 n8n 绑定到回环地址,置于反向代理之后。
不要通过 Caddy、nginx 或 Docker 端口暴露此 MCP 桥接器。
如果 n8n API 密钥曾出现在聊天日志、终端、CI 输出、截图或问题跟踪器中,请轮换密钥。
在变更工作流之前先备份。
update_workflow和delete_workflow在确认前都会预览状态,但在传入confirm=true之前,请务必自行检查预览。未经针对
MCPServerv2 API 的测试,切勿放宽requirements.txt中的mcp==1.29.0锁定。
路线图
待 v2 API 稳定且本分支的工具集验证兼容后,从
FastMCP(v1.x)迁移到MCPServer(v2.x)。考虑添加
run_workflow作为第四个写入工具,用于手动触发执行。
许可证
MIT。参见 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