Kubernetes MCP Server

resmi

Go ile oluşturulmuş bir Claude Kubernetes MCP sunucusu. Bu sunucu, ArgoCD, GitLab, Claude AI ve Kubernetes ile entegre olarak Kubernetes ortamlarının gelişmiş kontrolü ve otomasyonunu sağlar.

Kubernetes MCP ile neler yapabilirsiniz?

  • Küme kaynaklarını incele — Asistanınızdan GET /api/v1/namespaces ve GET /api/v1/resources/{kind} aracılığıyla her türden ad alanını veya kaynağı listelemesini isteyin.
  • Belirli bir kaynağı sorun gider — Asistanın POST /api/v1/mcp/troubleshoot uç noktasını kullanarak example-pod gibi bir pod'u analiz etmesini veya sorun gidermesini sağlayın.
  • GitLab commit'lerini gözden geçir — Yapay zeka destekli içgörüler elde etmek için POST /api/v1/mcp/commit uç noktası üzerinden bir commit analizi talep edin.
  • ArgoCD uygulamalarını kontrol et — GET /api/v1/argocd/applications aracılığıyla tüm ArgoCD uygulamalarının listesini isteyin.
  • Kaynaklar üzerinde özel yapay zeka sorguları — Kümenizdeki herhangi bir kaynak hakkında özel bir sorguyla genel bir MCP isteği (POST /api/v1/mcp) gönderin.

Dokümantasyon

Blank Cut

Claude Kubernetes MCP Sunucusu

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

ArgoCD ve GitLab entegrasyonu ile Kubernetes küme yönetimi için bir Model Context Protocol (MCP) sunucusu.

Bu depo, Go dilinde yazılmış Claude Kubernetes MCP (Model Context Protocol) sunucusunu içerir. Sunucu, Kubernetes ortamlarının gelişmiş kontrolü ve otomasyonunu sağlamak için ArgoCD, GitLab, Claude AI ve Kubernetes ile entegre olur.

Dokümantasyonumuzu Buradan Görüntüleyin

İçindekiler


Genel Bakış

Bu sunucu, Claude AI, GitLab, ArgoCD ve Vault kullanarak Kubernetes iş yüklerini düzenlemek için tasarlanmıştır. Yapılandırılmış bir config.yaml tarafından yönlendirilen ve bir API anahtarı kullanılarak doğrulanan bu sistemlerle programatik etkileşime olanak tanıyan bir REST API sunar.

Ön Koşullar

  • Go 1.20+
  • Docker
  • Kubernetes kümesi ve geçerli ~/.kube/config
  • AWS_PROFILE yerel olarak ayarlanmış EKS kümesi
  • ArgoCD kimlik bilgileri
  • GitLab kişisel erişim belirteci
  • Claude API anahtarı (Anthropic)
  • Vault kimlik bilgileri (kullanıma bağlı olarak isteğe bağlı)

Kurulum Talimatları

1. Depoyu Klonlayın

git clone https://github.com/blankcut/kubernetes-mcp-server.git
cd kubernetes-mcp-server

2. Gerekli Ortam Değişkenlerini Dışa Aktarın

ArgoCD, GitLab ve Claude için kimlik bilgilerini dışa aktarın:

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"

Bir kubeconfig dosyasının mevcut olduğundan emin olun:

export KUBECONFIG=~/.kube/config

3. config.yaml Yapılandırın

kubernetes-claude-mcp/config.yaml dosyasını kimlik bilgileri ve sunucu tercihleriyle güncelleyin:

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

Sağlanan Go şablonlarını veya ortam değişkeni enterpolasyon yöntemini kullanabilirsiniz.

4. Postman için API Anahtarı Ekleyin

Lütfen bir config.yaml içinde bir apiKey bulundurduğunuzdan emin olun. Bu, Postman veya herhangi bir harici istemcide isteklerin kimliğini doğrulamak için kullanılacaktır.


Yerel Olarak Çalıştırma

cd kubernetes-claude-mcp
go run ./cmd/server/main.go

Hata Ayıklama Günlüğü ile:

LOG_LEVEL=debug go run ./cmd/server/main.go --config config.yaml

Sunucu başlayacak ve config.yaml içinde yapılandırılan bağlantı noktasına bağlanacaktır (varsayılan: 8080).


Docker ile Derleme ve Çalıştırma

1. İmajı Derleyin

cd kubernetes-claude-mcp
docker build -t claude-mcp-server -f Dockerfile .

2. Konteyneri Çalıştırın (ikinci derleme seçeneği dahildir)

cd kubernetes-claude-mcp
docker-compose build
docker-compose up -d

Üretim Dağıtımı

Kubernetes dağıtımı için depoya bir Helm grafiği dahildir:

1. Helm Grafiği Dizinine Gidin

cd kubernetes-claude-mcp/deployments/helm

2. Helm ile Dağıtın

values.yaml dosyasını uygun değerlerle güncelleyin ve çalıştırın:

helm install claude-mcp .

Yükseltmek için:

helm upgrade claude-mcp .

Lütfen sırların ve yapılandırma haritalarının kümede düzgün şekilde bağlandığından ve güvence altına alındığından emin olun.


API Dokümantasyonu

Aşağıda MCP sunucusu tarafından sunulan birincil uç noktalar bulunmaktadır. Tüm istekler X-API-Key başlığını gerektirir:

Genel

  • Sağlık Kontrolü
    • GET /api/v1/health

Kubernetes

  • Ad Alanlarını Listele
    • GET /api/v1/namespaces
  • Kaynakları Listele
    • GET /api/v1/resources/{kind}?namespace={ns}
  • Belirli Bir Kaynağı Al
    • GET /api/v1/resources/{kind}/{name}?namespace={ns}
  • Bir Kaynak için Olayları Al
    • GET /api/v1/events?namespace={ns}&resource={kind}&name={name}

ArgoCD

  • Uygulamaları Listele
    • GET /api/v1/argocd/applications

Claude MCP Uç Noktaları

  • Kaynağı Analiz Et
    • POST /api/v1/mcp/resource
  • Kaynağı Sorun Gider
    • POST /api/v1/mcp/troubleshoot
  • Commit Analizi (GitLab)
    • POST /api/v1/mcp/commit
  • Genel MCP İsteği
    • POST /api/v1/mcp

Tüm POST uç noktaları aşağıdaki gibi alanlar içeren bir JSON yükünü kabul eder:

{
  "resource": "pod",
  "name": "example-pod",
  "namespace": "default",
  "query": "What’s wrong with this pod?"
}

Postman Koleksiyonu

Kullanıma hazır bir Postman koleksiyonu yakında sunulacaktır.

Bağış

Harika şeyler yapmaya devam etmemize yardımcı olmak için kahve fonumuza katkıda bulunun Bana Kahve Ismarla

Lisans

Bu proje MIT Lisansı altında lisanslanmıştır.


Katkıda Bulunma

Dokümantasyon yakında genişletilecektir. Katkıda bulunmak isterseniz, bir çekme isteği açmaktan veya bir sorun bildirmekten çekinmeyin!