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 叢集管理並整合 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!