Token导航 LogoToken导航TokenDH.com
MCP Server Kubog logo
运维云端stdio官方级别未说明来源级核验

MCP Server Kubog

MCP Server

一个基于KOPF的Kubernetes SRE服务器,提供实时崩溃监控和50种SRE工具,用于诊断和修复Kubernetes集群问题。

工具数

52

提示词数

0

GitHub Stars

0

资源数

0
实时监控PythonClaudeClaude DesktopClaudeCursor

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

b-iurea

提供方

b-iurea

最后核验

2026/5/17 20:20

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python -m venv .venv

详细介绍

⚙️ mcp-server-kubog

A Kubernetes SRE MCP Server with real-time crash monitoring powered by KOPF

Features • Architecture • Tools • Getting Started • Configuration • License

______________________________________________________________________

概述

将其连接到任何兼容MCP的客户端(Claude Desktop、Cursor、自定义代理),让您的AI副驾驶在不离开对话的情况下观察、诊断和修复Kubernetes问题。

______________________________________________________________________

特性

  • 🔴 实时碰撞监控 --KOPF操作员手表 containerStatuses 并发出警报 OOMKilled, CrashLoopBackOff,以及 Error 立即状态。
  • 🛠️ 50个SRE工具 --从集群概述到主动补救,按逻辑类别分组。
  • 🔄 阅读 _和_ 写入操作 --不仅仅是可观察性:扩展部署、重启工作负载、回滚修订、修补OOM限制、封锁/解除封锁节点。
  • 🧠 令牌优化 -净化API响应(消除类似 managedFields),压缩YAML序列化,并强制日志截断,以最大限度地提高较小LLM上下文窗口的效用。
  • 📡 MCP本地 --通过以下方式与任何MCP客户端开箱即用 stdio 运输。
  • 🏗️ 模块化架构 --每个工具类别都有自己的模块;易于扩展或定制。

______________________________________________________________________

为什么选择KOPF而不是kubectl?

项目如 mcp服务器kubernetes 通过支付费用给人工智能助手Kubernetes访问权限 kubectl 引擎盖下。这是可行的,但它有很大的局限性。 mcp服务器kopf 通过使用 Kubernetes Python客户端 用于API调用和 KOPF 用于实时事件观看。

基于kubectl的服务器mcp服务器kopf
API交互炮弹发射到 kubectl → 解析文本输出原生Python客户端→ 结构化对象
实时监控❌ 基于民意调查或缺席✅ KOPF操作员实时观察事件
碰撞检测手动-必须查询pod自动-pod崩溃时发出警报
错误处理CLI输出的字符串解析来自Kubernetes API的类型异常
依赖需要 kubectl 主机上的二进制文件没有外部二进制文件——纯Python
补救仅限于 kubectl 谓词直接API修补程序(缩放、重新启动、回滚、OOM修复)
输出格式原始CLI文本(易解析)结构化、一致、专门构建的响应
可扩展性添加shell命令添加具有完全API访问权限的Python函数
安全任意命令执行风险作用域API调用-无外壳注入表面
闭环SRE❌ 仅检测和诊断✅ 检测→ 诊断→ 在一次对话中进行补救

关键优势

  • 🔴 主动,而非被动 --KOPF后台操作员持续监视吊舱状态。存在碰撞警报 *之前* 你甚至会问。使用基于kubectl的服务器,AI必须显式运行命令来发现问题。
  • 🔒 无壳,无风险 --基于kubectl的工具执行任意shell命令,这会引入注入风险,并需要安装二进制文件。此服务器仅使用官方Kubernetes Python客户端。
  • 🧱 结构化数据 --而不是解析 kubectl get pods -o wide 文本输出(可以跨版本),每个工具都返回从类型化的API对象构建的干净、结构化的字符串。
  • ⚡ 闭环修复 --除了观察之外,服务器还可以 *行动*:修补程序资源限制、触发器卷展重新启动、回滚部署和警戒节点—所有这些都通过安全的、范围限定的API调用实现。

______________________________________________________________________

建筑

┌──────────────────────────────────────────────────────┐
│                    MCP Client                        │
│         (Claude Desktop / Cursor / Agent)            │
└─────────────────────┬────────────────────────────────┘
                      │  stdio (MCP protocol)
┌─────────────────────▼────────────────────────────────┐
│                   main.py                            │
│  ┌──────────────┐  ┌─────────────────────────────┐   │
│  │  FastMCP     │  │  KOPF Background Operator   │   │
│  │  Server      │  │  (Thread)                   │   │
│  │              │  │                             │   │
│  │  45 Tools    │  │  Watches pod status fields  │   │
│  │  registered  │◄─┤  Populates cluster_alerts   │   │
│  └──────────────┘  └─────────────────────────────┘   │
└─────────────────────┬────────────────────────────────┘
                      │  kubernetes python client
┌─────────────────────▼────────────────────────────────┐
│              Kubernetes API Server                   │
└──────────────────────────────────────────────────────┘

______________________________________________________________________

工具参考

🖥️ 集群概述

工具说明
list_nodes列出所有节点的状态、角色、版本、CPU/内存容量
describe_node详细的节点信息:条件、污染、可分配资源、标签
list_namespaces列出所有具有状态和标签的命名空间
cluster_resource_usage总CPU/内存请求与可分配容量

📦 工作量

工具说明
list_deployments列出具有副本、就绪、可用、年龄的部署
describe_deployment部署细节:策略、条件、容器、标签
list_statefulsets列出带有就绪/所需副本的状态集
list_daemonsets列出具有所需/就绪/可用计数的DaemonSet
list_replicasets列出带有所有者引用的副本集
list_jobs列出工作状态、完成情况、持续时间
describe_job工作细节:完成、并行性、容器、条件
list_cronjobs列出CronJobs及其计划、上次运行、活动计数

🐳 容器组

工具说明
list_pods列出状态、重启、节点、IP(支持标签选择器)的Pod
describe_pod完整的吊舱细节:条件、容器、体积、事件
get_pod_logs使用容器、尾线和以前的容器支持检索吊舱日志
get_pod_resource_usage通过Metrics API实时使用CPU/内存

🌐 网络

工具说明
list_services列出服务类型、ClusterIP、外部IP、端口
describe_service带有选择器、端点和端口的服务详细信息
list_ingresses列出带有主机、路径和后端的入口
list_network_policies列出带有选择器和规则计数的网络策略
list_endpoints列出具有就绪/未就绪地址的端点

💾 存储

工具说明
list_pvs列出持久卷及其容量、访问、回收和状态
list_pvcs列出PVC的状态、容量、绑定量
describe_pvcPVC细节,包括条件和事件
list_storage_classes列出带有配置项、回收策略和参数的StorageClasses

⚙️ 配置

工具说明
list_configmaps列出带有密钥计数的ConfigMap
get_configmap读取ConfigMap数据(键和值)
list_secrets列出带有类型和密钥计数的机密(隐藏值)
describe_secret显示密钥/大小;可选解码base64值

🔐 基于角色的访问控制

工具说明
list_service_accounts列出具有秘密计数的服务帐户
list_roles列出具有规则计数的角色
list_cluster_roles列出具有规则计数的ClusterRoles
list_role_bindings列出带有主题和角色参考的角色组合
list_cluster_role_bindings列出带有主题和角色参考的ClusterRole绑定

📈 扩展

工具说明
list_hpas列出HPA,包括最小/最大/当前副本和CPU目标
scale_deployment手动将部署扩展到N个副本
scale_statefulset手动将StatefulSet扩展到N个副本

🩺 诊断

工具说明
generate_cluster_report生成整个集群状态的高级报告,包括节点、Pod和警报
get_diagnostic_context为pod或节点收集广泛的上下文以执行根本原因分析
get_active_alerts查看KOPF监视器检测到的实时碰撞警报
get_recent_events检索命名空间中的警告类型事件
get_all_events检索最近发生的所有事件(正常+警告)
list_resource_quotas显示资源配额(使用与硬限制)
list_limit_ranges显示具有默认/最大/最小容器限制的LimitRanges

🔧 补救

工具说明
fix_oom_resources修补拥有OOMKilled pod的部署的内存限制
restart_deployment执行部署的重新启动
rollback_deployment将部署回滚到上一版本
cordon_node将节点标记为不可调度
uncordon_node再次将节点标记为可调度

🧩 自定义资源

工具说明
list_crds列出群集中可用的所有自定义资源定义(CRD)
list_custom_resources列出特定CRD的自定义资源
get_custom_resource获取特定自定义资源的完整表示

______________________________________________________________________

入门指南

先决条件

  • Python 3.10+
  • 访问Kubernetes集群(本地或远程)
  • A有效 kubeconfig 文件或群集服务帐户中
  • 度量服务器 已安装(可选--必需 get_pod_resource_usage)

安装

# Clone the repository
git clone https://github.com/your-org/mcp-server-kopf.git
cd mcp-server-kopf

# Create a virtual environment
python -m venv .venv
source .venv/bin/activate  # Linux / macOS
# .venv\Scripts\activate   # Windows

# Install dependencies
pip install mcp[cli] kopf kubernetes

运行服务器

python main.py

服务器启动于 stdio 模式,准备好任何MCP客户端连接。

______________________________________________________________________

配置

Kubernetes上下文

默认情况下,服务器加载 workercluster 本地kubeconfig中的上下文:

config.load_kube_config(context="workercluster")

要使用其他上下文,请编辑 context 参数输入 main.py,或将其完全删除以使用当前默认上下文。在Kubernetes集群内运行时,服务器会自动回退到 load_incluster_config().

MCP客户端配置

将服务器添加到MCP客户端的配置中。例如,在 克劳德桌面 (claude_desktop_config.json):

{
  "mcpServers": {
    "k8s-sre": {
      "command": "python",
      "args": ["/path/to/mcp-server-kopf/main.py"]
    }
  }
}

______________________________________________________________________

项目结构

mcp-server-kopf/
├── main.py                 # Entry point — FastMCP server + KOPF crash monitor
├── tools/
│   ├── __init__.py
│   ├── cluster.py          # Nodes, namespaces, cluster resource usage
│   ├── workloads.py        # Deployments, StatefulSets, DaemonSets, Jobs, CronJobs
│   ├── pods.py             # Pod listing, describe, logs, metrics
│   ├── networking.py       # Services, Ingresses, Endpoints, NetworkPolicies
│   ├── storage.py          # PVs, PVCs, StorageClasses
│   ├── config.py           # ConfigMaps, Secrets
│   ├── rbac.py             # Roles, ClusterRoles, Bindings, ServiceAccounts
│   ├── scaling.py          # HPAs, manual scaling
│   ├── diagnostics.py      # Alerts, events, quotas, limit ranges
│   ├── remediation.py      # OOM fix, restart, rollback, cordon/uncordon
│   └── custom_resources.py # CRDs and Custom Resource interactions
├── LICENSE                 # Apache 2.0
└── README.md

______________________________________________________________________

碰撞监视器的工作原理

A. KOPF 操作员 在MCP服务器旁边的后台线程中运行。它看着 status.containerStatuses 集群中所有Pod上的字段:

  1. 当集装箱进入时 OOMKilled, CrashLoopBackOff,或 Error 状态,操作员捕获警报。
  2. 警报存储在共享中 cluster_alerts 字典。
  3. get_active_alerts 该工具将这些信息暴露给AI助手。
  4. 然后,助理可以进行调查 describe_pod, get_pod_logs,并用 fix_oom_resources, restart_deployment,或 rollback_deployment.

这创建了一个 闭环SRE工作流程:检测→ 诊断→ 补救——所有这些都可以在一次对话中完成。

______________________________________________________________________

示例工作流程

You:    "Are there any issues on the cluster?"
AI:     → calls get_active_alerts()
        🚨 Pod payment-svc-7f8b5 in production crashed — OOMKilled

You:    "Show me the logs"
AI:     → calls get_pod_logs("payment-svc-7f8b5", "production", previous=True)
        java.lang.OutOfMemoryError: Java heap space ...

You:    "Increase memory and restart it"
AI:     → calls fix_oom_resources("payment-svc-7f8b5", "production", "1Gi")
        ✅ Deployment 'payment-svc' memory updated to 1Gi
        → calls restart_deployment("payment-svc", "production")
        ✅ Rollout restart initiated

______________________________________________________________________

贡献

欢迎投稿!每个工具类别都是一个独立的模块 tools/ --添加新工具:

  1. 选择合适的模块(或创建一个新模块)。
  2. 在内部定义您的功能 register(mcp) 功能。
  3. @mcp.tool().
  4. 导入并注册 main.py.

______________________________________________________________________

许可证

该项目根据 Apache许可证2.0 --看看 许可证 文件以获取详细信息。

目录标签

目录标签

实时监控PythonClaudeKubernetes本地部署SRE崩溃检测自动化修复

支持客户端

Claude DesktopClaudeCursor

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

52

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP