mcp-mgccli
# mcp-mgccli
MCP server para consultas de leitura na Magalu Cloud via `mgc` CLI.
Expõe 7 tools MCP (um por produto), cobrindo operações `list` e `get`. Toda autenticação é feita via API key — nenhuma credencial no código.
## Requisitos
- Python 3.11+
- [`mgc` CLI](https://docs.magalu.cloud/docs/cli-mgc/overview) v0.54.0+ no PATH
- API key Magalu Cloud com permissões de leitura
## Instalação
```bash
pip install -e /caminho/para/mcp-mgccli
```
## Configuração
Copie o arquivo de exemplo e preencha sua API key:
```bash
cp .env.example .env
```
`.env`:
```env
MGC_API_KEY=sua-api-key-aqui
MGC_REGION=br-ne1 # opcional — br-ne1 ou br-se1
MGC_TIMEOUT=30 # opcional — timeout em segundos (default: 30)
```
## Integração com Claude Code
O servidor já é iniciado automaticamente via `start-mcp.sh`, que carrega o `.env`. Para registrar:
```bash
claude mcp add --scope user mgc /caminho/para/mcp-mgccli/start-mcp.sh
```
Ou adicione manualmente em `~/.claude.json`:
```json
{
"mcpServers": {
"mgc": {
"command": "/caminho/para/mcp-mgccli/start-mcp.sh"
}
}
}
```
## Integração com Claude Desktop
Edite `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) ou `%APPDATA%\Claude\claude_desktop_config.json` (Windows):
```json
{
"mcpServers": {
"mgc": {
"command": "/caminho/para/mcp-mgccli/start-mcp.sh"
}
}
}
```
## Tools Disponíveis
| Tool | Recursos |
|---|---|
| `block_storage` | volumes, snapshots, volume-types, schedulers |
| `virtual_machine` | instances, images, machine-types, snapshots |
| `kubernetes` | cluster, nodepool, flavor, version |
| `dbaas` | instances, clusters, replicas, snapshots, engines, instance-types, parameter-groups |
| `network` | vpcs, security-groups, public-ips, ports, subnetpools, subnets¹, rules¹ |
| `container_registry` | registries, repositories, images, proxy-caches |
| `audit` | events, event-types |
¹ `subnets` e `rules` são subrecursos — exigem `parent_id` para `list`:
- `subnets list`: `parent_id=<vpc-id>`
- `rules list`: `parent_id=<security-group-id>`
## Parâmetros comuns
| Parâmetro | Tipo | Descrição |
|---|---|---|
| `resource` | string | Recurso a consultar (ver tabela acima) |
| `action` | `list` \| `get` | Operação |
| `id` | string | ID do recurso (obrigatório para `get`) |
| `region` | string | `br-ne1` ou `br-se1` — sobrescreve `MGC_REGION` |
| `parent_id` | string | ID do recurso pai (apenas `network` com `subnets`/`rules`) |
## Inferência de região
O Claude infere a região automaticamente a partir de linguagem natural:
| Menção | Região |
|---|---|
| "nordeste", "ne", "NE1" | `br-ne1` |
| "sudeste", "se", "SE1" | `br-se1` |
Se a região não for mencionada e `MGC_REGION` não estiver definido, o Claude pergunta antes de executar.
## Exemplos de uso
```
"Liste minhas VMs no nordeste"
"Quais volumes existem no sudeste?"
"Mostre detalhes do cluster Kubernetes abc-123"
"Liste os security groups da região br-ne1"
"Quais subnets existem na VPC 7211a812-f159-4757-a6ba-c09933a5f6d8?"
"Liste as regras do security group bf8743af-f14b-4f31-917e-8e8160cff838"
```
## Desenvolvimento
```bash
# instalar em modo editável
pip install -e .
# rodar testes
python -m pytest tests/ -v
```
TDQS
Scored across 7 tools
Six of the seven tools have no descriptions, making it impossible to distinguish their specific functions beyond the generic resource names. Only 'audit' has a description, but the others are ambiguous.
All tool names are single-word, lowercase nouns (e.g., 'audit', 'network'), following a consistent pattern. However, they lack verbs, which is unconventional for MCP tool naming.
With 7 tools, the count is reasonable for a cloud service provider's MCP interface, covering several major resource categories without being excessive.
The set covers core services like compute, storage, networking, and databases, but without descriptions, it's unclear what operations are available. The lack of detail suggests significant gaps in the tool surface.