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),附带关于集群中任意资源的自定义查询。

文档

Blank Cut

Claude Kubernetes MCP Server

CI Release Docker Pulls Docker Image Size Go Report Card License GitHub release

一个用于 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 许可证 授权。


贡献

文档将很快扩展。如果您想贡献,欢迎提交拉取请求或提出问题!