Kubernetes MCP Server
resmiServer Kubernetes MCP Claude, dibangun dalam Go. Server ini terintegrasi dengan ArgoCD, GitLab, Claude AI, dan Kubernetes untuk memungkinkan kontrol dan otomatisasi tingkat lanjut pada lingkungan Kubernetes.
Dokumentasi
Server Kubernetes MCP Claude
Server Model Context Protocol (MCP) untuk manajemen klaster Kubernetes dengan integrasi ArgoCD dan GitLab.
Repositori ini berisi server Claude Kubernetes MCP (Model Context Protocol), yang dibangun dengan Go. Server ini terintegrasi dengan ArgoCD, GitLab, Claude AI, dan Kubernetes untuk memungkinkan kontrol dan otomatisasi tingkat lanjut pada lingkungan Kubernetes.
Lihat Dokumentasi Kami Di Sini
Daftar Isi
- Gambaran Umum
- Prasyarat
- Petunjuk Penyiapan
- Konfigurasi
- Menjalankan Secara Lokal
- Membangun dan Menjalankan dengan Docker
- Deployment Produksi
- Dokumentasi API
- Koleksi Postman
- Lisensi
Gambaran Umum
Server ini dirancang untuk mengorkestrasi beban kerja Kubernetes menggunakan Claude AI, GitLab, ArgoCD, dan Vault. Server ini mengekspos REST API yang memungkinkan interaksi terprogram dengan sistem-sistem tersebut, digerakkan oleh config.yaml yang dikonfigurasi dan diautentikasi menggunakan kunci API.
Prasyarat
- Go 1.20+
- Docker
- Klaster Kubernetes &
~/.kube/configyang valid - Klaster EKS dengan AWS_PROFILE yang diatur secara lokal
- Kredensial ArgoCD
- Token akses pribadi GitLab
- Kunci API Claude (Anthropic)
- Kredensial Vault (opsional, tergantung penggunaan)
Petunjuk Penyiapan
1. Kloning Repositori
git clone https://github.com/blankcut/kubernetes-mcp-server.git
cd kubernetes-mcp-server
2. Ekspor Variabel Lingkungan yang Diperlukan
Ekspor kredensial untuk ArgoCD, GitLab, dan 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"
Pastikan kubeconfig tersedia:
export KUBECONFIG=~/.kube/config
3. Konfigurasikan config.yaml
Perbarui kubernetes-claude-mcp/config.yaml dengan kredensial dan preferensi server:
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
Anda dapat menggunakan templat Go yang disediakan atau metode interpolasi variabel lingkungan.
4. Tambahkan Kunci API untuk Postman
Harap pastikan config.yaml menyertakan apiKey. Ini akan digunakan untuk mengautentikasi permintaan di Postman atau klien eksternal lainnya.
Menjalankan Secara Lokal
cd kubernetes-claude-mcp
go run ./cmd/server/main.go
Dengan Logging Debug:
LOG_LEVEL=debug go run ./cmd/server/main.go --config config.yaml
Server akan mulai dan terikat ke port yang dikonfigurasi di config.yaml (default: 8080).
Membangun dan Menjalankan dengan Docker
1. Bangun Image
cd kubernetes-claude-mcp
docker build -t claude-mcp-server -f Dockerfile .
2. Jalankan Kontainer (termasuk opsi build kedua)
cd kubernetes-claude-mcp
docker-compose build
docker-compose up -d
Deployment Produksi
Chart Helm disertakan dalam repositori untuk deployment Kubernetes:
1. Arahkan ke Direktori Chart Helm
cd kubernetes-claude-mcp/deployments/helm
2. Deploy dengan Helm
Perbarui values.yaml dengan nilai yang sesuai dan jalankan:
helm install claude-mcp .
Untuk meningkatkan:
helm upgrade claude-mcp .
Harap pastikan secret dan config map terpasang dan diamankan dengan benar di dalam klaster.
Dokumentasi API
Berikut adalah endpoint utama yang diekspos oleh server MCP. Semua permintaan memerlukan header X-API-Key:
Umum
- Pemeriksaan Kesehatan
GET /api/v1/health
Kubernetes
- Daftar Namespace
GET /api/v1/namespaces
- Daftar Sumber Daya
GET /api/v1/resources/{kind}?namespace={ns}
- Dapatkan Sumber Daya Spesifik
GET /api/v1/resources/{kind}/{name}?namespace={ns}
- Dapatkan Event untuk Sumber Daya
GET /api/v1/events?namespace={ns}&resource={kind}&name={name}
ArgoCD
- Daftar Aplikasi
GET /api/v1/argocd/applications
Endpoint Claude MCP
- Analisis Sumber Daya
POST /api/v1/mcp/resource
- Pemecahan Masalah Sumber Daya
POST /api/v1/mcp/troubleshoot
- Analisis Commit (GitLab)
POST /api/v1/mcp/commit
- Permintaan MCP Generik
POST /api/v1/mcp
Semua endpoint POST menerima payload JSON yang berisi field seperti:
{
"resource": "pod",
"name": "example-pod",
"namespace": "default",
"query": "What’s wrong with this pod?"
}
Koleksi Postman
Koleksi Postman siap pakai akan segera tersedia.
Donasi
Silakan berkontribusi untuk dana kopi kami agar kami dapat terus melakukan hal-hal hebat Belikan Saya Kopi
Lisensi
Proyek ini dilisensikan di bawah Lisensi MIT.
Berkontribusi
Dokumentasi akan segera diperluas. Jika Anda ingin berkontribusi, silakan buka pull request atau ajukan issue!