Kubernetes MCP Server

官方

一個基於Go語言建構的Claude Kubernetes MCP伺服器,整合ArgoCD、GitLab、Claude AI與Kubernetes,實現對Kubernetes環境的進階控制與自動化。

文件

Claude Kubernetes MCP 伺服器

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

一個用於 Kubernetes 叢集管理並整合 ArgoCD 與 GitLab 的模型上下文協定 (MCP) 伺服器。

此儲存庫包含以 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 授權條款


貢獻

文件將很快擴充。如果您想貢獻,歡迎提出 pull request 或回報 issue!