Skip to content

访问 n8n MCP 服务器#

通过 n8n 内置的 MCP 服务器将受支持的 MCP 客户端连接到你的 n8n 工作流。

该服务器允许 Lovable 或 Claude Desktop 等客户端安全连接到 n8n 实例。连接后,这些客户端可以:

  • 在标记为 MCP 可用的工作流中搜索
  • 获取工作流的 metadata 和触发器信息
  • 触发并运行已暴露的工作流

实例级 MCP 访问与 MCP Server Trigger 节点的区别#

实例级 MCP 访问允许你为每个 n8n 实例创建一个连接、使用集中式认证,并选择要启用访问的工作流。已启用的工作流无需为每个工作流单独配置即可被发现和运行。

相比之下,你是在单个工作流内配置 MCP Server Trigger 节点。该节点只暴露该工作流中的工具,适合你希望在一个工作流中打造特定 MCP 服务器行为的场景。

使用实例级 MCP 访问时的关键注意事项#

  • 这不是在 AI 客户端中构建或编辑工作流的方式;编写仍在 n8n 中完成。
  • 它不会对实例中的所有工作流进行默认暴露。你必须先在实例级启用 MCP,然后逐个启用工作流。
  • 它不是按 MCP 客户端范围隔离的。任何已连接的客户端都能看到你为 MCP 访问启用的所有工作流。

启用 MCP 访问#

适用于云端与自托管实例#

  1. 进入 Settings 设置 > Instance-level MCP 实例级 MCP
  2. 切换 Enable MCP access 启用 MCP 访问(需要实例所有者或管理员权限)。

启用 MCP 访问

启用后,你将看到:

  1. 暴露给 MCP 客户端的工作流列表
  2. 已连接的 OAuth 客户端列表
  3. 用于启用/禁用实例级访问的主 MCP 开关
  4. Connection details 连接详情 按钮,显示连接 MCP 客户端的详细说明

MCP 页面内容

禁用方法: 关闭主 MCP 开关。

仅自托管:完全禁用#

要完全移除此功能,请设置环境变量:

N8N_DISABLED_MODULES=mcp

此操作会移除 MCP 端点并隐藏所有相关 UI 元素。

设置 MCP 身份验证#

Connection details 连接详情 弹出菜单提供两种 MCP 客户端的身份验证方式:

  • OAuth2
  • Access Token 访问令牌

MCP 连接菜单

使用 OAuth2#

OAuth 标签页复制你的实例服务器 URL,并用于配置 MCP 客户端。连接后,客户端会将你重定向到 n8n 以授权访问。

撤销客户端访问权限#

要撤销已连接 MCP 客户端的访问权限:

  1. 进入 Settings 设置 > Instance-level MCP 实例级 MCP
  2. 切换到 Connected clients 已连接客户端 标签页。 你应能看到已连接 OAuth 客户端的表格。
  3. 使用每个客户端行中的操作菜单撤销该客户端的访问权限。

撤销客户端访问权限

使用 Access Token#

使用你的实例服务器 URL,以及 Connection details 连接详情 菜单中 Access Token 访问令牌 标签页里的个人 MCP Access Token。

首次访问 MCP Access MCP 访问 页面时,n8n 会自动生成与你账号绑定的个人 MCP Access Token。

Info

请立即复制你的 token。之后再次访问时,你只会看到脱敏后的值,且复制按钮会被禁用。

轮换 token#

如果你丢失了 token 或需要轮换:

  1. 进入 Settings 设置 > Instance-level MCP 实例级 MCP
  2. 点击右上角按钮打开 Connection details 连接详情 菜单。
  3. 切换到 Access Token 访问令牌 标签页。
  4. 点击脱敏 token 值旁的按钮生成新的 token。

    n8n 会在你生成新 token 时撤销旧 token。

  5. 使用新 token 更新所有已连接的 MCP 客户端。

轮换 token

向 MCP 客户端暴露工作流#

工作流可用条件#

要让工作流对 MCP 客户端可用,必须满足以下条件:

  1. 已发布
  2. 包含以下触发器节点之一:
    • Webhook
    • Schedule
    • Chat
    • Form

默认情况下,没有任何工作流对 MCP 客户端可见。你必须显式启用要暴露的每个合格工作流。

在评估工作流可用性时,n8n 只会考虑该工作流的已发布版本。如果你只在草稿版本中添加了支持的触发器节点,在发布该版本前不会被视为可用。

Info

当你取消发布工作流后,n8n 会移除其 MCP 访问权限。再次发布后需要重新启用访问。

启用访问#

选项 1:从 MCP 设置页面启用(n8n v2.2.0 起可用)#

  1. 点击 Enable workflows 启用工作流 按钮(位于工作流表头或空状态区域)。
  2. 按名称或描述搜索目标工作流,并从列表中选择。
  3. 点击 Enable 启用 按钮确认。

选项 2:从工作流编辑器启用#

  1. 打开工作流。
  2. 点击右上角主工作流菜单(...)。
  3. 选择 Settings 设置
  4. 切换 Available in MCP MCP 可用

选项 3:从工作流列表启用#

  1. 进入 Workflows 工作流
  2. 打开某个工作流卡片上的菜单。
  3. 选择 Enable MCP access 启用 MCP 访问

管理访问#

Instance-level MCP 实例级 MCP 设置页面会显示所有可供 MCP 客户端访问的工作流。在该列表中你可以:

  • 直接打开工作流、其所属项目或父文件夹
  • 使用操作菜单撤销访问(或在工作流卡片菜单中使用 Disable MCP access 禁用 MCP 访问
  • 使用操作菜单更新工作流描述(或在工作流编辑器中使用菜单)
  • 使用 Enable workflows 启用工作流 按钮为更多工作流启用访问(n8n v2.2.0 起可用)

工作流描述#

为了帮助 MCP 客户端识别工作流,你可以按以下方式添加自由文本描述:

  1. 选项 1:在 Instance-level MCP 实例级 MCP 页面

    1. 进入 Settings 设置 > Instance-level MCP 实例级 MCP
    2. 确认你处于 Workflows 工作流 标签页。
    3. 使用目标工作流行中的操作菜单,选择 Edit description 编辑描述
    4. 或者,直接点击描述文本以打开编辑对话框。
  2. 选项 2:在工作流编辑器

    1. 打开工作流。
    2. 点击右上角主工作流菜单(...)。
    3. 选择 Edit description 编辑描述

    编辑工作流描述

通过 MCP 客户端执行工作流#

MCP 客户端可以根据你的请求执行可用的工作流。当客户端触发工作流时,它会在 n8n 中照常运行,你可以在 Executions 执行 列表中监控其执行情况。执行完成后,MCP 客户端会检索结果。

提供输入数据#

MCP 客户端通常能够判断工作流需要的输入。如果你的工作流使用 webhook 触发器,并且你发现客户端难以确定正确的输入,我们建议你在工作流描述中提供这些信息。

工作流超时#

n8n 对由 MCP 客户端触发的工作流执行强制设置 5 分钟超时。如果工作流未在规定时间内完成,n8n 会停止执行并向 MCP 客户端返回错误,且会忽略你在工作流设置中为 MCP 触发执行设置的超时。

限制#

  • 如果工作流中包含多个支持的触发器,MCP 客户端可能只能使用其中一个(第一个)来触发工作流。
  • 不支持执行包含多步骤表单或任何类型人类参与交互的工作流。
  • 不支持二进制输入数据。MCP 客户端只能提供基于文本的输入。

示例#

连接 Lovable 到 n8n MCP 服务器#

  1. 在 Lovable 中配置 MCP Server(OAuth)。
    • 进入你的工作区 Settings > Integrations
    • MCP Servers 区域找到 n8n 并点击 Connect
    • 输入你的 n8n 服务器 URL(显示在 MCP Access MCP 访问 页面)。
    • 保存连接。如果成功,n8n 会将你重定向以授权 Lovable。
  2. 验证连接。
    • 连接后,Lovable 可以查询已启用 MCP 访问的工作流。
    • 示例: 让 Lovable 构建一个工作流 UI,列出用户并允许删除。

连接 Claude Desktop 到 n8n MCP 服务器#

使用 OAuth2#
  1. 在 Claude Desktop 中进入 Settings > Connectors
  2. 点击 Add custom connector
  3. 输入以下信息:
    • Name: n8n MCP
    • Remote MCP Server URL:你的 n8n 基础 URL(显示在 Instance-level MCP 页面)
  4. 保存连接。
  5. 在提示时授权 Claude Desktop 访问你的 n8n 实例。
使用 Access Token#

Info

这需要最新版本的 Node.js

将以下内容添加到你的 claude_desktop_config.json 文件:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
{
  "mcpServers": {
    "n8n-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "supergateway",
        "--streamableHttp",
        "https://<your-n8n-domain>/mcp-server/http",
        "--header",
        "authorization:Bearer <YOUR_N8N_MCP_TOKEN>"
      ]
    }
  }
}

在这里替换:

  • <your-n8n-domain>:你的 n8n 基础 URL(显示在 Instance-level MCP 页面)
  • <YOUR_N8N_MCP_TOKEN>:你生成的 token

连接 Claude Code 到 n8n MCP 服务器#

使用以下 CLI 命令:

1
2
claude mcp add --transport http n8n-mcp https://<your-n8n-domain>/mcp-server/http \
  --header "Authorization: Bearer <YOUR_N8N_MCP_TOKEN>"

或者,将以下内容添加到你的 claude.json 文件:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
{
    "mcpServers": {
        "n8n-local": {
            "type": "http",
            "url": "https://<your-n8n-domain>/mcp-server/http",
            "headers": {
                "Authorization": "Bearer <YOUR_N8N_MCP_TOKEN>"
            }
        }
    }
}

在这里替换:

  • <your-n8n-domain>:你的 n8n 基础 URL(显示在 Instance-level MCP 页面)
  • <YOUR_N8N_MCP_TOKEN>:你生成的 token

连接 Codex CLI 到 n8n MCP 服务器#

将以下内容添加到你的 ~/.codex/config.toml 文件:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
[mcp_servers.n8n_mcp]
command = "npx"
args = [
    "-y",
    "supergateway",
    "--streamableHttp",
    "https://<your-n8n-domain>/mcp-server/http",
    "--header",
    "authorization:Bearer <YOUR_N8N_MCP_TOKEN>"
]

在这里替换:

  • <your-n8n-domain>:你的 n8n 基础 URL(显示在 Instance-level MCP 页面)
  • <YOUR_N8N_MCP_TOKEN>:你生成的 token

连接 Google ADK agent 到 n8n MCP 服务器#

以下是创建连接到远程 n8n MCP 服务器的 agent 示例代码:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
from google.adk.agents import Agent
from google.adk.tools.mcp_tool import McpToolset
from google.adk.tools.mcp_tool.mcp_session_manager import StreamableHTTPServerParams

N8N_INSTANCE_URL = "https://localhost:5678"
N8N_MCP_TOKEN = "YOUR_N8N_MCP_TOKEN"

root_agent = Agent(
    model="gemini-2.5-pro",
    name="n8n_agent",
    instruction="Help users manage and execute workflows in n8n",
    tools=[
        McpToolset(
            connection_params=StreamableHTTPServerParams(
                url=f"{N8N_INSTANCE_URL}/mcp-server/http",
                headers={
                    "Authorization": f"Bearer {N8N_MCP_TOKEN}",
                },
            ),
        )
    ],
)

更多详情,请参阅 Connect ADK agent to n8n

故障排查#

如果在将 MCP 客户端连接到你的 n8n 实例时遇到问题,请参考以下建议:

  • 如果使用云端 MCP 客户端,请确保你的 n8n 实例可从公网访问。
  • 验证 n8n 设置中已启用 MCP 访问。
  • 检查要访问的工作流是否标记为 MCP 可用。
  • 确认 MCP 客户端中的认证方式(OAuth2 或 Access Token)配置正确。
  • 查看 n8n 服务器日志中与 MCP 连接相关的错误信息。
  • 如果使用桌面 MCP 客户端,请确保已安装最新版本的 Node.js