本地 Docker 部署 n8n + MCP 协议实战:打造你的全能 AI 自动化中枢

作者:nyzhhd
机器人工程师 · AI 自动化爱好者 · 本地优先(Local-First)倡导者


在具身智能(Embodied Intelligence)和 AI Agent 时代,自动化不再只是“定时任务”,而是由自然语言驱动、跨平台协同、能感知-决策-执行的智能体

今天,我将手把手带你完成一个高价值实战项目:
在本地 Docker 环境部署 n8n
通过 Ngrok 暴露本地服务
构建 MCP Server/Client 架构
实现 GitHub + Gmail 自动化
无缝集成 Cherry Studio / Trae 等 AI 工具

这一切,无需云服务、数据不出本地、成本为零


一、为什么选择本地部署 n8n?

n8n 是一个开源、可扩展的工作流自动化工具,支持 300+ 应用集成。但云部署存在数据隐私、API 调用限制、成本不可控等问题。

本地 Docker 部署优势

  • 🛡️ 数据完全私有:邮件、代码、项目信息不经过第三方
  • 🧪 调试自由:可随时修改、重启、查看日志
  • 💰 零成本:无需订阅 n8n.cloud
  • 🤖 为 AI Agent 提供可靠工具链:MCP 协议让大模型“有手有脚”

但挑战也很明显:localhost 无法被外网访问


二、Ngrok:为本地服务开一扇“任意门”

1. 安装与配置

# macOS (Homebrew)
brew install ngrok

# Windows (Scoop)
scoop install ngrok

# Linux (官方脚本)
curl -s https://ngrok-agent.s3.amazonaws.com/ngrok.asc | sudo tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null && \
echo "deb https://ngrok-agent.s3.amazonaws.com buster main" | sudo tee /etc/apt/sources.list.d/ngrok.list && \
sudo apt update && sudo apt install ngrok

获取 AuthToken(ngrok dashboard):

ngrok config add-authtoken <YOUR_TOKEN>

2. 启动隧道

ngrok http http://localhost:5678

输出示例:

Forwarding                    https://a1b2-112-12-185-57.ngrok-free.app -> http://localhost:5678

⚠️ 重要:免费版域名每次重启会变!生产环境建议用固定域名或自建隧道(如 Cloudflare Tunnel)。


三、Docker 启动 n8n:注入公网地址

n8n 需要知道它的公网入口地址,才能生成正确的 Webhook URL。

docker run -it --rm \
  --name n8n \
  -p 5678:5678 \
  -v n8n_data:/home/node/.n8n \
  -e WEBHOOK_TUNNEL_URL=https://a1b2-112-12-185-57.ngrok-free.app \
  -e N8N_HOST="a1b2-112-12-185-57.ngrok-free.app" \
  docker.n8n.io/n8nio/n8n

🔑 关键环境变量:

  • WEBHOOK_TUNNEL_URL:n8n 生成 Webhook 时使用的前缀
  • N8N_HOST:设置 Host Header,避免某些服务(如 GitHub)拒绝回调

四、构建 MCP Server:让 n8n 成为 AI 的“工具手”

MCP(Model Context Protocol)是一种标准化协议,允许 AI 模型调用外部工具。n8n 原生支持 MCP Server。

步骤 1:创建 MCP Server Trigger

  • 节点类型:MCP Server Trigger
  • 自动生成一个 SSE(Server-Sent Events)端点

步骤 2:添加 GitHub 工具(创建 Issue)

  1. 配置 GitHub Credential

    • 路径:GitHub Settings → Developer settings → Personal access tokens (classic)
    • 权限:repo(读写仓库)、read:org(组织信息)
    • 安全建议:设置 90 天过期,命名如 n8n-mcp-token
  2. 节点配置

    Resource: Issue
    Operation: Create
    Repository Owner: your_username
    Repository Name: {{ $input.item.json.repo }}  # 由 AI 动态传入
    Title: {{ $input.item.json.title }}
    Body: {{ $input.item.json.body }}
    

步骤 3:添加 Gmail 工具(读取/发送邮件)

  1. 配置 Google OAuth

    • 项目:Google Cloud Console → 启用 Gmail API
    • 关键:在“已授权的重定向 URI”中添加 Ngrok 域名
      https://a1b2-112-12-185-57.ngrok-free.app/oauth2/callback
      
    • 应用类型:Web 应用
    • 测试用户:添加你的 Gmail 账号
  2. 节点配置

    • 操作:Get Email / Send Email
    • 支持按主题、发件人过滤

💡 技巧:在节点参数中使用 {{}} 表达式,让 AI 动态传参。

步骤 4:激活并获取 MCP Server URL

  • 复制 Production URL,格式如:
    https://a1b2-112-12-185-57.ngrok-free.app/mcp/xxxx-xxxx/sse
    
  • 此 URL 即为 MCP Server 地址,供客户端调用

五、构建 MCP Client:让 AI 能“指挥”你的工具

MCP Client 是 AI 与工具之间的“翻译官”。

1. 创建 MCP Client Trigger

  • 触发方式:Chat Message(接收自然语言指令)

2. 添加 AI Agent 节点

  • 系统提示(System Prompt)

    你是一个专业的自动化助手。请将用户的自然语言指令解析为结构化操作,调用 MCP 工具,并返回简洁结果。

  • 模型选择:DeepSeek / Claude / GPT-4(需 API Key)
  • 关键能力:理解工具参数、填充动态字段(如 repo、title)

3. 添加 MCP Client Tool 节点

  • SSE 地址:填入上一步的 MCP Server URL
  • Docker 注意:若 Client 也在本地 Docker 中,需用 host.docker.internal 访问宿主机

六、实战测试:让 AI 为你打工!

🎯 用例 1:GitHub 自动化

用户指令

“在 GitHub 的 awesome-project 项目下,新建一个 issue。标题是:n8n 的学习路径。内容是:n8n 的环境搭建,跑通 n8n demo。请润色内容。”

AI Agent 执行流程

  1. 解析指令,提取 repo=awesome-project, title, body
  2. 调用 MCP Client Tool → 触发 GitHub Create Issue
  3. 返回结果:“✅ Issue 已创建!链接:https://github.com/…”

🎯 用例 2:Gmail 智能处理

用户指令

“查找最近来自 boss@company.com 的邮件,摘要发给我。”

结果:AI 自动调用 Gmail 节点,返回邮件摘要。


七、集成到 Cherry Studio / Trae 等 AI 工具

这些工具通常支持 自定义 MCP Server

  1. 打开 Cherry Studio → Settings → MCP Servers
  2. 添加新 Server:
    • Name: My n8n Tools
    • URL: https://a1b2-...ngrok-free.app/mcp/.../sse
  3. 在聊天中直接说:“用 GitHub 工具创建一个 issue…”

🌐 效果:你的本地 n8n 工作流,瞬间成为 AI 的“超能力”!


八、安全与优化建议

问题 解决方案
Ngrok 域名变动 使用 ngrok authtoken + 固定子域名(付费)
GitHub Token 泄露 定期轮换,权限最小化
Docker 网络隔离 使用 --network hosthost.docker.internal
性能瓶颈 为 n8n 容器分配更多 CPU/Memory

结语:本地智能体的崛起

通过 n8n + MCP + Ngrok,我们构建了一个私有、可控、强大的 AI 自动化中枢。

  • 你可以让 AI 自动提交代码 Issue
  • 让 AI 监控重要邮件并摘要
  • 甚至让 AI 控制你的机械臂(通过自定义 n8n 节点!)

这正是 具身智能(Embodied Intelligence) 的核心:AI 不只是聊天,而是能行动的智能体

最后提醒
本地部署是起点,不是终点。下一步,你可以:

  • 用 Cloudflare Tunnel 替代 Ngrok(免费固定域名)
  • 将 n8n 工作流打包为 Docker Compose
  • 开发自定义 n8n 节点,集成 ROS / STM32 / 数据库

现在,就去启动你的 n8n,开启 AI 自动化之旅吧!🚀


附:资源链接

  • n8n 官方文档:https://docs.n8n.io
  • MCP 协议规范:https://modelcontextprotocol.io
  • 工作流模板(含 GitHub/Gmail):点击下载
  • Ngrok 免费账号:https://ngrok.com

作者:nyzhhd|一个相信“本地优先”的机器人工程师

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐