第 23 期:角色反转 — 把 n8n 工作流暴露为 MCP Server
为什么要把 n8n 变成 MCP Server?
到目前为止,n8n 一直扮演 "消费者" 角色——使用别人的 MCP Server。但如果你已经在 n8n 中构建了强大的工作流(如 RAG 知识库、CRM 查询、订单处理),为什么不把它们暴露给其他 Agent使用?
graph LR
subgraph "外部 Agent 生态"
Claude[Claude Desktop]
Cursor[Cursor IDE]
Custom[自定义 Agent]
end
subgraph "n8n 作为 MCP Server"
MCPTrigger[🔌 MCP Server Trigger]
MCPTrigger --> WF1[📋 查询订单状态]
MCPTrigger --> WF2[🔍 搜索知识库]
MCPTrigger --> WF3[📧 发送通知邮件]
end
Claude & Cursor & Custom -->|"MCP 协议"| MCPTrigger
style MCPTrigger fill:#22c55e,stroke:#16a34a,color:#fff1. MCP Server Trigger 配置
graph TB
subgraph "n8n MCP Server 工作流"
Trigger[🔌 MCP Server Trigger
监听 MCP 请求] --> Router{根据 Tool Name 路由}
Router -->|"query_order"| Order[查询订单逻辑
→ 调用数据库]
Router -->|"search_docs"| Search[RAG 检索逻辑
→ 查询 Qdrant]
Router -->|"send_email"| Email[发送邮件
→ 调用 SMTP]
Order --> Response[📤 返回结果给 MCP Client]
Search --> Response
Email --> Response
end
style Trigger fill:#22c55e,stroke:#16a34a,color:#fff// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// MCP Server Trigger 节点配置
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// Tool Name: "query_order_status"
// Tool Description:
// "查询客户订单的当前状态。
// 输入: orderId (字符串,如 'ORD-2026-0042')
// 输出: {status, estimatedDelivery, trackingNumber}
// 仅在需要查询订单物流信息时使用。"
// Input Schema (JSON Schema):
{
"type": "object",
"properties": {
"orderId": {
"type": "string",
"description": "订单编号,格式: ORD-YYYY-XXXX"
}
},
"required": ["orderId"]
}
// 工作流后续节点:
// 1. Code 节点: 从 MCP 请求中提取 orderId
// const orderId = $json.toolCallArguments.orderId;
// 2. Database 节点: 查询订单表
// 3. Set 节点: 格式化返回结果
// 4. Respond to MCP: 返回结果给调用方
2. 在 Claude Desktop 中调用
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// Claude Desktop 的 claude_desktop_config.json
// 添加 n8n 作为 MCP Server
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
{
"mcpServers": {
"n8n-tools": {
"url": "https://your-n8n-domain.com/mcp/sse",
"transport": "sse"
}
}
}
// 配置后,在 Claude 对话中可以直接:
// 用户: "帮我查一下订单 ORD-2026-0042 的状态"
// Claude 自动发现 n8n 暴露的 query_order_status 工具
// → 调用 n8n 工作流 → 查数据库 → 返回结果给 Claude
3. 多工具 MCP Server
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 一个 n8n 实例可以暴露多个 MCP 工具
// 每个工具对应一个独立的工作流
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 工作流 1: query_order_status
// 工作流 2: search_knowledge_base
// 工作流 3: create_support_ticket
// 工作流 4: get_product_pricing
// 外部 Agent 连接后,自动看到所有 4 个工具
// 并根据用户问题自主选择调用哪一个
下一步
Ep 24 将构建一个 MCP 服务编排层——管理多个 MCP Server 的发现、注册与健康检查。