homelab-mcp
This MCP server lets an AI agent inspect and operate a Kubernetes/k3s cluster directly, abstracting away kubectl, with safety guardrails built in.
Read (Inspection) Capabilities
cluster_summary— High-level health overview: node/pod totals and a list of unhealthy pods; best starting point for triagelist_pods— List pods cluster-wide or by namespace, with unhealthy pods sorted firstlist_deployments— List deployments with ready vs. desired replica counts, optionally filtered by namespacelist_events— Recent cluster events, with warnings prioritized (configurable limit, default 30)pod_logs— Tail logs for a specific pod (configurable tail length, default 200 lines)node_health— Per-node readiness, kubelet version, resource capacity, and pressure conditionsserver_info— Effective server config: active kubeconfig context, read-only status, and mutable namespace allowlist
Write (Mutating) Capabilities (All gated by a namespace allowlist and a global read-only switch)
restart_deployment— Rollout-restart a deployment (allowlisted namespaces only)scale_deployment— Scale a deployment to a specified replica count (bounded 0–max, default max 10; allowlisted namespaces only)delete_pod— Delete a pod so its controller can recreate it (allowlisted namespaces only)
Safety Features
HOMELAB_MCP_READONLY=1disables all mutating tools globallyHOMELAB_MCP_MUTABLE_NAMESPACEScontrols which namespaces can be mutated (defaults:default,apps,monitoring,ci)HOMELAB_MCP_MAX_REPLICAScaps the scale limit (default: 10)The cluster's own RBAC permissions apply on top of these guardrails
Provides tools for inspecting and operating a k3s cluster, including pod, deployment, node health, events, and logs, with safety guards for mutations.
Provides tools for inspecting and operating a Kubernetes cluster, including pod, deployment, node health, events, and logs, with safety guards for mutations.
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., "@homelab-mcpShow me the cluster health summary"
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.
WhiteCapData-Dev
Operate a k3s / Kubernetes cluster straight from your AI agent — safe by default.
An MCP server that lets an agent (Claude Code, Claude Desktop, Cursor, …) inspect and operate a Kubernetes / k3s cluster — your homelab box, a dev cluster, whatever your kubeconfig points at — without shelling out to kubectl. It talks to the Kubernetes API directly using your existing kubeconfig (or an in-cluster service account).
The design goal is safe by default: reads are always on; every mutating action (restart / scale / delete) is gated before the API call by a read-only switch and a namespace allowlist, so an over-eager agent can't touch kube-system or nuke a deployment you didn't sandbox.
Name note: the PyPI package is
whitecapdata-dev(thehomelab-k8s-style name was taken); the import package and tools are k8s/homelab-focused as described here.
Why you'd want this
🩺 One-call health.
cluster_summarygives node + pod totals and the unhealthy pods, so the agent starts triage with real data.🔒 Safe by default. Mutations are blocked unless the namespace is on your allowlist; flip
HOMELAB_MCP_READONLY=1to make the whole server read-only.🧰 The operations you actually do. Pods, deployments, events, logs, node health, rollout-restart, scale, delete-pod.
🪶 No bespoke backend. Uses the standard Kubernetes API + your kubeconfig — nothing to deploy server-side.
✅ Tested. Pure logic is unit-tested with fakes; guard logic is tested against a mocked API. No cluster needed to run the suite.
Related MCP server: Kube MCP
Requirements
A reachable cluster and a working kubeconfig (the same one
kubectluses), or run it in-cluster with a service account.Python 3.11+ (or just
uvx).
Install
uvx whitecapdata-dev # run directly
# or
pip install whitecapdata-dev # then run: whitecapdata-devClaude Code
claude mcp add homelab -- uvx whitecapdata-devClaude Desktop / Cursor
{
"mcpServers": {
"homelab": {
"command": "uvx",
"args": ["whitecapdata-dev"],
"env": {
"HOMELAB_MCP_MUTABLE_NAMESPACES": "default,apps,monitoring",
"HOMELAB_MCP_READONLY": "0"
}
}
}
}Run with Docker
A Dockerfile is included. The server speaks MCP over stdio and reaches
your cluster through a mounted kubeconfig. Run interactively (-i), starting read-only:
docker build -t whitecapdata-dev .
docker run --rm -i \
-v "$HOME/.kube/config:/home/app/.kube/config:ro" \
-e HOMELAB_MCP_READONLY=1 \
whitecapdata-devTools
Tool | Kind | Description |
| read | Node/pod health totals + unhealthy pods |
| read | Pods (optionally one namespace), unhealthy first |
| read | Deployments with ready/desired replicas |
| read | Recent events, Warnings first |
| read | Tail a pod's logs |
| read | Per-node readiness, kubelet, capacity, pressure |
| write | Rollout-restart (allowlisted namespaces) |
| write | Scale to N replicas (0..max, allowlisted) |
| write | Delete a pod; its controller recreates it (allowlisted) |
| read | Effective config (context, read-only, allowlist) |
Configuration
Variable | Default | Description |
| current-context | kubeconfig context to use |
|
|
|
|
| Namespaces mutations may touch; |
|
| Upper bound for |
Safety model
Read-only switch —
HOMELAB_MCP_READONLY=1rejects every mutating tool up front.Namespace allowlist — mutating tools refuse any namespace not in
HOMELAB_MCP_MUTABLE_NAMESPACES(default a homelab-friendly set;*opts into all).Bounded scale —
scale_deploymentclamps to0..HOMELAB_MCP_MAX_REPLICAS.
The cluster's own RBAC still applies on top — this server can only do what the kubeconfig identity is permitted to do.
Development
git clone https://github.com/Michael-WhiteCapData/WhiteCapData-Dev
cd WhiteCapData-Dev
uv pip install -e ".[dev]"
ruff check .
pytest # no cluster required — APIs are faked/mockedSee CONTRIBUTING.md.
License
MIT © Michael Tierney
Available Tools
10 toolscluster_summaryA
Node and pod health totals plus the list of unhealthy pods. Start here.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full burden for behavioral disclosure. It describes the output (totals, list of unhealthy pods) but does not mention whether the tool is read-only, requires permissions, or has any side effects. This is minimal adequacy but lacks depth.
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 that immediately states the tool's purpose and usage hint. Every word earns its place; there is no wasted text.
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?
Given the tool has no parameters and an output schema exists, the description adequately covers the essential information: what the tool returns (health totals, unhealthy pods) and its entry-point role. It could mention that it provides a cluster-level summary, but it is sufficiently complete.
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 schema coverage is 100%, so the baseline is 4. The description does not need to add parameter info, and it correctly provides no unnecessary detail.
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 clearly states the tool provides 'node and pod health totals plus the list of unhealthy pods,' which is a specific verb+resource. It also distinguishes itself from sibling tools like list_pods and node_health by suggesting to 'start here,' indicating it's an entry point for health overview.
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 'Start here' explicitly guides the agent to use this tool first when investigating cluster health, providing clear context. However, it does not include explicit when-not-to-use or alternative tool recommendations, which would have merited a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_podB
Delete a pod so its controller recreates it (subject to the allowlist).
| Name | Required | Description | Default |
|---|---|---|---|
| namespace | Yes | ||
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Reveals that deletion is not permanent (controller recreates) and mentions an allowlist, but does not disclose failure modes, permissions, or side effects on running containers. With no annotations, more detail would be beneficial.
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 sentence that packs core purpose and outcome. Very concise, but could be slightly expanded to include parameter hints or use cases without losing efficiency.
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?
Provides essential purpose and behavioral effect, but lacks parameter descriptions, usage guidelines, and error states. Given absent annotations and unknown output schema, more context would be needed for robust agent usage.
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?
Parameters (namespace, name) are not explained in the description. While their names are conventional, the description adds no semantic context beyond the schema. With 0% schema coverage, this is a significant gap.
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?
Cleary states the action (delete) and resource (pod), with added behavioral outcome (controller recreates it) and constraint (allowlist). Distinguishes from siblings like restart_deployment.
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 explicit guidance on when to use this tool vs alternatives. The description implies a specific behavior but does not state conditions, exclusions, or compare to similar tools.
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 with ready/desired replica counts.
| Name | Required | Description | Default |
|---|---|---|---|
| namespace | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry the burden of behavioral disclosure. It only states a read-like action ('list') but omits details on permissions, rate limits, pagination, default namespace behavior, or whether results are scoped to a namespace.
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 extremely concise (one sentence) but sacrifices necessary details. It could be longer to include parameter guidance without losing conciseness.
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?
Given the optional namespace parameter and presence of an output schema, the description should clarify namespace behavior and concise output structure. It fails to provide enough contextual completeness for an agent to use the tool correctly.
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?
With 0% schema description coverage, the description compensates not at all. It does not mention the 'namespace' parameter, its default value, or its effect (e.g., filtering by namespace vs. listing all). The schema alone is insufficient for an agent to understand parameter usage.
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 specifies the verb 'list', the resource 'deployments', and the included information ('ready/desired replica counts'), making the tool's purpose clear and distinct from siblings like list_pods or cluster_summary.
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 is provided on when to use this tool versus alternatives such as list_pods, cluster_summary, or other siblings. The description does not mention conditions, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_eventsC
Recent cluster events; Warning-type events sort first.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full transparency burden. It discloses that Warning-type events sort first, which is a behavioral trait. However, it does not mention whether the tool is read-only, any rate limits, or other side effects. The sorting info is useful but insufficient for full transparency.
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 very concise with one sentence, no wasted words, and front-loads key information. However, it could be restructured slightly to include a verb for clarity.
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?
Given the availability of an output schema (not shown), the description does not need to explain return values. The tool is simple with one optional parameter, and the description covers the core functionality and sorting. It is minimally complete but lacks details like the meaning of 'recent' or any filtering capabilities.
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 the sole parameter 'limit' or its meaning (e.g., maximum number of events returned). Without schema coverage, the description must compensate, but it fails to add any semantic value beyond the schema's type and default.
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 'Recent cluster events; Warning-type events sort first' clearly identifies the tool as listing recent cluster events and states a specific sorting behavior, distinguishing it from sibling tools like list_deployments or list_pods. However, it could be more explicit with a verb like 'List'.
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 is provided on when to use this tool versus alternatives. The sibling tools are all distinct, but the description does not clarify context or exclusions, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_podsA
List pods (optionally one namespace). Unhealthy pods sort first.
| Name | Required | Description | Default |
|---|---|---|---|
| namespace | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden. It reveals sorting behavior (unhealthy pods first) but lacks details on authentication, side effects, pagination, or output format. The description is minimally transparent.
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 very concise (two sentences) and front-loads the purpose. However, it lacks structural elements like paragraphs or bullet points, and may be too terse for complete understanding.
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?
Given the tool's simplicity (1 optional parameter) and the presence of an output schema (not shown in input), the description is adequate but incomplete. It does not mention pagination, default namespace behavior, or distinguish from similar listing tools like list_deployments.
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%, so the description must compensate. It adds that namespace is optional but does not explain its filtering effect or provide any additional semantics beyond the schema's sparse definition. The description adds limited value.
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 clearly states the action ('list pods') and the resource ('pods'), and distinguishes from siblings like delete_pod and pod_logs. The mention of optional namespace filtering and sorting by health adds specificity.
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 indicates that namespace is optional and that unhealthy pods sort first, but provides no explicit guidance on when to use this tool versus alternatives (e.g., cluster_summary, list_deployments) or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
node_healthB
Per-node readiness, kubelet version, capacity, and pressure conditions.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavioral traits. It states what data is returned but does not indicate that the tool is read-only, any required permissions, or potential side effects. For a tool with no parameters, this is a minimal disclosure.
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?
One sentence covering the key aspects without superfluous words. Could be slightly more specific (e.g., 'Returns' at start) but overall efficient.
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 tool with an output schema, the description adequately lists the main data categories. It does not explain the return structure or address edge cases, but with output schema present, this is acceptable.
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 the input schema coverage is 100% (empty). The description is not required to add parameter details, and it implicitly confirms no input is needed. Baseline score of 4 applies.
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 clearly identifies the resource (node) and the scope (readiness, kubelet version, capacity, pressure conditions). It implies a retrieval operation, though lacks an explicit verb. It distinguishes from siblings like cluster_summary which covers cluster-level health.
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 use this tool vs alternatives such as cluster_summary. There is no mention of prerequisites, context, or exclusions. The description is purely factual without usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pod_logsC
Tail a pod's logs.
| Name | Required | Description | Default |
|---|---|---|---|
| namespace | Yes | ||
| pod | Yes | ||
| tail | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description says 'Tail' implying streaming, but the parameter 'tail' (integer with default 200) suggests fetching a limited number of lines, which contradicts common tail semantics. No annotations are provided to clarify behavior such as whether logs are continuously streamed or fetched once.
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 sentence, which is concise but lacks structure or front-loading of key details. It is efficient but insufficiently informative for a tool with three parameters.
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 description is extremely minimal given the tool's complexity (3 parameters, output schema exists). It fails to explain the tool's behavior, parameter usage, or output format, leaving significant gaps for correct invocation.
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 has 0% description coverage for parameters, and the description adds no information about namespace, pod, or tail parameters. It does not explain their meaning, formats, or constraints, leaving the agent unaware of how to properly fill these fields.
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 clearly states the verb 'Tail' and the resource 'pod's logs', making it distinct from sibling tools like list_pods or delete_pod. However, it does not elaborate on what 'Tail' means (continuous streaming vs. fetching last lines), which could cause ambiguity.
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 is provided on when to use this tool versus alternatives such as list_pods (for pod listing) or other sibling tools. There is no mention of prerequisites like having a specific pod name or namespace.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restart_deploymentB
Rollout-restart a deployment (subject to the mutable-namespace allowlist).
| Name | Required | Description | Default |
|---|---|---|---|
| namespace | Yes | ||
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It mentions the allowlist restriction but lacks details on effects like downtime, pod restart behavior, or safety considerations. The term 'Rollout-restart' suggests a rolling restart but is not fully explained.
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 sentence, concise and to the point. It includes an important constraint without excess words. However, it could be structured to list key information more clearly.
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?
Given the moderate complexity of a restart operation and the presence of an output schema (not described), the description lacks completeness. It omits prerequisites, exact behavior, return values, and any usage scenarios. The allowlist restriction is helpful but insufficient.
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% and the description adds no explanation for the two required parameters (namespace, name). The mention of 'mutable-namespace allowlist' vaguely relates to namespace but does not clarify its meaning or provide any parameter-level semantics.
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 clearly states the action 'Rollout-restart a deployment' with a specific verb and resource. The mention of 'mutable-namespace allowlist' identifies a scope restriction, distinguishing it from sibling tools like scale_deployment.
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 implies use only on deployments in the allowlist but does not explicitly state when to use this tool over alternatives like scale_deployment or delete_pod. No when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scale_deploymentB
Scale a deployment to N replicas (0..max), subject to the allowlist.
| Name | Required | Description | Default |
|---|---|---|---|
| namespace | Yes | ||
| name | Yes | ||
| replicas | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It reveals scaling is possible but does not disclose if it is destructive, what permissions are required, or any rate limits. The allowlist constraint is opaque.
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?
Single sentence, front-loaded with key information. No extraneous words.
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?
Given no annotations and a 3-param tool with a vague allowlist, the description lacks details on how replicas max is defined, scaling reversibility, or integration with sibling tools like list_deployments. The output schema existence is not leveraged.
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%, so description must compensate. It adds meaning for 'replicas' (range and allowlist) but says nothing about 'namespace' or 'name', leaving them minimally defined by types.
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 clearly states the action ('Scale'), resource ('deployment'), and specific parameters ('to N replicas' with range 0..max and allowlist constraint). It distinguishes from siblings like restart_deployment or delete_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?
No when-to-use or when-not-to-use guidance is provided. The mention of 'allowlist' is vague and not explained. No alternatives among sibling tools are suggested.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
server_infoB
Report the effective configuration (context, read-only, allowlist).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It states it 'reports' configuration but does not explicitly confirm it is read-only, idempotent, or requires no destructive actions. Behavioral traits like side effects or permissions are not disclosed.
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 concise sentence that conveys the purpose without extraneous words. Every part is necessary.
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 tool with an output schema, the description covers the key aspects of what is reported. It could be improved by mentioning that it is a safe query, but given the simplicity, it is adequate.
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?
No parameters exist, and schema coverage is 100%. The description adds no parameter information, but this is acceptable given zero parameters. Baseline of 4 is appropriate.
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 clearly states the tool reports 'effective configuration' and lists specific aspects (context, read-only, allowlist). It distinguishes from siblings like 'node_health' and 'cluster_summary' by focusing on server configuration rather than cluster or node state.
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 use this tool versus alternatives. Does not mention context, prerequisites, or when not to use it. Sibling tools exist but no differentiation is provided.
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.
10 tool updates
v0.1.0- First observed
cluster_summary - First observed
delete_pod - First observed
list_deployments - First observed
list_events - First observed
list_pods - First observed
node_health - First observed
pod_logs - First observed
restart_deployment - First observed
scale_deployment - First observed
server_info
TDQS
Scored across 10 tools
Each tool targets a distinct aspect of cluster management: summary, pods, deployments, events, nodes, logs, scaling, restart, and configuration. No overlapping purposes.
Tools use a mix of verb_noun (delete_pod, list_deployments) and noun_noun (cluster_summary, node_health) patterns. While mostly clear, the inconsistency may cause minor confusion for an agent.
10 tools provide a well-scoped set for monitoring and managing a Kubernetes cluster, covering essential operations without being overwhelming.
Covers core observability and common actions (restart, scale, delete pod) but lacks CRUD for deployments and pods, leaving gaps for full lifecycle management.
Maintenance
Related MCP Connectors
Fail-closed policy guardrails for AI agents running kubectl, terraform, helm, and argocd.
- FullmaktOAuthai.fullmakt
Credential broker for AI agents: scoped, revocable API access with policy enforcement and audit.
Security gateway for AI agents: policy, approval, and audited execution, no secrets shared.
Read-only finance and operations controls for AI agents with evidence and safe next actions.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceProvides read-only access to Kubernetes clusters for AI assistants.23MIT
- 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.93 npm1MIT
- AlicenseAqualityCmaintenanceEnables safe, read-only interaction with Kubernetes clusters, allowing users to list resources and fetch logs without any create/update/delete operations.116Apache 2.0
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to safely observe and troubleshoot Kubernetes workloads, with limited recovery actions like pod deletion and Helm rollbacks, while preventing dangerous modifications.Apache 2.0