使用说明
n8n MCP服务器
无状态•已验证•实时同步•LLM供电
使用智能MCP服务器转换您的n8n工作流开发,该服务器可以在错误发生之前防止错误。
🚀 v3.0中的新增功能
| 特性 | 描述 |
|---|---|
| 实时节点同步 | 节点目录直接从您的n8n实例同步-无需预构建数据库 |
| 防弹验证 | 6层验证在工作流达到n8n之前阻止其中断 |
| 双LLM架构 | 嵌入模型+为您的硬件优化的生成模型 |
| 无状态设计 | n8n是事实的来源-MCP中没有工作流存储 |
| 双界面 | 人工智能代理的MCP(Claude)+人类的HTTP(Open WebUI) |
⚡ 快速开始
一个命令启动
# Clone and enter directory
git clone https://github.com/Zevas1993/One-Stop-Shop-N8N-MCP.git
cd One-Stop-Shop-N8N-MCP
# Install dependencies
npm install
# Start the server (smart launcher handles everything)
npm run go
Windows用户: 只需双击 Start-MCP-Server.bat
智能启动器会自动执行以下操作:
- ✅ 检查Node.js版本
- ✅ 使用预构建的dist/(如果可用)
- ✅ 如果需要,回退到ts节点
- ✅ 设置合理的默认值
Node.js要求
| 用例 | 最低Node.js |
|---|---|
运行时 (预制 nodes.db, npx n8n-mcp) |
节点18+ |
发展 (npm install 通过devDeps, npm run rebuild) |
节点20.19+ |
运行时使用双数据库适配器(better-splite3→ sql.js回退)以实现通用兼容性。
配置Claude桌面
添加 claude_desktop_config.json:
{
"mcpServers": {
"n8n-mcp": {
"command": "node",
"args": ["C:/path/to/One-Stop-Shop-N8N-MCP/start.js"],
"env": {
"N8N_API_URL": "http://localhost:5678",
"N8N_API_KEY": "your-api-key"
}
}
}
}
选项2:Docker Compose(全栈)
# Clone the repo
git clone https://github.com/Zevas1993/One-Stop-Shop-N8N-MCP.git
cd One-Stop-Shop-N8N-MCP
# Configure
cp .env.example .env
# Edit .env with your N8N_API_KEY
# Start everything (n8n + MCP + Ollama + Open WebUI)
docker compose up -d
访问权限:
- n8n: http://localhost:5678
- 开放网络用户界面: http://localhost:3000
- MCP API: http://localhost:3001
选项3:Docker(仅限MCP)
# Build
docker build -t n8n-mcp:latest .
# Run in MCP mode (for Claude Desktop)
docker run -it --rm \
-e N8N_API_URL=http://host.docker.internal:5678 \
-e N8N_API_KEY=your-key \
n8n-mcp:latest
# Run in HTTP mode (for Open WebUI)
docker run -d -p 3001:3001 \
-e MCP_MODE=http \
-e N8N_API_URL=http://your-n8n:5678 \
-e N8N_API_KEY=your-key \
n8n-mcp:latest
🛡️ 验证网关
每个工作流都经过 6层验证 在达到n8n之前:
Workflow Input
│
▼
┌─────────────────────┐
│ 1. Schema (Zod) │ ──▶ Structure correct?
├─────────────────────┤
│ 2. Node Existence │ ──▶ Do nodes exist in n8n?
├─────────────────────┤
│ 3. Connections │ ──▶ Are connections valid?
├─────────────────────┤
│ 4. Credentials │ ──▶ Required creds configured?
├─────────────────────┤
│ 5. Semantic (LLM) │ ──▶ Does this make sense?
├─────────────────────┤
│ 6. Dry Run (n8n) │ ──▶ Test in n8n itself
└─────────────────────┘
│
▼
n8n API ✅
结果:无效的工作流将被拒绝,并显示明确的错误消息和修复建议。
🤖 双LLM架构
系统使用 两种特殊型号 针对不同任务进行了优化:
| 型号 | 用途 | 示例 |
|---|---|---|
| 嵌入 | 语义搜索,相似性 | nomic-embed-text, embedding-gemma-300m |
| 生成 | 聊天、验证、建议 | llama3.2:1b/3b, gemma:2b, nemotron-nano-4b |
模型是 根据您的硬件自动选择:
| RAM | CPU内核 | 嵌入模型 | 生成模型 |
|---|---|---|---|
| <4GB | 任意 | 嵌入-地面-300m | 地面:2b |
| 4-8GB | 2-4 | 嵌入式-地面-300m | 骆驼3.2:1b |
| 8-16GB | 4+ | nomic嵌入文本 | llama3.2:3b |
| 16GB+ | 8+ | nomic嵌入文本 | nemotron-nano-4b |
🔧 MCP工具
工作流管理
| 工具 | 说明 |
|---|---|
n8n_create_workflow |
创建经过验证的工作流 |
n8n_update_workflow |
更新验证 |
n8n_delete_workflow |
删除工作流 |
n8n_list_workflows |
列出所有工作流 |
n8n_activate_workflow |
激活/停用 |
验证
| 工具 | 说明 |
|---|---|
n8n_validate_workflow |
检查而不创建 |
执行
| 工具 | 说明 |
|---|---|
n8n_execute_workflow |
运行工作流 |
n8n_get_execution |
获取执行详细信息 |
n8n_list_executions |
列出最近执行的死刑 |
节点发现
| 工具 | 说明 |
|---|---|
n8n_search_nodes |
搜索可用节点 |
n8n_get_node_info |
获取节点详细信息 |
n8n_list_trigger_nodes |
列表触发器 |
n8n_list_ai_nodes |
列出AI/LangChain节点 |
系统
| 工具 | 说明 |
|---|---|
n8n_status |
系统状态 |
n8n_resync_catalog |
强制刷新节点目录 |
n8n_list_credentials |
列出可用凭据 |
🌐 打开WebUI集成
MCP服务器公开了Open WebUI可以使用的工具:
-
获取管道代码:
curl http://localhost:3001/api/openwebui-pipeline -
在Open WebUI中安装:
- 转到“管理”>“管道”
- 创建新管道
- 粘贴生成的代码
-
开始聊天:
- “列出我的工作流”
- “创建发送到Slack的webhook”
- “我可以将哪些节点用于电子邮件?”
📁 建筑
src/
├── core/ # NEW: Core architecture
│ ├── index.ts # Core orchestrator
│ ├── node-catalog.ts # Live sync from n8n
│ ├── validation-gateway.ts # 6-layer validation
│ ├── n8n-connector.ts # Stateless passthrough
│ └── llm-brain.ts # Dual LLM integration
├── interfaces/ # NEW: Dual interface
│ ├── mcp-interface.ts # For AI agents
│ └── openwebui-interface.ts # For humans
├── ai/ # Existing LLM support
│ └── hardware-detector.ts # Auto-detects optimal models
├── services/ # Existing services
└── main.ts # NEW: Unified entry point
🔐 环境变量
| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
N8N_API_URL |
是的 | http://localhost:5678 |
n8n实例URL |
N8N_API_KEY |
是* | - | n8n API密钥(*对于大多数功能是必需的) |
OLLAMA_URL |
没有 | http://localhost:11434 |
Ollama服务器URL |
MCP_MODE |
没有 | stdio |
stdio 对于克劳德来说, http 对于Open WebUI |
PORT |
没有 | 3001 |
HTTP服务器端口 |
AUTH_TOKEN |
无 | - | HTTP API身份验证 |
ENABLE_DRY_RUN |
没有 | true |
启用n8n模拟运行验证 |
🐛 故障排除
“找不到节点类型”
n8n实例中不存在该节点。使用 n8n_search_nodes 以查找可用节点。
“层验证失败:dryRun”
n8n拒绝了工作流。有关详细信息,请查看错误消息。
“LLM不可用”
奥利玛不在跑,也无法联系到。启动Ollama或禁用语义验证。
“拒绝连接n8n”
检查n8n是否正在运行 N8N_API_URL 是正确的。
📜 许可证
麻省理工学院
🙏 积分
- 原始MCP服务器 罗穆尔德 Czlonkowski
- 重构为v3.0 MCP服务器架构
