n8n + MCP 本地部署搭 AI Agent(含汉化)
n8n + MCP 本地部署,是指把开源工作流引擎 n8n 用 Docker 跑在自己的机器或服务器上,再通过 MCP(模型上下文协议)让大模型节点能调用外部工具,从而把一条”拖拉拽”的工作流升级成会自己决定调什么工具的 AI Agent。 这篇带你从零跑通:本地部署、连大模型、接 MCP 工具、设中文界面,并把最常见的部署卡点一次性讲清。适合想低成本自建数字员工、又不想把数据交给云端 SaaS 的团队和个人。
为什么要本地部署 n8n
云端版省事,但本地部署 n8n 有三个硬理由:
- 数据不出门:工作流里常带 API 密钥、客户数据、内部接口,自托管让这些只留在你自己的服务器上,合规压力小很多。
- 不限执行量:自托管的 社区版(规划中)按你的机器算力跑,不按云端套餐的执行次数计费,跑量大时成本优势明显。
- 想怎么改怎么改:本地能装自定义节点、改环境变量、接内网服务,灵活度远高于托管版。
简单说:轻量试水用云端,认真做数字员工就本地部署。
原理:n8n 和 MCP 是怎么配合的
先把机制讲清楚,机制不变、参数会变(具体镜像 tag、节点名以官方文档为准)。
n8n 本身是个”工作流编排器”:每个节点是一步动作(收 Webhook、查数据库、调 API、发消息),节点之间连线就是数据流。它原本是固定流程——你画好了它就照着走。
MCP(模型上下文协议)解决的是”让大模型能用工具”这件事。 它是一套标准协议,规定了大模型如何发现、调用外部工具。想深入理解协议本身,看 MCP 协议是什么(规划中)这篇。
两者一结合,逻辑就变了:
- n8n 里放一个 AI Agent / 大模型节点,挂上一个大模型(如 DeepSeek、Kimi、GLM 或本地模型)。
- 通过 MCP 客户端节点把一批工具(数据库查询、文件读写、第三方 API)以 MCP 协议暴露给这个 Agent。
- 用户发来一句话,模型自己判断该调哪个工具、按什么顺序调——流程从”写死”变成”模型自己决策”。
这就是从普通工作流到 AI Agent 的关键一跃。
本地部署 n8n:Docker 五步
下面给最小可复制路径。前提:机器已装好 Docker(Windows/Mac 用 Docker Desktop,Linux 装 docker + docker compose 即可)。
第一步:拉镜像并起一个最简容器
docker run -d --name n8n -p 5678:5678 \
-v n8n_data:/home/node/.n8n \
docker.n8n.io/n8nio/n8n
-v 挂一个命名卷保存数据,否则容器一删工作流就没了。镜像地址与版本 tag 以官方文档为准。
第二步:访问后台
浏览器开 http://localhost:5678,第一次进会让你建管理员账号。服务器部署就把 localhost 换成服务器 IP(记得放行 5678 端口)。
第三步:用 docker compose 固化配置(推荐生产用)
写一个 docker-compose.yml,把端口、数据卷、关键环境变量都固定下来,重启不丢配置:
services:
n8n:
image: docker.n8n.io/n8nio/n8n
restart: always
ports:
- "5678:5678"
environment:
- N8N_DEFAULT_LOCALE=zh-CN
- GENERIC_TIMEZONE=Asia/Shanghai
- N8N_SECURE_COOKIE=false
volumes:
- n8n_data:/home/node/.n8n
volumes:
n8n_data:
然后 docker compose up -d 启动。具体支持的环境变量名以官方文档为准。
第四步:设置中文界面(汉化)
n8n 自带多语言支持,汉化不用装插件,靠环境变量切换:
- 在上面的 compose 里设
N8N_DEFAULT_LOCALE=zh-CN(已加在示例中)。 - 重启容器后,界面菜单即变为中文。
- 注意:界面是中文,但节点内部字段、文档大多仍是英文,这是正常的——locale 只翻译框架 UI,不翻译第三方节点内容。
第五步:放到公网要加反向代理
生产环境别裸跑 5678。前面挂个 Nginx 反代 + HTTPS,并设好 N8N_HOST、WEBHOOK_URL 等变量,否则 Webhook 回调地址会错。具体变量以官方文档为准。
连大模型节点
工作流要变 Agent,第一件事是接上一个能用的大模型。
- 在画布上加一个 AI Agent 节点(或 Chat Model / LLM 类节点)。
- 配置模型凭据:填 API Base URL + API Key。国产模型(DeepSeek、Kimi 等)大多兼容 OpenAI 接口格式,直接把 Base URL 换成对应厂商的兼容端点即可。
- 想完全本地、不联网,可以接 Ollama 跑本地开源模型,把 Base URL 指向本机 Ollama 服务地址。
- 填好后先用节点的”测试”功能发一句话,能正常返回再往下接工具。
口诀:先让模型节点单独跑通,再谈接 MCP。 顺序反了会让排查变成一团乱麻。
接入 MCP 扩展工具
模型通了,下一步是给它”手脚”——通过 MCP 接工具。
n8n 侧通常有两种角色:
| 角色 | 作用 | 典型用法 |
|---|---|---|
| MCP 客户端节点 | 让 n8n 的 Agent 去调用外部 MCP Server 提供的工具 | Agent 调一个 MCP 文件系统/数据库工具 |
| MCP 触发/服务端节点 | 把 n8n 工作流本身暴露成一个 MCP 工具,给别的 Agent 用 | 让 Claude/Cursor 等调用你的 n8n 工作流 |
接入步骤(以客户端方向为例):
- 准备好一个 MCP Server(官方/社区有现成的,如文件、数据库、搜索类工具服务)。
- 在 n8n 加 MCP 客户端节点,填上该 Server 的连接信息(命令/地址、传输方式 stdio 或 SSE 以官方文档为准)。
- 把这个 MCP 节点作为”工具”挂到 AI Agent 节点上。
- Agent 运行时会自动发现该 Server 暴露的工具列表,并按需调用。
到这一步,你的 n8n 工作流就成了一个能自己选工具、自己干活的数字员工雏形。
怎么验证部署成功
按这个顺序逐级确认,别跳步:
- 容器在跑:
docker ps能看到 n8n 容器状态为 Up。 - 后台能开:浏览器访问 5678 端口出现登录/工作流界面。
- 中文生效:菜单显示中文(说明 locale 变量已读到)。
- 模型能答:AI 节点单测能返回模型回复。
- 工具能调:给 Agent 一个明确需要用工具的任务,看执行日志里是否真的触发了 MCP 工具调用。
每一级都过了,整条链路才算通。
常见坑与排查
| 现象 | 多半原因 | 解法 |
|---|---|---|
| 容器起来后重启工作流全没了 | 没挂数据卷 | 确认 -v 挂了 /home/node/.n8n 命名卷 |
| 公网访问登录后立刻退出/报 cookie 错 | 非 HTTPS 下安全 cookie 拦截 | 临时设 N8N_SECURE_COOKIE=false,正式环境上 HTTPS |
| Webhook 回调地址不对 | 没设对外地址变量 | 配 WEBHOOK_URL/N8N_HOST 为真实域名 |
| 改了 locale 界面还是英文 | 容器没重启或变量名写错 | docker compose up -d 重建容器,核对变量名 |
| 大模型节点报鉴权失败 | Base URL / Key 填错或端点不兼容 | 用厂商的 OpenAI 兼容端点,单独测模型节点 |
| MCP 工具调不起来 | Server 没启动或传输方式不匹配 | 先确认 MCP Server 单独可用,再核对 stdio/SSE 配置 |
一个总原则:自下而上排查——先确认容器、再界面、再模型、最后 MCP,别一上来就怀疑 Agent 逻辑。
常见问题
n8n 本地部署一定要用 Docker 吗? 不是必须,但最省心。也能用 npm 全局安装直接跑,但依赖和升级要自己管。新手强烈建议 Docker,环境干净、迁移方便。
n8n 汉化要装插件吗?
不用。设置环境变量 N8N_DEFAULT_LOCALE=zh-CN 并重启容器即可,界面框架就变中文。第三方节点的字段和文档仍是英文,这属正常现象。
没有 MCP 也能在 n8n 里用大模型吗? 能。只用大模型节点做翻译、总结、分类这类固定流程完全可以。MCP 的价值在于让模型自己选工具、做多步决策,需要 Agent 化时才用得上。
本地部署的 n8n 安全吗?能放公网吗? 能,但要做防护:套 Nginx 反代 + HTTPS、设强密码、必要时限制访问 IP。裸暴露 5678 端口到公网很危险,务必加一层。
国产大模型能接进 n8n 吗? 能。DeepSeek、Kimi、GLM 等大多提供 OpenAI 兼容接口,在模型节点里把 Base URL 换成对应端点、填上 Key 即可,配置方式和接 OpenAI 几乎一样。
👉 看看 AI 数字员工落地指南,或了解 数字员工搭建实战课。需要为企业把工作流和 Agent 真正落到生产,欢迎找我们聊 企业服务。