add_domain
Adiciona um domínio customizado ao serviço com HTTPS automático via Let's Encrypt.
Run an Easypanel server from your editor — deploy from GitHub, edit env vars, read logs, exec into containers, manage domains and databases.
LABSCO SUMMARY
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.
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.
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.
One command plus a key — npx -y easypanel-mcp-server, then supply credentials
USE CASES
Point the service at the repository branch, deploy it, and read the build log if it fails.
Read the runtime logs, then exec into the container to check files and connectivity.
Read the current variables masked, set the one you mean to change, and redeploy.
Add the custom domain with automatic HTTPS and make it primary.
Check storage and Docker usage, then remove unreferenced images before reaching for a full prune.
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
add_domainAdiciona um domínio customizado ao serviço com HTTPS automático via Let's Encrypt.
cleanup_docker_imagesRemove do servidor apenas as imagens Docker não utilizadas (dangling/sem container), liberando espaço sem mexer em containers, redes ou volumes. Operação mais leve e segura que prune_docker — imagens podem ser recriadas em um novo deploy. Escopo global do servidor.
create_composeCria um serviço do tipo Docker Compose em um projeto. Depois use set_compose_file (via trpc_raw) ou o painel para definir o docker-compose, e deploy_compose para subir.
create_databaseCria um serviço de banco de dados (Postgres, MySQL, MariaDB, MongoDB ou Redis) em um projeto.
create_mountAdiciona um volume/mount a um serviço para persistir dados entre deploys. Use type 'volume' para volume nomeado gerenciado, 'bind' para mapear um caminho do host. Aplica no próximo deploy.
create_portPublica uma porta de um serviço no host (port mapping), expondo-a externamente sem passar pelo proxy/domínio. Útil para TCP/UDP brutos (bancos, jogos, etc). Aplica no próximo deploy. ⚠️ Portas privilegiadas (publishedPort < 1024, ex: 80/443/22) exigem confirm: "CONFIRMO".
create_projectCria um novo projeto no Easypanel.
create_serviceCria um novo serviço de app em um projeto. Após criar, configure a source com set_source_github ou set_source_image.
delete_env_var⚠️ Remove UMA variável de ambiente. Lê estado atual antes de escrever. Requer confirm: "CONFIRMO".
delete_project⚠️ DESTRUTIVO — Remove permanentemente o projeto e TODOS os seus serviços e dados. Irreversível. Requer confirm: "CONFIRMO".
deploy_composeDispara o deploy (docker compose up) de um serviço Compose com a configuração atual.
deploy_serviceDispara o deploy do serviço com a configuração atual. Usa o source configurado (GitHub, image, dockerfile). Funciona para serviços app E compose — detecta o tipo e roteia para o namespace certo (não precisa saber de antemão se é compose).
destroy_database⚠️ DESTRUTIVO — Remove o banco de dados e TODOS os seus dados permanentemente. Irreversível. Requer confirm: "CONFIRMO".
destroy_service⚠️ DESTRUTIVO — Remove permanentemente o serviço e seus dados. Irreversível. Requer confirm: "CONFIRMO".
disable_github_deployDesativa o auto-deploy via GitHub. Deploys precisarão ser disparados manualmente.
enable_github_deployAtiva o auto-deploy via GitHub: a cada push no branch configurado, um deploy é disparado automaticamente.
exec_in_containerExecuta um comando dentro do container de um serviço e retorna a saída (stdout/stderr). Use para debugar em runtime: inspecionar arquivos, checar variáveis, testar conectividade, rodar migrations, etc. Roda no primeiro container do serviço (ou no containerId informado). ⚠️ Executa comandos arbitrários — comandos potencialmente destrutivos (rm -rf, dd, mkfs, shutdown, kill, pipe para shell, etc.) exigem confirm: "CONFIRMO".
get_actionRetorna detalhes e logs de uma ação específica (deploy, build, etc).
get_build_logsRetorna os logs de build/deploy do último action registrado para o serviço. Use para debugar falhas de build.
get_docker_eventsCaptura eventos Docker do servidor em tempo real durante uma janela curta (~8s) — start, stop, kill, die, exec, health_status, etc. Use para investigar reinícios e falhas. Obs: só mostra eventos que ocorrem durante a captura (não há histórico); um servidor ocioso pode retornar vazio.
get_docker_statsRetorna estatísticas dos containers Docker em execução: CPU, memória, rede por container.
get_env_varsLista as variáveis de ambiente do serviço. Valores de variáveis sensíveis (KEY, SECRET, PASSWORD, TOKEN) são mascarados por padrão. Use include_values: true para ver os valores completos.
get_exposed_portsLista as portas expostas (publicadas no host) de um serviço. Use para descobrir em quais portas o serviço está acessível externamente.
get_projectRetorna detalhes completos de um projeto: lista de serviços, configurações e status atual.
get_service_errorRetorna o último erro registrado do serviço. Use para debugar falhas de deploy ou runtime.
get_service_logsBusca os logs do container de um serviço. Use para debugar erros em runtime. Retorna as últimas N linhas.
get_service_notesLê as notas/anotações salvas no serviço.
get_service_statsRetorna métricas de um serviço específico: CPU e memória do container.
get_storage_statsRetorna uso de armazenamento do servidor.
get_system_statsRetorna métricas do servidor: CPU, memória, disco, rede e uptime. Use para verificar saúde do servidor.
inspect_composeRetorna a configuração de um serviço Docker Compose: arquivo compose, env, source e estado. Use antes de qualquer alteração.
inspect_databaseRetorna detalhes do banco de dados: credenciais, porta exposta, connection string e status.
inspect_serviceRetorna configuração completa de um serviço: source, env vars, deploy config, mounts, ports, domínios, recursos. Use SEMPRE antes de qualquer update para preservar o estado.
list_actionsLista as ações/jobs em execução ou recentes (deploys, builds, restarts). A lista global guarda apenas uma janela curta — passe projectName/serviceName para filtrar no servidor e não perder ações de um serviço específico.
list_certificatesLista os certificados SSL/TLS gerenciados pelo Easypanel (domínios cobertos, emissor, validade). Use para auditar HTTPS e renovações.
list_containersLista os containers Docker em execução de um serviço (ID, nome, imagem, comando, status, portas). Use para descobrir o container antes de exec_in_container ou para checar se o serviço está rodando.
list_domainsLista todos os domínios configurados em um serviço.
list_mountsLista os volumes/mounts de um serviço (volumes nomeados, bind mounts e arquivos montados). Use para ver onde os dados persistentes do serviço estão.
list_nodesLista os nós do cluster Docker Swarm gerenciado pelo Easypanel (manager/worker, status, disponibilidade). Em servidor único retorna apenas o nó local.
list_portsLista os mapeamentos de porta de um serviço (porta publicada no host → porta do container). Complementa get_exposed_ports com a configuração completa de portas. Use para ver o que está exposto e em qual protocolo.
list_projectsLista todos os projetos do Easypanel com seus serviços e status. Use para descobrir o que existe no painel antes de operar.
list_usersLista os usuários do painel Easypanel (admin, e-mails, papéis).
prune_dockerExecuta um "docker system prune" no servidor inteiro via Easypanel: remove containers parados, redes sem uso, cache de build e imagens não referenciadas para liberar espaço em disco. ⚠️ Ação destrutiva e de escopo GLOBAL (afeta todos os projetos do servidor, não um serviço específico) — exige confirm: "CONFIRMO". Use cleanup_docker_images para uma limpeza mais leve (só imagens não usadas).
reboot_server⚠️ CRÍTICO — Reinicia o SERVIDOR inteiro (máquina host). TODOS os serviços e o painel ficam fora do ar até o boot completar. Use apenas em manutenção planejada. Requer confirm: "CONFIRMO".
remove_domain⚠️ Remove permanentemente um domínio. O tráfego para esse host parará de funcionar. Requer confirm: "CONFIRMO".
rename_service⚠️ Renomeia ou move um serviço. Webhooks, DNS e referências internas que usam o nome antigo deixarão de funcionar. Requer confirm: "CONFIRMO".
restart_panel⚠️ Reinicia o próprio Easypanel. O painel/API ficam brevemente indisponíveis; os serviços hospedados continuam rodando. Requer confirm: "CONFIRMO".
restart_serviceReinicia o serviço. Causa breve indisponibilidade. Funciona para app E compose — em compose, reinicia via redeploy (docker compose up recria os containers).
set_env_varAdiciona ou atualiza UMA variável de ambiente. Lê o estado atual antes de escrever — não apaga outras variáveis.
set_primary_domainDefine qual domínio é o primário (usado como URL principal do serviço).
set_service_notesSalva notas/anotações no serviço (markdown suportado).
set_service_resourcesDefine limites e reservas de CPU e memória do serviço. Envie só os campos que quer alterar — os omitidos mantêm o valor atual (0 = sem limite). Memória em MB, CPU em núcleos (0.5 = meio núcleo). Aplica no próximo deploy/restart.
set_source_githubConfigura a source do serviço para um repositório GitHub. O repo deve estar conectado no Easypanel (Settings > GitHub).
set_source_imageConfigura a source do serviço para uma imagem Docker.
start_serviceInicia um serviço que está parado. Funciona para app e compose (em compose, equivale a um redeploy/compose up).
stop_service⚠️ PARA o serviço em produção. Usuários não conseguirão acessar enquanto parado. Requer confirm: "CONFIRMO".
trpc_rawChama diretamente qualquer procedure tRPC do Easypanel (~347 em 43 namespaces) não coberta pelas tools dedicadas. Use para recursos avançados: traefik.*, branding.*, cloudflareTunnel.*, box.*, mariadb.*, volumeBackups.*, databaseBackups.*, etc. Leitura (isMutation=false) é o padrão. ⚠️ Reads podem retornar dados sensíveis (env vars/secrets de qualquer projeto). Para escrita, passe isMutation:true E confirm:"CONFIRMO" — mutations arbitrárias pulam as proteções das tools curadas.
BEFORE YOU INSTALL
57 tools when we connected. The escape-hatch tool is registered as trpc_raw, not easypanel_raw as documented, and reaches about 375 operations. EASYPANEL_RAW_DISABLED=1 removes it and MCP_ACCESS_MODE=readonly blocks every write.
CONTEXT COST
Rated by the size of the 57 tool definitions that ride along on every turn, not by how many there are
INSTALLATION
npx -y easypanel-mcp-server{
"mcpServers": {
"easypanel-mcp": {
"command": "npx",
"args": [
"-y",
"easypanel-mcp-server"
],
"env": {
"EASYPANEL_URL": "<YOUR_EASYPANEL_URL>",
"EASYPANEL_TOKEN": "<YOUR_EASYPANEL_TOKEN>"
}
}
}
}{
"mcpServers": {
"easypanel-mcp": {
"command": "npx",
"args": [
"-y",
"easypanel-mcp-server"
],
"env": {
"EASYPANEL_URL": "${EASYPANEL_URL}",
"EASYPANEL_TOKEN": "${EASYPANEL_TOKEN}"
}
}
}
}Set EASYPANEL_URL and EASYPANEL_TOKEN first in Cursor Settings → Tools & MCPs → Environment Variables; the ${…} references read them from there, so the block itself stays as it is.
Clone and build the server:
git clone https://github.com/helbertparanhos/easypanel-mcp-server
cd easypanel-mcp-server
npm install && npm run buildThen add this; <YOUR_ABSOLUTE_PATH> is the full path of the folder you ran git clone in, the one that holds the easypanel-mcp-server folder:
{
"mcpServers": {
"easypanel-mcp": {
"command": "node",
"args": [
"<YOUR_ABSOLUTE_PATH>/easypanel-mcp-server/dist/index.js"
],
"env": {
"EASYPANEL_URL": "<YOUR_EASYPANEL_URL>",
"EASYPANEL_TOKEN": "<YOUR_EASYPANEL_TOKEN>"
}
}
}
}