easypanel-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | HTTP port (default: 3100) | 3100 |
| MCP_API_KEY | No | Shared key protecting the endpoint (required for Bearer HTTP mode) | |
| EASYPANEL_URL | No | Your EasyPanel URL | |
| EASYPANEL_TOKEN | No | API token from login (not needed in OAuth mode) | |
| MCP_ACCESS_MODE | No | 'full' (default) or 'readonly' | full |
| OAUTH_ISSUER_URL | No | Public URL of this server (e.g. https://mcp.example.com) - required for OAuth mode | |
| OAUTH_STORE_PATH | No | Where to persist OAuth state (default ./.easypanel-mcp-oauth.json) | |
| EASYPANEL_MCP_MODE | No | 'stdio' (default) or 'http' | stdio |
| EASYPANEL_AUTH_MODE | No | 'bearer' (default) or 'oauth' | bearer |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_projectsA | List all projects and their services |
| create_projectC | Create a new project |
| destroy_projectA | Delete a project and all its services |
| inspect_projectA | Get project details and Docker containers |
| create_appC | Create an app service |
| inspect_appA | Get app service details (env, domains, build, source) |
| deploy_appC | Trigger deployment for an app |
| start_appC | Start an app service |
| stop_appC | Stop an app service |
| restart_appB | Restart an app service |
| destroy_appB | Delete an app service |
| set_app_source_imageC | Set app source to a Docker image |
| set_app_source_githubC | Set app source to a GitHub repo |
| set_app_envC | Update environment variables for an app |
| set_app_resourcesB | Set CPU/memory limits for an app |
| create_databaseC | Create a database service |
| inspect_databaseA | Get database service info (connection string, status) |
| destroy_databaseC | Delete a database service |
| list_domainsA | List domains for a service |
| create_domainB | Add a domain to a service |
| delete_domainB | Remove a domain from a service |
| create_portC | Expose a port for a service |
| list_portsB | List exposed ports for a service |
| create_mountB | Create a volume mount for a service |
| list_mountsB | List volume mounts for a service |
| system_statsA | Get system stats (CPU, memory, disk, network) |
| service_statsC | Get resource stats for a service |
| storage_statsA | Get storage usage breakdown |
| create_composeC | Create a Docker Compose service |
| inspect_composeC | Get compose service details |
| deploy_composeC | Deploy a compose service |
| cleanup_dockerB | Clean up unused Docker images |
| system_pruneB | Docker system prune (remove all unused data) |
| restart_panelC | Restart EasyPanel |
| reboot_serverB | Reboot the server |
| list_usersC | List panel users |
| list_certificatesA | List SSL certificates |
| list_nodesA | List cluster nodes |
| deploy_templateC | Deploy from an EasyPanel one-click template |
| list_actionsA | List recent deploy actions/builds. Filter by project or service. |
| get_action_logB | Get deploy action details including full build/deploy log |
| trpc_rawA | Call any EasyPanel tRPC procedure directly. 347 procedures across 43 namespaces. Use for anything not covered above. Examples: wordpress.getPlugins, box.createService, traefik.getDashboard, branding.getBasicSettings, cloudflareTunnel.listTunnels |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 42 tools
Most tools map to a distinct resource and action, and the resource type is almost always in the name (app vs database vs compose). A few pairs like cleanup_docker/system_prune and system_stats/service_stats/storage_stats have overlapping boundaries, but the descriptions largely clarify them.
The set largely follows verb_noun snake_case (create_app, inspect_app, destroy_app, deploy_app). Minor deviations include delete_domain instead of destroy_domain, noun-style stats tools, system_prune, and trpc_raw.
42 tools is well above the heavy threshold, and the inclusion of trpc_raw as a catch-all suggests the curated surface could be much smaller. The broad EasyPanel domain justifies some sprawl, but the count remains hard to navigate.
Core workflows for projects, apps, databases, domains, ports, mounts, compose, and system operations are present, but lifecycle coverage is uneven: ports and mounts cannot be deleted, compose has no destroy/update, and databases lack start/stop/restart. trpc_raw provides a fallback, but the first-class surface has notable gaps.