Skip to main content
Glama
ARCHITECTURE.md3.05 kB
# Arquitetura do MCP Server para Portainer ## Visão Geral O MCP Server atua como uma ponte entre modelos de IA (como Claude) e a API do Portainer, permitindo gerenciamento de containers Docker através de linguagem natural. ## Diagrama de Componentes ```mermaid graph TB subgraph "Cliente MCP" A[Claude Desktop / Cliente MCP] end subgraph "MCP Server" B[index.ts - MCP Server] C[PortainerClient] D[Container Tools] E[Image Tools] F[Network Tools] G[Volume Tools] end subgraph "Portainer" H[Portainer API] I[Docker Engine] end A <-->|MCP Protocol via stdio| B B --> D B --> E B --> F B --> G D --> C E --> C F --> C G --> C C <-->|HTTP + API Key| H H <--> I ``` ## Fluxo de Comunicação ### 1. Inicialização 1. MCP Server carrega configurações do `.env` 2. Inicializa `PortainerClient` com URL e API Key 3. Registra todas as tools disponíveis 4. Aguarda conexões via stdio ### 2. Execução de Tool 1. Cliente MCP envia requisição `tools/call` com nome da tool e parâmetros 2. MCP Server roteia para o handler apropriado (ex: `container-tools.ts`) 3. Handler valida parâmetros e chama método do `PortainerClient` 4. `PortainerClient` faz requisição HTTP à API do Portainer 5. Resposta é formatada e retornada ao cliente MCP ### 3. Autenticação - Todas as requisições à API do Portainer incluem header `X-API-Key` - A chave é configurada via variável de ambiente `PORTAINER_API_KEY` ## Estrutura de Diretórios ``` MCP-SERVER/ ├── src/ │ ├── index.ts # Entry point do MCP Server │ ├── config.ts # Configurações │ ├── portainer-client.ts # Cliente da API Portainer │ └── tools/ │ ├── container-tools.ts │ ├── image-tools.ts │ ├── network-tools.ts │ └── volume-tools.ts ├── docs/ │ ├── ARCHITECTURE.md # Este arquivo │ ├── API_REFERENCE.md # Referência das tools │ └── SETUP.md # Guia de setup ├── scripts/ │ ├── build.sh │ └── dev.sh ├── package.json ├── tsconfig.json ├── .env.example └── README.md ``` ## Tecnologias Utilizadas - **TypeScript**: Linguagem principal - **@modelcontextprotocol/sdk**: SDK oficial do MCP - **axios**: Cliente HTTP para API do Portainer - **dotenv**: Gerenciamento de variáveis de ambiente ## Segurança - API Key armazenada em variável de ambiente (não commitada) - Validação de parâmetros antes de chamadas à API - Tratamento de erros para evitar exposição de informações sensíveis ## Extensibilidade Novas ferramentas podem ser adicionadas criando novos arquivos em `src/tools/` e registrando-as no `index.ts`. Exemplos de extensões futuras: - Gerenciamento de Stacks - Gerenciamento de Secrets e Configs - Logs de containers em tempo real - Estatísticas e métricas

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