Skip to main content
Glama
Oracle Cloud Infrastructure (OCI) MCP Server

Oracle Cloud Infrastructure (OCI) MCP Server

Oracle Cloud Infrastructure (OCI) MCP Server

A comprehensive, robust, and highly extensible Model Context Protocol (MCP) server for managing Oracle Cloud Infrastructure (OCI) services. This server enables LLMs and MCP-compatible clients to securely interact with your Oracle Cloud account to manage compute instances, storage, identity, and databases.


🌟 Features

  • Standardized Authentication: Automatically integrates with your existing OCI CLI configuration (~/.oci/config).

  • Identity & Access Management (IAM): Manage compartments and list users across your tenancy.

  • Compute & Networking: View Virtual Cloud Networks (VCNs), list instances, fetch details, and execute lifecycle operations (START, STOP, RESET, SOFTRESET).

  • Object Storage: Explore your tenancy's namespaces, list storage buckets, and view bucket objects.

  • Database: Monitor and list your Autonomous Databases.

  • Docker Ready: Fully containerized and optimized for secure isolation.

  • Extensible Architecture: Designed with modularity in mind, allowing you to easily plug in any of the hundreds of other OCI services using the official @oracle/oci-sdk.


Related MCP server: OracleDB MCP Server

πŸ“‹ Prerequisites

Before running this MCP server, ensure you have the following set up:

  1. Oracle Cloud Account: An active OCI account.

  2. OCI CLI Configuration: You must have the Oracle Cloud CLI installed and configured on your machine.

    • The default location is ~/.oci/config (Linux/Mac) or C:\Users\<YourUser>\.oci\config (Windows).

    • Tip: You can set this up using the oci setup config command if you have the OCI CLI installed.

  3. Node.js: Node.js 18 or higher (if running locally without Docker).

  4. Docker: (Optional) If you prefer running the server in an isolated container.


πŸš€ Installation & Setup

Option A: Running Locally (Node.js)

  1. Clone/Navigate to the repository:

    cd f:\MCP_Server\Oracle_cloud_MCP_server
  2. Install dependencies:

    npm install
  3. Build the TypeScript code:

    npm run build
  4. Run the server (for testing):

    npm start

    Note: MCP servers communicate over stdio, so running it directly in your terminal will make it wait for JSON-RPC inputs.


Option B: Running with Docker

Running with Docker requires mounting your local ~/.oci directory into the container so the server can authenticate using your credentials.

  1. Build the Docker Image:

    docker build -t oracle-cloud-mcp .
  2. Run the Docker Container: Replace ~/.oci with the path to your OCI configuration folder.

    docker run -i -v ~/.oci:/root/.oci oracle-cloud-mcp

πŸ”Œ Connecting to an MCP Client

To use this server, you must configure your MCP client (such as Claude Desktop, Cline, etc.) to spawn this process.

Example: Claude Desktop Configuration

Edit your claude_desktop_config.json:

For Local Node.js Execution:

{
  "mcpServers": {
    "oracle-cloud": {
      "command": "node",
      "args": [
        "f:/MCP_Server/Oracle_cloud_MCP_server/dist/index.js"
      ]
    }
  }
}

For Docker Execution:

{
  "mcpServers": {
    "oracle-cloud": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-v",
        "~/.oci:/root/.oci",
        "oracle-cloud-mcp"
      ]
    }
  }
}

Note: The -i flag is required for interactive standard input (stdio) communication.


πŸ› οΈ Available MCP Tools

Once connected, the LLM will have access to the following tools:

Identity Services

  • oci_list_compartments: List all compartments in the tenancy. If no compartmentId is provided, it defaults to the root tenancy.

  • oci_list_users: List all users within the specified compartment or the root tenancy.

Compute & Networking Services

  • oci_list_instances: List all compute instances inside a specific compartmentId.

  • oci_get_instance: Get detailed metadata about a specific compute instance using its instanceId.

  • oci_instance_action: Execute lifecycle actions on an instance (e.g., START, STOP, SOFTRESET, RESET, SOFTSTOP).

  • oci_list_vcns: List all Virtual Cloud Networks (VCNs) in a given compartmentId.

Object Storage Services

  • oci_get_namespace: Fetch the Object Storage namespace associated with your tenancy.

  • oci_list_buckets: List all storage buckets within a specified namespace and compartment.

  • oci_list_objects: List all objects (files) inside a specific bucket.

Database Services

  • oci_list_autonomous_databases: List all Autonomous Databases (ADW/ATP) within a specified compartment.


πŸ“ Project Structure

Oracle_cloud_MCP_server/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ index.ts                 # Main MCP server entry point and tool definitions
β”‚   β”œβ”€β”€ auth/
β”‚   β”‚   └── auth.ts              # OCI Authentication module
β”‚   └── tool/                    # Modular tool implementations
β”‚       β”œβ”€β”€ compute/index.ts     # Compute and VCN APIs
β”‚       β”œβ”€β”€ database/index.ts    # Autonomous Database APIs
β”‚       β”œβ”€β”€ identity/index.ts    # Compartment and User APIs
β”‚       └── objectstorage/index.ts # Bucket and Object APIs
β”œβ”€β”€ dist/                        # Compiled JavaScript output (generated)
β”œβ”€β”€ Dockerfile                   # Docker container definition
β”œβ”€β”€ .dockerignore                # Excluded files for Docker build
β”œβ”€β”€ .gitignore                   # Excluded files for Git tracking
β”œβ”€β”€ package.json                 # Node.js dependencies and scripts
└── tsconfig.json                # TypeScript compiler configuration

🧩 Extending the Server

Because Oracle Cloud has hundreds of services, this server is designed to be easily extensible. To add a new service (e.g., oci-dns):

  1. Install the SDK package:

    npm install oci-dns
  2. Create a new tool module: Create src/tool/dns/index.ts.

  3. Initialize the client: Import getAuthProvider from ../../auth/auth.js and instantiate the DNS client.

  4. Export your function: Write your async function calling the OCI API.

  5. Register the tool: In src/index.ts, import your new module, add a tool definition in the ListToolsRequestSchema handler, and map the tool execution in the CallToolRequestSchema switch statement.


⚠️ Troubleshooting

  • Authentication Errors: If you see Failed to initialize OCI Config File Provider, ensure that the OCI CLI is installed and configured. If running via Docker, verify that you correctly mounted the ~/.oci folder using -v.

  • Permission Errors: If you get a 404 or 401 error from the Oracle Cloud API, ensure the user profile configured in your ~/.oci/config file has the correct IAM policies to read compartments, instances, etc.

  • No Compartment ID: Many OCI operations require a compartmentId. The root compartment OCID is usually the same as your Tenancy OCID, which is defined in your ~/.oci/config file.


Built with Model Context Protocol and the Oracle Cloud Infrastructure Node.js SDK.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    A Model Context Protocol server that enables AI assistants like Claude to interact with Google Cloud Platform environments through natural language, allowing users to query and manage GCP resources during conversations.
    9
    1,820 npm
    200
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol Server that enables LLMs to interact with Oracle Database by providing database tables/columns as context, allowing users to generate SQL statements and retrieve results using natural language prompts.
    35
    Apache 2.0
  • A
    license
    B
    quality
    D
    maintenance
    A Model Context Protocol server that enables Claude to access and interact with Oracle databases through natural language queries.
    3
    2
    MIT
  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    A dedicated server for Oracle Cloud Infrastructure (OCI) Core Services that enables management of compute instances and network operations with LLM-friendly structured responses.
    1
    -