MCP 服务器触发器节点#
使用 MCP 服务器触发器节点可以让 n8n 作为 Model Context Protocol (MCP) 服务器运行,使 n8n 工具和工作流可供 MCP 客户端访问。
凭证
您可以在此处找到该节点的认证信息。
MCP 服务器触发器节点工作原理#
MCP 服务器触发器节点作为 MCP 客户端进入 n8n 的入口点。它通过暴露一个 URL 来运作,MCP 客户端可以通过该 URL 与 n8n 工具进行交互。
与传统的触发器节点不同(传统触发器节点响应事件并将其输出传递给下一个连接节点),MCP 服务器触发器节点仅连接并执行工具节点。客户端可以列出可用工具并调用单个工具来执行工作。
您可以通过附加自定义 n8n 工作流工具节点将 n8n 工作流暴露给客户端。
服务器发送事件 (SSE) 支持
MCP 服务器触发器节点支持服务器发送事件 (SSE),这是一种基于 HTTP 的长连接传输协议,用于客户端与服务器之间的连接。目前不支持标准输入/输出 (stdio) 传输协议。
节点参数#
使用以下参数配置您的节点。
MCP URL#
MCP Server Trigger 节点提供两种 MCP URL:测试版和生产版。n8n 会在节点面板顶部显示这些 URL。
通过选择 Test URL 或 Production URL 来切换 n8n 显示的 URL 类型。
- 测试版:当您选择 Listen for Test Event 或 Execute workflow(如果工作流未激活)时,n8n 会注册一个测试版 MCP URL。调用该 URL 时,n8n 会在工作流中显示数据。
- 生产版:当您激活工作流时,n8n 会注册一个生产版 MCP URL。使用生产版 URL 时,n8n 不会在工作流中显示数据。您仍可以查看生产版执行的数据:在工作流中选择 Executions 选项卡,然后选择要查看的工作流执行记录。
认证#
您可以要求客户端连接 MCP URL 时进行身份验证。可选择以下认证方式:
- Bearer 认证
- 请求头认证
有关每种凭证类型的设置详情,请参阅 HTTP 请求凭证。
路径#
默认情况下,该字段包含随机生成的 MCP URL 路径,以避免与其他 MCP Server Trigger 节点冲突。
您可以手动指定 URL 路径,包括添加路由参数。例如,如果您使用 n8n 进行 API 原型设计并需要保持一致的端点 URL,就可能需要这样做。
Path 字段支持以下格式:
/:variable
/path/:variable
/:variable/path
/:variable1/path/:variable2
/:variable1/:variable2
模板与示例#
与 Claude Desktop 集成#
您可以通过运行一个网关将 SSE 消息代理到基于 stdio 的服务器,从 Claude Desktop 连接到 MCP Server Trigger 节点。
为此,请将以下内容添加到您的 Claude Desktop 配置中:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
请确保将 <MCP_URL>
和 <MCP_BEARER_TOKEN>
占位符替换为您的 MCP Server Trigger 节点参数和凭证中的实际值。
限制#
使用 webhook 副本配置 MCP Server Trigger 节点#
MCP Server Trigger 节点依赖于服务器发送事件 (SSE),这需要相同的服务器实例来处理持久连接。根据您的 webhook 处理器 配置,在 队列模式 下运行 n8n 时可能会出现问题:
- 如果您使用 单个 webhook 副本 的队列模式,MCP Server Trigger 节点将按预期工作。
- 如果您运行 多个 webhook 副本,则需要将所有
/mcp*
请求路由到单个专用的 webhook 副本。创建一个单独包含一个 webhook 容器的副本集来处理 MCP 请求。之后更新您的入口或负载均衡器配置,将所有/mcp*
流量定向到该实例。
运行多个 webhook 副本时的注意事项
如果您在多个 webhook 副本下运行 MCP Server Trigger 节点,并且没有将所有 /mcp*
请求路由到单个专用的 webhook 副本,您的 SSE 连接将频繁中断或无法可靠地传递事件。
相关资源#
n8n 还提供了一个 MCP 客户端工具节点,允许您将 n8n AI 代理连接到外部工具。
有关协议、服务器和客户端的更多详细信息,请参阅 MCP 文档 和 MCP 规范。
常见问题#
以下是 MCP 服务器触发器节点的一些常见错误和问题,以及解决或排查步骤。
通过反向代理运行 MCP 服务器触发器节点#
当在 nginx 等反向代理后运行 n8n 时,如果 MCP 端点未配置为支持 SSE(服务器发送事件),可能会遇到问题。
具体来说,您需要为该端点禁用代理缓冲。其他可能需要调整的配置包括:禁用 gzip 压缩(n8n 会自行处理)、禁用分块传输编码,并将 Connection
设置为空字符串以从转发的标头中移除它。在 MCP 端点中显式禁用这些配置可确保它们不会从 nginx 配置的其他位置继承。
以下是一个配置了这些设置的 nginx location 块示例,用于处理 MCP 流量:
1 2 3 4 5 6 7 8 9 10 11 |
|