Skip to main content
Glama

mcp-oci

CI License: MIT npm

A Model Context Protocol server for Oracle Cloud Infrastructure (OCI). It gives an MCP-capable client (Claude Desktop, Claude Code, Cursor, Copilot, …) the ability to discover live OCI resources, map how they relate, and generate reproducible Terraform — with behaviour controlled entirely by flags.

Think of it as a Playwright-MCP for your cloud: instead of rebuilding infrastructure knowledge by hand, the model can ask "show all VCNs in the prod compartment" and "generate Terraform for this compartment" and get structured, secret-free answers.

Features

  • Live discovery — compartments, regions, and any resource via OCI Resource Search.

  • Terraform generation — faithful HCL for known types (VCN, subnet, instance, bucket, compartment) and annotated skeletons for the rest; whole-compartment modules with provider variables.

  • Dependency graph — nodes/edges plus a suggested provisioning order (dependencies first).

  • Secrets never reach the model — every payload is redacted before return.

  • Security flags — access modes, compartment/region allowlists, provisioning gate, dry-run, and JSON audit logging (see below).

  • Standard auth — OCI config file (~/.oci/config) or instance principals. No credentials stored by the server.

Related MCP server: oci-mcp-server

Security model

Concern

Flag

Default

Effect

What can the server do?

OCI_MODE

read-only

All shipped tools are read-only. read-write/admin are reserved for future provisioning and currently expose no extra tools.

Which compartments are in scope?

OCI_COMPARTMENT_ALLOWLIST

(all)

When set, operations on other compartments are refused, and search / fetch results from other compartments are dropped or refused (checked against the resource's real compartment).

Which regions are reachable?

OCI_REGION_ALLOWLIST

(configured region)

When set, only these regions may be targeted.

Can it run terraform apply?

OCI_ALLOW_APPLY

false

Reserved gate for provisioning (not yet shipped).

Preview without executing

OCI_DRY_RUN

false

For future write tools: validate + log intent without executing.

Audit trail

OCI_AUDIT_LOG

true

Emits a JSON line to stderr per guarded operation.

Secret redaction

(always on)

—

Secret-shaped fields are replaced with ***REDACTED*** before any result is returned.

Tools

Discovery (read): list_compartments, list_regions, search_resources, list_compartment_resources, get_resource

Terraform (read): generate_terraform, generate_compartment_terraform, build_dependency_graph

Quickstart — add to your agent

Published on npm as @dockndevai/mcp-oci. No clone or build needed — your MCP client runs it on demand with npx. Start in read-only mode; see .env.example for every variable and docs/CLIENTS.md for the full per-client guide.

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 — same block in claude_desktop_config.json, .cursor/mcp.json, or ~/.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 — in ~/.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, Agent mode) — in .vscode/mcp.json:

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

Configure

Point it at a standard OCI config profile. For safety, use an IAM user/policy with read-only (inspect/read) permissions on the compartments you want the agent to see.

Example prompts

  • "List all compartments, then show every resource in the prod compartment."

  • "Generate Terraform for VCN ocid1.vcn.oc1..…."

  • "Build a dependency graph for compartment … and tell me the provisioning order."

Run from source (development)

Prefer the published package above. To run from a clone:

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

Develop

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

Roadmap

  • terraform plan / apply execution behind read-write/admin + OCI_ALLOW_APPLY.

  • More resource-type mappers (load balancers, databases, DRGs, IAM policies).

  • Cross-environment drift comparison.

Publishing

This server ships a server.json for the official MCP registry and an mcpName for npm ownership validation. See PUBLISHING.md for publishing to npm and listing on the MCP registry, Smithery, Glama, Cursor, and PulseMCP.

License

MIT

Available Tools

8 tools
build_dependency_graphBuild a resource dependency graphB
Read-onlyIdempotent

Discover a compartment's resources and return a node/edge dependency graph plus a suggested provisioning order (dependencies first).

Inputs: compartmentId (required).

generate_compartment_terraformGenerate Terraform for a whole compartmentA
Read-onlyIdempotent

Discover every resource in a compartment and emit a Terraform module (provider variables + one block per resource) to reproduce it. Unrecognised types become annotated skeletons.

Inputs: compartmentId (required).

generate_terraformGenerate Terraform for a resourceA
Read-onlyIdempotent

Generate a Terraform (HCL) resource block for a single OCI resource by type and OCID. Fetches the resource's attributes and maps them to the matching oci_* resource.

Inputs: ocid (required), resourceType (required), compartmentId.

get_resourceGet resource detailsA
Read-onlyIdempotent

Fetch detailed attributes for a resource by type and OCID. Known types (Vcn, Subnet, Instance) return full attributes; others return the identifier. Secrets are redacted.

Inputs: ocid (required), resourceType (required), compartmentId.

list_compartment_resourcesList all resources in a compartmentB
Read-onlyIdempotent

Enumerate every resource in a compartment (via Resource Search).

Inputs: compartmentId (required).

list_compartmentsList compartmentsA
Read-onlyIdempotent

List compartments in the tenancy (recursively). Compartments outside the allowlist are filtered out.

Inputs: rootCompartmentId.

list_regionsList subscribed regionsA
Read-onlyIdempotent

List the regions this tenancy is subscribed to.

Inputs: no named parameters.

search_resourcesSearch resourcesA
Read-onlyIdempotent

Search tenancy resources using OCI Resource Search. Provide either a structured query (e.g. "query instance resources where displayName =~ 'prod'") or free text.

Inputs: query (required), freeText.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.8/5.0

    Scored across 8 tools

    Disambiguation4/5

    Most tools have distinct purposes, but search_resources and list_compartment_resources both enumerate resources, and generate_compartment_terraform and build_dependency_graph both discover compartment resources, which could cause slight confusion despite clear descriptions.

    Naming Consistency5/5

    All tool names follow a consistent snake_case verb_noun pattern (list_*, get_*, search_*, generate_*, build_*), making the set highly predictable and easy to navigate.

    Tool Count5/5

    With 8 tools, the set is well-scoped for OCI infrastructure discovery and Terraform generation, covering essential operations without unnecessary bloat.

    Completeness4/5

    The surface covers discovery, detailed inspection, Terraform generation, and dependency graphing, but lacks direct resource management operations (create/update/delete) and a tool to list all resource types, which could limit some workflows.

    Maintenance

    ActivityActive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      D
      maintenance
      Automatically discovers and tests MCP services for security vulnerabilities including command injection, SQL injection, SSRF, path traversal, and sensitive data exposure with detailed reports and remediation guidance.
      1
      -
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables natural-language access to Oracle Cloud Infrastructure resources, allowing users to query compute instances, OKE clusters, networking, and Object Storage via MCP tools.
      MIT
    • F
      license
      Not graded
      quality
      B
      maintenance
      Enables interaction with Oracle Cloud Infrastructure through the MCP protocol. Supports dynamic profile selection and provides 85 tools for managing compute, databases, networking, IAM, storage, load balancers, OKE, monitoring, and cost management.
      -
    • A
      license
      A
      quality
      D
      maintenance
      MCP server for Oracle Cloud Infrastructure (OCI) that exposes Compute, Networking, and Object Storage operations to MCP clients, with support for multiple authentication modes, read-only enforcement, and per-call region overrides.
      18
      MIT