本文是系列博文的第五篇,将带你完成两条AI链路中的编排层搭建------在WSL中部署n8n,并将其与本地Ollama和health-mcp服务集成,构建可编排的AI自动化工作流。
一、n8n的安装架构决策
本系列延续之前的 Windows 宿主 + WSL子系统 混合架构。n8n的部署方案经过以下评估:
1.1 推荐方案:WSL + Docker部署
将n8n部署在WSL的Docker容器中,理由如下:
- 环境隔离:n8n及其依赖(数据库、缓存)与宿主机隔离,便于维护
- 官方支持 :n8n官方推荐Docker部署方式,文档完善-1
- 资源可控:容器化便于限制CPU/内存资源
1.2 网络配置:打通n8n容器到Windows Ollama
关键问题:n8n容器内部无法直接访问Windows宿主机的127.0.0.1:11434------每个Docker容器都有自己的localhost,指向容器自身而非宿主机。
解决方案:
在docker-compose.yml中添加extra_hosts配置,将host.docker.internal映射到宿主网关:
services:
n8n:
image: docker.n8n.io/n8nio/n8n
container_name: n8n
ports:
- "5678:5678"
extra_hosts:
- "host.docker.internal:host-gateway"
volumes:
- n8n_data:/home/node/.n8n
environment:
- N8N_SECURE_COOKIE=false # 本地开发可关闭
volumes:
n8n_data:
在Docker Desktop(Windows/macOS)上,host.docker.internal是默认可用的;Linux服务器需通过--add-host或extra_hosts手动配置。
二、配置n8n连接Ollama
2.1 创建Ollama凭证
- 在n8n界面右上角,点击下拉菜单选择 Create Credential
- 在 Add new credential 中选择 Ollama
- 设置Base URL为 http://host.docker.internal:11434(因为Ollama运行在Windows宿主机上)-5
- 点击 Save
配置完成后,应看到 Connection tested successfully 提示-5。
踩坑提示 :如果遇到connect ECONNREFUSED ::1:11434错误,说明系统启用了IPv6但Ollama只监听IPv4。将Base URL改为http://127.0.0.1:11434可解决-1。
2.2 验证连接
在n8n中创建一个新工作流,添加 Ollama Chat Model 节点,选择deepseek-r1:7b模型,发送测试消息验证连通性。
n8n容器(WSL)
↓ host.docker.internal:11434
Windows Ollama(:11434)
↓
deepseek-r1:7b
三、构建第一个AI工作流
3.1 基础Agent结构
使用 Manual Trigger + AI Agent 节点搭建基础对话Agent:
Manual Trigger(手动触发)
↓
AI Agent
├── Ollama Chat Model(绑定deepseek-r1:7b)
├── Window Buffer Memory(对话记忆)
└── 输出结果
3.2 注意事项:Ollama Model节点 vs AI Agent
需要注意的是,n8n中的 Ollama Model 节点本身不支持工具调用 ,无法直接与AI Agent节点配合使用-8。如需在AI Agent中使用Ollama模型,应通过 Ollama Chat Model 节点(位于AI分类下)或LangChain Chain节点连接。
正确的连接方式:
Manual Trigger
↓
Basic LLM Chain(或AI Agent)
├── Ollama Chat Model(选择deepseek-r1:7b)
└── Prompt模板
四、集成Health-MCP工具
4.1 方案A:HTTP Request节点(推荐先尝试)
如果health-mcp提供了HTTP API接口(如模块四中分析的路由),使用HTTP Request节点是最直接的集成方式:
Webhook触发 → AI Agent规划 → HTTP Request调用health-mcp API → 返回结果
优势:调试简单,返回结果结构化,易于排查问题。
4.2 方案B:MCP Client节点(标准方式)
n8n原生支持MCP协议,可通过 MCP Client 节点 或 MCP Client Tool 节点 连接外部MCP Server。
MCP Client节点:将MCP工具作为工作流中的独立步骤使用
MCP Client节点
├── Server Transport: Streamable-HTTP / stdio
├── MCP Endpoint URL: http://127.0.0.1:7777/mcp
├── 自动获取工具列表
└── 选择具体工具调用
MCP Client Tool节点:将MCP工具暴露给AI Agent作为可用工具
AI Agent
├── Ollama Chat Model
└── MCP Client Tool(连接health-mcp Server,自动加载Tools)
MCP Client节点支持Bearer Token、多Header等认证方式,可通过HEALTH_MCP_TOKEN环境变量配置认证。
4.3 完整工作流示例
┌─────────────────────────────────────────────────────────┐
│ Webhook节点(接收用户指令) │
│ ↓ │
│ AI Agent节点 │
│ ├── 模型: ollama-bridge/deepseek-r1:7b │
│ ├── 内存: Window Buffer Memory │
│ └── 工具: MCP Client Tool → health-mcp Server │
│ ↓ │
│ health-mcp工具调用 │
│ ├── get_current_statusA: 获取今日健康状态 │
│ ├── log_meal: 记录餐食 │
│ └── query_records: 查询历史数据 │
│ ↓ │
│ 返回结构化结果给用户 │
└─────────────────────────────────────────────────────────┘
health-mcp提供的工具集包括get_current_statusA(健康状态快照)、get_score_historyA(评分时间序列)、query_recordsA(原始记录查询)、list_sourcesA(数据源列表)等,可根据场景灵活选用。
五、模块小结与实战产出
本文核心要点回顾:
- n8n部署:在WSL中使用Docker部署n8n,通过extra_hosts配置打通容器到Windows Ollama的网络
- Ollama凭证 :Base URL使用http://host.docker.internal:11434连接宿主机服务-5
- AI Agent构建 :使用AI Agent节点绑定Ollama Chat Model,注意Ollama Model节点不支持工具调用-8
- Health-MCP集成 :优先尝试HTTP API方式,再考虑MCP Client节点的标准方式-2-6
实战产出:
| 产出 | 说明 |
|---|---|
| n8n容器环境 | WSL Docker中运行,监听:5678 |
| Ollama凭证 | 已测试通过,可调用deepseek-r1:7b |
| AI Agent工作流 | 手动触发或Webhook触发的对话Agent |
| Health-MCP集成 | 通过HTTP Request或MCP Client调用健康数据工具 |
核心配置文件清单:
- docker-compose.yml(含extra_hosts: host.docker.internal:host-gateway)
- n8n Ollama凭证(Base URL: http://host.docker.internal:11434)
- MCP Client节点配置(Endpoint指向health-mcp的/mcp路径)
参考资源:
- n8n Ollama集成文档:docs.ollama.com/integrations/n8n-5
- n8n MCP Client节点文档:docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-langchain.mcpclient-2
- n8n Docker网络配置指南:docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/common-issues