Cloud Platforms Go ★ 1,711

containers/kubernetes-mcp-server

Kubernetes MCP sunucusu OpenShift desteğiyle, **herhangi bir** Kubernetes kaynağına yönelik CRUD işlemleri sağlamasının yanı sıra kümenizle etkileşim kurmak için özel araçlar sunar.

Claude Desktop config.json'a ekle

{
  "mcpServers": {
    "containers-kubernetes-mcp-server": {
      "command": "node",
      "args": [
        "~/.mcp/kubernetes-mcp-server/index.js"
      ]
    }
  }
}

Kubernetes MCP Server

GitHub License npm PyPI - Version GitHub release (latest SemVer) Build

✨ Özellikler | 🚀 Başlarken | 🎥 Demolar | ⚙️ Yapılandırma | 🛠️ Araçlar | 💬 Topluluk | 🧑‍💻 Geliştirme

https://github.com/user-attachments/assets/be2b67b3-fc1c-4d11-ae46-93deba8ed98e

✨ Özellikler

Kubernetes ve OpenShift desteğine sahip güçlü ve esnek bir Kubernetes Model Context Protocol (MCP) sunucusu uygulaması.

  • ✅ Yapılandırma:
    • Kubernetes yapılandırmasındaki değişiklikleri otomatik olarak algılayın ve MCP sunucusunu güncelleyin.
    • Geçerli Kubernetes .kube/config veya cluster içi yapılandırmayı görüntüleyin ve yönetin.
  • ✅ Genel Kubernetes Kaynakları: Herhangi bir Kubernetes veya OpenShift kaynağında işlem gerçekleştirin.
    • Herhangi bir CRUD işlemi (Oluştur veya Güncelle, Al, Listele, Sil).
  • ✅ Pod'lar: Pod'a özel işlemler gerçekleştirin.
    • Tüm namespace'ler veya belirli bir namespace'de pod'ları listeleyin.
    • Belirtilen namespace'den adına göre bir pod alın.
    • Belirtilen namespace'den adına göre bir pod silin.
    • Belirtilen namespace'deki adına göre bir pod'un günlüklerini gösterin.
    • Top tüm pod'lar veya belirtilen namespace'deki belirli bir pod'un kaynak kullanım metriklerini alır.
    • Bir pod'a exec yapın ve bir komut çalıştırın.
    • Bir pod'da container image çalıştırın ve isteğe bağlı olarak expose edin.
  • ✅ Namespace'ler: Kubernetes Namespace'lerini listeleyin.
  • ✅ Events: Tüm namespace'lerde veya belirli bir namespace'de Kubernetes event'lerini görüntüleyin.
  • ✅ Projeler: OpenShift Projects'lerini listeleyin.
  • ☸️ Helm:
    • Geçerli veya sağlanan namespace'de bir Helm chart'ını yükleyin.
    • Tüm namespace'lerde veya belirli bir namespace'de Helm release'lerini listeleyin.
    • Geçerli veya sağlanan namespace'den bir Helm release'ini kaldırın.
  • 🔧 Tekton: Genel Kubernetes kaynak yönetimine tamamlayan Tekton'a özgü işlemler.
    • Pipeline: Bir PipelineRun oluşturarak Tekton Pipeline'ını başlatın.
    • PipelineRun: Aynı spec ile bir PipelineRun'ı yeniden başlatın.
    • Task: Bir TaskRun oluşturarak Tekton Task'ını başlatın.
    • TaskRun: Aynı spec ile bir TaskRun'ı yeniden başlatın ve pod çözümlemesi aracılığıyla TaskRun günlüklerini alın.
  • 🔭 Gözlemlenebilirlik: İsteğe bağlı OpenTelemetry dağıtık izleme ve özel örnekleme oranları ile metrikler. Gerçek zamanlı istatistikler için /stats endpoint'ini içerir. Bkz. OTEL.md.

Diğer Kubernetes MCP sunucusu uygulamalarının aksine, bu sadece kubectl veya helm komut satırı araçlarının etrafında bir sarmalayıcı DEĞİLDİR. Bu, doğrudan Kubernetes API sunucusu ile etkileşime giren Go tabanlı native bir uygulamadır.

Sistemde yüklü olması gereken DÖŞ HARICI bağımlılık veya araç YOKTUR. Native ikili dosyaları kullanıyorsanız, sisteminizde Node veya Python yüklü olması gerekmez.

  • ✅ Hafif: Sunucu Linux, macOS ve Windows için tek bir native ikili dosya olarak dağıtılır.
  • ✅ Yüksek Performans / Düşük Gecikme: Harici komutları çağırma ve bekleme yükü olmadan doğrudan Kubernetes API sunucusu ile etkileşime girer.
  • ✅ Multi-Cluster: Aynı anda birden fazla Kubernetes cluster'ı ile etkileşime girebilir (kubeconfig dosyalarınızda tanımlanmış olarak).
  • ✅ Platformlar Arası: Linux, macOS ve Windows için native ikili dosya, npm paketi, Python paketi ve container/Docker image olarak mevcuttur.
  • ✅ Yapılandırılabilir: Komut satırı argümanlarını, TOML yapılandırma dosyalarını ve ortam değişkenlerini destekler.
  • ✅ İyi test edilmiş: Sunucu, farklı Kubernetes ortamları arasında güvenilirliğini ve doğruluğunu sağlamak için kapsamlı bir test paketine sahiptir.
  • 📚 Dokümantasyon: Kurulum rehberleri, yapılandırma referansı ve gözlemlenebilirlik dahil kapsamlı kullanıcı dokumentasyonu.

🚀 Başlarken

Gereksinimler

  • Bir Kubernetes cluster'ına erişim.
Claude Code

Kullanıcı dokumentasyonumuzda Claude Code başlangıç rehberine bakın.

Adanmış ServiceAccount ve salt okunur erişim ile güvenli bir üretim kurulumu için Kubernetes kurulum rehberine de bakın.

Claude Desktop

npx Kullanarak

npm yüklüyse, bu kubernetes-mcp-server ile Claude Desktop'ta başlamanın en hızlı yoludur.

claude_desktop_config.json dosyanızı açın ve mcp sunucusunu mcpServers listesine ekleyin:

{
  "mcpServers": {
    "kubernetes": {
      "command": "npx",
      "args": ["-y", "kubernetes-mcp-server@latest"]
    }
  }
}

VS Code / VS Code Insiders

Aşağıdaki linki basarak VS Code Insiders'da Kubernetes MCP server uzantısını yükleyin:

Alternatif olarak, aşağıdaki komutu çalıştırarak uzantıyı manuel olarak yükleyebilirsiniz:

# VS Code için
code --add-mcp '{"name":"kubernetes","command":"npx","args":["kubernetes-mcp-server@latest"]}'
# VS Code Insiders için
code-insiders --add-mcp '{"name":"kubernetes","command":"npx","args":["kubernetes-mcp-server@latest"]}'

Cursor

Aşağıdaki linki basarak Cursor'da Kubernetes MCP server uzantısını yükleyin:

Install MCP Server

Alternatif olarak, mcp.json dosyasını düzenleyerek uzantıyı manuel olarak yükleyebilirsiniz:

{
  "mcpServers": {
    "kubernetes-mcp-server": {
      "command": "npx",
      "args": ["-y", "kubernetes-mcp-server@latest"]
    }
  }
}

Goose CLI

Goose CLI yapay zeka (AI) ajanları ile başlamak için en kolay (ve en ucuz) yoldur.

npm Kullanarak

npm yüklüyse, bu kubernetes-mcp-server ile başlamanın en hızlı yoludur.

Goose config.yaml dosyanızı açın ve mcp sunucusunu mcpServers listesine ekleyin:

extensions:
  kubernetes:
    command: npx
    args:
      - -y
      - kubernetes-mcp-server@latest

🎥 Demolar

OpenShift Deployment'ını teşhis etme ve otomatik olarak düzeltme

Kubernetes MCP server'ının Claude Desktop tarafından, herhangi bir kullanıcı yardımı olmadan OpenShift'te bir deployment'ı otomatik olarak teşhis etmek ve düzeltmek için nasıl kullanıldığını gösteren demo.

https://github.com/user-attachments/assets/a576176d-a142-4c19-b9aa-a83dc4b8d941

Basit bir oyun Vibe Coding ve OpenShift'e dağıtma

Bu demoda, VS Code kullanarak basit bir oyunu Vibe Coding yapma sürecini ve bunu OpenShift'e dağıtmak için Podman MCP server ve Kubernetes MCP server'ını nasıl kullanacağınızı göstereceğim.

VS Code'da Kubernetes MCP Server ile GitHub Copilot'ı Güçlendirin - Tek Tıklamalı Kurulum!

Bu demoda, Kubernetes MCP server'ını VS code'da nasıl kuracağınızı bir linki tıklayarak göstereceğim.

⚙️ Yapılandırma

Kubernetes MCP server'ı komut satırı (CLI) argümanları kullanılarak yapılandırılabilir.

CLI yürütülebilir dosyasını npx, uvx kullanarak veya son yayın ikili dosyasını indirerek çalıştırabilirsiniz.

# Kubernetes MCP server'ını npx kullanarak çalıştırın (node ve npm yüklüyse)
npx kubernetes-mcp-server@latest --help
# Kubernetes MCP server'ını uvx kullanarak çalıştırın (uv ve python yüklüyse)
uvx kubernetes-mcp-server@latest --help
# Kubernetes MCP server'ını en son yayın ikili dosyasını kullanarak çalıştırın
./kubernetes-mcp-server --help

Yapılandırma Seçenekleri

Seçenek Açıklama
--port MCP sunucusunu Streamable HTTP modu (path /mcp) ve Server-Sent Event (SSE) (path /sse) modunda başlatır ve belirtilen port'ta dinler.
--log-level Günlüğe kaydetme seviyesini ayarlar (değerler 0-9 arası). kubectl günlüğe kaydetme seviyelerine benzer.
--config (İsteğe bağlı) Ana TOML yapılandırma dosyasının yolu. Ayrıntılar için Yapılandırma Referansı'na bakın.
--config-dir (İsteğe bağlı) Drop-in yapılandırma dizininin yolu. Dosyalar sözlüksel (alfabetik) sırada yüklenir. --config belirtilirse ana config dosyasına göre conf.d olarak varsayılan ayarlanır. Ayrıntılar için Yapılandırma Referansı'na bakın.
--kubeconfig Kubernetes yapılandırma dosyasının yolu. Sağlanmazsa, yapılandırmayı çözümlemeye çalışır (cluster içi, varsayılan konum, vb.).
--list-output Kaynak listesi işlemleri için çıktı biçimi (biri: yaml, table) (varsayılan "table")
--read-only Ayarlanırsa, MCP sunucusu salt okunur modda çalışır, yani Kubernetes cluster'ına herhangi bir yazma işlemine (oluştur, güncelle, sil) izin vermez. Bu, cluster'ı değişiklikler yapmadan hata ayıklamak veya incelemek için yararlıdır.
--disable-destructive Ayarlanırsa, MCP sunucusu Kubernetes cluster'ı üzerindeki tüm yıkıcı işlemleri (sil, güncelle, vb.) devre dışı bırakır. Bu, cluster'ı yanlışlıkla değişiklik yapmadan hata ayıklamak veya incelemek için yararlıdır. Bu seçenek --read-only kullanıldığında hiçbir etkisi yoktur.
--stateless Ayarlanırsa, MCP sunucusu durum bilgisiz modda çalışır, araç ve istem değişiklik bildirimlerini devre dışı bırakır. Bu, müşteri durumunun korunması istenmediği container dağıtımları, yük dengeleme ve serverless ortamlar için yararlıdır.
--toolsets Etkinleştirilecek araç setlerinin virgülle ayrılmış listesi. Daha fazla bilgi için 🛠️ Araçlar ve İşlevsellik bölümünü kontrol edin.
--disable-multi-cluster Ayarlanırsa, MCP sunucusu multi-cluster desteğini devre dışı bırakır ve kubeconfig dosyasındaki yalnızca geçerli context'i kullanır. Bunu, MCP sunucusunu tek bir cluster'a kısıtlamak istiyorsanız yararlıdır.
--cluster-provider Kullanılacak cluster sağlayıcı stratejisi (biri: kubeconfig, in-cluster, kcp, disabled). Ayarlanmazsa, sunucu ortama göre otomatik olarak algılar.

Not: Çoğu CLI seçeneğinin eşdeğer TOML yapılandırma alanları vardır. --disable-multi-cluster bayrağı TOML'de cluster_provider_strategy = "disabled" ayarlamaya eşdeğerdir. Tüm TOML seçenekleri için Yapılandırma Referansı'na bakın.

TOML Yapılandırma Dosyaları

Karmaşık veya kalıcı yapılandırmalar için CLI argümanları yerine TOML yapılandırma dosyalarını kullanın:

kubernetes-mcp-server --config /etc/kubernetes-mcp-server/config.toml

Örnek yapılandırma:

log_level = 2
read_only = true
toolsets = ["core", "config", "helm", "kubevirt"]

# Hassas kaynaklara erişimi reddet
[[denied_resources]]
group = ""
version = "v1"
kind = "Secret"

[telemetry]
endpoint = "http://localhost:4317"

Kapsamlı TOML yapılandırma dokümantasyonu için, dahil:

  • Tüm yapılandırma seçenekleri ve varsayılanları
  • Modüler ayarlar için drop-in yapılandırma dosyaları
  • SIGHUP aracılığıyla dinamik yapılandırma yeniden yükleme
  • Hassas kaynak türlerine erişimi kısıtlamak için reddedilen kaynaklar
  • MCP Tool Search için sunucu yönergeleri
  • Özel MCP promptları
  • HTTP modu için OAuth/OIDC kimlik doğrulaması (Keycloak, Microsoft Entra ID)

Yapılandırma Referansı'na bakın.

📊 MCP Günlüğe Kaydetme

Sunucu, MCP günlüğe kaydetme yeteneğini destekler ve istemcilerin yapılandırılmış günlük mesajları aracılığıyla hata ayıklama bilgisi almasını sağlar. Kubernetes API hataları otomatik olarak kategorize edilir ve uygun önem düzeyleri ile istemcilere günlüğe kaydedilir. Hassas veriler (token'lar, anahtarlar, parolalar, bulut kimlik bilgileri) istemcilere gönderilmeden önce otomatik olarak silinir.

MCP Günlüğe Kaydetme Rehberi'ne bakın.

🛠️ Araçlar ve İşlevsellik

Kubernetes MCP server'ı --toolsets komut satırı bayrağı veya toolsets yapılandırma seçeneği aracılığıyla belirli araç ve işlevsellik gruplarını (araçlar, kaynaklar, promptlar vb.) etkinleştirmeyi veya devre dışı bırakmayı destekler. Bu, AI araçlarınız için hangi Kubernetes işlevselliğinin kullanılabilir olduğunu kontrol etmenizi sağlar. Yalnızca ihtiyaç duyduğunuz araç setlerini etkinleştirmek, context boyutunu azaltmaya ve LLM'nin araç seçimi doğruluğunu iyileştirmeye yardımcı olabilir.

Kullanılabilir Araç Setleri

Aşağıdaki araç setleri mevcuttur (Varsayılan sütununda ✓ işareti bulunan araç setleri varsayılan olarak etkindir):

Araç Seti Açıklama Varsayılan
config Geçerli yerel Kubernetes yapılandırmasını (kubeconfig) görüntüleyin ve yönetin
core Kubernetes yönetimi için en yaygın araçlar (Pod'lar, Genel Kaynaklar, Event'ler, vb.)
helm Helm chart'larını ve yayınlarını yönetmek için araçlar
kcp Kcp çalışma alanlarını ve multi-tenancy özelliklerini yönetin
kiali Kiali'yi yönetmek için en yaygın araçlar, daha fazla ayrıntı için Kiali dokümantasyonuna bakın.
kubevirt KubeVirt sanal makine yönetimi araçları, daha fazla ayrıntı için KubeVirt dokümantasyonuna bakın.
tekton Tekton pipeline yönetimi araçları Pipelines, PipelineRuns, Tasks ve TaskRuns için.

Araçlar

Multi-cluster desteği etkinse (varsayılan) ve birden fazla cluster'a erişiminiz varsa, tüm uygulanabilir araçlar, o işlem için kullanılacak Kubernetes context'ini (cluster'ı) belirtmek için ek bir context argümanı içerecektir.

config
  • configuration_contexts_list - Kubeconfig dosyasından tüm kullanılabilir context adlarını ve ilişkili sunucu url'lerini listeleyin

  • targets_list - Tüm kullanılabilir hedefleri listeleyin

  • configuration_view - Geçerli Kubernetes yapılandırma içeriğini kubeconfig YAML olarak alın

    • minified (boolean) - Yapılandırmanın minifiye edilmiş bir versiyonunu döndürün. True olarak ayarlanırsa, yalnızca geçerli context ve o context'in yapılandırmasının ilgili parçalarını tutar. False olarak ayarlanırsa, tüm context'ler, cluster'lar, auth-info'lar ve kullanıcılar yapılandırmada döndürülür. (İsteğe bağlı, varsayılan true)
core
  • events_list - Hata ayıklamak ve sorun gidermek için geçerli cluster'daki tüm namespace'lerden Kubernetes event'lerini (uyarılar, hatalar, durum değişiklikleri) listeleyin

    • fieldSelector (string) - Event'leri alan değerlerine göre filtrelemek için isteğe bağlı Kubernetes field selector'ı (örn. 'type=Warning', 'involvedObject.name=my-pod'). Desteklenen alanlar: involvedObject.kind, involvedObject.name, involvedObject.namespace, involvedObject.uid, involvedObject.apiVersion, involvedObject.resourceVersion, involvedObject.fieldPath, reason, reportingComponent, source, type. Bkz. https://kubernetes.io/docs/concepts/overview/working-with-objects/field-selectors/
    • namespace (string) - Event'leri alacak isteğe bağlı Namespace. Sağlanmazsa, tüm namespace'lerden event'leri listeler
  • namespaces_list - Geçerli cluster'daki tüm Kubernetes namespace'lerini listeleyin

  • projects_list - Geçerli cluster'daki tüm OpenShift project'lerini listeleyin

  • nodes_log - Kubernetes node'undan günlükleri alın (kubelet, kube-proxy veya diğer sistem günlükleri). Bu, Kubernetes API proxy'si aracılığıyla kubelet'e erişir

    • name (string) (gerekli) - Günlükleri alınacak node'un adı
    • query (string) (gerekli) - query, günlüklerin döndürüleceği servis(ler) veya dosyaları belirtir (gerekli). Örnek: kubelet günlüklerini almak için "kubelet", node'dan belirli bir günlük dosyasını almak için "/" (örn., "/var/log/kubelet.log" veya "/var/log/kube-proxy.log")
    • tailLines (integer) - Günlüklerin sonundan alınacak satır sayısı (İsteğe bağlı, 0 tüm günlükleri anlamına gelir)
  • nodes_stats_summary - Kubelet'in Summary API'sı aracılığıyla Kubernetes node'undan ayrıntılı kaynak kullanım istatistikleri alın. CPU, bellek, dosya sistemi ve ağ kullanımı dahil olmak üzere node, pod ve container seviyeleri de kapsamlı metrikler sağlar. cgroup v2 ve kernel 4.20+ olan sistemlerde PSI (Pressure Stall Information) metriklerini de içerir ve CPU, bellek ve I/O için kaynak baskısını gösterir. Bkz. https://kubernetes.io/docs/reference/instrumentation/understand-psi-metrics/ PSI metrikleri hakkında detaylar için

    • name (string) (gerekli) - Stats alınacak node'un adı
  • nodes_top - Kubernetes Metrics Server tarafından kaydedilen belirtilen Kubernetes Node'ları veya cluster'daki tüm node'lar için kaynak tüketimini (CPU ve bellek) listeleyin

    • label_selector (string) - Node'ları label'e göre filtrelemek için Kubernetes label selector'ı (örn. 'node-role.kubernetes.io/worker=') (İsteğe bağlı, yalnızca name sağlanmadığında uygulanabilir)
    • name (string) - Kaynak tüketimini alacak Node'un adı (İsteğe bağlı, name sağlanmazsa tüm Node'lar)
  • pods_list - Geçerli cluster'daki t

Benzer MCP sunucuları

Daha fazla: Cloud Platforms →