Kubernetes MCP Server

resmi

Server 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

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

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

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/config yang 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!