MCP server providing tools for Kubernetes, Helm, Kustomize, Tilt, and documentation search across devops infrastructure tools
The server provides 18 tools covering Kubernetes, Helm, Kustomize, and documentation search. All tools have basic descriptions and input schemas are visible in the code. However, several critical quality issues emerge: (1) Schema completeness, while types are declared, many parameters lack detailed constraints, validation rules, or examples in descriptions; (2) Description brevity, most descriptions are 50-150 chars, which is below the ideal range of 50-200 chars for LLM optimization, and they lack actionable guidance on when to use each tool; (3) Parameter descriptions are sparse, many parameters have minimal or generic descriptions (e.g., 'Pod name', 'Resource name'); (4) No output schemas documented, tools declare they return data but don't describe the response structure; (5) Error handling guidance is absent, no recovery instructions or categorization of errors; (6) No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite having both read-only and write tools; (7) Composition issues, tools like kubectl_get, kubectl_describe, and kubectl_logs have overlapping concerns but no clear guidance on which to use when. The server is functional but lacks the production-grade polish expected for a 70+ score.
Retrieve a specific documentation page by source and slug
Get the README for a Helm chart
Get the values schema for a Helm chart
Get the template files for a Helm chart
Get the default values.yaml for a Helm chart
Get the deployment history of a Helm release
Get the manifest generated by a Helm release
Get the values used by a deployed Helm release
Output schemas not documented. Tools declare they return data (e.g., helm_list_releases returns release info) but the response structure is not specified. LLMs cannot plan downstream tool calls or extract fields without knowing what fields are available.
Parameter descriptions are sparse and generic. Many parameters have single-word descriptions ('Pod name', 'Resource name', 'Search query string') that lack actionable constraints, format rules, or usage hints. Descriptions should be 50-200 chars and explain WHAT, WHEN, and HOW.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
List Helm releases in the cluster
Describe a Kubernetes resource using kubectl
Get Kubernetes resources using kubectl
Get logs from a Kubernetes pod
Build Kubernetes manifests using Kustomize
List all available documentation topics for a given source
Search documentation across Tilt, k3d, Kubernetes, and Helm using full-text search
Search Helm charts on Artifact Hub by name or keyword
Get the current status of Tilt services
Manually trigger a Tilt service rebuild
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). The server has 17 read-only tools and 1 write tool (tilt_trigger), but none are marked with annotations. LLMs cannot distinguish safe tools from risky ones without explicit hints.
No error handling guidance. Tools provide no recovery instructions, error categorization, or retry guidance. When kubectl_get fails, the LLM doesn't know whether to retry, try a different resource type, or ask the user for clarification.
Overlapping kubectl tools with no disambiguation. kubectl_get, kubectl_describe, and kubectl_logs all query pods but the descriptions don't clarify when to use each. LLMs must guess, wasting reasoning cycles. Consolidate or add explicit guidance like 'Use kubectl_get for quick status checks; use kubectl_describe for detailed event logs; use kubectl_logs for application output.'
Helm chart tools (get_helm_chart_values, get_helm_chart_schema, get_helm_chart_readme, get_helm_chart_templates) have weak descriptions. No guidance on when each is needed or how they relate. E.g., 'Get the values schema' doesn't explain whether this is the JSON schema of the values.yaml file or an OpenAPI schema.
Tool names use underscore-prefixed variants (helm_list_releases, helm_get_values) inconsistently. Some tools use 'helm_' prefix, others 'kubectl_', and documentation tools have no prefix. Inconsistent naming complicates LLM tool discovery and mental model building.
Parameters lack format constraints and examples. E.g., 'limit' parameter in search_docs and search_helm_charts doesn't specify min/max bounds (default 10 is stated but is 100 allowed? 1000?). 'source' in search_docs accepts 'all' but no validation guidance is provided. Constraints should be explicit in parameter descriptions or schema.