Kubernetes MCP server for managing and interacting with Kubernetes clusters
kube-mcp has clear verb-based naming (list_*, create_*, delete_*, describe_*, get_logs) and all 10 tools have descriptions. However, descriptions are minimal (10-50 chars), parameter descriptions lack detail on constraints/formats, and output schemas are not documented. Tools return raw Kubernetes API responses (verbose, unstructured JSON) without pagination, result limits, or field filtering. No error recovery guidance. Pydantic input schemas are present but lack enum constraints and detailed parameter descriptions. The server uses STDIO transport, which is a hard cap at 50 for protocol readiness.
Clean up all tracked resources in reverse order
Create a new pod in a specified namespace using a predefined template
Delete a pod from a specified namespace
Get detailed information about a specific pod
Get logs from a Kubernetes resource
List all deployments in a specified namespace
List all namespaces in the Kubernetes cluster
Descriptions are too brief (10-50 chars). Rubric baseline is 194 chars avg; descriptions lack WHEN to use, prerequisites, and state-change implications. E.g., 'List all pods in a specified namespace' does not explain when to call this vs describe_pod or get_logs.
Parameter descriptions lack constraint details. E.g., 'namespace' param has no guidance on valid values, format, or default behavior. 'template' in create_pod lists valid values (ubuntu, nginx, busybox, alpine) in code but not in parameter description, should be enum or detailed constraint.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | 2026-07-28+ | v2 |
List all nodes in the Kubernetes cluster
List all pods in a specified namespace
List all services in a specified namespace
Output schemas not documented. Tools return raw Kubernetes API responses (verbose, unstructured JSON via to_dict()). No documentation of returned fields, structure, or pagination. Rubric requires documented output schemas so LLMs know what to expect.
No pagination or result limits. list_* tools return all items via to_dict() without limit, offset, or pagination tokens. Rubric baseline: tools returning lists must accept limit/offset and return total count. Large result sets blow context windows.
Error handling lacks recovery guidance. McpError raised for invalid template, but no guidance on valid options or how to recover. Rubric requires: 'Error responses must tell the LLM what to do next.' E.g., 'Invalid template: got "foo", must be one of: ubuntu, nginx, busybox, alpine'.