쿠버네티스 MCP 서버
✨ 기능 | 🚀 시작하기 | 🎥 데모 | ⚙️ 구성 | 🛠️ 도구 | 🧑💻 개발
https://github.com/user-attachments/assets/be2b67b3-fc1c-4d11-ae46-93deba8ed98e
✨ 특징
Kubernetes 와 OpenShift를 지원하는 강력하고 유연한 Kubernetes Model Context Protocol(MCP) 서버 구현입니다.
- ✅ 구성 :
- Kubernetes 구성의 변경 사항을 자동으로 감지하고 MCP 서버를 업데이트합니다.
- 현재 Kubernetes
.kube/config
또는 클러스터 내 구성을 보고 관리합니다.
- ✅ 일반 Kubernetes 리소스 : 모든 Kubernetes 또는 OpenShift 리소스에 대한 작업을 수행합니다.
- 모든 CRUD 작업(생성 또는 업데이트, 가져오기, 나열, 삭제).
- ✅ Pod : Pod별 작업을 수행합니다.
- 모든 네임스페이스 또는 특정 네임스페이스의 포드를 나열합니다 .
- 지정된 네임스페이스에서 이름으로 포드를 가져옵니다 .
- 지정된 네임스페이스에서 이름으로 Pod를 삭제합니다 .
- 지정된 네임스페이스에서 이름으로 Pod에 대한 로그를 표시합니다 .
- 포드에 exec를 넣고 명령을 실행합니다.
- 포드에서 컨테이너 이미지를 실행 하고 선택적으로 노출합니다.
- ✅ 네임스페이스 : Kubernetes 네임스페이스를 나열합니다.
- ✅ 이벤트 : 모든 네임스페이스 또는 특정 네임스페이스의 Kubernetes 이벤트를 확인합니다.
- ✅ 프로젝트 : OpenShift 프로젝트를 나열하세요.
- ☸️ 헬멧 :
- 현재 또는 제공된 네임스페이스에 Helm 차트를 설치합니다 .
- 모든 네임스페이스 또는 특정 네임스페이스의 Helm 릴리스를 나열합니다 .
- 현재 또는 제공된 네임스페이스에서 Helm 릴리스를 제거합니다 .
다른 쿠버네티스 MCP 서버 구현과 달리, 이 구현은 단순히 kubectl
이나 helm
명령줄 도구를 감싸는 래퍼가 아닙니다 . 쿠버네티스 API 서버와 직접 상호 작용하는 Go 기반 네이티브 구현 입니다.
시스템에 외부 종속성이나 도구를 설치할 필요가 없습니다 . 네이티브 바이너리를 사용하는 경우 시스템에 Node.js나 Python을 설치할 필요가 없습니다.
- ✅ 가벼움 : 이 서버는 Linux, macOS, Windows용 단일 네이티브 바이너리로 배포됩니다.
- ✅ 고성능/낮은 지연 시간 : 외부 명령을 호출하고 기다리는 오버헤드 없이 Kubernetes API 서버와 직접 상호 작용합니다.
- ✅ 크로스 플랫폼 : Linux, macOS, Windows용 네이티브 바이너리, npm 패키지, Python 패키지, 컨테이너/Docker 이미지로 제공됩니다.
- ✅ 구성 가능 : 서버 동작을 구성하기 위한 명령줄 인수를 지원합니다.
- ✅ 철저한 테스트 : 이 서버는 다양한 Kubernetes 환경에서 안정성과 정확성을 보장하기 위해 광범위한 테스트 모음을 갖추고 있습니다.
🚀 시작하기
요구 사항
- Kubernetes 클러스터에 액세스합니다.
클로드 데스크탑
npx 사용하기
npm이 설치되어 있다면 Claude Desktop에서 kubernetes-mcp-server
시작하는 가장 빠른 방법입니다.
claude_desktop_config.json
열고 mcpServers
목록에 mcp 서버를 추가합니다.
지엑스피1
VS 코드 / VS 코드 인사이더
다음 링크를 눌러 VS Code Insiders에서 Kubernetes MCP 서버 확장 프로그램을 설치하세요.
또는 다음 명령을 실행하여 확장 프로그램을 수동으로 설치할 수 있습니다.
구스 CLI
Goose CLI는 인공지능(AI) 에이전트를 사용하는 가장 쉽고 저렴한 방법입니다.
npm 사용하기
npm이 설치되어 있다면 kubernetes-mcp-server
시작하는 가장 빠른 방법입니다.
goose config.yaml
열고 mcpServers
목록에 mcp 서버를 추가합니다.
🎥 데모
OpenShift 배포 진단 및 자동 수정
Claude Desktop이 Kubernetes MCP 서버를 활용하여 사용자 지원 없이 OpenShift에서 배포를 자동으로 진단하고 수정하는 방법을 보여주는 데모입니다.
https://github.com/user-attachments/assets/a576176d-a142-4c19-b9aa-a83dc4b8d941
간단한 게임을 Vibe 코딩 하여 OpenShift에 배포
이 데모에서는 VS Code를 사용하여 간단한 게임을 Vibe Coding하는 과정과 Podman MCP 서버 와 Kubernetes MCP 서버를 활용하여 이를 OpenShift에 배포하는 방법을 안내해 드립니다.
VS Code에서 Kubernetes MCP 서버로 GitHub Copilot을 강화하세요 - 클릭 한 번으로 설정하세요!
이 데모에서는 링크를 클릭하기만 하면 VS 코드에서 Kubernetes MCP 서버를 설정하는 방법을 보여드리겠습니다.
⚙️ 구성
Kubernetes MCP 서버는 명령줄(CLI) 인수를 사용하여 구성할 수 있습니다.
npx
, uvx
사용하거나 최신 릴리스 바이너리를 다운로드하여 CLI 실행 파일을 실행할 수 있습니다.
구성 옵션
옵션 | 설명 |
---|---|
--sse-port | MCP 서버를 SSE(Server-Sent Event) 모드로 시작하고 지정된 포트에서 수신 대기합니다. |
--log-level | 로깅 수준을 설정합니다( 0~9 ). kubectl 로깅 수준 과 유사합니다. |
--kubeconfig | 쿠버네티스 구성 파일의 경로입니다. 지정하지 않으면 구성(클러스터 내, 기본 위치 등)을 확인하려고 시도합니다. |
--read-only | 이 옵션을 설정하면 MCP 서버가 읽기 전용 모드로 실행되어 Kubernetes 클러스터에서 쓰기 작업(생성, 업데이트, 삭제)을 허용하지 않습니다. 이는 클러스터를 변경하지 않고 디버깅하거나 검사하는 데 유용합니다. |
--disable-destructive | 이 옵션을 설정하면 MCP 서버가 Kubernetes 클러스터에서 모든 파괴적인 작업(삭제, 업데이트 등)을 비활성화합니다. 이는 실수로 클러스터를 변경하지 않고 디버깅하거나 검사하는 데 유용합니다. --read-only 옵션을 사용하면 이 옵션은 적용되지 않습니다. |
🛠️ 도구
configuration_view
현재 Kubernetes 구성 콘텐츠를 kubeconfig YAML로 가져옵니다.
매개변수:
minified
(boolean
, 선택 사항, 기본값:true
)- 구성의 축소된 버전을 반환합니다.
true
인 경우 현재 컨텍스트와 관련 구성 부분만 유지합니다.false
인 경우 모든 컨텍스트, 클러스터, 인증 정보 및 사용자를 반환합니다.
events_list
모든 네임스페이스에서 현재 클러스터의 모든 Kubernetes 이벤트를 나열합니다.
매개변수:
namespace
(string
, 선택 사항)- 이벤트를 검색할 네임스페이스입니다. 지정하지 않으면 모든 네임스페이스의 이벤트가 나열됩니다.
helm_install
제공된 이름과 차트를 사용하여 현재 또는 제공된 네임스페이스에 Helm 차트를 설치합니다.
매개변수:
chart
(string
, 필수)- 설치할 Helm 차트의 이름
- 로컬 경로 또는 원격 URL이 될 수 있습니다.
- 예:
./my-chart.tgz
또는https://example.com/my-chart.tgz
values
(object
, 선택 사항)- Helm 차트에 전달할 값
- 예:
{"key": "value"}
name
(string
, 선택 사항)- Helm 릴리스의 이름
- 제공되지 않으면 임의의 이름이 지정됩니다.
namespace
(string
, 선택 사항)- Helm 차트를 설치할 네임스페이스
- 제공되지 않으면 구성된 네임스페이스를 사용합니다.
helm_list
현재 또는 제공된 네임스페이스(또는 지정된 경우 모든 네임스페이스)에 있는 모든 Helm 릴리스를 나열합니다.
매개변수:
namespace
(string
, 선택 사항)- Helm 릴리스를 나열할 네임스페이스
- 제공되지 않으면 구성된 네임스페이스를 사용합니다.
all_namespaces
(boolean
, 선택 사항)true
경우 모든 네임스페이스의 Helm 릴리스가 나열됩니다.false
경우 지정된 네임스페이스에서 Helm 릴리스를 나열합니다.
helm_uninstall
제공된 이름을 사용하여 현재 또는 제공된 네임스페이스에서 Helm 릴리스를 제거합니다.
매개변수:
name
(string
, 필수)- 제거할 Helm 릴리스의 이름
namespace
(string
, 선택 사항)- Helm 릴리스를 제거할 네임스페이스
- 제공되지 않으면 구성된 네임스페이스를 사용합니다.
namespaces_list
현재 클러스터의 모든 Kubernetes 네임스페이스를 나열합니다.
매개변수: 없음
pods_delete
제공된 이름을 사용하여 현재 또는 제공된 네임스페이스에서 Kubernetes Pod를 삭제합니다.
매개변수:
name
(string
, 필수)- 삭제할 Pod의 이름
namespace
(string
, 필수)- Pod를 삭제할 네임스페이스
pods_exec
제공된 이름과 명령을 사용하여 현재 또는 제공된 네임스페이스의 Kubernetes Pod에서 명령을 실행합니다.
매개변수:
command
(string[]
, 필수)- Pod 컨테이너에서 실행할 명령
- 첫 번째 항목은 명령이고 나머지는 인수입니다.
- 예:
["ls", "-l", "/tmp"]
name
(문자열, 필수)- 포드의 이름
namespace
(문자열, 필수)- Pod의 네임스페이스
container
(string
, 선택 사항)- 로그를 가져올 Pod 컨테이너의 이름
pods_get
제공된 이름으로 현재 또는 제공된 네임스페이스에서 Kubernetes Pod를 가져옵니다.
매개변수:
name
(string
, 필수)- 포드의 이름
namespace
(string
, 필수)- Pod를 가져올 네임스페이스
pods_list
모든 네임스페이스에서 현재 클러스터의 모든 Kubernetes 포드를 나열합니다.
매개변수:
labelSelector
(string
, 선택 사항)- Kubernetes 레이블 선택기(예: 'app=myapp,env=prod' 또는 'app in (myapp,yourapp)'). 레이블별로 포드를 필터링하려면 이 옵션을 사용하세요.
pods_list_in_namespace
현재 클러스터의 지정된 네임스페이스에 있는 모든 Kubernetes 포드를 나열합니다.
매개변수:
namespace
(string
, 필수)- 포드를 나열할 네임스페이스
labelSelector
(string
, 선택 사항)- Kubernetes 레이블 선택기(예: 'app=myapp,env=prod' 또는 'app in (myapp,yourapp)'). 레이블별로 포드를 필터링하려면 이 옵션을 사용하세요.
pods_log
제공된 이름을 사용하여 현재 또는 제공된 네임스페이스의 Kubernetes Pod 로그를 가져옵니다.
매개변수:
name
(string
, 필수)- 로그를 가져올 Pod의 이름
namespace
(string
, 필수)- Pod 로그를 가져올 네임스페이스
container
(string
, 선택 사항)- 로그를 가져올 Pod 컨테이너의 이름
pods_run
제공된 컨테이너 이미지와 선택적 이름을 사용하여 현재 또는 제공된 네임스페이스에서 Kubernetes Pod를 실행합니다.
매개변수:
image
(string
, 필수)- Pod에서 실행할 컨테이너 이미지
namespace
(string
, 필수)- Pod를 실행할 네임스페이스
name
(string
, 선택 사항)- 포드 이름(제공되지 않으면 무작위 이름)
port
(number
, 선택사항)- Pod 컨테이너에서 노출할 TCP/IP 포트
- 제공되지 않으면 포트가 노출되지 않습니다.
projects_list
현재 클러스터의 모든 OpenShift 프로젝트를 나열합니다.
resources_create_or_update
리소스의 YAML 또는 JSON 표현을 제공하여 현재 클러스터에서 Kubernetes 리소스를 생성하거나 업데이트합니다.
매개변수:
resource
(string
, 필수)- Kubernetes 리소스의 표현을 포함하는 JSON 또는 YAML
- apiVersion, kind, metadata, spec과 같은 최상위 필드를 포함해야 합니다.
일반적인 apiVersion과 종류는 다음과 같습니다.
- v1 포드
- v1 서비스
- v1 노드
- 앱/v1 배포
- networking.k8s.io/v1 인그레스
resources_delete
현재 클러스터에서 Kubernetes 리소스 삭제
매개변수:
apiVersion
(string
, 필수)- 리소스의 apiVersion(예:
v1
,apps/v1
,networking.k8s.io/v1
)
- 리소스의 apiVersion(예:
kind
(string
, 필수)- 리소스 종류(예:
Pod
,Service
,Deployment
,Ingress
)
- 리소스 종류(예:
name
(string
, 필수)- 리소스의 이름
namespace
(string
, 선택 사항)- 네임스페이스 리소스를 삭제할 네임스페이스
- 클러스터 범위 리소스에 대해 무시됨
- 제공되지 않으면 구성된 네임스페이스를 사용합니다.
resources_get
현재 클러스터에서 Kubernetes 리소스 가져오기
매개변수:
apiVersion
(string
, 필수)- 리소스의 apiVersion(예:
v1
,apps/v1
,networking.k8s.io/v1
)
- 리소스의 apiVersion(예:
kind
(string
, 필수)- 리소스 종류(예:
Pod
,Service
,Deployment
,Ingress
)
- 리소스 종류(예:
name
(string
, 필수)- 리소스의 이름
namespace
(string
, 선택 사항)- 네임스페이스가 지정된 리소스를 검색할 네임스페이스
- 클러스터 범위 리소스에 대해 무시됨
- 제공되지 않으면 구성된 네임스페이스를 사용합니다.
resources_list
현재 클러스터의 Kubernetes 리소스 및 객체 나열
매개변수:
apiVersion
(string
, 필수)- 리소스의 apiVersion(예:
v1
,apps/v1
,networking.k8s.io/v1
)
- 리소스의 apiVersion(예:
kind
(string
, 필수)- 리소스 종류(예:
Pod
,Service
,Deployment
,Ingress
)
- 리소스 종류(예:
namespace
(string
, 선택 사항)- 네임스페이스 리소스를 검색할 네임스페이스
- 클러스터 범위 리소스에 대해 무시됨
- 제공되지 않으면 모든 네임스페이스의 리소스를 나열합니다.
labelSelector
(string
, 선택 사항)- Kubernetes 레이블 선택기(예: 'app=myapp,env=prod' 또는 'app in (myapp,yourapp)'). 레이블별로 포드를 필터링하려면 이 옵션을 사용하세요.
🧑💻 개발
mcp-inspector로 실행
프로젝트를 컴파일하고 mcp-inspector 로 Kubernetes MCP 서버를 실행하여 MCP 서버를 검사합니다.
Related MCP Servers
- -securityAlicense-qualityThis project is intended as a both MCP server connecting to Kubernetes and a library to build more servers for any custom resources in Kubernetes.Last updated -279GoMIT License
- -securityAlicense-qualityProvides MCP multi-cluster Kubernetes management and operations, featuring a management interface, logging, and nearly 50 built-in tools covering common DevOps and development scenarios. Supports both standard and CRD resources.Last updated -487GoMIT License
- -securityAlicense-qualityProvides MCP multi-cluster Kubernetes management and operations. It can be integrated as an SDK into your own project and includes nearly 50 built-in tools covering common DevOps and development scenarios. Supports both standard and CRD resources.Last updated -115GoMIT License
- -securityAlicense-qualityOpen source MCP server specializing in easy, fast, and secure tools for Databases.Last updated -1,430GoApache 2.0