Cloud Platforms Python ★ 210

alexei-led/k8s-mcp-server

Kubernetes CLI komutlarını (kubectl, helm, istioctl, argocd) güvenli bir şekilde çalıştırmak için AI asistanlarını güçlendiren, Unix pipes kullanan, güvenli Docker ortamında çalışan ve çoklu mimari destekleyen hafif ama güçlü bir server.

Claude Desktop config.json'a ekle

{
  "mcpServers": {
    "alexei-led-k8s-mcp-server": {
      "command": "python",
      "args": [
        "-m",
        "k8s_mcp_server"
      ]
    }
  }
}

K8s MCP Server

CI Status Release Status codecov Image Tags Image Size Python Version License: MIT

K8s MCP Server, Anthropic'in Model Context Protocol (MCP) uygulaması olan Docker tabanlı bir sunucudur. Claude'un Kubernetes CLI araçlarını (kubectl, istioctl, helm, argocd) güvenli, konteynerleştirilmiş bir ortamda çalıştırmasını sağlar.

Demo: WordPress Uygulaması Dağıtma ve Sorun Giderme

Oturum 1: k8s-mcp-server ve Helm CLI kullanarak claude-demo namespace'inde bir WordPress uygulaması dağıtma, ardından MariaDB StatefulSet'ini sıfıra ölçekleyerek kasıtlı olarak kırma.

Oturum 2: k8s-mcp-server kullanarak bozuk WordPress sitesini kubectl komutlarıyla teşhis etme, veritabanı eksikliğini belirleme ve StatefulSet'i ölçeklendirerek ingress erişimini yapılandırma aracılığıyla düzeltme oturumu.

Demo

Nasıl Çalışır

flowchart LR
    A[User] --> |Asks K8s question| B[Claude]
    B --> |Sends command via MCP| C[K8s MCP Server]
    C --> |Executes kubectl, helm, etc.| D[Kubernetes Cluster]
    D --> |Returns results| C
    C --> |Returns formatted results| B
    B --> |Analyzes & explains| A

Claude, kullanıcılara şu şekillerde yardımcı olabilir:

  • Karmaşık Kubernetes kavramlarını açıklama
  • Kümenize karşı komutlar çalıştırma
  • Sorunları giderme
  • İyileştirmeler önerme
  • Kubernetes manifest'leri oluşturma

Claude Desktop ile Hızlı Başlangıç

Claude'u Kubernetes kümeleriniz ile 2 dakikadan kısa sürede çalışır hale getirin:

  1. Claude Desktop yapılandırma dosyanızı oluşturun veya güncelleyin:

    • macOS: $HOME/Library/Application Support/Claude/claude_desktop_config.json dosyasını düzenleyin
    • Windows: %APPDATA%\Claude\claude_desktop_config.json dosyasını düzenleyin
    • Linux: $HOME/.config/Claude/claude_desktop_config.json dosyasını düzenleyin
    {
      "mcpServers": {
        "kubernetes": {
          "command": "docker",
          "args": [
            "run",
            "-i",
            "--rm",
            "-v",
            "/Users/YOUR_USER_NAME/.kube:/home/appuser/.kube:ro",
            "ghcr.io/alexei-led/k8s-mcp-server:latest"
          ]
        }
      }
    }
    
  2. Claude Desktop'u yeniden başlatın

    • Yeniden başlattıktan sonra, giriş alanının sağ alt köşesinde Araçlar simgesini (🔨) göreceksiniz
    • Bu, Claude'un artık MCP sunucusu aracılığıyla K8s araçlarına erişebildiğini gösterir
  3. Claude Desktop'ta K8s araçlarını doğrudan kullanmaya başlayın:

    • "Mevcut olan Kubernetes context'leri neler?"
    • "Default namespace'indeki tüm pod'ları göster"
    • "Nginx'in 3 replika'sı ile bir deployment oluştur:1.21"
    • "Prod namespace'indeki 'database' StatefulSet'imde neyin yanlış olduğunu açıkla"
    • "Bitnami/wordpress chart'ını Helm ile dağıt ve service türünü LoadBalancer olarak ayarla"

Not: Claude Desktop, K8s komutlarını otomatik olarak MCP sunucusu aracılığıyla yönlendirir ve Claude arayüzünü terk etmeden kümeleriniz hakkında doğal bir konuşma sağlar.

Bulut Sağlayıcıları: AWS EKS, GKE veya Azure AKS için ek yapılandırma gerekecektir. Bulut Sağlayıcısı Desteği kılavuzuna bakın.

Özellikler

  • Birden Fazla Kubernetes Aracı: kubectl, helm, istioctl ve argocd tek bir konteynerde
  • Bulut Sağlayıcıları: AWS EKS, Google GKE ve Azure AKS için yerel destek
  • Güvenlik: Non-root kullanıcı olarak çalışır ve katı command doğrulaması vardır
  • Command Piping: jq, grep ve sed gibi yaygın Unix araçları için destek
  • Kolay Yapılandırma: Özelleştirme için basit ortam değişkenleri

Transport Protokolleri

Sunucu, K8S_MCP_TRANSPORT aracılığıyla yapılandırılan üç transport protokolünü destekler:

Transport Açıklama Varsayılan
stdio Standart I/O (Claude Desktop varsayılanı) Evet
streamable-http HTTP transport (uzak/web istemcileri için önerilen, MCP spec 2025-11-25) Hayır
sse Server-Sent Events (kullanımdan kaldırıldı, bunun yerine streamable-http kullanın) Hayır

Streamable HTTP transport kullanma örneği:

docker run --rm -p 8000:8000 \
  -v ~/.kube:/home/appuser/.kube:ro \
  -e K8S_MCP_TRANSPORT=streamable-http \
  ghcr.io/alexei-led/k8s-mcp-server:latest

Not: Docker'da HTTP transport'ları çalıştırırken, sunucu uygun port eşlemesi için otomatik olarak 0.0.0.0'a bağlanır. Docker dışında 127.0.0.1'e bağlanır.

Belgeler

Kullanım Örnekleri

Bağlandıktan sonra Claude'dan doğal dil kullanarak Kubernetes görevlerine yardımcı olmasını isteyebilirsiniz:

flowchart TB
    subgraph "Temel Komutlar"
        A1["Default namespace'indeki tüm pod'ları göster"]
        A2["Tüm namespace'ler arasında tüm service'leri al"]
        A3["Nginx pod'unun loglarını görüntüle"]
    end
    
    subgraph "Sorun Giderme"
        B1["Deployment'im neden başlamıyor?"]
        B2["Başarısız olan pod'u açıkla ve hatayı anlatma"]
        B3["Service'imin pod'lara düzgün şekilde bağlı olup olmadığını kontrol et"]
    end
    
    subgraph "Dağıtımlar ve Yapılandırma"
        C1["Nginx Helm chart'ını dağıt"]
        C2["Nginx'in 3 replika'sı ile bir deployment oluştur:latest"]
        C3["Service'im için bir ingress ayarla"]
    end
    
    subgraph "Gelişmiş İşlemler"
        D1["Istio service mesh'imizin durumunu kontrol et"]
        D2["V2 için %20 trafik ile canary dağıtımı ayarla"]
        D3["Depo'um için bir ArgoCD uygulaması oluştur"]
    end

Claude, amacınızı anlayabilir ve talebinize göre uygun kubectl, helm, istioctl veya argocd komutlarını çalıştırabilir. Daha sonra çıktıyı basit terimlerle açıklayabilir veya sorunları gidermenize yardımcı olabilir.

Gelişmiş Claude Desktop Yapılandırması

Kubernetes iş akışınızı optimize etmek için Claude Desktop'u yapılandırın:

Belirli Kümeleri ve Namespace'leri Hedefleme

{
  "mcpServers": {
    "kubernetes": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-v", "/Users/YOUR_USER_NAME/.kube:/home/appuser/.kube:ro",
        "-e", "K8S_CONTEXT=production-cluster",
        "-e", "K8S_NAMESPACE=my-application",
        "-e", "K8S_MCP_TIMEOUT=600",
        "ghcr.io/alexei-led/k8s-mcp-server:latest"
      ]
    }
  }
}

AWS EKS Kümelerine Bağlanma

{
  "mcpServers": {
    "kubernetes": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-v", "/Users/YOUR_USER_NAME/.kube:/home/appuser/.kube:ro",
        "-v", "/Users/YOUR_USER_NAME/.aws:/home/appuser/.aws:ro",
        "-e", "AWS_PROFILE=production",
        "-e", "AWS_REGION=us-west-2",
        "ghcr.io/alexei-led/k8s-mcp-server:latest"
      ]
    }
  }
}

Google GKE Kümelerine Bağlanma

{
  "mcpServers": {
    "kubernetes": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-v", "/Users/YOUR_USER_NAME/.kube:/home/appuser/.kube:ro",
        "-v", "/Users/YOUR_USER_NAME/.config/gcloud:/home/appuser/.config/gcloud:ro",
        "-e", "CLOUDSDK_CORE_PROJECT=my-gcp-project",
        "-e", "CLOUDSDK_COMPUTE_REGION=us-central1",
        "ghcr.io/alexei-led/k8s-mcp-server:latest"
      ]
    }
  }
}

Azure AKS Kümelerine Bağlanma

{
  "mcpServers": {
    "kubernetes": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-v", "/Users/YOUR_USER_NAME/.kube:/home/appuser/.kube:ro",
        "-v", "/Users/YOUR_USER_NAME/.azure:/home/appuser/.azure:ro",
        "-e", "AZURE_SUBSCRIPTION=my-subscription-id",
        "ghcr.io/alexei-led/k8s-mcp-server:latest"
      ]
    }
  }
}

Permissive Güvenlik Modu

{
  "mcpServers": {
    "kubernetes": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-v", "/Users/YOUR_USER_NAME/.kube:/home/appuser/.kube:ro",
        "-e", "K8S_MCP_SECURITY_MODE=permissive",
        "ghcr.io/alexei-led/k8s-mcp-server:latest"
      ]
    }
  }
}

Ayrıntılı güvenlik yapılandırma seçenekleri için Güvenlik Belgelerine bakın.

Lisans

Bu proje MIT Lisansı altında lisanslanmıştır - ayrıntılar için LICENSE dosyasına bakın.

Benzer MCP sunucuları

Daha fazla: Cloud Platforms →