The server has 16 tools with generally complete input schemas and descriptions, but falls short in several key areas. All tools have schemas defined in JSON Schema format with proper types, and descriptions are present (though some are generic). However, parameter descriptions are inconsistent in quality, output schemas are not documented, error handling guidance is minimal, and there is no evidence of tool annotations (readOnlyHint, destructiveHint). The naming convention is solid (verb_noun pattern throughout), but composition could be tighter, several tools expose Kubernetes-specific details rather than abstracting complexity. Most tools are read-only (14 of 16), which is good for risk, but the three write tools (kubectl_scale_deployment, kubectl_restart_deployment, kubectl_edit_hpa) lack confirmation patterns or dry-run options. Tool chains are present (e.g., get then describe), but response structures are not documented, making it hard for LLMs to know what fields to expect downstream.
View configuration values of Helm release
View deployment history of Helm release
List Helm releases with various filtering options (including -A parameter)
List added Helm chart repositories
View detailed status information of Helm release
Get Kubernetes cluster information, including control plane and service endpoints
Describe Kubernetes resources with detailed information
Output schemas not documented. LLMs cannot predict what fields they will receive from tool responses, forcing them to parse unstructured text or make assumptions about return types. This breaks chaining patterns and wastes tokens on discovery.
Write tools (kubectl_scale_deployment, kubectl_restart_deployment, kubectl_edit_hpa) lack confirmation or dry-run patterns. Agents can make irreversible changes without verification, risking accidental cluster damage.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 46 | <=2025-11-25 | v2 |
| 2026-03-09 | D | 52 | - | v1 |
Edit Kubernetes HorizontalPodAutoscaler scaling rules
Get Kubernetes resources with filtering and output options
Get Kubernetes resource definition in YAML format
Get logs from Kubernetes pod containers
Restart Kubernetes deployment by rolling restart
Scale Kubernetes deployment to specified number of replicas
Get resource usage statistics for Kubernetes pod containers
Get resource usage statistics for Kubernetes nodes
Get resource usage statistics for Kubernetes pods
Tool annotations missing. No readOnlyHint, destructiveHint, or idempotentHint declarations. Clients cannot determine which tools are safe to call speculatively vs. which require user confirmation. This violates current MCP spec (2026-07-28) patterns for structured tool metadata.
Write tool descriptions are minimal and do not warn of irreversible side effects. 'Restart Kubernetes deployment by rolling restart' does not explain that this will cause pod downtime or that it is not easily undoable. kubectl_scale_deployment description lacks guidance on safe replica ranges.
Error handling guidance is absent. No evidence in tool descriptions of what LLMs should do if a resource is not found, if permissions are denied, or if the operation times out. Responses appear to be raw command output without actionable recovery steps.
Parameter 'namespace' is optional but inconsistently documented. Some tools say 'optional (defaults to all namespaces)', others just say 'optional'. The default behavior should be explicit in every description to avoid LLM confusion.
Field naming inconsistency: kubectl_get uses 'resourceType', but in the description context Kubernetes often uses 'kind'. LLMs may try 'kind' in follow-up calls. All parameter names should match domain conventions or be explicitly mapped in descriptions.
kubectl_get 'limit' parameter is present but not documented with default or typical range (e.g., 'limit: 1-1000, default 20'). Agents do not know if passing 10000 is safe or if it will cause performance issues.
helm_list, helm_history, and helm_get_values accept 'max' parameter but do not document the performance implications of high values (e.g., max=1000 on a cluster with thousands of releases). The description should warn or set a practical upper bound.