mcp-oci

Servidor MCP para Oracle Cloud (OCI): descubrimiento de recursos en vivo, mapeo de dependencias y generación de Terraform; solo lectura por defecto con redacción de secretos.

Documentación

mcp-oci

CI License: MIT npm

Un servidor de Model Context Protocol para Oracle Cloud Infrastructure (OCI). Proporciona a un cliente compatible con MCP (Claude Desktop, Claude Code, Cursor, Copilot, …) la capacidad de descubrir recursos OCI en vivo, mapear cómo se relacionan y generar Terraform reproducible — con el comportamiento controlado completamente mediante banderas.

Piénsalo como un Playwright-MCP para tu nube: en lugar de reconstruir el conocimiento de la infraestructura manualmente, el modelo puede preguntar "muestra todas las VCN en el compartimento de producción" y "genera Terraform para este compartimento" y obtener respuestas estructuradas y sin secretos.

Características

  • Descubrimiento en vivo — compartimentos, regiones y cualquier recurso mediante OCI Resource Search.
  • Generación de Terraform — HCL fiel para tipos conocidos (VCN, subred, instancia, bucket, compartimento) y esqueletos anotados para el resto; módulos de compartimento completo con variables de proveedor.
  • Grafo de dependencias — nodos/aristas más un orden de aprovisionamiento sugerido (dependencias primero).
  • Los secretos nunca llegan al modelo — cada carga útil se redacta antes de devolverse.
  • Banderas de seguridad — modos de acceso, listas permitidas de compartimentos/regiones, compuerta de aprovisionamiento, modo de prueba y registro de auditoría JSON (ver más abajo).
  • Autenticación estándar — archivo de configuración OCI (~/.oci/config) o principales de instancia. El servidor no almacena credenciales.

Modelo de seguridad

PreocupaciónBanderaPredeterminadoEfecto
¿Qué puede hacer el servidor?OCI_MODEread-onlyTodas las herramientas incluidas son de solo lectura. read-write/admin están reservadas para aprovisionamiento futuro y actualmente no exponen herramientas adicionales.
¿Qué compartimentos están en alcance?OCI_COMPARTMENT_ALLOWLIST(todos)Cuando se establece, se rechazan operaciones en otros compartimentos.
¿Qué regiones son accesibles?OCI_REGION_ALLOWLIST(región configurada)Cuando se establece, solo estas regiones pueden ser objetivo.
¿Puede ejecutar terraform apply?OCI_ALLOW_APPLYfalseCompuerta reservada para aprovisionamiento (aún no publicado).
Vista previa sin ejecutarOCI_DRY_RUNfalsePara futuras herramientas de escritura: validar + registrar intención sin ejecutar.
Rastro de auditoríaOCI_AUDIT_LOGtrueEmite una línea JSON a stderr por operación protegida.
Redacción de secretos(siempre activa)Los campos con forma de secreto se reemplazan con ***REDACTED*** antes de devolver cualquier resultado.

Herramientas

Descubrimiento (lectura): list_compartments, list_regions, search_resources, list_compartment_resources, get_resource

Terraform (lectura): generate_terraform, generate_compartment_terraform, build_dependency_graph

Inicio rápido — añade a tu agente

Publicado en npm como @dockndevai/mcp-oci. No se necesita clonar ni compilar — tu cliente MCP lo ejecuta bajo demanda con npx. Comienza en modo read-only; consulta .env.example para cada variable y docs/CLIENTS.md para la guía completa 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 — mismo bloque en claude_desktop_config.json, .cursor/mcp.json o ~/.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 — en ~/.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) — en .vscode/mcp.json:

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

Configurar

Apúntalo a un perfil de configuración OCI estándar. Por seguridad, usa un usuario/política de IAM con permisos de solo lectura (inspect/read) en los compartimentos que quieras que el agente vea.

Ejemplos de indicaciones

  • "Lista todos los compartimentos, luego muestra cada recurso en el compartimento prod."
  • "Genera Terraform para la VCN ocid1.vcn.oc1..…."
  • "Construye un grafo de dependencias para el compartimento y dime el orden de aprovisionamiento."

Ejecutar desde el código fuente (desarrollo)

Prefiere el paquete publicado anteriormente. Para ejecutar desde un clon:

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

Desarrollar

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

Hoja de ruta

  • Ejecución de terraform plan / apply detrás de read-write/admin + OCI_ALLOW_APPLY.
  • Más mapeadores de tipos de recursos (balanceadores de carga, bases de datos, DRGs, políticas de IAM).
  • Comparación de deriva entre entornos.

Publicación

Este servidor incluye un server.json para el registro oficial de MCP y un mcpName para la validación de propiedad de npm. Consulta PUBLISHING.md para publicar en npm y listar en el registro de MCP, Smithery, Glama, Cursor y PulseMCP.

Licencia

MIT