关于 clusterport
clusterport 是用于 Kubernetes 日常操作的 MCP 服务和命令行工具,面向使用 kubectl 管理集群的开发与运维人员。它以参数数组直接调用本机 kubectl,并通过标准输入传递清单。
主要功能
- 01获取资源、描述对象和查看日志
- 02应用或创建资源清单
- 03删除、扩缩容和修补资源
- 04执行 rollout 操作并切换上下文
- 05解释资源并列出 API 资源
适用场景
- 01检查集群资源及其日志
- 02应用清单或创建 Kubernetes 资源
- 03调整副本数并修补资源
- 04查看资源说明或切换集群上下文
MCP 相关
通过 stdio 提供 MCP 服务,将 12 项 Kubernetes 工具交给 MCP 客户端调用;所有操作都由主机上的 kubectl 执行。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
12收录的工具列表 · 更新于 1 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| name | string | 否 | 要获取的特定资源的名称;省略时,将列出该类型的所有资源。 |
| namespace | string | 否 | 要获取的资源的命名空间;省略时,将使用当前上下文的默认命名空间。 |
| output_format | string | 否 | kubectl get 的输出格式,例如 json 或 yaml;默认为 json。 |
| resource_type | string | 是 | 要获取的 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_get | resource_type(必填)、name、namespace、output_format | 默认执行 kubectl get -o json;解析 JSON。 |
kubectl_describe | resource_type、name(必填)、namespace | 执行 kubectl describe。 |
kubectl_logs | name(必填)、namespace、container | 执行 kubectl logs。 |
kubectl_apply | manifest(必填)、namespace、dry_run | 执行 kubectl apply -f -,通过 stdin 发送清单。 |
kubectl_create | resource_type、name(必填)、namespace、image | 生成规范,并通过 stdin 使用 kubectl create -f - 创建。 |
kubectl_delete | resource_type、name(必填)、namespace | 执行 kubectl delete。 |
kubectl_scale | resource_type、name、replicas(必填)、namespace | 执行 kubectl scale --replicas=n。 |
kubectl_patch | resource_type、name、patch(必填)、namespace | 执行 kubectl patch -p。 |
kubectl_rollout | resource_type、name、action(必填)、namespace | 执行 kubectl rollout <action> <type>/<name>。 |
kubectl_context | operation(必填:current、list、use)、name | 执行 kubectl config 的 current/get/use-context 操作。 |
explain_resource | resource(必填)、api_version | 执行 kubectl explain。 |
list_api_resources | kind(可选) | 执行 kubectl api-resources,解析结果并按 kind 筛选。 |
执行器故障——例如缺少 kubectl 二进制文件、无法连接集群或资源不存在——会作为工具错误返回,并附带底层错误消息。
开发
npm install
npm run build
npm test
npm run dev
测试完全使用伪执行器运行:验证确切的参数数组、apply/create 时通过 stdin 传递清单、输出解析和错误传递。不会访问实际集群。
许可证
MIT — 参见 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。