mcpField
A
Automatelab N8n

Automatelab N8n

本地服务
github.com/ratamaha-git版本控制156 天前更新

关于 Automatelab N8n

Automatelab N8n 是面向 n8n 用户和 AI Agent 的 MCP 服务,可生成工作流、检查问题并诊断执行记录。它侧重首轮导入正确性与故障排查,也能连接实时 n8n 实例管理工作流。

主要功能

  1. 01生成含 LangChain AI Agent 的工作流 JSON
  2. 02检查工作流错误与警告
  3. 03逐节点诊断执行记录
  4. 04比较工作流并重放节点
  5. 05创建自定义 TypeScript 节点
  6. 06管理实时实例中的工作流

适用场景

  1. 01从自然语言描述生成可导入的 n8n 工作流
  2. 02定位执行中未输出数据或表达式错误的节点
  3. 03检查弃用节点类型和无效连接
  4. 04列出、创建或启用实时实例中的工作流

MCP 相关

该 MCP 服务向 MCP 客户端提供工作流生成、检查、执行诊断等工具。配置 N8N_API_URL 和 N8N_API_KEY 后,还可通过 REST 工具操作实时 n8n 实例。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"n8n-mcp-ratamaha-git": {
"command": "npx",
"args": [
"-y",
"@automatelab/n8n-mcp"
]
}
}
}
启动命令npx -y @automatelab/n8n-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@automatelab/n8n-mcp0.3.0

工具

9

收录的工具列表 · 更新于 2 周前

参数类型必填说明
nodeNamestring否可选的 PascalCase 节点类名称,例如 'DiscordRateLimited'。如果省略,则根据描述推导。
descriptionstring是对节点应执行操作的纯英文描述。

详细介绍

n8n-mcp

一个用于 n8n 的 MCP 服务,为 Claude、Cursor 和其他 AI Agent 提供生成工作流、检查代码、诊断执行失败和操作运行中的 n8n 实例的工具。

npm License CI

我们为何打造它

我们每天都在 AutomateLab 内使用 n8n,却总是遇到相同的大模型问题:工作流 JSON 虽然可以导入,却在运行时失败;AI Agent 集群连接类型错误;执行过程悄悄丢弃条目,却无从查找原因。把整个 n8n 目录都塞进上下文也无济于事——这些故障模式太隐蔽了(typeVersion 不匹配、IF v1 架构、导入后失效的凭据)。

因此,我们打造了一个小巧、专注的服务:将检查工具能够捕获的故障模式、生成器必须遵循的集群拓扑,以及 Agent 无法独自完成的诊断封装起来。 如需查看历史发布演示,了解最初的九种工具及其示例输出,请参阅 automatelab.tech 上的发布文章。

与众不同之处

其他 n8n MCP 服务(尤其是 czlonkowski/n8n-mcp)侧重于覆盖范围——提供 20 多种工具和涵盖所有 n8n 节点的索引语料库。它们在这一领域独树一帜。

本服务是面向 n8n 的调试与首次运行正确性 MCP:

  • execution_explain 是我们的切入点。粘贴执行 JSON,即可获取逐节点分析结果:哪些节点返回了 0 个条目,哪些节点包含未解析的 ={{ ... }} 表达式,以及附有具体提示的错误消息。其他 MCP 服务都无法很好地做到这一点;它直击 n8n 社区最主要的调试痛点(节点间的数据悄然丢失)。
  • workflow_generate 对 AI Agent 拓扑有明确规范——会生成正确的 LangChain 集群,并使用 ai_languageModel / ai_memory / ai_tool 连接(子节点向上连接到 Agent,而不是通过 main 连接)。可在 n8n 1.x 中顺利导入。
  • workflow_lint 可捕获那些悄无声息的失败:已弃用的节点类型(Function → Code、spreadsheetFile → convertToFile)、AI Agent 缺少语言模型、IF v1 架构、Webhook 缺少 webhookId,以及所有连接类型(而不仅仅是 main)中的断开连接。
  • 5 种 REST 工具(需配置 N8N_API_URL + N8N_API_KEY)可用于列出、获取、创建和激活工作流,以及获取执行记录——这样,检查和解释工具就能针对运行中的工作流执行,而不仅限于聊天中粘贴的 JSON。

此外,还配有一个 Agent Skill,用于指导模型何时使用哪种工具,以及从何处加载更深入的上下文(拆分到 references/ 中,避免提示词过于臃肿)。

工具

工具名称遵循点号表示法,并构成可导航的树:node.*、workflow.*、execution.*。每个工具都声明了 outputSchema(以便调用方对响应进行类型检查)和 MCP annotations(只读 / 破坏性 / 幂等 / 开放世界提示)。

无状态(无需运行中的 n8n 实例):

工具用途
workflow_generate纯英文描述 → 工作流 JSON。可识别 AI Agent 意图。
node_scaffold描述 → 用于自定义 n8n 包的单个 INodeType TypeScript 文件。
workflow_lint工作流 JSON → 错误和警告列表(20 多条规则)。
workflow_diff两个工作流 → 语义差异(新增 / 移除 / 修改的节点、连接、设置)。
execution_explain失败的执行 JSON → 按节点提供诊断和提示。
execution_replay工作流 + 节点 → 自包含的重放工作流,仅测试该节点。
execution_timeline执行 JSON → 按节点排列的时间线表格(开始时间、持续时间、输入 / 输出项、错误)。

实时实例(需要 N8N_API_URL + N8N_API_KEY 环境变量):

工具用途
workflow_list对工作流进行分页;可按 active / 标签 / 名称筛选。
workflow_get按 id 获取工作流。
workflow_createPOST 一个工作流。会剔除只读字段。
workflow_activate切换 active 状态。
execution_list浏览执行记录;设置 includeData: true 可获取完整内容。

v0.5.0 变更。 新增三个工具:workflow_diff、execution_replay、execution_timeline。Lint 新增 10 条规则(速率限制、凭据漂移、表达式过时、代码沙箱、webhook 测试路径、active 工作流中的 manualTrigger、DST 排程风险、已禁用但仍连接、空 Set、HTTP 方法 / 请求体不匹配)。新增运行时策略环境变量:N8N_MCP_READ_ONLY、N8N_MCP_DISABLED_TOOLS、N8N_MCP_ALLOWED_WORKFLOW_IDS、N8N_MCP_ALLOWED_TAGS。新增 DXT 打包文件 + Dockerfile + Render/Railway/Fly 部署配置。

v0.4.0 破坏性变更。 工具已从 n8n_*(snake_case)重命名为点号表示法。请更新所有引用旧名称的提示词、Agent 技能或脚本。

运行时策略(v0.5+)

无需分叉即可限制服务。启动前设置以下环境变量:

环境变量效果
N8N_MCP_READ_ONLY=1禁用 workflow_create、workflow_activate、node_scaffold。
N8N_MCP_DISABLED_TOOLS=workflow_create,workflow_activate完全跳过这些工具的注册。
N8N_MCP_ALLOWED_WORKFLOW_IDS=abc,defREST 工具拒绝操作列表以外的任何工作流。
N8N_MCP_ALLOWED_TAGS=prod,stagingworkflow_list 仅筛选至少带有一个标签的工作流。

将 MCP 交给初级 Agent 使用,或将其接入面向客户的助手时,此功能很有用。

部署

  • Claude Desktop 一键部署:从 dxt/manifest.json 构建 .dxt 包(参见 dxt/README.md)。
  • Docker:docker build -t n8n-mcp . && docker run --rm -i -e N8N_API_URL=... -e N8N_API_KEY=... n8n-mcp。
  • Render:放入 render.yaml,然后点击“New from Blueprint”。
  • Railway:railway.toml — 在仓库根目录运行 railway up。
  • Fly.io:fly.toml — 运行 fly launch --copy-config。

安装

需要 Node 20 或更高版本。

作为 CLI 工具
npm install -g @automatelab/n8n-mcp
作为 GitHub Action

使用 n8n MCP GitHub Action,在 CI/CD 工作流中检查工作流、诊断执行记录并生成工作流 JSON:

- uses: ratamaha-git/n8n-mcp@v1
  with:
    command: 'lint'
    workflow-json: ${{ env.WORKFLOW_JSON }}

示例和发布详情请参阅 ACTION.md 和 GITHUB-ACTION-SETUP.md。

配置 MCP 宿主

Cursor(~/.cursor/mcp.json)或 Claude Desktop(claude_desktop_config.json):

{
  "mcpServers": {
    "n8n": {
      "command": "npx",
      "args": ["-y", "@automatelab/n8n-mcp"],
      "env": {
        "N8N_API_URL": "https://your-n8n.example.com",
        "N8N_API_KEY": "n8n_..."
      }
    }
  }
}

env 块为可选项——4 个无状态工具无需此配置即可运行。前往 n8n 获取 API 密钥:Settings → API → Create API key。

重启 MCP 宿主。MCP 面板中会显示 12 个点号表示法工具(workflow.*、node.*、execution.*)。

工具示例

workflow_generate

使用 workflow_generate 构建:Stripe webhook → Slack 消息 + 在 Google Sheets 中新增一行。

返回可供 n8n「Import from File」对话框导入的工作流 JSON。

execution_explain

这是 n8n 中一次失败的执行。为什么 Slack 节点没有触发? [粘贴 JSON]

返回:

WARNING [Filter] Returned 0 items. Downstream nodes will not execute.
  hint: Common causes: (1) IF/Switch routed to the other branch — check `parameters.conditions`. (2) Filter/Set node dropped everything — inspect its output explicitly.

INFO [Last node executed was "Filter". If the workflow stopped here unexpectedly, check its output items below.]
workflow_lint

检查此工作流 JSON。 [粘贴 JSON]

返回:

ERROR [AI Agent] AI Agent has no `ai_languageModel` sub-node connected. Attach a chat model (e.g. lmChatOpenAi).
WARNING [Webhook] Webhook node has no `webhookId`. n8n auto-generates one on import, so the production URL will change.
WARNING [LegacyFunction] Node type "n8n-nodes-base.function" is deprecated. Use "n8n-nodes-base.code".

或 no issues found。

示例

examples/ 目录中提供了两个可直接导入的工作流:

  • workflow-stripe-to-slack.json - Stripe webhook 将事件分发到 Slack 和 Google Sheets。
  • workflow-rss-to-discord.json - RSS 源触发器将新条目发布到 Discord 频道。

通过 n8n 的 Import from File 对话框导入任一工作流。

开发

git clone https://github.com/ratamaha-git/n8n-mcp
cd n8n-mcp
npm install
npm run build
npm run smoke

npm run smoke 使用 --smoke 标志启动服务,列出已注册的工具后退出,不会绑定 stdio。适用于 CI 或首次运行时的基本检查。

许可证

MIT。请参阅 LICENSE。


由 AutomateLab 开发。

维护与验证

请参阅维护指南,了解解释限制、当前工具名称(如适用)以及可复现的验证方法。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。