Kubernetes MCP Server

공식

Go로 구축된 Claude Kubernetes MCP 서버입니다. ArgoCD, GitLab, Claude AI 및 Kubernetes와 통합하여 Kubernetes 환경의 고급 제어 및 자동화를 가능하게 합니다.

문서

Claude Kubernetes MCP 서버

CI Release Docker Pulls Docker Image Size Go Report Card License GitHub release

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.yamlapiKey이(가) 포함되어 있는지 확인하십시오. 이는 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 라이선스에 따라 라이선스가 부여됩니다.


기여하기

문서가 곧 확장될 예정입니다. 기여하고 싶으시다면 언제든지 풀 리퀘스트를 열거나 이슈를 제출해 주세요!