Kubernetes MCP Server
官方一个用Go构建的Claude Kubernetes MCP服务器,集成了ArgoCD、GitLab、Claude AI和Kubernetes,实现对Kubernetes环境的高级控制与自动化。
文档
Claude Kubernetes MCP 服务器
一个用于 Kubernetes 集群管理的模型上下文协议 (MCP) 服务器,集成了 ArgoCD 和 GitLab。
本仓库包含使用 Go 语言构建的 Claude Kubernetes MCP(模型上下文协议)服务器。该服务器与 ArgoCD、GitLab、Claude AI 和 Kubernetes 集成,以实现对 Kubernetes 环境的高级控制和自动化。
目录
概述
此服务器旨在使用 Claude AI、GitLab、ArgoCD 和 Vault 来编排 Kubernetes 工作负载。它公开了一个 REST API,允许通过编程方式与这些系统交互,由配置的 config.yaml 驱动,并使用 API 密钥进行身份验证。
先决条件
- Go 1.20+
- Docker
- Kubernetes 集群和有效的
~/.kube/config - 已在本地设置 AWS_PROFILE 的 EKS 集群
- ArgoCD 凭据
- GitLab 个人访问令牌
- Claude API 密钥 (Anthropic)
- Vault 凭据(可选,取决于使用情况)
安装说明
1. 克隆仓库
git clone https://github.com/blankcut/kubernetes-mcp-server.git
cd kubernetes-mcp-server
2. 导出所需的环境变量
导出 ArgoCD、GitLab 和 Claude 的凭据:
export ARGOCD_USERNAME="argocd-username"
export ARGOCD_PASSWORD="argocd-password"
export GITLAB_TOKEN="gitlab-token"
export CLAUDE_API_KEY="claude-api-key"
export VAULT_TOKEN="optional-if-using-vault"
确保 kubeconfig 可用:
export KUBECONFIG=~/.kube/config
3. 配置 config.yaml
使用凭据和服务器偏好设置更新 kubernetes-claude-mcp/config.yaml:
server:
address: ":8080"
readTimeout: 30
writeTimeout: 60
auth:
apiKey: ""${API_KEY}""
kubernetes:
kubeconfig: ""
inCluster: false
defaultContext: ""
defaultNamespace: "default"
argocd:
url: "http://example.argocd.com"
authToken: ""
username: "${ARGOCD_USERNAME}"
password: "${ARGOCD_PASSWORD}"
insecure: true
gitlab:
url: "https://gitlab.com"
authToken: "${AUTH_TOKEN}"
apiVersion: "v4"
projectPath: ""${PROJECT_PATH}""
claude:
apiKey: "${API_KEY}"
baseURL: "https://api.anthropic.com"
modelID: "claude-sonnet-4.5-20250514"
maxTokens: 8192
temperature: 0.3
您可以使用提供的 Go 模板或环境变量插值方法。
4. 为 Postman 添加 API 密钥
请确保 config.yaml 包含 apiKey。这将用于在 Postman 或任何外部客户端中对请求进行身份验证。
本地运行
cd kubernetes-claude-mcp
go run ./cmd/server/main.go
启用调试日志:
LOG_LEVEL=debug go run ./cmd/server/main.go --config config.yaml
服务器将启动并绑定到 config.yaml 中配置的端口(默认:8080)。
使用 Docker 构建和运行
1. 构建镜像
cd kubernetes-claude-mcp
docker build -t claude-mcp-server -f Dockerfile .
2. 运行容器(包含第二个构建选项)
cd kubernetes-claude-mcp
docker-compose build
docker-compose up -d
生产环境部署
仓库中包含一个用于 Kubernetes 部署的 Helm chart:
1. 导航到 Helm Chart 目录
cd kubernetes-claude-mcp/deployments/helm
2. 使用 Helm 部署
使用适当的值更新 values.yaml 并运行:
helm install claude-mcp .
升级:
helm upgrade claude-mcp .
请确保密钥和配置映射在集群中正确挂载并受到保护。
API 文档
以下是 MCP 服务器公开的主要端点。所有请求都需要 X-API-Key 标头:
通用
- 健康检查
GET /api/v1/health
Kubernetes
- 列出命名空间
GET /api/v1/namespaces
- 列出资源
GET /api/v1/resources/{kind}?namespace={ns}
- 获取特定资源
GET /api/v1/resources/{kind}/{name}?namespace={ns}
- 获取资源事件
GET /api/v1/events?namespace={ns}&resource={kind}&name={name}
ArgoCD
- 列出应用程序
GET /api/v1/argocd/applications
Claude MCP 端点
- 分析资源
POST /api/v1/mcp/resource
- 排查资源问题
POST /api/v1/mcp/troubleshoot
- 提交分析 (GitLab)
POST /api/v1/mcp/commit
- 通用 MCP 请求
POST /api/v1/mcp
所有 POST 端点都接受包含以下字段的 JSON 负载:
{
"resource": "pod",
"name": "example-pod",
"namespace": "default",
"query": "What’s wrong with this pod?"
}
Postman 集合
一个即用型 Postman 集合即将推出。
捐赠
请为我们的咖啡基金捐款,以帮助我们继续做出伟大的事情 请我喝咖啡
许可证
本项目根据 MIT 许可证 授权。
贡献
文档将很快扩展。如果您想贡献,欢迎提交拉取请求或提出问题!