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.

Dokümantasyon

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 Bağlam Protokolü (MCP) sunucusu.

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

Dokümantasyonumuza Buradan Bakın

İç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 kimlik doğrulaması yapılan, bu sistemlerle programatik etkileşime izin veren bir REST API sunar.

Ön Koşullar

  • Go 1.20+
  • Docker
  • Kubernetes kümesi ve geçerli ~/.kube/config
  • Yerel olarak AWS_PROFILE ayarlanmış EKS kümesi
  • ArgoCD kimlik bilgileri
  • GitLab kişisel erişim belirteci
  • Claude API anahtarı (Anthropic)
  • Vault kimlik bilgileri (isteğe bağlı, kullanıma 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'in 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 dosyasının bir apiKey içerdiğinden emin olun. Bu, Postman'da 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 porta 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 dahil)

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

Üretim Dağıtımı

Kubernetes dağıtımı için depoda bir Helm şeması bulunmaktadır:

1. Helm Şema 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 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
  • Kaynakta 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ü 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 lütfen kahve fonumuza katkıda bulunun Bana Kahve Al

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!