n8n 与 MCP:将您的工作流接入 LLM 本地
n8n 与 MCP 可以双向结合:借助 MCP Server Trigger 节点,n8n 可以将其工作流暴露为 MCP 工具;借助 MCP Client Tool 节点,n8n 智能体可以调用外部 MCP 服务器的工具。本指南介绍这两种搭建方式,使用的智能体运行在由 Ollama 提供服务的本地模型上,随后说明如何保护 n8n 发布的 URL。本指南依据 n8n 官方文档编写,不涉及为操控 n8n 而编写的第三方 MCP 服务器,那是另一个话题。
#n8n 与 MCP:两个节点,两个方向
模型上下文协议(Model Context Protocol,MCP)是一种开放协议,描述 AI 应用如何发现并调用服务器提供的工具。如果您对这一概念还不熟悉,《MCP:是什么?》指南介绍了基础知识;本文假定您已掌握客户端、服务器和工具这些术语。
在 n8n 中,MCP 以两个 AI 类节点的形式出现(n8n-nodes-langchain 包)。它们满足的是两种相反的需求,阅读教程时很容易把两者混淆。
- MCP Server Trigger:让 n8n 成为服务器
- 该节点会发布一个 MCP URL。您挂接到它上面的每个工具(子工作流、HTTP 请求、内置工具)都会成为一个 MCP 工具,外部客户端可以列出并调用它。典型用法:让您的本地助手能够“创建工单”“在 CRM 中搜索”或“发送摘要”,而无需把您的凭据交给它。
- MCP Client Tool:n8n 作为客户端
- 该节点作为工具挂接在 AI Agent 节点下。它连接到现有的 MCP 服务器,获取其工具列表并提供给智能体使用。典型用法:一个定时工作流,其中的智能体通过已部署的 MCP 服务器读取文件、查询数据库或检索文档。
- MCP 不会改变的事
- 模型的选择与此相互独立。n8n 智能体可以运行在 Ollama 上;调用您的 MCP Server Trigger 的客户端同样可以使用本地模型。MCP 只传输工具描述及其调用,不传输模型本身。
这两种节点可以共存于同一个实例中:一个“服务器”工作流暴露若干业务操作,一个“智能体”工作流调用一个或多个 MCP 服务器。甚至可以让 n8n 智能体调用同一实例中另一个工作流的 MCP Server Trigger,这相当于把一个庞大的智能体拆分成可复用的模块。
#先决条件
借助我们的经验和引导式路径,进一步用好你的本地智能体和自动化流程。
- 在线空间,终身可用
- PDF + 文件
- 30 天内退款
- 较新版本的 n8n 实例
- 自托管,最好使用 Docker。MCP 节点于 2025 年推出,此后一直在演进(传输方式、认证选项):请将 n8n 更新到最新版本,并以编辑器中实际显示的内容为准。安装过程本身详见《使用 Docker 部署 n8n》指南。
- 可从 n8n 访问的 Ollama
- Ollama 默认监听 http://localhost:11434。如果 n8n 运行在容器中,localhost 指的是容器本身,而不是您的机器:需要使用其他地址(参见第一步)。
- 支持工具调用的模型
- 只有当模型能够生成结构化的工具调用时,智能体才有用。请选择在 Ollama 页面上标有 tools 能力的模型,例如 Qwen3 系列。在 Q4_K_M 量化下,8B 模型约需 5 GB 显存,14B 模型约需 9 GB,在 12 GB 的 RTX 3060 或 12 GB 的 RTX 4070 上运行仍然游刃有余。
- 用于第 2 步
- 一台可通过 HTTP 访问的 MCP 服务器。仅通过 stdio 在本地启动的服务器(一条 npx 或 uvx 命令)无法被 n8n 直接访问:需要一台在某个 URL 上监听的服务器。
- 用于第 4 步
- 能够与远程服务器通信的 MCP 客户端:LM Studio、Open WebUI、通过网关接入的 Claude Desktop,或用于测试的官方协议检查器。
#第 1 步:将 n8n 智能体连接到本地模型
MCP 的两个方向都要经过一个智能体,无论是在 n8n 端还是客户端。因此,请先确认 n8n 能够与您的本地模型通信。基础连接已在《n8n + Ollama》指南中详细介绍;这里只列出最基本的内容。
如果 n8n 运行在 Docker 中,而 Ollama 直接运行在宿主机上,请为 n8n 服务添加一条条目,使 host.docker.internal 指向宿主机。在 Docker Desktop(macOS、Windows)下,该名称已经存在;在 Linux 下则需要手动声明。
在 Linux 上,Ollama 默认只监听 127.0.0.1:除非你在 Ollama 服务中设置了 OLLAMA_HOST=0.0.0.0,否则容器无法通过 host-gateway 访问它。如果两者在同一个 Compose 文件中运行,请改用服务名称,例如 http://ollama:11434。
- 01创建智能体在新工作流中添加一个 Chat Trigger 触发器(便于测试),然后添加一个 AI Agent 节点。
- 02接入模型在智能体的 Chat Model 输入端添加 Ollama Chat Model。使用基础 URL http://host.docker.internal:11434 创建凭据 Ollama(如果 n8n 未运行在容器中,则使用 http://localhost:11434),然后选择 qwen3:8b。
- 03不借助工具进行测试打开工作流的聊天界面,提一个简单的问题。收到回复即可确认 n8n 与 Ollama 的连接正常;本指南的其余部分将在此基础上添加工具。
#第 2 步:从 n8n 智能体调用 MCP 服务器
MCP Client Tool 节点与其他任何工具一样,连接到 AI Agent 的 Tool 输入端。执行时,它会查询 MCP 服务器,获取工具列表及其描述和参数 schema,并呈现给模型。由模型决定使用哪些参数调用哪个工具;n8n 负责转发调用并返回结果。
- 01添加节点在第一步创建的智能体下方,点击 Tool 输入端的 +,然后选择 MCP Client Tool。
- 02填写端点粘贴 MCP 服务器的 URL,并选择该服务器提供的传输方式。n8n 文档列出了 HTTP 流(streamable HTTP,即协议当前的传输方式)和 Server-Sent Events(SSE,较旧,但仍有部分服务器在使用)。如果服务器文档给出的 URL 以 /sse 结尾,通常就是 SSE;否则请尝试 HTTP。
- 03选择身份验证方式根据服务器的要求,可选择无认证、Bearer(在 Authorization 请求头中发送的令牌)或自定义请求头。具体选项取决于您的 n8n 版本;令牌作为 n8n 凭据存储,不会以明文形式保存在工作流中。
- 04筛选工具Tools to Include 参数提供 All、Selected 和 All Except 三个选项。建议选择 Selected:8B 的本地模型在三个描述清晰的工具中做选择,比在三十个工具中选择更准确,同时也能限制智能体可触发的操作。
- 05测试在聊天中请求一个需要使用该工具的操作。在智能体的执行日志中,您可以看到被调用的工具、模型生成的参数以及服务器的响应。
实用提示:n8n 必须能够访问到 MCP 服务器。在您本机上以 localhost:3000 地址启动的服务器,从 n8n 容器内是看不到的;同样适用 host.docker.internal 或 Docker 服务名这一规则。
#第三步:使用 MCP Server Trigger 暴露您的工作流
这是搜索“n8n mcp”的用户最想要的方向:把现有的自动化流程变成助手可以调用的工具。MCP Server Trigger 与常规触发器不同:它不会启动一连串节点,而只连接工具节点并将其发布出去。
- 01创建服务器工作流新建工作流,添加 MCP Server Trigger 节点。该节点会显示一个测试 URL 和一个生产 URL,以及决定 URL 结尾部分的 Path 字段。如有需要,可将随机标识符替换为易读的路径,但要确保它难以被猜到。
- 02挂接工具点击触发器的 Tool 输入端并添加工具。最实用的是调用另一个 n8n 工作流的工具(Call n8n Workflow Tool):您现有的自动化流程由此变成一个 MCP 工具。您也可以挂接 HTTP Request Tool 或 n8n 提供的集成工具。
- 03认真撰写名称和描述客户端只能看到工具的名称、描述及其参数的模式(schema)。模型正是读取这段文字来决定是否调用。请用一两句话写出明确的描述:工具做什么、需要哪些参数、返回什么。
- 04定义子工作流的参数在被调用的工作流中,声明所需的输入字段(例如工单的标题和优先级)。MCP 客户端会收到该 schema,再由模型填写各项值。
- 05先测试,再激活测试 URL 仅在编辑器监听测试事件期间响应,此时执行过程会显示在画布中。生产 URL 只有在工作流激活后才能使用。请将测试 URL 用于调试,并将生产 URL 提供给您的客户端。
基础地址沿用 n8n 用于 webhook 的地址。如果 n8n 显示 localhost:5678,而您是通过其他名称访问它的,请修改实例的 WEBHOOK_URL 变量:节点中显示的 URL 由它决定。
#第 4 步:将本地 MCP 客户端连接到 n8n
接下来还需要让同样运行在本地模型上的助手来调用这些工具。在使用任何“智能”客户端之前,先用该协议的官方检查器验证服务器:它会列出所暴露的工具,并允许您手动调用它们,整个过程无需模型参与。
在界面中选择相应的传输方式,粘贴生产 URL;如果已启用认证,再添加 Authorization 请求头,然后列出工具。如果您的 n8n 工具连同其描述一起显示出来,说明服务器已就绪。
#LM Studio 及支持填写 URL 的客户端
较新的客户端可以直接接入以 URL 描述的远程 MCP 服务器。例如,LM Studio 会读取 mcpServers 格式的 mcp.json 文件;远程条目的形式如下所示。字段的确切名称可能因软件而异,请查阅您所用客户端的文档进行确认。
#仅支持 stdio 的客户端:通过网关中转
有些客户端只能启动 stdio 方式的本地服务器。针对这种情况,n8n 文档介绍了使用 mcp-remote 网关的方法:它以 stdio 服务器的形式启动,并将调用转发到 n8n 的 URL。令牌通过环境变量传入,而不是硬编码在参数中。
在模型方面,适用与第二步相同的规则:在客户端中加载支持工具调用的模型,只保留少量可见工具,并先用一个毫无歧义的请求进行测试。《MCP 与本地 LLM》指南详细介绍了 Ollama 及其界面的客户端配置。
#保护 n8n 的 MCP 端点
MCP Server Trigger URL 是一个入口点,会使用 n8n 中保存的凭据触发您的工作流。在未启用身份验证的情况下,任何知道该 URL 的人都可以创建您的工单或读取您的 CRM。请像对待 API 密钥一样对待它。
- 启用身份验证
- 该节点支持 Bearer 令牌认证或请求头认证。请始终启用认证,即使在局域网中也是如此。生成一个足够长的随机令牌(例如使用下面的 openssl 命令),并为每个客户端使用不同的令牌,以便可以单独吊销其中一个。
- 如无必要,不要将 n8n 暴露到互联网
- 对于个人或小团队使用,请将 n8n 保留在局域网内或置于 VPN(WireGuard、Tailscale)之后。如果确实需要对外暴露,请通过启用 HTTPS 的反向代理,并尽可能配合 IP 过滤。
- 限制每个工具的权限范围
- 一个 MCP 工具应当只做一件明确的事,并使用有边界的参数。避免暴露“执行 SQL 查询”或“调用任意 URL”这类通用工具:模型一旦出错,或者智能体读取到恶意内容,都可能导致该工具被滥用。
- 警惕提示词注入
- 如果智能体会读取外部内容(电子邮件、网页、文档),同时又拥有可执行操作的工具,那么一段精心构造的恶意文本就可能指使它调用工具。请将读取类工具与操作类工具分开,并在任何不可逆操作之前加入人工确认(等待或审批节点)。
- 在第三方 MCP 服务器端进行审计
- 在客户端方向,只为智能体添加您了解其发布者和代码的 MCP 服务器。服务器提供的工具描述会直接进入模型的上下文。
- 监控执行情况
- 每次工具调用都会在 n8n 中产生一次执行记录。请定期查看服务器工作流的历史记录:这就是您的审计日志。
如果 n8n 前面有反向代理,它必须允许流式响应通过。n8n 文档给出了一个 nginx 示例,为 MCP 路径禁用了缓冲;下面的片段沿用了这些指令,请根据您的配置进行调整,如果您通过代理进行测试,还需补充 /mcp-test/ 路径。
#n8n MCP 故障排查:常见卡点
- 客户端看不到任何工具
- 请检查:MCP Server Trigger 的 Tool 输入端确实连接了工具;你使用的是生产 URL 且工作流已激活,或者在编辑器处于监听状态时使用的是测试 URL。
- 401 或 403 错误
- 令牌不匹配,或者客户端没有发送该请求头。请使用 MCP Inspector 测试,它会准确显示发送的请求头。注意“Bearer”后面的空格。
- 连接中断或卡住
- 几乎总是因为代理对流进行了缓冲,或客户端选择了错误的传输方式(SSE 与 HTTP)。请直接在 5678 端口上测试,以排除代理的影响。
- 显示的 URL 包含 localhost
- n8n 的 WEBHOOK_URL 变量未设置:该 URL 将无法从其他机器访问。请将其设置为实例的公网或局域网地址,然后重启 n8n。
- 连接 Ollama 时出现 ECONNREFUSED
- 容器中的 n8n 会在容器内部查找 Ollama。请使用 host.docker.internal 或 Docker 服务名称,并确认 Ollama 监听在可访问的网络接口上。
- 模型从不调用工具
- 可能是模型不支持工具调用、工具描述过于含糊,或暴露的工具过多。请换用标有 tools 的模型,重写描述,并精简所选工具。
- 模型编造参数
- 子工作流的 schema 约束过于宽松。请声明带类型的字段并描述期望的值;在执行任何操作之前,先在工作流中校验输入。
#深入了解
本指南介绍 n8n 中的 MCP。关于协议基础、Ollama 端的 MCP 客户端配置,或将 n8n 连接到本地模型,请参阅以下指南。
有反馈、发现了错误,或想补充说明?请告诉我们,让这份指南对每个人都更有帮助。