io.github.CloudCorpRecords/clusterport
Core kubectl operations: get, describe, logs, apply, scale, patch, rollout and explain.
Install
Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).
@reneturcios/clusterportclaude mcp add clusterport -- npx -y @reneturcios/clusterport@0.1.0 mcp
{
"mcpServers": {
"clusterport": {
"command": "npx",
"args": [
"-y",
"@reneturcios/clusterport@0.1.0",
"mcp"
]
}
}
}
ghcr.io/cloudcorprecords/clusterport:0.1.0claude mcp add clusterport -- docker run -i --rm ghcr.io/cloudcorprecords/clusterport:0.1.0 mcp
{
"mcpServers": {
"clusterport": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/cloudcorprecords/clusterport:0.1.0",
"mcp"
]
}
}
}
Documentation
From the project's README on GitHub, refreshed weekly. Links open on GitHub.
clusterport
clusterport is a small MCP server and CLI for core Kubernetes work.
It is a clean-room rebuild of a core subset — twelve tools — from
the documented surface of the community Flux159
mcp-server-kubernetes: get, describe and fetch logs; apply and
create; delete, scale and patch; rollout actions and context
switching; plus kubectl explain and API-resource listing.
Everything runs through the host's real kubectl. Each call is
built as an argument array and spawned directly — never a shell
string — so resource names, namespaces and patches cannot be
reinterpreted as shell syntax. Manifests are never written to temp
files or shell redirects: kubectl_apply sends its manifest over
stdin (kubectl apply -f -), and kubectl_create generates a
minimal manifest spec from its parameters and creates it from stdin
the same way (kubectl create -f -). The executor is injectable,
which is how the test suite verifies the exact argument arrays and
stdin payloads with a fake.
Deliberately omitted: port-forward long-lived sessions, exec-into-pod, the helm tools, install/uninstall addon operations, non-resource URL operations, watch/streaming, and node operations such as cordon, taint or drain.
The host needs a working kubectl and cluster credentials. When
kubectl is absent, calls fail honestly with the underlying spawn
error (ENOENT) instead of a fabricated result. The published
container image bundles no kubectl binary: it expects a host
executor and says so in its Dockerfile.
Install
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
Exit codes: 0 success, 1 kubectl error, 2 usage error.
MCP server
npx -y @reneturcios/clusterport mcp
{
"mcpServers": {
"clusterport": {
"command": "npx",
"args": ["-y", "@reneturcios/clusterport", "mcp"]
}
}
}
Tools
| Tool | Input | What it does |
|---|---|---|
kubectl_get | resource_type (required), name, namespace, output_format | kubectl get -o json by default; JSON parsed. |
kubectl_describe | resource_type, name (required), namespace | kubectl describe. |
kubectl_logs | name (required), namespace, container | kubectl logs. |
kubectl_apply | manifest (required), namespace, dry_run | kubectl apply -f -, manifest over stdin. |
kubectl_create | resource_type, name (required), namespace, image | Generated spec created via kubectl create -f - over stdin. |
kubectl_delete | resource_type, name (required), namespace | kubectl delete. |
kubectl_scale | resource_type, name, replicas (required), namespace | kubectl scale --replicas=n. |
kubectl_patch | resource_type, name, patch (required), namespace | kubectl patch -p. |
kubectl_rollout | resource_type, name, action (required), namespace | kubectl rollout <action> <type>/<name>. |
kubectl_context | operation (required: current, list, use), name | kubectl config current/get/use-context. |
explain_resource | resource (required), api_version | kubectl explain. |
list_api_resources | kind (optional) | kubectl api-resources, parsed, kind-filtered. |
Executor failures — a missing kubectl binary, an unreachable cluster, a nonexistent resource — are reported as tool errors carrying the underlying message.
Development
npm install
npm run build
npm test
npm run dev
Tests run entirely on a fake executor: exact argument arrays, stdin manifest passing for apply/create, output parsing, and error propagation. No live cluster is touched.
License
MIT — see LICENSE.
Frequently asked questions
What is io.github.CloudCorpRecords/clusterport?
Core kubectl operations: get, describe, logs, apply, scale, patch, rollout and explain.
How do I install io.github.CloudCorpRecords/clusterport?
It runs on your machine. In Claude Code: claude mcp add clusterport -- npx -y @reneturcios/clusterport@0.1.0 mcp. For other clients, paste the JSON configuration from this page into their MCP settings.
Does io.github.CloudCorpRecords/clusterport need an API key?
Its registry entry lists no required key or secret. Some features may still need an account with the service it connects to.
Is io.github.CloudCorpRecords/clusterport open source?
Yes. Its code is on GitHub under the MIT license.
Who maintains io.github.CloudCorpRecords/clusterport?
It is published by CloudCorpRecords. AI.tn lists it but does not maintain or endorse it.
From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.