Skip to main content
Glama
API_REFERENCE.md7.81 kB
# API Reference - MCP Server Portainer Esta documentação descreve todas as ferramentas (tools) disponíveis no MCP Server para gerenciamento do Portainer. ## Container Tools ### `list_containers` Lista todos os containers Docker. **Parâmetros:** - `all` (boolean, opcional): Se `true`, lista todos os containers incluindo parados. Padrão: `false` - `filters` (object, opcional): Filtros para aplicar (ex: `{"status": ["running"]}`) **Retorno:** ```json [ { "Id": "abc123...", "Names": ["/nginx"], "Image": "nginx:latest", "State": "running", "Status": "Up 2 hours", "Ports": [{"PrivatePort": 80, "PublicPort": 8080, "Type": "tcp"}] } ] ``` **Exemplo de uso:** ``` Liste todos os containers em execução ``` --- ### `get_container` Obtém detalhes completos de um container específico. **Parâmetros:** - `id` (string, obrigatório): ID ou nome do container **Retorno:** ```json { "Id": "abc123...", "Name": "/nginx", "State": { "Status": "running", "Running": true, "Paused": false, "StartedAt": "2025-12-21T10:00:00Z" }, "Config": { "Image": "nginx:latest", "Env": ["PATH=/usr/local/sbin:/usr/local/bin..."] }, "NetworkSettings": {...} } ``` **Exemplo de uso:** ``` Mostre os detalhes do container nginx ``` --- ### `start_container` Inicia um container parado. **Parâmetros:** - `id` (string, obrigatório): ID ou nome do container **Retorno:** ```json { "success": true, "message": "Container started successfully" } ``` **Exemplo de uso:** ``` Inicie o container nginx ``` --- ### `stop_container` Para um container em execução. **Parâmetros:** - `id` (string, obrigatório): ID ou nome do container - `timeout` (number, opcional): Tempo em segundos antes de forçar parada. Padrão: `10` **Retorno:** ```json { "success": true, "message": "Container stopped successfully" } ``` **Exemplo de uso:** ``` Pare o container nginx ``` --- ### `restart_container` Reinicia um container. **Parâmetros:** - `id` (string, obrigatório): ID ou nome do container - `timeout` (number, opcional): Tempo em segundos antes de forçar parada. Padrão: `10` **Retorno:** ```json { "success": true, "message": "Container restarted successfully" } ``` **Exemplo de uso:** ``` Reinicie o container nginx ``` --- ### `remove_container` Remove um container. **Parâmetros:** - `id` (string, obrigatório): ID ou nome do container - `force` (boolean, opcional): Força remoção mesmo se estiver rodando. Padrão: `false` - `volumes` (boolean, opcional): Remove volumes associados. Padrão: `false` **Retorno:** ```json { "success": true, "message": "Container removed successfully" } ``` **Exemplo de uso:** ``` Remova o container nginx-old forçadamente ``` --- ### `create_container` Cria um novo container. **Parâmetros:** - `name` (string, opcional): Nome do container - `image` (string, obrigatório): Imagem a usar (ex: `nginx:latest`) - `env` (array, opcional): Variáveis de ambiente (ex: `["VAR=value"]`) - `ports` (object, opcional): Mapeamento de portas (ex: `{"80/tcp": [{"HostPort": "8080"}]}`) - `volumes` (array, opcional): Volumes a montar - `network` (string, opcional): Network a conectar - `restart_policy` (string, opcional): Política de restart (`no`, `always`, `on-failure`, `unless-stopped`) **Retorno:** ```json { "Id": "def456...", "Warnings": [] } ``` **Exemplo de uso:** ``` Crie um container nginx na porta 8080 ``` --- ## Image Tools ### `list_images` Lista todas as imagens Docker. **Parâmetros:** - `all` (boolean, opcional): Incluir imagens intermediárias. Padrão: `false` **Retorno:** ```json [ { "Id": "sha256:abc123...", "RepoTags": ["nginx:latest"], "Size": 142000000, "Created": 1703174400 } ] ``` **Exemplo de uso:** ``` Liste todas as imagens Docker ``` --- ### `get_image` Obtém detalhes de uma imagem específica. **Parâmetros:** - `id` (string, obrigatório): ID ou nome da imagem **Retorno:** ```json { "Id": "sha256:abc123...", "RepoTags": ["nginx:latest"], "Size": 142000000, "Architecture": "amd64", "Os": "linux" } ``` **Exemplo de uso:** ``` Mostre detalhes da imagem nginx:latest ``` --- ### `pull_image` Faz pull de uma imagem do registry. **Parâmetros:** - `image` (string, obrigatório): Nome da imagem (ex: `nginx:alpine`) - `tag` (string, opcional): Tag específica. Padrão: `latest` **Retorno:** ```json { "success": true, "message": "Image pulled successfully", "status": "Download complete" } ``` **Exemplo de uso:** ``` Baixe a imagem postgres:15 ``` --- ### `remove_image` Remove uma imagem. **Parâmetros:** - `id` (string, obrigatório): ID ou nome da imagem - `force` (boolean, opcional): Força remoção mesmo se em uso. Padrão: `false` **Retorno:** ```json { "success": true, "message": "Image removed successfully" } ``` **Exemplo de uso:** ``` Remova a imagem nginx:old ``` --- ## Network Tools ### `list_networks` Lista todas as networks Docker. **Parâmetros:** Nenhum **Retorno:** ```json [ { "Id": "net123...", "Name": "bridge", "Driver": "bridge", "Scope": "local" } ] ``` **Exemplo de uso:** ``` Liste todas as networks ``` --- ### `create_network` Cria uma nova network. **Parâmetros:** - `name` (string, obrigatório): Nome da network - `driver` (string, opcional): Driver a usar (`bridge`, `overlay`, `host`). Padrão: `bridge` - `internal` (boolean, opcional): Network interna (sem acesso externo). Padrão: `false` - `subnet` (string, opcional): Subnet CIDR (ex: `172.20.0.0/16`) **Retorno:** ```json { "Id": "net456...", "Warning": "" } ``` **Exemplo de uso:** ``` Crie uma network chamada app-network ``` --- ### `remove_network` Remove uma network. **Parâmetros:** - `id` (string, obrigatório): ID ou nome da network **Retorno:** ```json { "success": true, "message": "Network removed successfully" } ``` **Exemplo de uso:** ``` Remova a network old-network ``` --- ## Volume Tools ### `list_volumes` Lista todos os volumes Docker. **Parâmetros:** Nenhum **Retorno:** ```json { "Volumes": [ { "Name": "my-volume", "Driver": "local", "Mountpoint": "/var/lib/docker/volumes/my-volume/_data" } ] } ``` **Exemplo de uso:** ``` Liste todos os volumes ``` --- ### `create_volume` Cria um novo volume. **Parâmetros:** - `name` (string, obrigatório): Nome do volume - `driver` (string, opcional): Driver a usar. Padrão: `local` - `labels` (object, opcional): Labels para o volume **Retorno:** ```json { "Name": "my-volume", "Driver": "local", "Mountpoint": "/var/lib/docker/volumes/my-volume/_data" } ``` **Exemplo de uso:** ``` Crie um volume chamado postgres-data ``` --- ### `remove_volume` Remove um volume. **Parâmetros:** - `name` (string, obrigatório): Nome do volume - `force` (boolean, opcional): Força remoção. Padrão: `false` **Retorno:** ```json { "success": true, "message": "Volume removed successfully" } ``` **Exemplo de uso:** ``` Remova o volume old-data ``` --- ## Tratamento de Erros Todas as tools retornam erros no seguinte formato: ```json { "error": true, "message": "Descrição do erro", "code": "ERROR_CODE", "details": {...} } ``` ### Códigos de Erro Comuns: - `UNAUTHORIZED`: Chave de API inválida ou expirada - `NOT_FOUND`: Recurso não encontrado - `CONFLICT`: Conflito (ex: nome já existe) - `SERVER_ERROR`: Erro interno do Portainer/Docker - `NETWORK_ERROR`: Erro de conexão com Portainer ## Notas de Segurança > [!WARNING] > Operações destrutivas (`remove_container`, `remove_image`, etc.) são irreversíveis. Use com cuidado. > [!CAUTION] > O parâmetro `force` em operações de remoção pode causar perda de dados se containers/volumes estiverem em uso.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/onlitec/VPS-MCP-SERVER'

If you have feedback or need assistance with the MCP directory API, please join our Discord server