Kubernetes MCP Server
공식Go로 구축된 Claude Kubernetes MCP 서버입니다. ArgoCD, GitLab, Claude AI 및 Kubernetes와 통합하여 Kubernetes 환경의 고급 제어 및 자동화를 가능하게 합니다.
Kubernetes MCP(으)로 무엇을 할 수 있나요?
- 클러스터 리소스 검사 — 어시스턴트에게
GET /api/v1/namespaces및GET /api/v1/resources/{kind}를 통해 네임스페이스나 모든 종류의 리소스 목록을 요청하세요. - 특정 리소스 문제 해결 —
POST /api/v1/mcp/troubleshoot엔드포인트를 사용하여example-pod같은 파드를 어시스턴트가 분석하거나 문제를 해결하도록 하세요. - GitLab 커밋 검토 —
POST /api/v1/mcp/commit엔드포인트를 통해 커밋 분석을 요청하여 AI 기반 인사이트를 얻으세요. - ArgoCD 애플리케이션 확인 —
GET /api/v1/argocd/applications를 통해 모든 ArgoCD 애플리케이션 목록을 요청하세요. - 리소스에 대한 맞춤형 AI 쿼리 — 클러스터의 모든 리소스에 대한 사용자 지정 쿼리와 함께 일반 MCP 요청(
POST /api/v1/mcp)을 보내세요.
문서
Claude Kubernetes MCP 서버
ArgoCD 및 GitLab 통합을 지원하는 Kubernetes 클러스터 관리를 위한 MCP(Model Context Protocol) 서버입니다.
이 저장소는 Go로 구축된 Claude Kubernetes MCP(Model Context Protocol) 서버를 포함합니다. 이 서버는 ArgoCD, GitLab, Claude AI 및 Kubernetes와 통합하여 Kubernetes 환경의 고급 제어 및 자동화를 가능하게 합니다.
목차
개요
이 서버는 Claude AI, GitLab, ArgoCD 및 Vault를 사용하여 Kubernetes 워크로드를 오케스트레이션하도록 설계되었습니다. 구성된 config.yaml에 의해 구동되고 API 키로 인증되는 REST API를 노출하여 이러한 시스템과 프로그래밍 방식으로 상호 작용할 수 있게 합니다.
사전 요구 사항
- Go 1.20 이상
- Docker
- Kubernetes 클러스터 및 유효한
~/.kube/config - AWS_PROFILE이 로컬에 설정된 EKS 클러스터
- ArgoCD 자격 증명
- GitLab 개인 액세스 토큰
- Claude API 키(Anthropic)
- Vault 자격 증명(사용 사례에 따라 선택 사항)
설정 지침
1. 저장소 복제
git clone https://github.com/blankcut/kubernetes-mcp-server.git
cd kubernetes-mcp-server
2. 필수 환경 변수 내보내기
ArgoCD, GitLab 및 Claude에 대한 자격 증명을 내보냅니다:
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"
kubeconfig를 사용할 수 있는지 확인합니다:
export KUBECONFIG=~/.kube/config
3. config.yaml 구성
자격 증명 및 서버 기본 설정으로 kubernetes-claude-mcp/config.yaml를 업데이트합니다:
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
제공된 Go 템플릿 또는 환경 변수 보간 방법을 사용할 수 있습니다.
4. Postman용 API 키 추가
config.yaml에 apiKey가 포함되어 있는지 확인하십시오. 이는 Postman 또는 외부 클라이언트에서 요청을 인증하는 데 사용됩니다.
로컬 실행
cd kubernetes-claude-mcp
go run ./cmd/server/main.go
디버그 로깅 사용:
LOG_LEVEL=debug go run ./cmd/server/main.go --config config.yaml
서버가 시작되고 config.yaml에 구성된 포트(기본값: 8080)에 바인딩됩니다.
Docker로 빌드 및 실행
1. 이미지 빌드
cd kubernetes-claude-mcp
docker build -t claude-mcp-server -f Dockerfile .
2. 컨테이너 실행(두 번째 빌드 옵션 포함)
cd kubernetes-claude-mcp
docker-compose build
docker-compose up -d
프로덕션 배포
Kubernetes 배포를 위한 Helm 차트가 저장소에 포함되어 있습니다:
1. Helm 차트 디렉토리로 이동
cd kubernetes-claude-mcp/deployments/helm
2. Helm으로 배포
적절한 값으로 values.yaml를 업데이트하고 실행합니다:
helm install claude-mcp .
업그레이드하려면:
helm upgrade claude-mcp .
클러스터에서 시크릿과 구성 맵이 올바르게 마운트되고 보안이 유지되는지 확인하십시오.
API 문서
다음은 MCP 서버가 노출하는 주요 엔드포인트입니다. 모든 요청에는 X-API-Key 헤더가 필요합니다:
일반
- 상태 확인
GET /api/v1/health
Kubernetes
- 네임스페이스 목록
GET /api/v1/namespaces
- 리소스 목록
GET /api/v1/resources/{kind}?namespace={ns}
- 특정 리소스 가져오기
GET /api/v1/resources/{kind}/{name}?namespace={ns}
- 리소스에 대한 이벤트 가져오기
GET /api/v1/events?namespace={ns}&resource={kind}&name={name}
ArgoCD
- 애플리케이션 목록
GET /api/v1/argocd/applications
Claude MCP 엔드포인트
- 리소스 분석
POST /api/v1/mcp/resource
- 리소스 문제 해결
POST /api/v1/mcp/troubleshoot
- 분석 커밋(GitLab)
POST /api/v1/mcp/commit
- 일반 MCP 요청
POST /api/v1/mcp
모든 POST 엔드포인트는 다음과 같은 필드를 포함하는 JSON 페이로드를 허용합니다:
{
"resource": "pod",
"name": "example-pod",
"namespace": "default",
"query": "What’s wrong with this pod?"
}
Postman 컬렉션
바로 사용할 수 있는 Postman 컬렉션이 곧 제공될 예정입니다.
기부
훌륭한 일을 계속할 수 있도록 커피 기금에 기여해 주세요 커피 사주기
라이선스
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다.
기여
문서는 곧 확장될 예정입니다. 기여하고 싶다면 풀 리퀘스트를 열거나 이슈를 제출해 주세요!