Labsco
MCP SERVER

Easypanel MCP Server

by helbertparanhos

Run an Easypanel server from your editor — deploy from GitHub, edit env vars, read logs, exec into containers, manage domains and databases.

PaaS Deployment & App HostingVerified
Summary
Full server control with the destructive half deliberately hard to trigger by accident.

Deleting a project, stopping a service or rebooting the host all require an explicit confirmation string, which is the right shape when an assistant holds the keys to production. exec_in_container and the log tools are what make it a debugging surface rather than a deploy button — you can read the error, look inside the container and fix the variable without leaving the conversation.

What it is

An MCP server that maps the Easypanel API — the Docker-based server control panel — onto typed tools. Instead of switching to the dashboard, an assistant deploys, inspects and repairs services in place, with a raw escape hatch for anything the dedicated tools do not cover. It speaks all three Easypanel API generations and detects which one your panel runs.

What you get
  • list_projects, get_project, create_project and delete_project — the projects that hold services; deletion is irreversible and requires an explicit confirmation string
  • inspect_service, create_service, rename_service and destroy_service — a service's full configuration (source, env, deploy config, mounts, ports, domains, resources), which you are meant to read before any update; rename and destroy both take a confirmation
  • deploy_service, start_service, stop_service and restart_service — deploy with the current source, and control a running service; app and compose services are routed automatically
  • set_source_github, set_source_image, enable_github_deploy and disable_github_deploy — point a service at a repository or a Docker image, and turn push-triggered deploys on or off
  • get_env_vars, set_env_var and delete_env_var — environment variables with secret-looking values masked by default; writes read current state first so nothing else is dropped
  • get_service_logs, get_build_logs, get_service_error, list_actions and get_action — runtime logs, build logs, the last recorded error, and the deploy and build jobs behind them
  • list_containers, exec_in_container and get_docker_events — find the container, run a command inside it, and watch Docker start, stop, kill and health events during a short window
  • list_domains, add_domain, remove_domain and set_primary_domain — custom domains with automatic HTTPS via Let's Encrypt
  • create_database, inspect_database and destroy_database — Postgres, MySQL, MariaDB, MongoDB or Redis, with credentials and connection string on inspect
  • list_mounts, create_mount, list_ports, create_port and get_exposed_ports — persistent volumes and bind mounts, and port mappings published on the host
  • get_system_stats, get_docker_stats, get_service_stats and get_storage_stats — CPU, memory, disk, network and uptime for the server, per container and per service
  • prune_docker and cleanup_docker_images — a full system prune, or the lighter pass that removes only unreferenced images
  • create_compose, inspect_compose and deploy_compose — Docker Compose services
  • list_users, list_certificates, list_nodes, restart_panel and reboot_server — panel users, managed TLS certificates, Swarm nodes, and the two restarts, both gated behind confirmation
  • trpc_raw — call any Easypanel procedure that has no dedicated tool
Requirements

An Easypanel instance and credentials for it. Clients run npx easypanel-mcp-server over stdio; TypeScript and Node. Every destructive action is gated behind an explicit confirmation string, and an optional read-only mode makes it safe to point at production. Tool descriptions are written in Portuguese.

Setup effort

One command plus a key — npx -y easypanel-mcp-server, then supply credentials