工作流验证服务器

n8n MCP Server 是一个智能工作流验证服务器,通过六层验证和双LLM架构预防错误,适用于n8n工作流开发。

  • by Zevas1993
  • TypeScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 Zevas1993/One-Stop-Shop-N8N-MCP

使用说明

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可以使用的工具:

  1. 获取管道代码:

    curl http://localhost:3001/api/openwebui-pipeline
    
  2. 在Open WebUI中安装:

    • 转到“管理”>“管道”
    • 创建新管道
    • 粘贴生成的代码
  3. 开始聊天:

    • “列出我的工作流”
    • “创建发送到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 是正确的。


📜 许可证

麻省理工学院


🙏 积分