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 叢集管理並整合 ArgoCD 與 GitLab 的 Model Context Protocol (MCP) 伺服器。

此儲存庫包含以 Go 建置的 Claude Kubernetes MCP (Model Context Protocol) 伺服器。此伺服器整合了 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 授權。


貢獻

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