Model Context Protocol (MCP) server for EasyPanel - Connect AI agents to your infrastructure
EasyPanel MCP has 11 tools with consistent naming (verb_noun pattern) and descriptions present for all tools. However, parameter descriptions are sparse or missing for many tools, and output schemas are not documented. The three advisory network tools (create_network, delete_network) are misleading, they claim to return guidance but do not actually perform operations, which violates the principle that tool names should convey what happens. Input schemas are visible and typed, but lack depth in parameter constraints (no enums, ranges, or format specifications). Error handling is basic. Security considerations around destructive operations (delete_project) are noted but not enforced via confirmation patterns.
Create a new deployment in EasyPanel.
Advisory helper for network creation. IMPORTANT: EasyPanel creates and manages Docker networks automatically when services are deployed; there is no API to create one directly. This tool does NOT create anything — it returns guidance. To isolate services, set internal=true when creating the service instead.
Create a new project in EasyPanel.
Advisory helper for network deletion. IMPORTANT: EasyPanel removes a network automatically once all services in it are deleted; there is no API to delete one directly. This tool does NOT delete anything — it returns guidance.
Delete a project from EasyPanel, including all its services. This is destructive and cannot be undone.
Advisory tools (create_network, delete_network) have misleading names. They claim to create/delete but actually return guidance only. Names should reflect that they are informational, not operational. This violates pattern:tool, tool names must convey what happens when called.
Output schemas are not documented for any tool. LLMs cannot plan downstream calls or extract required fields (e.g., deployment_id from list_deployments) without knowing the response structure. This violates pattern:tool and pattern:response-shaper.
Parameter descriptions are minimal or absent. 'project_id' is described as 'Optional project ID to filter deployments' but lacks format guidance (is it a UUID? alphanumeric?). 'config' in create_deployment is described as 'Additional deployment configuration' but does not specify what fields it accepts. This violates pattern:tool-description.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
Get detailed information about a specific deployment.
Get logs from a deployment.
Get detailed information about a specific project.
List all deployments in EasyPanel, optionally filtered by project.
Analyze network topology in EasyPanel. Note: EasyPanel manages Docker networks automatically and does not expose them via the tRPC API, so this infers a per-project topology (internal vs public services) from the services' port configuration.
List all projects in EasyPanel.
delete_project is marked DESTRUCTIVE but has no confirmation or dry-run mechanism. Agents can irreversibly delete projects without a safety gate. This violates pattern:confirmation-request.
No enums or constraints on parameters. 'driver' in create_network accepts free-form strings ('overlay, bridge, etc.') but does not declare valid values. LLMs will hallucinate invalid driver names. This violates pattern:constrained-input.