mcp-server-kubernetes
Connects to and manages a Kubernetes cluster, including listing pods, services, deployments, nodes, and namespaces; creating, deleting, and describing pods; and retrieving logs from pods, deployments, jobs, or label selectors.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-server-kuberneteslist all pods in my cluster"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-server-kubernetes
MCP Server that can connect to a Kubernetes cluster and manage it.
https://github.com/user-attachments/assets/f25f8f4e-4d04-479b-9ae0-5dac452dd2ed
Usage with Claude Desktop
{
"mcpServers": {
"kubernetes": {
"command": "npx",
"args": ["mcp-server-kubernetes"]
}
}
}The server will automatically connect to your current kubectl context. Make sure you have:
kubectl installed and in your PATH
A valid kubeconfig file with contexts configured
Access to a Kubernetes cluster configured for kubectl (e.g. minikube, Rancher Desktop, GKE, etc.)
You can verify your connection by asking Claude to list your pods or create a test deployment.
If you have errors, open up a standard terminal and run kubectl get pods to see if you can connect to your cluster without credentials issues.
Related MCP server: Kube MCP
Features
Connect to a Kubernetes cluster
List all pods
List all services
List all deployments
List all nodes
Create a pod
Delete a pod
Describe a pod
List all namespaces
Get logs from a pod for debugging (supports pods, deployments, jobs, and label selectors)
Port forward to a pod
Choose namespace for next commands (memory)
Support Helm for installing charts
Local Development
git clone https://github.com/Flux159/mcp-server-kubernetes.git
cd mcp-server-kubernetes
bun installDevelopment Workflow
Start the server in development mode (watches for file changes):
bun run devRun unit tests:
bun run testBuild the project:
bun run buildLocal Testing with Inspector
npx @modelcontextprotocol/inspector node build/index.js
# Follow further instructions on terminal for Inspector linkProject Structure
src/
├── index.ts # Main server implementation
├── types.ts # TypeScript type definitions
└── unit.test.ts # Unit testsContributing
Fork the repository
Create a feature branch
Make your changes
Add tests for new functionality
Ensure all tests pass
Submit a pull request
For bigger changes, please open an issue first to discuss the proposed changes.
Architecture
This section describes the high-level architecture of the MCP Kubernetes server.
Request Flow
The sequence diagram below illustrates how requests flow through the system:
sequenceDiagram
participant Client
participant Transport as StdioTransport
participant Server as MCP Server
participant Handler as Request Handler
participant K8sManager as KubernetesManager
participant K8s as Kubernetes API
Client->>Transport: Send Request via STDIO
Transport->>Server: Forward Request
alt Tools Request
Server->>Handler: Route to tools handler
Handler->>K8sManager: Execute tool operation
K8sManager->>K8s: Make API call
K8s-->>K8sManager: Return result
K8sManager-->>Handler: Process response
Handler-->>Server: Return tool result
else Resource Request
Server->>Handler: Route to resource handler
Handler->>K8sManager: Get resource data
K8sManager->>K8s: Query API
K8s-->>K8sManager: Return data
K8sManager-->>Handler: Format response
Handler-->>Server: Return resource data
end
Server-->>Transport: Send Response
Transport-->>Client: Return Final ResponseNot planned
Authentication / adding clusters to kubectx.
Available Tools
11 toolscleanupC
Cleanup all managed resources
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden and falls short. 'Cleanup' implies a destructive bulk operation, but the description does not disclose scope, irreversibility, permissions required, or what happens to dependent resources.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is concise and front-loaded, but its brevity reflects under-specification rather than efficiency. It spends no words on the details an agent would need for a destructive bulk operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with no annotations and no output schema, the description is inadequate. It lacks scope definition, safety warnings, and any explanation of what 'cleanup' entails across the managed resources.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to clarify. Baseline 4 applies because parameter semantics are not a concern for this definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a verb and resource ('Cleanup all managed resources'), but 'managed resources' is vague and does not distinguish this tool from destructive siblings like delete_pod. An agent cannot tell what specifically gets cleaned up or how this differs from individual delete operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus delete_pod or other resource-management siblings. No prerequisites, exclusions, or alternative tools are mentioned, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_deploymentC
Create a new Kubernetes deployment
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| ports | No | ||
| replicas | No | ||
| template | Yes | ||
| namespace | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a mutation by saying "Create," but it does not disclose required permissions, side effects, idempotency, or what the response contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler, so its structure is clean. However, its brevity reflects under-specification rather than efficient communication of the necessary context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, no annotations, and no parameter description coverage, yet the description does not compensate by explaining required parameters, the template enum, deployment behavior, or return values. For a five-parameter mutation tool, this is insufficient context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description does not mention any of the five parameters, including required fields like name, namespace, and template. The enum for template and defaults for replicas are documented only structurally in the schema, with no added semantic guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: "Create a new Kubernetes deployment." It is clear what the tool does, but it does not distinguish the tool from siblings such as create_pod or explain when a deployment is preferable to a pod.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives like create_pod, list_deployments, or other sibling tools. Usage is only implied by the verb "Create."
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_podC
Create a new Kubernetes pod
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| command | No | ||
| template | Yes | ||
| namespace | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It says nothing about side effects, whether the pod starts immediately, what the 'template' enum values actually provision, failure modes, or permissions required — all critical for a mutating cluster operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is front-loaded and wastes no words, but it is under-specified rather than concise — brevity comes at the cost of all the information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a four-parameter mutation tool with no annotations, no output schema, and 0% schema coverage, the description is far too thin. An agent cannot tell what the template values mean or what a successful call produces.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across four parameters, and the description adds nothing — name, namespace, command, and especially the template enum (ubuntu/nginx/busybox/alpine) are completely unexplained. The description must compensate here and does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create a new Kubernetes pod'), which is clear and distinct from read-only siblings like list_pods or delete_pod. However, it offers no explicit differentiation from create_deployment, which is the sibling an agent could most plausibly confuse it with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus create_deployment, no prerequisites (e.g. whether the namespace must already exist), and no mention of alternatives. The agent must infer everything from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_podC
Delete a Kubernetes pod
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| namespace | Yes | ||
| ignoreNotFound | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'Delete' signals a destructive mutation, but nothing is said about irreversibility, graceful termination/grace period, RBAC requirements, cascading effects on dependent resources, or whether the operation blocks until the pod is gone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single efficient sentence with no filler, which is good structurally, but the brevity reflects under-specification rather than disciplined conciseness for a destructive 3-parameter operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with no annotations, no output schema, and zero parameter documentation, the description is far too thin. An agent cannot tell what gets destroyed, whether dependents are affected, how failures are reported, or how ignoreNotFound alters behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description mentions no parameters at all. The non-obvious 'ignoreNotFound' flag (what happens when the pod is absent, whether errors are suppressed) is completely undocumented, and even the required name/namespace pairing is left to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Delete a Kubernetes pod'), so an agent knows exactly what the tool does. It does not, however, distinguish itself from siblings like cleanup or describe_pod, so the differentiation is left to the tool name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as cleanup, nor any mention of preconditions like checking pod state first with describe_pod or get_logs. The only implied usage is the obvious 'delete when you want a pod gone'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
describe_podB
Describe a Kubernetes pod (read details like status, containers, etc.)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| namespace | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It signals a read-only operation via 'read details,' but says nothing about required permissions/RBAC, behavior when the pod or namespace does not exist, or the scope of the returned data — significant gaps for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that states the action first and the payload second, with no wasted words. Its only shortcoming is that it is so terse it omits needed detail rather than adding any.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read tool with no output schema, the description broadly conveys what comes back ('status, containers, etc.'), which is adequate. It is still incomplete because it neither explains parameter semantics nor error/edge-case behavior, and no annotations or output schema fill those gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and there are two required parameters, so the description must compensate for the gap but does not. It never explains that 'name' identifies the pod and 'namespace' scopes it (or whether a default namespace applies), leaving the agent to infer both from the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Describe') and resource ('Kubernetes pod'), with a parenthetical enumerating the details returned ('status, containers, etc.'). This clearly distinguishes it from siblings like list_pods and delete_pod, though it never names those alternatives explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'read details' implies this is the tool for inspecting a single pod, in contrast to list_pods for enumeration. However, there is no explicit when-to-use guidance, no prerequisites (e.g., pod must exist), and no named alternatives for the agent to choose between.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_logsC
Get logs from pods, deployments, jobs, or resources matching a label selector
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name of the resource | |
| tail | No | Number of lines to show from end of logs | |
| since | No | Get logs since relative time in seconds | |
| container | No | Container name (required when pod has multiple containers) | |
| namespace | No | Namespace of the resource | default |
| timestamps | No | Include timestamps in logs | |
| resourceType | Yes | Type of resource to get logs from | |
| labelSelector | No | Label selector to filter resources |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden, yet it says nothing about permissions needed, whether logs from multiple matching pods are merged, how errors on missing containers behave, or any output size limits. Only the read-only nature is implied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is efficient, though its brevity leaves no room for the behavioral and usage context an 8-parameter tool needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 8 parameters, no annotations, and no output schema, the description should explain multi-container behavior, label-selector fan-out across pods, and default log volume. None of that is present, leaving significant gaps for a tool this parameter-rich.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters like tail, since, container, and labelSelector are already documented in the schema. The description adds only the label-selector framing, with no extra detail on default tail limits, since vs timestamps interaction, or multi-pod aggregation behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (get) and resource (logs) and enumerates the supported target types (pods, deployments, jobs), which clearly distinguishes it from siblings like list_pods or describe_pod. Minor imprecision: it says 'or resources matching a label selector' while the schema's resourceType enum only allows pod/deployment/job.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to prefer this tool over describe_pod or list_* siblings, and no mention of prerequisites such as the container requirement for multi-container pods. The agent must infer all selection criteria from the purpose sentence alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_deploymentsC
List deployments in a namespace
| Name | Required | Description | Default |
|---|---|---|---|
| namespace | Yes | default |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a read-only list operation but does not disclose permissions, pagination, ordering, or output behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted wording. It is concise, though it is terse to the point of omitting useful context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, but there are no annotations, no output schema, and no parameter descriptions. The description does not explain what a returned deployment looks like or how listing behaves, leaving significant gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, so the description should compensate for the single namespace parameter. It mentions namespace scope but does not explain namespace format, the default value, or what happens when it is omitted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: list deployments, scoped to a namespace. This is more specific than the name alone, but it does not explicitly differentiate from siblings such as list_pods, list_services, or create_deployment beyond the obvious resource noun.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It says where deployments are listed but gives no guidance on when to use this tool versus alternatives like describe_pod, list_services, or create_deployment. There are no exclusions, prerequisites, or alternative-selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_namespacesB
List all namespaces
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a read-only operation but does not state permissions, rate limits, pagination behavior, or return format, leaving significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It efficiently communicates the core action and scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no parameters and no output schema, the description states the essential purpose. However, without annotations, it omits important behavioral context such as read-only guarantees or response structure, leaving it adequate but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and 100% schema description coverage, so the schema already fully documents the input. The description adds no parameter information, which is appropriate for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (List) and resource (namespaces) with scope (all), making the purpose immediately clear. It does not explicitly differentiate from siblings, but the distinct resource inherently distinguishes it from tools like list_pods.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives such as list_pods or list_deployments, nor does it mention prerequisites or exclusions. Usage is only implied by the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_nodesB
List all nodes in the cluster
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a read operation via 'List', but doesn't state whether it is read-only, whether results are paginated, or what permission level is required. Only the 'all' qualifier hints at scope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with zero waste. It is appropriately sized for a no-argument list tool, though it is somewhat terse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read tool with no output schema, the description is minimally adequate. It doesn't indicate what node information is returned or whether the listing is exhaustive across the cluster, leaving a gap since no output schema documents the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate. The baseline of 4 applies since no parameter semantics need explaining.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('List') and resource ('nodes in the cluster'), so the agent knows exactly what the tool retrieves. It doesn't explicitly differentiate itself from siblings like list_pods or list_deployments, though 'nodes' is a distinct resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, nor any conditions or prerequisites. The agent must infer that this is the read-oriented listing tool for cluster nodes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_podsC
List pods in a namespace
| Name | Required | Description | Default |
|---|---|---|---|
| namespace | Yes | default |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden and does not meet it. It says nothing about whether results are paginated, what fields are returned, whether it lists all pods or only running ones, or what happens if the namespace has none.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is efficient, though the brevity comes at the cost of the guidance and behavior details noted elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only list tool with no output schema, the definition is minimally sufficient to call correctly. It falls short on return shape (no output schema means the description should say what a pod entry looks like) and on the default namespace value.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but there is only one parameter and its name plus the phrase "in a namespace" make its meaning unambiguous. The description does not mention the schema's "default" default value, which is the one piece of non-obvious behavior an agent might need.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("List pods") plus the scope ("in a namespace"). The resource name alone separates it from siblings like list_deployments, list_services, list_nodes, though the description never explicitly routes to or away from them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this versus describe_pod, get_logs, or cleanup. The usage is only implied by the verb 'List' — an agent gets no guidance on selecting this tool for broad discovery versus inspecting a single pod.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_servicesB
List services in a namespace
| Name | Required | Description | Default |
|---|---|---|---|
| namespace | Yes | default |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a read-only listing operation but does not disclose permissions, pagination, return shape, error behavior, or whether omitted/empty namespaces behave differently.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. Every word contributes directly to the action, resource, and scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter list tool, the core action and scope are clear. However, with no annotations and no output schema, the description leaves the agent without return-value, permission, or namespace-default context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter has 0% schema description coverage, so the description must compensate. It identifies 'namespace' as the scoping value, adding some meaning beyond the schema's name and type, but it does not explain the default value or accepted namespace format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource ('List services') and states the scoping dimension ('in a namespace'). It distinguishes itself naturally from siblings like list_pods and list_deployments by resource, but does not explicitly name or differentiate alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus siblings such as list_pods, list_deployments, or list_namespaces. Usage is only implied by the resource name and the namespace scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
11 tool updates
v0.1.4- First observed
cleanup - First observed
create_deployment - First observed
create_pod - First observed
delete_pod - First observed
describe_pod - First observed
get_logs - First observed
list_deployments - First observed
list_namespaces - First observed
list_nodes - First observed
list_pods - First observed
list_services
TDQS
Scored across 11 tools
Most tools target a clearly distinct resource and action (list_pods vs list_deployments vs describe_pod vs get_logs). The only mild overlaps are `cleanup` versus `delete_pod` and `get_logs` being much broader than the pod-specific read tools, but descriptions help distinguish them.
The set follows a consistent snake_case verb_noun pattern such as list_pods, create_deployment, delete_pod, and describe_pod. `cleanup` is the only noticeable deviation as a verb-only name.
Eleven tools is well-scoped for a Kubernetes MCP server, covering common read and write operations without feeling bloated. Each listed tool has a plausible place in typical cluster workflows.
Read coverage is decent for pods, deployments, services, namespaces, and nodes, but write coverage is thin: deployments and services have no delete/update/scale operations, and pods lack update/exec. These gaps would likely force agents to fall back to raw kubectl or fail on common lifecycle tasks.
Maintenance
Related MCP Connectors
Manage Rackspace Spot Kubernetes Cloudspaces, node pools, and VMs from your AI assistant.
Read and write KukGit repositories, files, issues and pull requests from an AI assistant.
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
- mcpOAuthcom.vibgrate
Query your team's drift, vulnerability, and upgrade data from any AI assistant. OAuth 2.1, 51 tools.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables managing Kubernetes clusters through natural language by providing tools to list resources, view logs, port-forward services, scale deployments, and execute kubectl operations via AI assistants.81MIT
- AlicenseAqualityCmaintenanceEnables AI assistants to interact with and manage Kubernetes clusters, supporting operations on pods, deployments, services, configmaps, secrets, namespaces, metrics, and events with built-in safety features for destructive actions.92 npm1MIT
- FlicenseAqualityDmaintenanceConnects Claude Desktop to any Kubernetes cluster, enabling natural language queries for diagnostics and operations such as listing pods, viewing logs, scaling deployments, and more.8-
- AlicenseNot gradedqualityDmaintenanceEnables connecting to a Kubernetes cluster to manage it, including listing pods, services, deployments, nodes, and namespaces, creating and deleting pods, describing pods, and retrieving logs for debugging.3,426 npmMIT