Skip to content

Kuboard MCP 工具清单

Kuboard MCP Server 共提供 34 个工具,按用途分为读取、写入、变更审批三类。本页列出全部工具的名称、关键参数与用途,供智能体配置时对照。

适用对象:需要把 Kuboard 集群操作能力接入智能体(Agent)的运维 / 平台工程师。

阅读约定

  • 工具名保持英文原名(如 list_clusters),智能体调用时直接使用这些名字
  • 参数标注 必填 / (可选);写入类工具大多带 dryRun(可选)参数,置为 true 时只校验不真正执行,可用于预览变更结果
  • 本页是 MCP 能力总览 中「MCP 提供的能力」的详细展开

读 / 写 / 审批 三类工具

全部工具按真实副作用划分为三类:读取类只查不改;写入类会向集群发起持久化写操作;变更审批(Plan)类是写入类获得审批后执行的入口。

类别数量说明是否需要审批
读取类19查询集群、工作负载、Pod、日志、指标等,不修改任何资源不需要,调用即返回
写入类10创建 / 修改 / 删除 K8s 资源、重启与扩缩容、节点排水等需要,先走变更计划审批
变更审批(Plan)5把待执行的写操作提交给你审批,审批通过后执行审批流程本身

写入类工具必须审批

开启「Agent 操作强制审批」后,10 个写入类工具对智能体不可见、不可直接调用。智能体必须通过变更计划流程执行:create_planappend_step_to_planfinalize_plan → 你在 Kuboard UI 审批 → apply_plan(planId, approvalToken)。详见 变更审批流程危险操作与确认令牌

危险度标记

写入类工具带危险度标记,审批时按标记区别对待:

  • MEDIUMapply_k8s / patch_k8s / delete_k8s
  • HIGHdelete_k8s_collection(尤其是删除 PVC)、drain_nodeevict_pod——审批时会被显著标记,请重点核对影响范围

关闭「Agent 操作强制审批」时,变更审批(Plan)这 5 个工具会被隐藏,写入类工具恢复为智能体可直接调用。

工具一览(34 个)

下表按「读 / 写 / 审批」三类列出全部工具。参数只列关键的,配置智能体时以工具实际 schema 为准。

工具类别关键参数用途
list_clusters列出当前用户可访问的所有集群(id / name),会话第一步
list_namespacesclusterId列出指定集群的命名空间树
list_workloadsclusterIdnamespace列出 Deployment / StatefulSet / DaemonSet
get_workloadclusterIdnamespacekindname获取单个工作负载的完整 YAML
get_workload_historyclusterIdnamespacekindname列出工作负载的历史 revision(回滚前查看)
list_endpointsclusterIdnamespace(可选)列出端点列表
check_permissionclusterIdapiGroupresourceverbnamespace(可选)检查当前用户对某资源是否有权限(写操作前自查)
get_podclusterIdnamespacename获取单个 Pod 的详细信息
get_pod_logsclusterIdnamespacenametailLines(默认 100,上限 1000)、containerprevioussinceSeconds获取 Pod 日志
list_k8sclusterIdapiGroupresourcenamespace(可选)列出任意已注册类型的 K8s 资源(ConfigMap / Secret / Service / Ingress / PVC 等)
get_k8sclusterIdapiGroupresourcenamenamespace(可选)获取单个 K8s 资源的详情
list_eventsclusterIdnamespace(可选)、limit(默认 50)列出集群事件,排查 ImagePullBackOff、CrashLoopBackOff 等故障
get_node_metricsclusterIdname(可选,缺省全部节点)查询节点 CPU / 内存实时用量
get_pod_metricsclusterIdnamespace(可选)、name(可选)查询 Pod CPU / 内存实时用量
list_custom_resourcesclusterIdapiGroupresourcenamespacednamespace(可选)列出指定 CRD 的实例(Operator / Helm 创建的 CR)
prometheus_queryclusterIdquerytime(可选)、timeout(可选)PromQL 瞬时查询
prometheus_query_rangeclusterIdquerystartendstepPromQL 范围查询
prometheus_label_valuesclusterIdlabelmatchSeries(可选)查询 label 的取值
prometheus_buildinfoclusterIdtimeout(可选)查询 Prometheus 版本与健康信息
apply_k8s写 · MEDIUMclusterIdapiGroupresourcenamespaceyamldryRun(可选)应用 K8s YAML:资源存在则更新,不存在则创建
patch_k8s写 · MEDIUMclusterIdapiGroupresourcenamepatchesnamespace(可选)RFC 6902 JSON Patch 修改资源字段
delete_k8s写 · MEDIUMclusterIdapiGroupresourcenamenamespace(可选)、dryRun(可选)删除单个资源,不存在时幂等返回成功
delete_k8s_collection写 · HIGHclusterIdapiGroupresourcenamespace(可选)、propagationPolicy(可选)删除整个资源集合;删除 PVC 集合时建议显式传 Foreground
restart_workloadclusterIdnamespacekindnamedryRun(可选)重启工作负载(滚动重建 Pod)
scale_workloadclusterIdnamespacekind(deployment / statefulset)、namereplicasdryRun(可选)修改工作负载副本数(扩缩容)
update_image_tagclusterIdnamespacekindnamenewImageTagcontainerName(可选)更新镜像标签;省略 containerName 时作用于全部容器
rollback_workloadclusterIdnamespacekindnamerevisionToRollback(可选)回滚工作负载;省略 revision 时回滚到上一个版本
drain_node写 · HIGHclusterIdnodeNameforce(可选)、gracePeriodSeconds(可选)、dryRun(可选)节点排水:先标记不可调度,再驱逐该节点全部 Pod;force=true 时忽略 PodDisruptionBudget
evict_pod写 · HIGHclusterIdnamespacepodNameforce(可选)、gracePeriodSeconds(可选)、dryRun(可选)驱逐单个 Pod
create_plan审批description创建一个空的变更计划,返回 planId
append_step_to_plan审批planIdtoolargsdescription把待变更对象加入计划;tool 必须是 10 个写工具之一,加入前先 dry-run 校验
finalize_plan审批planId提交计划进入待审批状态,此后你在 Kuboard UI 可见并可审批
get_plan_approve_status审批planId审批后查询每个 step 的结果,并返回 approvalToken
apply_plan审批planIdapprovalToken消费 approvalToken 真正执行计划中的全部变更

日志参数说明:container 多容器 Pod 必须指定、单容器可省略;previoustrue 时返回上一次重启前的日志(仅对已终止容器有效);sinceSeconds 仅返回最近 N 秒的日志,与 tailLines 二选一。

读取类工具所需的 clusterId / namespace 通常来自前两个工具 list_clusterslist_namespaces 的返回值——会话开始时先让智能体调用它们,后续所有工具都基于这两个值定位。

指标与 Prometheus 查询

前置条件

  • 节点 / Pod 指标工具依赖集群已安装 metrics-server,未安装时返回「metrics.k8s.io 不可用」的错误提示
  • Prometheus 工具需要先在「系统设置 → MCP Server → Prometheus」配置数据源,详见 服务端配置;未配置时工具返回禁用提示

Prometheus 查询受集群 RBAC 与限流约束:复杂聚合查询在 REJECT 策略下会被拒绝,结果超过单次查询的 series / points 上限时返回 PROM_TOO_LARGE。查询失败时,错误码通过 meta.errorCode 透传:PROM_NOT_FOUND(未发现 Prometheus 服务)、PROM_UNREACHABLE(不可达)、PROM_QUERY_ERROR(查询错误)、PROM_AUTH_FAILED(权限不足)、PROM_SCOPE_TOO_LARGE(聚合维度超限)。

两个指标工具的返回值都经过归一化:CPU 换算为核数,内存换算为 MiB,可直接用于告警或对比判断。

典型使用流程

智能体接入后,一次「帮我重启 nginx」的对话大致走这几步,你需要做的只有最后的审批:

  1. 智能体先调用 list_clusters / list_workloads 定位集群与工作负载——读取类工具随调随返回,无需你参与
  2. 智能体调用 create_plan 创建变更计划,把 restart_workload 等写操作通过 append_step_to_plan 加入计划,再 finalize_plan 提交
  3. 你在 Kuboard UI 的待审批列表中看到该计划,核对对象与参数后批准,拿到 approvalToken
  4. 智能体调用 apply_plan 执行;你在界面上能看到执行进度与最终结果(全部成功或部分失败)

变更计划:写入审批的入口

变更计划(Plan)是把写入操作提交给你审批的唯一入口,适用于「智能体要改动集群,但改动必须经过你确认」的场景。5 个工具按固定顺序串联使用:

顺序工具参数作用
1create_plandescription创建空计划,返回 planId;description 说明本次操作目的
2append_step_to_planplanIdtoolargsdescription把要变更的对象追加到计划,可多次调用聚合多个变更;dry-run 失败的对象不会进入计划
3finalize_planplanId提交计划进入待审批,你在 Kuboard UI 中看到并审批 / 拒绝
4get_plan_approve_statusplanId你审批后查询每个 step 的结果;部分批准时会标明被跳过的 step,并返回 approvalToken
5apply_planplanIdapprovalToken执行计划中全部已批准的变更;planId 与 token 必须属于同一计划

计划的状态流转:CREATED(构建中,列表可见但不可审批)→ PENDING(待审批)→ APPROVEDAPPLYINGAPPLIED / PARTIAL_APPLIED / FAILED,另有 REJECTED(拒绝)、CANCELED(取消)、EXPIRED(过期)。

使用建议

  • append_step_to_plantool 白名单与 10 个写工具完全一致,写操作必须先加入计划
  • 为减少你的审批次数,建议把同一目的下的多个变更合并到一个计划中提交

相关页面