Kubernetes MCP Server
官方一個基於Go語言建構的Claude Kubernetes MCP伺服器,整合ArgoCD、GitLab、Claude AI與Kubernetes,實現對Kubernetes環境的進階控制與自動化。
文件
Claude Kubernetes MCP 伺服器
一個用於 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!