Kubernetes MCP Server
resmiGo 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
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ış
- Ön Koşullar
- Kurulum Talimatları
- Yapılandırma
- Yerel Olarak Çalıştırma
- Docker ile Derleme ve Çalıştırma
- Üretim Dağıtımı
- API Dokümantasyonu
- Postman Koleksiyonu
- Lisans
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!