Kubernetes MCP Server
官方一个用Go构建的Claude Kubernetes MCP服务器,集成了ArgoCD、GitLab、Claude AI和Kubernetes,实现对Kubernetes环境的高级控制与自动化。
你可以用 Kubernetes MCP 做什么?
- 检查集群资源 — 让您的助手通过
GET /api/v1/namespaces和GET /api/v1/resources/{kind}列出任意类型的命名空间或资源。 - 排查特定资源 — 让助手使用
POST /api/v1/mcp/troubleshoot端点分析或排查类似example-pod的 Pod。 - 审查 GitLab 提交 — 通过
POST /api/v1/mcp/commit端点请求提交分析,获取 AI 驱动的见解。 - 检查 ArgoCD 应用 — 通过
GET /api/v1/argocd/applications请求列出所有 ArgoCD 应用。 - 对资源进行自定义 AI 查询 — 发送一个通用 MCP 请求(
POST /api/v1/mcp),附带关于集群中任意资源的自定义查询。
文档
Claude Kubernetes MCP Server
一个用于 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
生产部署
仓库中包含一个 Helm chart,用于 Kubernetes 部署:
1. 导航到 Helm Chart 目录
cd kubernetes-claude-mcp/deployments/helm
2. 使用 Helm 部署
使用适当的值更新 values.yaml 并运行:
helm install claude-mcp .
要升级:
helm upgrade claude-mcp .
请确保 secrets 和 config maps 在集群中正确挂载并安全保护。
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 许可证 授权。
贡献
文档将很快扩展。如果您想贡献,欢迎提交拉取请求或提出问题!