mcp-server-kubernetes
무엇인가
MCP(Model Context Protocol) 서버다. Kubernetes 클러스터 관리 명령을 MCP 도구 집합으로 노출해, MCP를 지원하는 클라이언트가 셸을 거치지 않고 클러스터를 조회·생성·수정·삭제하게 한다. kubectl을 대체하는 CLI가 아니라 클라이언트와 클러스터 사이에 끼는 도구 제공자다.
어떻게 동작하나
TypeScript로 작성된 Node 프로세스로 동작한다. MCP 클라이언트 설정에 등록하면 클라이언트가 서버를 띄우고 도구 목록을 받아 호출한다. kubeconfig는 우선순위에 따라 여러 소스에서 로드하며 기본값은 ~/.kube/config이고, 실제 클러스터 조작은 PATH에 있는 kubectl 실행으로 위임한다. 노출되는 도구는 kubectl_get, kubectl_describe, kubectl_create, kubectl_apply, kubectl_delete, kubectl_logs, kubectl_context, kubectl_patch, kubectl_scale, kubectl_rollout, kubectl_generic, explain_resource, list_api_resources, port_forward, ping이다. 여기에 Helm 설치·업그레이드·삭제와 템플릿 기반 적용·삭제, 문제 파드 정리(cleanup_pods), 노드 cordon/drain/uncordon(node_management)이 별도 도구로 붙는다.
무엇과 다른가
사람이 kubectl 명령 문자열을 조립하는 방식과 달리, 도구 이름과 구조화된 인자로 호출한다. 임의 명령이 필요하면 kubectl_generic으로 빠져나간다. Helm은 Tiller 없이 v3를 쓰고, 인증 문제를 피하려고 helm_template_apply·helm_template_uninstall로 매니페스트를 렌더링해 적용하는 경로를 둔다. kubectl get secrets 출력은 민감 데이터를 마스킹하며 로그에는 적용되지 않는다. non-destructive 모드를 켜면 읽기와 생성·수정만 허용한다.
어떻게 쓰나
Claude Code는 내장 명령으로 등록하고, Codex CLI는 ~/.codex/config.toml에 전역 등록한다. Claude Desktop은 설정 파일에 서버 항목을 추가하거나 Extensions에서 mcpb 확장으로 설치한다. VS Code와 Cursor는 각자의 MCP 설정에 서버를 넣는다. mcp-chat CLI로도 붙일 수 있고 기존 Claude Desktop 설정 파일을 그대로 넘길 수 있다. 연결은 ping 도구나 kubectl get pods로 확인한다.
전제와 한계
kubectl이 PATH에 있어야 하고, 컨텍스트가 구성된 유효한 kubeconfig와 접근 권한이 있는 클러스터가 필요하다. Helm 도구를 쓰려면 Helm v3가 PATH에 있어야 한다. 기본 kubeconfig 경로는 ~/.kube/config이며 환경변수·커스텀 경로 같은 추가 인증 옵션은 ADVANCED_README.md에 있다. OpenTelemetry 추적은 기본 비활성이고 환경변수나 Helm 설정으로 켜서 OTLP 백엔드로 내보낸다.
관련 논문 2
유사 도구
- gemini-cliGemini 모델을 터미널에서 직접 쓰는 TypeScript 기반 오픈소스 AI 에이전트다. 파일·셸·검색 도구와 MCP 서버를 붙여 코드 작업을 실행한다.
- eko자연어 지시를 의존성 그래프로 계획해 브라우저와 Node.js에서 멀티 에이전트로 실행하는 TypeScript 프레임워크다. MCP 서버를 도구로 붙이고 실행을 일시정지·재개한다.
- headroomLLM에 도달하기 전에 도구 출력·로그·파일·RAG 청크를 압축해 토큰을 줄이는 Python 라이브러리 겸 로컬 프록시 겸 MCP 서버다.
- git-mcpGitHub 저장소의 최신 문서와 코드를 MCP 서버로 노출해 AI 어시스턴트가 환각 없이 참조하게 하는 TypeScript 원격 서버다.
- agentmemory코딩 에이전트의 작업을 자동으로 수집·압축해 검색 가능한 장기 기억으로 저장하고, 다음 세션 시작 시 관련 컨텍스트를 주입하는 TypeScript CLI다.