MCP server for managing Kind (Kubernetes in Docker) clusters
The server provides 15 clearly named tools with consistent verb_noun patterns (create_, delete_, get_, setup_). All tools have descriptions and input schemas are visible in the source. However, parameter descriptions lack actionable detail (e.g., no format constraints, ranges, or examples), output schemas are undocumented, and error handling is minimal. The codebase shows defensive validation but doesn't guide LLM recovery. Descriptions are adequate but fall short of LLM-optimized length (most 15-50 chars, well below the 50-200 char baseline). No documented output shapes force LLMs to infer response structures.
Get the status of load balancer components (MetalLB, cloud-provider-kind, docker-mac-net-connect).
Build a Kind node image from Kubernetes source.
Create a Kind cluster.
Delete a Kind cluster.
Export the kubeconfig for a Kind cluster.
Export logs from a Kind cluster.
List existing Kind clusters.
No documented output schemas. LLMs cannot infer what fields to expect from tool responses, forcing them to guess downstream field names and inviting data extraction errors.
Parameter descriptions lack actionable constraints. Examples: 'images' parameter in kind_load_docker_image says 'Space-separated image refs' but no format constraint, validation rule, or max count. 'wait' parameter offers examples (60s, 5m) but no guidance on min/max duration or behavior if malformed.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 54 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 44 | - | v1 |
Get the kubeconfig for a Kind cluster.
List nodes for a Kind cluster.
Get the version of the kind CLI.
Load Docker images into a Kind cluster.
Load a Docker image archive (tar) into a Kind cluster.
Check if cloud-provider-kind is installed and provide instructions to run it.
Check the status of docker-mac-net-connect for macOS Docker network connectivity.
Install and configure MetalLB in a Kind cluster for LoadBalancer service support.
Tool descriptions are too brief (15-65 chars) and generic. Baseline is 50-200 chars for LLM-optimized descriptions. Most descriptions lack context about when to use each tool, prerequisites, or side effects (e.g., does setup_metallb require a running Kind cluster? Does kind_delete_cluster destroy persistent data?).
No error recovery guidance. Source shows validation errors return 'validation error: <err>' with IsError=true, but no actionable next step. E.g., if a cluster name is invalid, the LLM learns nothing about how to correct it. No suggestion for alternatives or retryable vs. fatal failures.
No confirmation or dry-run for destructive operations. kind_delete_cluster, kind_create_cluster (with config), and kind_build_node_image are marked as destructive but lack a confirmation or preview step. Agents could irreversibly delete clusters without a guard.
Parameter types present but lack format/pattern constraints. Examples: 'image' parameter accepts any string but should validate against Docker image naming rules. 'wait' duration accepts any string but should enforce ISO 8601 duration format (1s, 5m, 10h).
setup_cloud_provider_kind and setup_docker_mac_connect take no parameters but descriptions are vague ('Check if...provide instructions...'). Unclear what these tools actually do, when to call them, or how their output should be interpreted.
No pagination or result limits documented. kind_get_clusters and kind_get_nodes may return many items, but no limit, offset, or cursor parameters are visible. Descriptions don't specify if results are capped or if pagination is supported, risking LLM context exhaustion.