mcpField
C
clusterport

clusterport

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

关于 clusterport

clusterport 是用于 Kubernetes 日常操作的 MCP 服务和命令行工具,面向使用 kubectl 管理集群的开发与运维人员。它以参数数组直接调用本机 kubectl,并通过标准输入传递清单。

主要功能

  1. 01获取资源、描述对象和查看日志
  2. 02应用或创建资源清单
  3. 03删除、扩缩容和修补资源
  4. 04执行 rollout 操作并切换上下文
  5. 05解释资源并列出 API 资源

适用场景

  1. 01检查集群资源及其日志
  2. 02应用清单或创建 Kubernetes 资源
  3. 03调整副本数并修补资源
  4. 04查看资源说明或切换集群上下文

MCP 相关

通过 stdio 提供 MCP 服务,将 12 项 Kubernetes 工具交给 MCP 客户端调用;所有操作都由主机上的 kubectl 执行。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"cloudcorprecords-clusterport": {
"command": "npx",
"args": [
"-y",
"@reneturcios/clusterport"
]
}
}
}
启动命令npx -y @reneturcios/clusterport

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

安装包
npm@reneturcios/clusterport0.1.0
ocighcr.io/cloudcorprecords/clusterport:0.1.0

工具

12

收录的工具列表 · 更新于 1 周前

参数类型必填说明
namestring否要获取的特定资源的名称;省略时,将列出该类型的所有资源。
namespacestring否要获取的资源的命名空间;省略时,将使用当前上下文的默认命名空间。
output_formatstring否kubectl get 的输出格式,例如 json 或 yaml;默认为 json。
resource_typestring是要获取的 Kubernetes 资源类型,例如 pods、deployments 或 services。

详细介绍

clusterport

clusterport 是一个用于 Kubernetes 核心操作的小型 MCP 服务和 CLI。 它以社区版 Flux159 mcp-server-kubernetes 文档所述功能为基础,对其中的核心子集进行了从头重建,共包含 12 个工具:获取、描述和提取日志;应用和 创建;删除、扩缩和修补;推出操作和上下文切换;以及 kubectl explain 和 API 资源列表。

所有操作都通过主机上实际的 kubectl 执行。每次调用都会构建为参数数组并直接启动进程,绝不会使用 shell 字符串,因此资源名称、命名空间和补丁不会被重新解释为 shell 语法。清单绝不会写入临时文件或通过 shell 重定向处理:kubectl_apply 会通过 stdin 发送清单(kubectl apply -f -),而 kubectl_create 会根据其参数生成最简清单规范,并以同样的方式通过 stdin 创建资源(kubectl create -f -)。执行器可注入,因此测试套件可以通过伪执行器验证确切的参数数组和 stdin 负载。

有意省略的功能:端口转发长时会话、进入 Pod 执行命令、helm 工具、插件安装/卸载操作、 非资源 URL 操作、监视/流式传输,以及 cordon、taint 或 drain 等节点操作。

主机需要可正常运行的 kubectl 和集群凭据。如果缺少 kubectl,调用会如实返回底层启动错误(ENOENT),而不会伪造结果。发布的 容器镜像不包含 kubectl 二进制文件:它需要主机执行器,并在 Dockerfile 中对此作了说明。

安装

npx @reneturcios/clusterport kubectl-get pods -n default
docker run -i ghcr.io/cloudcorprecords/clusterport

CLI

clusterport kubectl-get <resource_type> [name] [-n namespace] [-o format]
clusterport kubectl-describe <resource_type> <name> [-n namespace]
clusterport kubectl-logs <name> [-n namespace] [-c container]
clusterport kubectl-apply "<manifest yaml>" [-n namespace] [--dry-run]
clusterport kubectl-create <resource_type> <name> [--image img] [-n namespace]
clusterport kubectl-delete <resource_type> <name> [-n namespace]
clusterport kubectl-scale <resource_type> <name> <replicas> [-n namespace]
clusterport kubectl-patch <resource_type> <name> '<json patch>' [-n namespace]
clusterport kubectl-rollout <resource_type> <name> <action> [-n namespace]
clusterport kubectl-context <current|list|use> [name]
clusterport explain-resource <resource> [--api-version v]
clusterport list-api-resources [kind]
clusterport --version

退出代码:0 表示成功,1 表示 kubectl 错误,2 表示用法错误。

MCP 服务

npx -y @reneturcios/clusterport mcp
{
  "mcpServers": {
    "clusterport": {
      "command": "npx",
      "args": ["-y", "@reneturcios/clusterport", "mcp"]
    }
  }
}
工具
工具输入功能
kubectl_getresource_type(必填)、name、namespace、output_format默认执行 kubectl get -o json;解析 JSON。
kubectl_describeresource_type、name(必填)、namespace执行 kubectl describe。
kubectl_logsname(必填)、namespace、container执行 kubectl logs。
kubectl_applymanifest(必填)、namespace、dry_run执行 kubectl apply -f -,通过 stdin 发送清单。
kubectl_createresource_type、name(必填)、namespace、image生成规范,并通过 stdin 使用 kubectl create -f - 创建。
kubectl_deleteresource_type、name(必填)、namespace执行 kubectl delete。
kubectl_scaleresource_type、name、replicas(必填)、namespace执行 kubectl scale --replicas=n。
kubectl_patchresource_type、name、patch(必填)、namespace执行 kubectl patch -p。
kubectl_rolloutresource_type、name、action(必填)、namespace执行 kubectl rollout <action> <type>/<name>。
kubectl_contextoperation(必填:current、list、use)、name执行 kubectl config 的 current/get/use-context 操作。
explain_resourceresource(必填)、api_version执行 kubectl explain。
list_api_resourceskind(可选)执行 kubectl api-resources,解析结果并按 kind 筛选。

执行器故障——例如缺少 kubectl 二进制文件、无法连接集群或资源不存在——会作为工具错误返回,并附带底层错误消息。

开发

npm install
npm run build
npm test
npm run dev

测试完全使用伪执行器运行:验证确切的参数数组、apply/create 时通过 stdin 传递清单、输出解析和错误传递。不会访问实际集群。

许可证

MIT — 参见 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

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

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