Home
Login

用於 Kubernetes 集群管理命令的 MCP 伺服器

MITTypeScript 0.8kFlux159 Last Updated: 2025-06-11

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)

請求流程

  1. 客戶端請求: AI 代理透過 STDIO 發送請求
  2. 傳輸層: StdioTransport 轉發請求到 MCP 伺服器
  3. 路由處理: 伺服器將請求路由到相應處理器
  4. 工具執行: KubernetesManager 執行具體的 K8s 操作
  5. API 調用: 與 Kubernetes API 進行交互
  6. 響應返回: 處理結果逐層返回給客戶端

安裝與配置

環境要求

  • 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"]
    }
  }
}

連接驗證

在安裝完成後,您可以:

  1. 詢問 Claude 列出您的 Pod
  2. 創建測試部署
  3. 如有錯誤,先在終端運行 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 生態系統

  • mcp-chat: MCP 伺服器的 CLI 聊天客戶端
  • MCP Inspector: MCP 協定除錯工具
  • Claude Desktop: 支援 MCP 的 AI 助手桌面應用

Kubernetes 工具鏈

  • kubectl: 官方命令行工具
  • Helm: 包管理器
  • minikube: 本地開發環境
  • Rancher Desktop: 桌面 Kubernetes 環境

應用前景與價值

🎯 運維效率提升

透過自然語言操作 Kubernetes 集群,降低了學習曲線,提高了運維效率。新手也能快速上手複雜的集群管理任務。

🤖 智能化運維

結合 AI 代理的智能分析能力,可以實現:

  • 自動故障診斷
  • 智能資源推薦
  • 預測性維護
  • 自動化部署優化

🔗 無縫集成

與現有 Kubernetes 生態完全相容,無需改變現有工作流程,可以漸進式引入 AI 輔助運維。

📈 未來發展方向

  • 支援更多 Kubernetes 資源類型
  • 集成更多雲原生工具
  • 增強安全性和權限控制
  • 支援多集群管理
  • 圖形化操作介面

總結

Kubernetes MCP 伺服器項目代表了 AI 與雲原生技術結合的創新嘗試。它透過自然語言介面簡化了 Kubernetes 集群管理的複雜性,讓運維人員能夠更直觀、高效地管理容器化應用。

無論您是 Kubernetes 新手還是經驗豐富的運維專家,這個工具都能顯著提升您的工作效率。透過與 Claude 等 AI 助手的集成,它為智能化運維開闢了新的可能性,是現代 DevOps 工具鏈中的有力補充。

隨著雲原生技術的持續發展和 AI 技術的不斷進步,相信這類工具將在未來的 IT 運維中發揮越來越重要的作用。