跳到主要内容

访问 n8n MCP 服务器

访问 n8n MCP 服务器

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

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

  • 在已标记为 MCP 可用的工作流中进行搜索
  • 获取工作流的元数据和触发信息
  • 触发并运行已开放的工作流

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

实例级 MCP 访问允许你创建每个 n8n 实例一个连接,使用集中式身份验证,并选择哪些工作流可以被访问。已启用的工作流无需为每个工作流单独配置即可轻松查找和运行。

相比之下,MCP Server Trigger 节点是在单个工作流内部配置的。该节点仅向 MCP 暴露该工作流中的工具,当你希望在一个工作流内定制特定的 MCP 服务器行为时,这种方式很有用。

使用实例级 MCP 访问时的重要注意事项

  • 这不是一种通过 AI 客户端构建或编辑工作流的方式;工作流的创作仍然在 n8n 中进行。
  • 它不会将实例中的所有工作流都暴露出去,你必须先在实例级别启用 MCP,然后为每个工作流单独启用。
  • 它的范围不按 MCP 客户端区分,任何已连接的客户端都能看到你为 MCP 访问启用的所有工作流。

启用 MCP 访问

适用于 Cloud 和自托管实例

  1. 导航至 设置 > 实例级 MCP
  2. 切换 启用 MCP 访问(需要实例所有者或管理员权限)。

enable-mcp-access.png

启用后,你将看到:

  1. 已向 MCP 客户端开放的工作流列表
  2. 已连接的 OAuth 客户端列表
  3. 用于启用/禁用实例级访问的主要 MCP 开关
  4. 连接详情 按钮,点击后显示连接 MCP 客户端的详细说明

mcp_page_content.png

禁用: 将主要 MCP 开关关闭即可。

适用于自托管用户:完全禁用

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

N8N_DISABLED_MODULES=mcp

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

设置 MCP 身份验证

连接详情 弹出菜单为 MCP 客户端提供两种身份验证选项:

  • OAuth2
  • 访问令牌(Access Token)

mcp_connect_menu.png

使用 OAuth2

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

撤销客户端访问

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

  1. 导航至 设置 > 实例级 MCP
  2. 切换到 已连接的客户端 标签页,你将看到已连接 OAuth 客户端的表格。
  3. 使用每个客户端行中的操作菜单撤销特定客户端的访问权限。

mcp_revoke_client_access.png

使用访问令牌

使用你的实例服务器 URL 以及从 连接详情 菜单的 访问令牌 标签页中获取的个人 MCP 访问令牌。

首次访问 MCP 访问页面 时,n8n 会自动为你的账户生成一个绑定到你用户账号的个人 MCP 访问令牌。

注意

请立即复制你的令牌。以后再访问时,你只能看到经过脱敏处理的值,且复制按钮将被禁用。

轮换令牌

如果你丢失了令牌或需要轮换它:

  1. 导航至 设置 > 实例级 MCP
  2. 点击右上角的按钮,打开 连接详情 菜单。
  3. 切换到 访问令牌 标签页。
  4. 使用脱敏令牌值旁边的按钮生成新令牌。

生成新令牌时,n8n 会撤销之前的令牌。

  1. 用新值更新所有已连接的 MCP 客户端。

mcp_rotate_token.png

将工作流开放给 MCP 客户端

工作流资格要求

工作流要能被 MCP 客户端访问,必须满足以下条件:

  1. 已发布
  2. 包含以下其中一种触发节点:
    • Webhook
    • Schedule(定时)
    • Chat(聊天)
    • Form(表单)

默认情况下,没有工作流对 MCP 客户端可见。你必须为每个想要开放的、符合条件的工作流显式启用访问权限。

在评估工作流资格时,n8n 仅考虑工作流的已发布版本。如果某个工作流的草稿版本中添加了受支持的触发器,则在该版本发布之前不会被视为符合条件。

注意

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

启用访问

方式一:从 MCP 设置页面(n8n v2.2.0 及以上版本可用)

  1. 点击 启用工作流 按钮(在工作流表格头部或表格空状态下显示)
  2. 搜索目标工作流(按名称或描述),并从列表中选择它
  3. 点击 启用 按钮确认

方式二:从工作流编辑器

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

方式三:从工作流列表

  1. 前往 工作流
  2. 打开工作流卡片上的菜单。
  3. 选择 启用 MCP 访问

管理访问权限

实例级 MCP 设置页面显示所有对 MCP 客户端可用的工作流。从这个列表中,你可以:

  • 直接打开工作流、其所在项目或父文件夹
  • 使用操作菜单撤销访问权限(或使用工作流卡片菜单中的 禁用 MCP 访问
  • 使用操作菜单更新工作流描述(或使用工作流编辑器中的菜单)
  • 使用 启用工作流 按钮为更多工作流启用访问权限(n8n v2.2.0 及以上版本可用)

工作流描述

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

  1. 方式一:从 实例级 MCP 页面

    1. 导航至 设置 > 实例级 MCP
    2. 确保你在 工作流 标签页上。
    3. 使用目标工作流所在行的操作菜单,选择 编辑描述 操作。
    4. 或者,直接点击描述文本打开编辑对话框。
  2. 方式二:从工作流编辑器

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

mcp_workflow_description.png

通过 MCP 客户端执行工作流

MCP 客户端可以根据你的请求执行符合条件的工作流。当客户端触发工作流时,工作流在 n8n 中像往常一样运行,你可以在 执行记录 列表中监控其执行。执行完成后,MCP 客户端将获取结果。

提供输入数据

MCP 客户端通常能够评估工作流所需的输入。如果你有 Webhook 触发器,并且发现客户端难以确定正确的输入,建议在工作流描述中提供这些信息。

工作流超时

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

限制

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

示例

将 Lovable 连接到 n8n MCP 服务器

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

将 Claude Desktop 连接到 n8n MCP 服务器

使用 OAuth2
  1. 在 Claude Desktop 中导航至 设置 > 连接器
  2. 点击 添加自定义连接器
  3. 输入以下详细信息:
    • 名称: n8n MCP
    • 远程 MCP 服务器 URL: 你的 n8n 基础 URL(显示在 实例级 MCP 页面上)
  4. 保存连接器。
  5. 出现提示时,授权 Claude Desktop 访问你的 n8n 实例。
使用访问令牌

注意

此操作需要最新版本的 Node.js

在你的 claude_desktop_config.json 文件中添加以下条目:

{
"mcpServers": {
"n8n-mcp": {
"command": "npx",
"args": [
"-y",
"supergateway",
"--streamableHttp",
"https://<YOUR_N8N_HOST>/mcp-server/http",
"--header",
"authorization: Bearer <YOUR_TOKEN>"
]
}
}
}

其中请替换:

  • <YOUR_N8N_HOST>:你的 n8n 基础 URL(显示在 实例级 MCP 页面上)
  • <YOUR_TOKEN>:你生成的令牌

将 Claude Code 连接到 n8n MCP 服务器

使用以下 CLI 命令:

claude mcp add --transport http n8n-mcp https://<YOUR_N8N_HOST>/mcp-server/http \
--header "Authorization: Bearer <YOUR_TOKEN>"

或者,在你的 claude.json 文件中添加以下条目(同样使用上方说明的值替换占位符)。

将 Codex CLI 连接到 n8n MCP 服务器

在你的 ~/.codex/config.toml 文件中添加以下条目:

[mcp_servers.n8n_mcp]
command = "npx"
args = [
"-y",
"supergateway",
"--streamableHttp",
"https://<YOUR_N8N_HOST>/mcp-server/http",
"--header",
"authorization:Bearer <YOUR_TOKEN>"
]

(使用你的 n8n 基础 URL 和生成的令牌替换相应占位符。)

将 Google ADK 智能体连接到 n8n MCP 服务器

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

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 或访问令牌)已正确配置。
  • 查看 n8n 服务器日志,检查是否有与 MCP 连接相关的错误信息。
  • 如果你使用的是桌面版 MCP 客户端,请确保已安装最新版本的 Node.js