mcp-oci

Servidor MCP para Oracle Cloud (OCI) — descoberta de recursos em tempo real, mapeamento de dependências e geração de Terraform; somente leitura por padrão com redação de segredos.

Documentação

mcp-oci

CI License: MIT npm

Um servidor Model Context Protocol para Oracle Cloud Infrastructure (OCI). Ele dá a um cliente compatível com MCP (Claude Desktop, Claude Code, Cursor, Copilot, …) a capacidade de descobrir recursos OCI ao vivo, mapear como eles se relacionam e gerar Terraform reproduzível — com o comportamento controlado inteiramente por flags.

Pense nele como um Playwright-MCP para sua nuvem: em vez de reconstruir o conhecimento de infraestrutura manualmente, o modelo pode perguntar "mostre todos os VCNs no compartimento de produção" e "gere Terraform para este compartimento" e obter respostas estruturadas e sem segredos.

Recursos

  • Descoberta ao vivo — compartimentos, regiões e qualquer recurso via OCI Resource Search.
  • Geração de Terraform — HCL fiel para tipos conhecidos (VCN, subnet, instância, bucket, compartimento) e esqueletos anotados para o restante; módulos de compartimento inteiro com variáveis de provedor.
  • Grafo de dependências — nós/arestas além de uma ordem de provisionamento sugerida (dependências primeiro).
  • Segredos nunca chegam ao modelo — cada payload é redigido antes do retorno.
  • Flags de segurança — modos de acesso, listas de permissão de compartimento/região, portão de provisionamento, dry-run e registro de auditoria em JSON (veja abaixo).
  • Autenticação padrão — arquivo de configuração OCI (~/.oci/config) ou princípios de instância. Nenhuma credencial armazenada pelo servidor.

Modelo de segurança

PreocupaçãoFlagPadrãoEfeito
O que o servidor pode fazer?OCI_MODEread-onlyTodas as ferramentas fornecidas são somente leitura. read-write/admin são reservadas para provisionamento futuro e atualmente não expõem ferramentas extras.
Quais compartimentos estão no escopo?OCI_COMPARTMENT_ALLOWLIST(todos)Quando definido, operações em outros compartimentos são recusadas.
Quais regiões são acessíveis?OCI_REGION_ALLOWLIST(região configurada)Quando definido, apenas essas regiões podem ser alvo.
Pode executar terraform apply?OCI_ALLOW_APPLYfalsePortão reservado para provisionamento (ainda não lançado).
Pré-visualizar sem executarOCI_DRY_RUNfalsePara futuras ferramentas de escrita: validar + registrar intenção sem executar.
Trilha de auditoriaOCI_AUDIT_LOGtrueEmite uma linha JSON para stderr por operação protegida.
Redação de segredos(sempre ativo)Campos com formato de segredo são substituídos por ***REDACTED*** antes de qualquer resultado ser retornado.

Ferramentas

Descoberta (leitura): list_compartments, list_regions, search_resources, list_compartment_resources, get_resource

Terraform (leitura): generate_terraform, generate_compartment_terraform, build_dependency_graph

Início rápido — adicione ao seu agente

Publicado no npm como @dockndevai/mcp-oci. Sem necessidade de clone ou build — seu cliente MCP o executa sob demanda com npx. Comece no modo read-only; veja .env.example para cada variável e docs/CLIENTS.md para o guia completo por cliente.

Claude Code (CLI)

claude mcp add oci -e OCI_PROFILE="DEFAULT" -e OCI_MODE="read-only" -- npx -y @dockndevai/mcp-oci

Claude Desktop · Cursor · Windsurf — mesmo bloco em claude_desktop_config.json, .cursor/mcp.json ou ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "oci": {
      "command": "npx",
      "args": [
        "-y",
        "@dockndevai/mcp-oci"
      ],
      "env": {
        "OCI_PROFILE": "DEFAULT",
        "OCI_MODE": "read-only"
      }
    }
  }
}

OpenAI Codex CLI — em ~/.codex/config.toml:

[mcp_servers.oci]
command = "npx"
args = ["-y", "@dockndevai/mcp-oci"]
env = { OCI_PROFILE = "DEFAULT", OCI_MODE = "read-only" }

VS Code (GitHub Copilot, modo Agente) — em .vscode/mcp.json:

{
  "servers": {
    "oci": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@dockndevai/mcp-oci"
      ],
      "env": {
        "OCI_PROFILE": "DEFAULT",
        "OCI_MODE": "read-only"
      }
    }
  }
}

Configurar

Aponte para um perfil de configuração OCI padrão. Por segurança, use um usuário/política IAM com permissões somente leitura (inspect/read) nos compartimentos que você quer que o agente veja.

Exemplos de prompts

  • "Liste todos os compartimentos e depois mostre todos os recursos no compartimento prod."
  • "Gere Terraform para o VCN ocid1.vcn.oc1..…."
  • "Construa um grafo de dependências para o compartimento e me diga a ordem de provisionamento."

Executar a partir do código-fonte (desenvolvimento)

Prefira o pacote publicado acima. Para executar a partir de um clone:

npm install
npm run build
node dist/index.js   # with the environment variables set

Desenvolver

npm run dev        # watch mode
npm test           # security policy + terraform generation + graph + redaction
npm run typecheck

Roadmap

  • Execução de terraform plan / apply por trás de read-write/admin + OCI_ALLOW_APPLY.
  • Mais mapeadores de tipos de recursos (load balancers, bancos de dados, DRGs, políticas IAM).
  • Comparação de drift entre ambientes.

Publicação

Este servidor inclui um server.json para o registro oficial do MCP e um mcpName para validação de propriedade no npm. Veja PUBLISHING.md para publicar no npm e listar no registro MCP, Smithery, Glama, Cursor e PulseMCP.

Licença

MIT