Kubernetes MCP Server

官方

一个用Go构建的Claude Kubernetes MCP服务器,集成了ArgoCD、GitLab、Claude AI和Kubernetes,实现对Kubernetes环境的高级控制与自动化。

你可以用 Kubernetes MCP 做什么?

  • 列出 Kubernetes 命名空间 — 通过 GET /api/v1/namespaces 检索集群中的所有命名空间。
  • 按类型列出资源 — 使用 GET /api/v1/resources/{kind} 获取命名空间中指定类型(如 Pod、Deployment 等)的资源。
  • 获取资源详情 — 通过 GET /api/v1/resources/{kind}/{name} 按名称和命名空间检查特定的 Kubernetes 资源。
  • 检索资源事件 — 通过 GET /api/v1/events 查询按命名空间、资源类型和名称过滤的 Kubernetes 事件。
  • 列出 ArgoCD 应用 — 通过 GET /api/v1/argocd/applications 查看 ArgoCD 管理的所有应用。
  • 排查资源问题 — 使用 POST /api/v1/mcp/troubleshoot 让助手分析故障 Pod 或其他资源。

文档

Claude Kubernetes MCP 服务器

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

生产环境部署

仓库中包含一个用于 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 许可证 授权。


贡献

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