n8n通过代理网关演示到MCP服务器
此演示展示了如何连接 n8n 通过以下方式连接到MCP(模型上下文协议)服务器 代理网关 在Kubernetes中作为数据平面运行 kgateway 作为控制平面。
建筑
n8n → agentgateway (K8s dataplane) → MCP Server (website-fetcher)
↑
kgateway (control plane)组件
- n8n:用于编排API调用的工作流自动化平台
- kgateway:用于API网关管理的Kubernetes名称控制平面
- 代理网关:将请求代理到AI代理和MCP服务器的数据平面
- MCP服务器:可以获取和处理web内容的网站获取器MCP服务器
先决条件
- Kubernetes集群(minikube、kind或云提供商)
- kubectl已配置
- Helm 3.x
快速入门
安装
- 在中运行配置
k8s/agentgateway/install.md
- 在中运行配置
k8s/mcp-server/mcp-server.md
- 在中运行配置
k8s/n8n/n8n-deployment.yaml
访问n8n用户界面
kubectl port-forward -n n8n svc/n8n 5678:5678打开http://localhost:5678
- 用户名:
admin - 密码:
admin
导入并运行n8n工作流(1分钟)
设置
- 在n8n UI中,单击橙色 创建工作流 按钮
- 在右上角,您将看到3个点的图标。
- 单击3个文档并选择 从文件导入。.. 选项
- 上传
mcp-demo-workflow.json不正确的文件 n8n 目录 - 点击 通过代理网关呼叫MCP服务器,您将在下一节中进行配置

配置
应设置以下内容:
- 方法:
POST - URL:网关IP和侦听器端口的URL,即
8080例如:http://135.23.125.225:8080/ - 身份验证:无
- 点击 发送邮件头 按钮,并添加以下两个标题:
1. 名称:接受
1. 值:应用程序/json、文本/事件流
1. 名称:内容类型
1. 值:应用程序/json
- 点击 发送正文 按钮并添加以下JSON:
{
"jsonrpc": "2.0",
"method": "initialize",
"params": {
"protocolVersion": "2024-11-05",
"capabilities": {},
"clientInfo": {
"name": "test-client",
"version": "1.0.0"
}
},
"id": 1
}您应该看到类似以下内容的输出 
目录结构
.
├── README.md
├── k8s/
│ ├── agentgateway/ # agentgateway installation instructions
│ │ └── install.md # Helm installation commands
│ ├── mcp-server/ # MCP server deployment
│ │ └── mcp-server.md # Complete MCP setup (deployment, service, gateway, backend, route)
│ └── n8n/ # n8n deployment
│ └── n8n-deployment.yaml
└── n8n/
└── workflows/ # Sample n8n workflows
└── mcp-demo-workflow.json运作原理
该演示使用Kubernetes Gateway API模式:
- 网关 资源定义入口点(端口8080上的侦听器)
- HTTP路由 将网关连接到后端并定义路由规则
- 后端 (自定义kgateway资源)使用SSE协议指定MCP服务器目标
- n8n 向代理网关服务发送HTTP请求
- 代理网关 (数据平面)接收请求并根据HTTPRoute配置对其进行路由
- kgateway (控制平面)管理和配置路由基础设施
- MCP服务器 (网站提取器)处理请求并返回响应
- 响应通过代理网关流回n8n
资源关系:
Gateway (agentgateway)
↓ parentRef
HTTPRoute (mcp-route)
↓ backendRef
Backend (mcp-backend)
↓ target
Service (mcp-website-fetcher)