npm package: @iflow-mcp/folkz1-easypanel-mcp-server
Description: MCP Server for Easypanel - Manage projects, services, and deployments
Latest version: 1.0.0

# Easypanel MCP Server

MCP Server para gerenciar o Easypanel - crie projetos, serviços, faça deploys e monitore sua infraestrutura diretamente do Kiro ou qualquer cliente MCP.

## Funcionalidades

- **Projetos**: Criar, listar, inspecionar e deletar projetos
- **Serviços**: Criar, deploy, habilitar/desabilitar, configurar serviços (app, mysql, postgres, redis, etc.)
- **Configuração**: Atualizar variáveis de ambiente, domínios, portas, recursos
- **Deploy**: Deploy via Docker image, GitHub ou Git URL
- **Monitoramento**: Estatísticas do sistema (CPU, RAM, disco)
- **Settings**: Gerenciar domínio do painel, reiniciar serviços, limpar Docker

## Deploy no Easypanel (Recomendado)

### 1. Criar o serviço

1. No Easypanel, crie um novo serviço do tipo **App**
2. Configure a fonte como **GitHub**: `Folkz1/mcp-easypanel`
3. Selecione **Dockerfile** como método de build
4. Clique em **Salvar**

### 2. Configurar variáveis de ambiente

Vá em **Ambiente** e adicione:

```
EASYPANEL_URL=https://seu-easypanel.com
EASYPANEL_EMAIL=seu-email@exemplo.com
EASYPANEL_PASSWORD=sua-senha
```

### 3. Configurar domínio (IMPORTANTE!)

Vá em **Domínios** e configure:
- **Porta: 3000** (o servidor roda na porta 3000, não 80!)
- HTTPS habilitado

### 4. Deploy

Clique em **Implantar** e aguarde o build completar.

### 5. Conectar ao Kiro

Adicione ao seu `~/.kiro/settings/mcp.json`:

```json
{
  "mcpServers": {
    "easypanel": {
      "url": "https://seu-dominio.easypanel.host/sse",
      "disabled": false,
      "autoApprove": ["list_projects", "get_system_stats"]
    }
  }
}
```

## Instalação Local (Alternativa)

```bash
git clone https://github.com/Folkz1/mcp-easypanel.git
cd mcp-easypanel
npm install
npm run build
```

Adicione ao `~/.kiro/settings/mcp.json`:

```json
{
  "mcpServers": {
    "easypanel": {
      "command": "node",
      "args": ["/caminho/para/mcp-easypanel/dist/index.js"],
      "env": {
        "EASYPANEL_URL": "https://seu-easypanel.com",
        "EASYPANEL_EMAIL": "seu-email@exemplo.com",
        "EASYPANEL_PASSWORD": "sua-senha"
      }
    }
  }
}
```

## Endpoints

| Endpoint | Descrição |
|----------|-----------|
| `/health` | Health check - retorna `{"status":"ok"}` |
| `/sse` | Endpoint SSE para conexão MCP |
| `/message` | Endpoint para mensagens MCP |

## Tools Disponíveis

### Projetos
- `list_projects` - Lista todos os projetos
- `list_projects_with_services` - Lista projetos com seus serviços
- `create_project` - Cria um novo projeto
- `destroy_project` - Deleta um projeto
- `inspect_project` - Detalhes de um projeto

### Serviços
- `create_service` - Cria um serviço (app, mysql, postgres, redis, mongo, mariadb, minio)
- `deploy_service` - Faz deploy de um serviço
- `destroy_service` - Deleta um serviço
- `enable_service` - Habilita um serviço
- `disable_service` - Desabilita um serviço
- `inspect_service` - Detalhes de um serviço

### Configuração de Serviços
- `update_service_env` - Atualiza variáveis de ambiente
- `update_service_source_image` - Deploy via Docker image
- `update_service_source_github` - Deploy via GitHub
- `update_service_source_git` - Deploy via Git URL
- `update_service_resources` - Configura CPU/memória
- `update_service_ports` - Configura portas expostas

### Monitoramento & Settings
- `get_system_stats` - Estatísticas do sistema (CPU, RAM, disco)
- `get_monitor_data` - Dados de monitoramento
- `get_server_ip` - IP do servidor
- `get_panel_domain` - Domínio do painel
- `set_panel_domain` - Define domínio do painel
- `restart_easypanel` - Reinicia o Easypanel
- `restart_traefik` - Reinicia o Traefik
- `prune_docker_images` - Limpa imagens Docker não usadas
- `prune_docker_builder` - Limpa cache de build
- `get_user` - Info do usuário autenticado

## Exemplos de Uso

```
"Liste todos os projetos do Easypanel"
"Crie um projeto chamado 'meu-app'"
"Adicione um serviço postgres ao projeto meu-app"
"Faça deploy do serviço frontend"
"Qual o uso de CPU e memória do servidor?"
"Limpe as imagens Docker não utilizadas"
```

## Licença

MIT