mcpField
M
MimiOps mcp server for Kubernetes

MimiOps mcp server for Kubernetes

本地服务
github.com云与基础设施184 周前更新

关于 MimiOps mcp server for Kubernetes

MimiOps 是面向 Kubernetes 的 MCP 服务,为 AI Agent 提供受控的观察、排障和有限恢复操作。它限制高风险修改,并可选启用 Helm、FluxCD 和 Karpenter 扩展。

主要功能

  1. 01查看集群与工作负载
  2. 02读取日志和事件
  3. 03受限的恢复操作
  4. 04Helm 发布检查与回滚
  5. 05FluxCD 资源检查
  6. 06Karpenter 节点池检查

适用场景

  1. 01排查 Pod 或工作负载问题
  2. 02检查 Helm 发布状态
  3. 03检查 FluxCD 与 Karpenter 资源

MCP 相关

向 MCP 客户端暴露 Kubernetes 检查及有限恢复工具。默认限制破坏性操作;可通过选项启用相关操作和扩展。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"sergelogvinov-mimiops": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/sergelogvinov/mimiops-mcp:v0.5.0"
]
}
}
}
启动命令docker run -i --rm ghcr.io/sergelogvinov/mimiops-mcp:v0.5.0

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocighcr.io/sergelogvinov/mimiops-mcp:v0.5.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Mimiops MCP 服务

动机

管理 Kubernetes 工作负载的方式有很多,但不小心弄坏它们的方式也有很多。 我们已经见过 AI Agent 做出超出预期操作的情况。让 AI Agent 完全访问 Kubernetes 可能存在风险,尤其是在它可以直接创建、更新或删除资源的情况下。

在我看来,我们需要为 AI Agent 提供安全且定义明确的工具。这些工具应限制 Agent 的操作范围,在应用变更前进行验证,并帮助防止危险操作。

我们还需要能够帮助排查和修复工作负载问题的工具。 许多工作负载已经由 Argo CD、FluxCD、Helm 等知名工具,或其他 GitOps 与部署系统管理。 AI Agent 应了解资源由谁管理,并避免直接修改资源,以免与这些工具发生冲突。

目标不是让 AI 完全控制 Kubernetes。 目标是为 AI 提供一个安全接口,让它能够了解问题、提出变更建议,并且只执行受控操作。

让你的 AI 保持在牵引绳范围内。

Kubernetes 核心工具

核心工具始终会注册。以下名称是服务端公开的 MCP 工具名称:

  • 集群:clusters_list(仅适用于多集群配置)、clusters_describe。
  • Pod:pods_list、pods_get、pods_describe、pods_log。
  • Job:jobs_list、jobs_get、jobs_describe、jobs_log、jobs_create。
  • CronJob:cronjobs_list、cronjobs_get、cronjobs_describe。
  • 节点:nodes_list、nodes_get、nodes_describe。
  • 命名空间:namespaces_list、namespaces_describe。
  • 资源配置:resourcequotas_list、resourcequotas_describe、limitranges_list、limitranges_describe、storageclasses_list、persistentvolumeclaims_list、persistentvolumeclaims_describe、priorityclasses_list。
  • 事件:events_get。
  • 工作负载(Deployment、StatefulSet 和 DaemonSet):workloads_list、workloads_get、workloads_describe。
  • 自动扩缩容:hpa_list、hpa_describe。
  • 服务:services_list、services_describe。

仅在启用 --allow-destructive 时才会注册以下其他恢复工具:

  • pods_delete — 删除 Pod,以便其控制器重新创建它。
  • jobs_delete — 删除 Job。
  • cronjobs_suspend、cronjobs_resume — 暂停或恢复定时运行。
  • workloads_scale — 对 Deployment、StatefulSet 或 DaemonSet 进行扩缩容。
Helm 扩展

默认通过 --extensions helm 启用 Helm 工具:

  • helm_list — 列出 Helm 发布。
  • helm_status — 查看发布状态、修订版本及相关信息。
  • helm_rollback — 将发布回滚到之前的修订版本;仅在启用 --allow-destructive 时可用。
FluxCD 扩展

通过 --extensions fluxcd(或 --extensions all)启用 FluxCD 工具。只读检查工具包括:

  • GitRepository:flux_gitrepositories_list、flux_gitrepositories_describe。
  • OCIRepository:flux_ocirepositories_list、flux_ocirepositories_describe。
  • HelmRelease:flux_helmreleases_list、flux_helmreleases_describe。
  • Kustomization:flux_kustomizations_list、flux_kustomizations_describe。

启用 --allow-destructive 后,Flux 还会提供:

  • flux_reconcile — 立即触发 GitRepository、HelmRelease 或 Kustomization 的协调。
  • flux_reconciliation — 暂停或恢复 Flux HelmRelease 或 Kustomization。
Karpenter 扩展

使用 --extensions karpenter(或 --extensions all)启用 Karpenter 工具。只读检查工具包括:

  • NodePool:karpenter_nodepools_list — 列出 NodePool,包括节点类、节点数量、就绪状态、权重,以及已配置与限制的 CPU/内存。

安装

brew install sergelogvinov/tap/mimiops-mcp
兼容 MCPB 的客户端

MimiOPS 包含 MCPB 清单,适用于支持 MCP 捆绑包的客户端,例如 Claude Desktop。 下载 .mcpb 发行捆绑包,并在客户端中打开/导入。该捆绑包会:

  • 启动 server/mimiops-mcp mcp;
  • 提示选择 kubeconfig 文件;以及
  • 将该文件作为 KUBECONFIG 传递给服务。
手动配置编辑器

对于使用 JSON MCP 配置的客户端,请添加类似以下内容的服务条目:

{
  "mcpServers": {
    "mimiops": {
      "command": "mimiops-mcp",
      "args": ["mcp"]
    }
  }
}

Zed 在 context_servers 下使用命令对象:

{
  "context_servers": {
    "mimiops": {
      "command": {
        "path": "mimiops-mcp",
        "args": ["mcp"],
        "env": {
          "KUBECONFIG": "/absolute/path/to/kubeconfig"
        }
      }
    }
  }
}

保存配置后,重启或重新加载客户端。 随后,服务将显示为 mimiops,并提供下方列出的工具。

运行

常用标志

Kubernetes 和应用标志是**全局(持久)**标志,并由 mcp、server 和 tools 继承:

标志默认值环境变量描述
--kubeconfig <path>自动KUBECONFIGkubeconfig 的路径;未设置时使用默认的 Kubernetes 加载规则
--context <name>当前上下文CONTEXT要使用的 Kubernetes 上下文
--namespace <name>所有命名空间NAMESPACE操作的默认命名空间范围
--as <user>未设置ASKubernetes 模拟用户
--extensions <list>helmEXTENSIONS要启用的逗号分隔扩展列表,或 all
--allow-destructivefalseALLOW_DESTRUCTIVE启用破坏性或可变更工具
--log-level <level>infoLOG_LEVELdebug、info、warn 或 error
--log-format <format>textLOG_FORMATtext 或 json

Kubernetes 客户端还提供标准的 genericclioptions 连接和身份验证标志。tools 命令还提供以下命令专用标志:

命令标志默认值描述
tools--output、-otext将工具结果呈现为 text、json 或 yaml
server--port8080HTTP/SSE 监听端口;环境变量:PORT

可用命令包括 mcp(stdio)、server(HTTP/SSE)、tools(直接 CLI 调用)和 version。

示例
# stdio with kubeconfig and impersonation
./bin/mimiops-mcp mcp --kubeconfig ~/.kube/dev.yaml --as developer

# SSE server scoped to a namespace, with destructive tools enabled
./bin/mimiops-mcp server --namespace default --allow-destructive --port 8080

# List enabled tools, or invoke one directly from the CLI
./bin/mimiops-mcp tools --extensions all
./bin/mimiops-mcp tools pods_list namespace=default -o json

许可证

Apache-2.0

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。