MCP server that exposes Kubernetes scaling tools to Claude AI for intelligent cluster management. Provides tools to view deployment status, query Prometheus metrics, scale deployments with safety guardrails, and generate audit reports.
ClaudeScale defines 4 Kubernetes scaling tools with reasonable coverage of naming, descriptions, and schemas. However, multiple issues prevent a higher score: (1) Parameter descriptions lack specificity, most are under 50 characters and omit constraints/ranges; (2) Output schemas are not documented in the tool definitions, LLMs cannot plan downstream calls without knowing what fields to expect; (3) Error handling is present in the code but not reflected in tool descriptions, leaving LLMs unaware of recovery paths; (4) Tool descriptions do not state side effects clearly (claudescale_scale_deployment mutates state but doesn't say 'This irreversibly scales the deployment'); (5) The 'reason' parameter for scaling lacks enum constraints, LLMs may hallucinate invalid reasons.
Generate a comprehensive markdown report of current system state. The report includes: - Current deployment status - Metrics analysis - Recommendations
Get current state of all deployments in the namespace. Returns information about: - All deployments and replica counts - Pod readiness - Overall health
Get metrics from Prometheus for analysis. Returns: - CPU usage (average, min, max, utilization %) - Memory usage - Network traffic - Analysis and recommendations
Scale a deployment to the specified number of replicas. Constraints: - Minimum: 2 replicas - Maximum: 5 replicas
Output schemas not documented in tool definitions. LLMs cannot infer what fields are returned (e.g., does get_current_state return pod names, health status, error counts?). This violates pattern:tool-description and pattern:response-shaper, agents cannot plan chained calls without knowing downstream data.
Parameter descriptions are too brief and lack constraint details. 'Kubernetes namespace (default: claudescale)' does not explain valid namespace formats, character restrictions, or what happens if invalid. Violates pattern:constrained-input.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 61 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 34 | - | v1 |
claudescale_scale_deployment's 'reason' parameter lacks enum or pattern constraint. Accepts free-form string, inviting hallucinated invalid reasons. LLMs need explicit allowed values ('scale_up_due_to_high_cpu', 'scale_down_due_to_low_demand', etc.) to avoid invalid calls.
Tool descriptions do not clearly state side effects. claudescale_scale_deployment modifies cluster state irreversibly but description does not say 'This immediately scales the deployment' or 'Changes are live, no confirmation step.' Violates pattern:command-tool.
Error handling guidance missing from tool descriptions. Code implements guards (cooldown, scale-down validation) but tool descriptions do not explain when 'success: false' occurs or what the LLM should do next. Violates pattern:recovery-guide.
No pagination parameters on get_current_state or get_metrics. If a namespace has hundreds of deployments or metrics points, response could balloon and exhaust context. Per pattern:paginated-result, list-like tools should accept limit/offset and return total count.
Tool descriptions do not mention dependencies or prerequisites. E.g., 'Requires valid Kubernetes namespace and existing deployment' or 'Call get_current_state first to list deployments' would guide multi-step planning. Currently, LLMs must infer.
lookback_minutes parameter for get_metrics lacks upper/lower bounds in description. LLMs may pass 0, negative, or absurdly large values (e.g., 999999). Description should state '1 - 1440 minutes (1 day)'.