Skip to main content
Glama

K8s 클러스터 운영 MCP Server

FastMCP 기반의 Kubernetes 운영 조회 MCP 서비스입니다. kubectl get / describe / logs / events --watch 등의 일상적인 트러블슈팅 동작을 LLM이 호출할 수 있는 읽기 전용 도구로 캡슐화하여 Claude 등 클라이언트가 클러스터 상태를 직접 읽고 장애 현장을 파악할 수 있게 합니다.

⚠️ 이 프로젝트는 읽기 전용 도구만 노출합니다(create/update/delete 없음). 그러나 여전히 읽기 전용 ServiceAccount RBAC와 함께 사용할 것을 권장합니다. 아래 '보안 권장사항'을 참조하세요.

도구 목록

도구

설명

대응 kubectl

list_nodes

노드 목록 개요

kubectl get nodes -o wide

get_node_detail

노드 상세

kubectl describe node

get_node_resource_usage

노드 리소스 요청/제한 요약 및 과부하 평가

describe node의 Allocated resources

find_problem_nodes

문제 노드 스캔(NotReady / 각종 Pressure)

list_pods

Pod 목록(namespace / label / field 필터 지원)

kubectl get pods -o wide

get_pod_detail

Pod 상세(label / workload / 이름 접두어로 위치 지정 지원)

kubectl describe pod

read_pod_log

Pod 컨테이너 로그 읽기

kubectl logs

query_events

클러스터 이벤트 조회(중복 제거 + 정렬)

kubectl get events

watch_events

이벤트 스트림 실시간 모니터링

kubectl get events --watch

watch_nodes

노드 상태 변화 실시간 모니터링

kubectl get nodes --watch

watch_pods

Pod 상태 변화 실시간 모니터링

kubectl get pods --watch

추가로 @mcp.prompt(노드 트러블슈팅 / 클러스터 점검 안내)와 @mcp.resource(k8s://cluster/summary 클러스터 요약) 두 가지 부가 기능이 있습니다.

Related MCP server: Kubernetes MCP Server

디렉터리 구조

├── app.py              # FastMCP 实例(叶子模块,破循环导入)
├── k8s_server.py       # 入口:导入 Tools 即自动注册全部工具
├── k8s_client.py       # K8s 客户端懒加载 + 单一配置真源
├── config.py           # 12-Factor 环境变量配置
├── prompts.py          # @mcp.prompt 引导
├── resources.py        # @mcp.resource 资源
├── Tools/              # 每个工具一个文件,导入即注册
├── utils/              # 纯解析/辅助模块(无 K8s/MCP 依赖)
└── tests/              # 单元测试

설치 및 실행

# 1. 创建虚拟环境并安装依赖
python -m venv .venv
# Windows
.venv\Scripts\activate
# Linux / macOS
source .venv/bin/activate

pip install -r requirements.txt

# 2. 运行(HTTP transport,默认 127.0.0.1:8081)
python k8s_server.py

테스트 실행

pip install -r requirements-dev.txt
python -m pytest -q

구성

모든 설정은 환경 변수를 통해 이루어지며 기본값이 있습니다(config.py 참조):

변수

기본값

설명

KUBECONFIG_PATH

""

kubeconfig 경로를 명시적으로 지정합니다. 비워 두면 공식 해석 체인($KUBECONFIG~/.kube/config)을 따릅니다.

K8S_VERIFY_SSL

true

TLS 인증서 검증 여부. 자체 서명을 디버깅하고 위험을 명확히 인지한 경우에만 false로 설정합니다.

MCP_SERVER_NAME

k8s-node-server

MCP 서비스 이름

MCP_TRANSPORT

http

전송 방식, http 또는 stdio

MCP_HOST

127.0.0.1

수신 주소

MCP_PORT

8081

수신 포트

K8s 연결 구성 로드 우선순위: in-cluster(Pod 내 SA) → 명시적 KUBECONFIG_PATH → 공식 kubeconfig 해석 체인이며, 단일 진실 공급원으로 여러 파일에서 조합하지 않습니다.

MCP 클라이언트 연동

Claude Code를 예로 들면(HTTP transport가 127.0.0.1:8081에서 실행 중일 때):

{
  "mcpServers": {
    "k8s-node-server": {
      "url": "http://127.0.0.1:8081/mcp"
    }
  }
}

보안 권장사항

  1. 읽기 전용 RBAC 사용: 이 서비스를 실행하는 Pod / 사용자에게 읽기 전용 ClusterRole을 구성하여 고권한 자격 증명을 빌려 쓰지 않도록 합니다.

  2. 기본적으로 로컬에만 바인딩: MCP_HOST 기본값은 127.0.0.1입니다. 외부에 노출해야 한다면 반드시 리버스 프록시 계층에서 인증(TLS + Token / OIDC)을 추가하세요. HTTP transport 자체에는 인증과 속도 제한이 없기 때문입니다.

  3. 인증서 검증을 끄지 마세요: K8S_VERIFY_SSL=false는 자체 서명 인증서를 임시 디버깅할 때만 사용하고, 프로덕션 환경에서는 true를 유지하세요.

  4. 자격 증명을 저장소에 넣지 마세요: kubeconfig에는 비밀 키가 포함되어 있습니다. .gitignorekubeconfig*가 이미 제외되어 있으니 강제로 커밋하지 마세요.

알려진 제한 사항

  • 모든 도구는 읽기 전용이며 변경 작업이 없습니다(의도적인 설계입니다).

  • watch_* 계열은 전역 동시성 잠금의 제한을 받습니다. 동시에 하나의 watch만 실행할 수 있어 API Server에 부하를 주지 않습니다.

  • 이벤트/로그 출력에는 길이 상한이 있어 초과하는 내용은 잘립니다(read_pod_log의 잘림 로직과 query_eventsmax_count 참조).

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/zj-hub-coder/k8s-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server