Unofficial CLI and MCP server for EasyPanel - manage projects, services, deployments, domains and more from the terminal. Supports AI IDE integration via MCP protocol.
Server has 24 tools with moderate schema coverage but significant gaps in descriptions and parameter documentation. Most tools (domains, services, databases) have basic JSON schemas with type definitions, but descriptions are often generic or missing context. Many parameters lack descriptions entirely (e.g., projects_list, services_list, databases_list have no visible input schemas). Tools are reasonably named with action verbs (add_domain, remove_domain, list_domains), but descriptions do not explain WHEN to use each tool or what distinguishes similar operations. No tool annotations (readOnlyHint, destructiveHint) despite clear risk classifications. Error handling is minimal, no recovery guidance or actionable error messages visible in source. Output schemas are not documented. This is typical C-grade community server work.
Add a custom domain to a service
Create a new database
List all databases
Disable HTTPS for a domain
Clean up unused Docker images
Prune Docker builder cache
Enable HTTPS for a domain using Let's Encrypt certificate
14 of 24 tools have no visible input schemas (projects_*, services_*, databases_*, docker_*, system_status, license_*). Source references only 'configs/kiro-example.py' which is not provided. Cannot verify parameter types, required fields, or constraints.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk classifications (DESTRUCTIVE: remove_domain, services_destroy, docker_cleanup_images; WRITE: add_domain, enable_https, etc.). LLM cannot infer safety properties from tool definitions alone.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | <=2025-11-25 | v2 |
Get SSL certificate details for a domain
Activate a license
Check license status
List all domains configured for a service
Get system monitoring status
Create a new project
List all projects
Remove a domain from a service
Renew SSL certificate for a domain
Create a new service
Deploy a service
Destroy a service
List all services in a project
Restart a service
Get system resource status
Upload a custom SSL certificate for a domain
Validate domain configuration and DNS setup
Descriptions are generic or missing context. 'List all domains configured for a service' (list_domains) does not explain when to call it vs validate_domain. 'Get system resource status' (system_status) lacks detail on what metrics are returned. No descriptions explain dependencies or prerequisites.
No output schemas documented. Agents cannot plan downstream tool calls or extract required fields (e.g., does list_domains return domain_id for remove_domain?). No pagination guidance for list_* tools despite potential for large result sets.
Error handling is not visible in source. No recovery guidance, actionable error messages, or error classification (retryable vs user-fixable vs fatal). Destructive operations (remove_domain, services_destroy) have no confirmation or dry-run pattern.