模型上下文服务
一个基于 Kubernetes 部署的服务器,用于模型上下文协议(Model Context Protocol),支持通过可配置的环境变量实现安全通信、健康状态监控以及在 Azure Kubernetes 服务上的可扩展部署。
服务介绍
Model Context Protocol (MCP) 服务器
此仓库包含在 Azure Kubernetes Service (AKS) 上部署 MCP 服务器的 Kubernetes 配置。
先决条件
- Azure CLI
- kubectl
- Docker
- Node.js 18+
项目结构
.
├── k8s/
│ ├── deployment.yaml # Kubernetes deployment configuration
│ ├── service.yaml # Kubernetes service configuration
│ └── configmap.yaml # Kubernetes configmap for environment variables
├── src/ # Source code directory
├── Dockerfile # Container build configuration
├── package.json # Node.js dependencies
└── tsconfig.json # TypeScript configuration
部署步骤
- 构建 Docker 镜像:
docker build -t mcp-server:latest .
- 将镜像推送到 Azure 容器注册表 (ACR):
az acr login --name <your-acr-name>
docker tag mcp-server:latest <your-acr-name>.azurecr.io/mcp-server:latest
docker push <your-acr-name>.azurecr.io/mcp-server:latest
- 应用 Kubernetes 清单文件:
kubectl apply -f k8s/
- 验证部署:
kubectl get pods
kubectl get services
配置
应用程序可以通过定义在 ConfigMap (k8s/configmap.yaml) 中的环境变量进行配置。
健康检查
应用程序暴露了一个 /health 端点用于 Kubernetes 的健康检查。
监控
- 可以通过 Azure Monitor 监控资源使用情况
- 可以通过
kubectl logs查看应用程序日志
安全性
- 应用程序使用 HTTPS
- 配置了 CORS 以支持安全的跨源请求
- 实现了速率限制以防止滥用
- 使用 Helmet.js 设置安全头信息
扩展
默认情况下,部署配置为 3 个副本。你可以使用以下命令进行扩展或缩减:
kubectl scale deployment mcp-server --replicas=<number>