MCP网关

一个生产就绪的MCP(模型上下文协议)网关,部署在Kubernetes上,具有企业级功能、健康检查和自愈能力。

  • by TEERAVIST
  • Batchfile
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 TEERAVIST/DOCKER_MCP_GATE_WAY

使用说明

MCP网关 - Kubernetes版

一个部署在Kubernetes上的、具备企业级功能、适当的健康检查以及自我修复能力的生产就绪型MCP(模型上下文协议)网关。

🚀 快速入门

先决条件

  • Kubernetes 集群(Minikube、Docker Desktop 或云服务提供商)
  • 已安装并配置 kubectl
  • 建议配置4GB+内存和2+个CPU核心

1. 部署到Kubernetes

Windows

cd k8s\scripts
deploy.bat

Linux/麦金塔(Mac)

cd k8s/scripts
chmod +x deploy.sh
./deploy.sh

2. 访问您的MCP网关

部署脚本将提供访问URL:

http://<service-ip>:4444
Username: admin
Password: admin123

📋 项目结构

MCP-Gateway/
├── .env                           # Environment variables
├── README.md                      # This file
├── KUBERNETES_SETUP.md            # Detailed Kubernetes setup guide
├── data/                          # Persistent data directory
├── k8s/                           # Kubernetes manifests
│   ├── namespaces/                # Namespace configuration
│   ├── configmaps/                # Configuration maps
│   ├── secrets/                   # Encrypted secrets
│   ├── persistent-volumes/        # Storage definitions
│   ├── services/                  # Service definitions
│   ├── deployments/               # Application deployments
│   └── scripts/                   # Deployment scripts
├── kaggle-data/                   # Kaggle datasets
└── logs/                          # Application logs

🏗️ 建筑学

核心服务

  • MCP网关 - 主应用配置2个副本以实现高可用性
  • PostgreSQL - 生产数据库,配备持久化存储
  • 剧作家之桥 - 带有延长启动时间的浏览器自动化
  • AI桥梁 - Context7与Gistpad的集成
  • 数据桥梁 - Kaggle与MSSQL的集成

健康检查

  • 存活探针 - 重启无响应的容器
  • 就绪探针 - 将容器标记为准备接受流量
  • 启动探测器 - 给容器一些时间来启动,然后再启动其他探测器

🔧 配置

环境变量

所有配置均通过以下方式管理:

  • .env 用于本地开发的文件
  • k8s/configmaps/mcp-gateway-config.yaml 用于 Kubernetes
  • k8s/secrets/mcp-gateway-secrets.yaml 对于敏感数据

外部服务

  • Kaggle - 数据竞赛平台
  • GitHub - 代码仓库与Gist集成
  • MSSQL(Microsoft SQL Server) - Microsoft SQL Server 数据库
  • 上下文7 - 人工智能/机器学习服务
  • 剧作家 - 浏览器自动化

🛠️ 管理命令

检查部署状态

kubectl get pods -n mcp-gateway
kubectl get services -n mcp-gateway

查看日志

kubectl logs -f -n mcp-gateway --all-containers=true

扩展服务

kubectl scale deployment mcp-gateway --replicas=3 -n mcp-gateway

更新服务

kubectl set image deployment/mcp-gateway mcp-gateway=ghcr.io/ibm/mcp-context-forge:0.8.1 -n mcp-gateway

清理部署

kubectl delete namespace mcp-gateway

🔒 安全

  • 命名空间隔离 - 所有服务都在专用命名空间中
  • 密钥管理 - 以Base64编码的敏感数据
  • 资源限制 - 防止资源滥用
  • 安全上下文 - 尽可能使用非root用户

📈 表现

  • 资源请求 - 为每项服务提供保证资源
  • 资源限制 - 最大资源使用上限
  • 水平扩展 - 多个副本以实现高可用性
  • 持久存储 - 快速、可靠的数据持久化

🐛 故障排除

常见问题

Pod 状态卡在“Pending”

kubectl describe nodes
kubectl get pvc -n mcp-gateway

服务无法访问

kubectl get endpoints -n mcp-gateway
kubectl get networkpolicy -n mcp-gateway

Playwright Pod 重启

kubectl logs playwright-bridge -n mcp-gateway
kubectl exec playwright-bridge -n mcp-gateway -- ls -la /ms-playwright

📚 文档

🤝 贡献

  1. 为仓库创建分支
  2. 创建一个特性分支
  3. 做出你的更改
  4. 提交拉取请求

📄 许可证

这个项目遵循MIT许可证授权。

🎉 成功了!

您的MCP网关现已在Kubernetes上运行,配置包括:

✅ 已解决的已退出问题(0) - 适当的存活性和就绪性探针
✅ 自修复建筑 - 自动从故障中恢复
✅ 可投入生产的数据库 - 使用持久化存储的PostgreSQL
✅ 所有外部服务 - Kaggle、GitHub、MSSQL、Context7 集成
✅ 代理支持 - 企业网络兼容性
✅(勾选标记,表示正确、确认或完成) 企业级安全 - 命名空间隔离和密钥管理
✅ 水平扩展 - 多个副本以实现高可用性
✅ 专业监控 - 全面的健康检查和日志记录

享受在 Kubernetes 上增强的 MCP 网关吧! 🚀