Kubernetes MCP 伺服器 - 項目詳細介紹
項目概述
Kubernetes MCP 伺服器是一個專門為 Kubernetes 集群管理設計的模型內容協定 (Model Content Protocol) 伺服器。它允許 AI 代理(如 Claude)透過自然語言命令來連接和管理 Kubernetes 集群,極大地簡化了容器編排和集群運維的複雜性。
項目地址: https://github.com/Flux159/mcp-server-kubernetes
核心特性
🎯 集群連接與管理
- 自動連接到當前 kubectl 上下文配置的集群
- 支援多種 Kubernetes 環境(minikube、Rancher Desktop、GKE 等)
- 完全相容現有的 kubeconfig 配置
📦 Pod 與部署管理
- Pod 操作: 創建、描述、刪除 Pod
- 部署管理: 列出所有部署,更新副本數量
- 自定義配置: 支援創建自定義 Pod 和部署配置
- 日誌查看: 獲取 Pod 日誌進行除錯(支援 Pod、部署、作業和標籤選擇器)
🌐 服務與網路管理
- 服務操作: 創建、描述、刪除、更新服務
- 埠口轉發: 支援 Pod 或服務的埠口轉發
- 網路配置: 完整的 Kubernetes 網路管理支援
🗂️ 資源與配置管理
- 命名空間: 列出所有命名空間,創建新命名空間
- ConfigMap: 創建、獲取、更新、刪除配置映射
- 節點管理: 列出和描述集群節點
- 定時任務: 創建、列出和描述 CronJob
⚙️ Helm 集成支援
- 圖表安裝: 使用自定義值安裝 Helm 圖表
- 版本管理: 支援版本規範和自定義倉庫
- 發布管理: 卸載和升級現有發布
- 命名空間支援: 完整的命名空間隔離
🔧 高級功能
- kubectl 支援: kubectl explain 和 kubectl api-resources 命令
- 事件監控: 獲取集群事件資訊
- 非破壞性模式: 僅允許讀取和創建/更新操作的安全模式
- 實時監控: 支援集群狀態的實時查看
系統架構
架構圖
Client (Claude/AI Agent)
↓
StdioTransport (通信傳輸層)
↓
MCP Server (協議處理)
↓
Request Handler (請求路由)
↓
KubernetesManager (K8s 管理器)
↓
Kubernetes API (集群 API)
請求流程
- 客戶端請求: AI 代理透過 STDIO 發送請求
- 傳輸層: StdioTransport 轉發請求到 MCP 伺服器
- 路由處理: 伺服器將請求路由到相應處理器
- 工具執行: KubernetesManager 執行具體的 K8s 操作
- API 調用: 與 Kubernetes API 進行交互
- 響應返回: 處理結果逐層返回給客戶端
安裝與配置
環境要求
- kubectl: 已安裝並配置在 PATH 中
- kubeconfig: 有效的 kubeconfig 檔案和上下文配置
- Kubernetes 集群: 可訪問的集群(minikube、GKE、EKS 等)
- Helm v3: 可選,如需使用 Helm 功能
- Node.js: 運行時環境
快速安裝
透過 NPM 安裝(推薦)
# 全域安裝
npm install -g mcp-server-kubernetes
# 或使用 npx 直接運行
npx mcp-server-kubernetes
Claude Desktop 集成
編輯 claude_desktop_config.json
檔案:
{
"mcpServers": {
"kubernetes": {
"command": "npx",
"args": ["mcp-server-kubernetes"]
}
}
}
連接驗證
在安裝完成後,您可以:
- 詢問 Claude 列出您的 Pod
- 創建測試部署
- 如有錯誤,先在終端運行
kubectl get pods
驗證連接
開發環境搭建
本地開發
# 克隆倉庫
git clone https://github.com/Flux159/mcp-server-kubernetes.git
cd mcp-server-kubernetes
# 安裝依賴(需要 bun)
bun install
# 開發模式啟動(監聽檔案變化)
bun run dev
# 運行單元測試
bun run test
# 構建項目
bun run build
使用場景與示例
🚀 日常運維場景
- "列出所有 Pod 的狀態" - 快速查看集群健康狀況
- "創建一個 nginx 部署,3 個副本" - 快速部署應用
- "查看 default 命名空間中出錯的 Pod 日誌" - 故障排除
- "將應用埠口轉發到本地 8080" - 本地除錯
📊 監控與除錯
- "顯示集群中所有事件" - 監控集群活動
- "描述 node-1 節點的詳細資訊" - 資源分析
- "查看最近的 CronJob 執行情況" - 定時任務監控
🛠️ 應用部署
- "使用 Helm 安裝 Redis 圖表" - 快速部署中間件
- "更新 web-app 部署的副本數為 5" - 擴容操作
- "創建生產環境的 ConfigMap" - 配置管理
高級配置
非破壞性模式
設置環境變數啟用安全模式:
export ALLOW_ONLY_NON_DESTRUCTIVE_TOOLS=true
此模式下只允許讀取和創建/更新操作,禁止刪除操作。
SSE 傳輸協定
支援伺服器推送事件傳輸協定,詳細配置參見項目的 ADVANCED_README.md
。
集群認證
支援多種 Kubernetes 認證方式:
- 證書認證
- Token 認證
- OIDC 認證
- 雲廠商 IAM 集成
技術棧與依賴
核心技術
- 運行時: Node.js + Bun
- 協定: Model Content Protocol (MCP)
- Kubernetes 客戶端: Official Kubernetes JavaScript Client
- 傳輸層: STDIO Transport
- 包管理: Helm v3
主要依賴
@kubernetes/client-node
: Kubernetes 官方 JS 客戶端
@modelcontextprotocol/sdk
: MCP 協定 SDK
commander
: 命令行參數解析
yaml
: YAML 檔案處理
相關項目與生態
MCP 生態系統
Kubernetes 工具鏈
- kubectl: 官方命令行工具
- Helm: 包管理器
- minikube: 本地開發環境
- Rancher Desktop: 桌面 Kubernetes 環境
應用前景與價值
🎯 運維效率提升
透過自然語言操作 Kubernetes 集群,降低了學習曲線,提高了運維效率。新手也能快速上手複雜的集群管理任務。
🤖 智能化運維
結合 AI 代理的智能分析能力,可以實現:
- 自動故障診斷
- 智能資源推薦
- 預測性維護
- 自動化部署優化
🔗 無縫集成
與現有 Kubernetes 生態完全相容,無需改變現有工作流程,可以漸進式引入 AI 輔助運維。
📈 未來發展方向
- 支援更多 Kubernetes 資源類型
- 集成更多雲原生工具
- 增強安全性和權限控制
- 支援多集群管理
- 圖形化操作介面
總結
Kubernetes MCP 伺服器項目代表了 AI 與雲原生技術結合的創新嘗試。它透過自然語言介面簡化了 Kubernetes 集群管理的複雜性,讓運維人員能夠更直觀、高效地管理容器化應用。
無論您是 Kubernetes 新手還是經驗豐富的運維專家,這個工具都能顯著提升您的工作效率。透過與 Claude 等 AI 助手的集成,它為智能化運維開闢了新的可能性,是現代 DevOps 工具鏈中的有力補充。
隨著雲原生技術的持續發展和 AI 技術的不斷進步,相信這類工具將在未來的 IT 運維中發揮越來越重要的作用。