MCP server for Kubeara platform providing tools to manage servers, deploy services, and monitor infrastructure
7 tools with basic schemas and descriptions, but significant gaps in parameter documentation and error handling. Tool names follow verb_noun convention (list_, get_, deploy_). Descriptions exist but are brief (avg ~80 chars, below 194-char baseline). Most parameters lack type info in visible schema, only string/integer/boolean noted, no enums or constraints. No output schemas documented. Error handling absent. Security concerns: deploy_service is destructive but has no confirmation pattern. Composition is reasonable (single responsibility per tool), but missing pagination details and response field documentation.
Deploy a service to a server by name. Skips deployment if service is already deployed unless skipIfDeployed is false
Get the profile of the authenticated user
Get the current deployment status from the database. Accepts deploymentId directly, or serviceName + serverName to find the latest deployment
Get GPU metrics and status for a server
Get the current status and resource metrics of a server
List all servers connected to the user's account with their connection status and metadata
List deployable services (templates) with optional search and category filters
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields (e.g., does list_servers return server_id, server_name, status?). Breaks tool chaining.
deploy_service is destructive (WRITE risk) but lacks confirmation/dry-run pattern. No error guidance if deployment fails. Agents may retry blindly, causing duplicate deployments.
Parameter descriptions are minimal or missing type constraints. E.g., 'page' and 'limit' in list_services lack min/max bounds. 'search' and 'category' lack format guidance. LLMs may pass invalid values.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2026-07-28+ | v2 |
get_deployment_status accepts either deploymentId OR (serviceName + serverName), but mutual exclusivity is not documented. LLMs may pass all three, causing ambiguous behavior.
No error handling guidance. Tools return no recovery hints (e.g., 'Server not found. Try list_servers() first.'). Agents cannot self-correct on failures.