EGMCP服务器-Envoy网关MCP服务器
](https://www.npmjs.com/package/@saptak/egmcp-server) ](https://github.com/saptak/eg-mcp-server/releases) 
一个生产就绪的模型上下文协议(MCP)服务器,为Claude Desktop提供对Envoy网关配置、监控和 全面的交通管理能力 具有先进的交通控制功能。
🎯 概述
EGMCP服务器连接了Claude Desktop和Envoy Gateway,支持自然语言查询和 全面管理 您的服务网格基础设施。它提供对侦听器、路由、集群、完整路由生命周期管理和复杂流量工程功能的实时访问。
✨ 主要特点
🔍 监控与发现
- 🔌 实时配置访问:与Envoy网关管理员API的实时连接
- 📊 资源发现:侦听器、路由和集群的动态列表
- 🛠️ 交互式工具:11个专用工具,用于完整的Envoy网关管理
- 🔒 稳健的错误处理:优雅的降级和超时保护
🚀 路线管理
- 🛣️ HTTP路由创建:通过自然语言创建路线
- 🗑️ 路线删除:删除经过安全验证的路线
- 🔧 网关侦听器管理:添加/删除端口和协议
- ⚡ 生成应用验证模式:可靠的写入操作
🎯 高级交通控制
- 📊 交通分流:Canary部署,基于百分比的流量分布
- ⚖️ 负载平衡:配置策略(轮询、最小请求、随机、环哈希、磁悬浮)
- 🏥 健康检查:后端服务运行状况监视配置
- 🛡️ 交通政策:速率限制、身份验证、CORS和超时策略
🛡️ 安全生产
- 🔒 只读模式:无修改风险的安全监控
- 🧪 干运行模式:生成YAML清单而不应用
- ✅ 全面验证:符合RFC 1123的资源名称、主机名、端口
- 🚫 冲突预防:通过智能检查进行重复资源检测
- 🔐 RBAC错误处理:清除权限错误消息,并提供故障排除指南
- 🏷️ 资源标签:跟踪EGMCP管理的资源以进行审计跟踪
- ⚡ 输入消毒:在模拟运行和实时模式下进行实时验证
⚡ 增强功能
- 🎛️ 多环境支持:生产、分期、开发配置
- 🧪 边缘案例处理:用于生产的强大错误处理
- 📈 性能优化:使用Claude Desktop测试响应能力
- 🔄 Kubernetes集成:完整网关API资源CRUD操作
🎬 观看演示
查看这段YouTube短片,快速演示EGMCP服务器的运行情况:

*注意:演示显示了Sprint 2的功能。当前版本包括全面的路线管理和先进的交通控制!*
📖 文档
📚 完整的用户指南 -全面的安装、配置和使用文档
🚀 快速开始
1.安装EGMCP服务器
选项A:NPX安装(推荐-无需安装)
# Test the server directly
npx @saptak/egmcp-server stdio-tools --envoy-url http://localhost:19001
# With Kubernetes support for write operations
npx @saptak/egmcp-server stdio-tools --envoy-url http://localhost:19001 --kubernetes.kubeconfig ~/.kube/config对于Claude Desktop,配置如下:
{
"mcpServers": {
"egmcp-server": {
"command": "npx",
"args": [
"@saptak/egmcp-server",
"stdio-tools",
"--envoy-url",
"http://localhost:19001",
"--kubernetes.kubeconfig",
"/Users/yourname/.kube/config"
],
"env": {}
}
}
}对于只读监控:
{
"mcpServers": {
"egmcp-server": {
"command": "npx",
"args": [
"@saptak/egmcp-server",
"stdio-tools",
"--envoy-url",
"http://localhost:19001",
"--kubernetes.kubeconfig",
"/Users/yourname/.kube/config",
"--kubernetes.read_only"
],
"env": {}
}
}
}对于GitOps开发(模拟运行模式):
{
"mcpServers": {
"egmcp-server": {
"command": "npx",
"args": [
"@saptak/egmcp-server",
"stdio-tools",
"--envoy-url",
"http://localhost:19001",
"--kubernetes.dry_run"
],
"env": {}
}
}
}选项B:二进制安装
curl -sSL https://raw.githubusercontent.com/saptak/eg-mcp-server/main/install.sh | bash2.设置Envoy网关访问
# Automated setup
curl -sSL https://raw.githubusercontent.com/saptak/eg-mcp-server/main/setup-envoy.sh | bash
# Manual setup
kubectl get pods -n envoy-gateway-system
kubectl port-forward -n envoy-gateway-system pod/YOUR_ENVOY_POD 19001:190003.重新启动克劳德桌面
Claude Desktop将自动加载EGMCP服务器并使所有工具可用。
🛠️ 可用工具
可用工具概述
EGMCP服务器提供 11种专用工具 全面的Envoy网关管理:
只读监控工具 (4个工具)
- 听众:发现所有侦听器及其配置
- 路线:分析流量路由和虚拟主机
- 集群:列出后端服务和集群
- 总结:快速配置概述和运行状况
写入操作工具 (3个工具)
- 路线创建:通过自然语言创建HTTPRoute资源
- 路线删除:通过安全验证删除现有路线
- 听众管理:添加/删除网关侦听器(端口/协议)
高级交通控制 (4个工具)
- 交通分流:基于百分比分布的Canary部署
- 负载平衡:配置策略(循环、最小请求等)
- 健康检查:后端服务监控配置
- 交通政策:速率限制、身份验证、CORS、超时
📖 有关详细的工具文档、参数、示例和安全功能,请参阅 完整的用户指南.
💬 查询示例
安装后,您可以询问Claude Desktop:
配置分析和监控
- *“我的特使网关的当前状态如何?”*
- *“显示Envoy Gateway中的所有侦听器”*
- *“分析我的流量路由配置”*
- *“列出所有可用的后端服务”*
- *“给我一个网关配置摘要”*
路线管理
- *“在API.example.com上为我的API服务创建一个路由,该路由将流量发送到API-service端口8080”*
- *“为users.example.com添加一个名为user-api的新路由,指向用户服务:3000”*
- *“删除名为测试路由的路由”*
- *“为我的网关添加HTTPS支持”*
- *“从网关中删除端口8080上的侦听器”*
高级交通控制
- *“将20%的流量从api-v1转移到api-v2进行金丝雀测试”*
- *“为主网关侦听器配置轮询负载平衡”*
- *“以30秒的间隔为用户api路由设置健康检查”*
- *“对api路由应用每秒100个请求的速率限制”*
- *“为允许example.com来源的前端路由启用CORS”*
- *“将JWT身份验证添加到管理路由”*
模拟运行模式和GitOps
- *“为新路由生成YAML清单,而不应用它”*
- *“显示在不应用流量分流的情况下会做出哪些更改”*
- *“预览用于向我的路线添加健康检查的YAML”*
- *“在部署前以模拟运行模式运行以验证配置”*
高级路由配置
- *“在payments.app.com的生产命名空间中创建一个指向paymentsvc:8080的路由,路径为/api/v1”*
- *“在端口443上向演示网关添加HTTPS侦听器”*
- *“显示所有路线,然后为我的服务创建一条新路线”*
- *“逐步将10%的用户流量转移到新的推荐服务”*
故障排除
- *“检查端口8080上是否有侦听器”*
- *“查找指向产品服务集群的路线”*
- *“https_listener的配置是什么?”*
- *“为什么流量没有到达我的服务?”*
📋 系统要求
基本要求
- 操作系统:macOS、Linux、Windows
- 克劳德桌面:支持MCP的最新版本
- Envoy网关:启用管理员API的任何版本
- 网络接入:端口转发或直接访问Envoy网关管理员API
用于写入操作
- Kubernetes访问:kubectl配置和权限
- 网关API:安装了网关API CRD的Kubernetes集群
- RBAC权限:创建/修改HTTPRoute和网关资源的访问权限
可选的
- 去:1.21+(用于从源代码构建)
🔧 配置
关键配置选项
--envoy-url:Envoy网关管理员API URL--kubernetes.kubeconfig:kubeconfig文件的路径--kubernetes.read_only:启用只读模式(生产安全)--kubernetes.dry_run:启用模拟运行模式(生成清单而不应用)--kubernetes.default_namespace:操作的默认命名空间--log-level:记录详细信息(调试、信息、警告、错误)
快速配置示例
生产监控(只读)
{
"args": [
"stdio-tools",
"--envoy-url", "http://prod-envoy:19001",
"--kubernetes.kubeconfig", "/etc/kubernetes/prod-config",
"--kubernetes.read_only"
]
}GitOps开发(模拟运行模式)
{
"args": [
"stdio-tools",
"--envoy-url", "http://localhost:19001",
"--kubernetes.dry_run"
]
}📖 有关完整的配置选项、环境变量、多环境设置和详细示例,请参阅 配置指南.
🚨 故障排除
快速修复
“无法连接到MCP服务器”
- ✅ 检查二进制路径是否为绝对路径:
/usr/local/bin/egmcp-server - ✅ 配置更改后重新启动Claude Desktop
- ✅ 验证kubeconfig路径是否存在并且可以访问
与Envoy网关的“连接被拒绝”
- ✅ 运行自动安装程序:
curl -sSL https://raw.githubusercontent.com/saptak/eg-mcp-server/main/setup-envoy.sh | bash - ✅ 测试连接性:
curl http://localhost:19001/ready
写操作的“权限被拒绝”
- ✅ 使用只读模式进行监控:
--kubernetes.read_only - ✅ 检查kubectl访问权限:
kubectl get httproutes
“路由创建失败,出现验证错误”
- ✅ 资源名称:仅使用小写、数字和连字符(
api-service✅,Api_Service❌) - ✅ 主机名:有效的DNS格式(
api.example.com✅,invalid hostname❌) - ✅ 港口:必须为1-65535(8080✅, 70000❌)
测试与调试
# Health check
egmcp-server health --envoy-url http://localhost:19001
# Debug mode
egmcp-server stdio-tools --log-level debug --envoy-url http://localhost:19001
# Test read-only mode
echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "create_http_route", "arguments": {"name": "test", "gateway_name": "demo", "hostname": "test.local", "service_name": "svc", "service_port": 8080}}}' | \
egmcp-server stdio-tools --kubernetes.read_only📖 有关全面的故障排除、详细的错误解决方案、验证示例和测试程序,请参阅 完整的故障排除指南.
🤝 贡献
我们欢迎捐款!
- 问题和功能请求: https://github.com/saptak/eg-mcp-server/issues
📄 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
🆘 支持
______________________________________________________________________
准备好使用Claude Desktop增强您的Envoy网关管理了吗?开始使用NPX,体验先进交通控制的力量! 🚀
EGMCP服务器新手? 查看综合 用户指南 了解详细的示例和用例。
