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
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ção | Flag | Padrão | Efeito |
|---|---|---|---|
| O que o servidor pode fazer? | OCI_MODE | read-only | Todas 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_APPLY | false | Portão reservado para provisionamento (ainda não lançado). |
| Pré-visualizar sem executar | OCI_DRY_RUN | false | Para futuras ferramentas de escrita: validar + registrar intenção sem executar. |
| Trilha de auditoria | OCI_AUDIT_LOG | true | Emite 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/applypor trás deread-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