OCI MCP Servers

A collection of MCP servers for managing Oracle Cloud Infrastructure (OCI) resources.

OCI MCP Servers

This repository provides a collection of Multi-tool Control Protocol (MCP) servers for managing Oracle Cloud Infrastructure (OCI) resources. Each server exposes a set of tools for a specific OCI service, such as Autonomous Database (ADB), Compute, Identity, and Networking.

These servers are designed to be integrated into development environments like Cursor to allow natural language-based interaction with your OCI tenancy.

Prerequisites

Before you begin, ensure you have the following:

  • Python 3.9 or higher.
  • An Oracle Cloud Infrastructure account.
  • A configured OCI CLI profile. The scripts default to using the [DEFAULT] profile located in ~/.oci/config.

Installation

  1. Clone the repository:

    git clone https://github.com/shjanjua/OCI-MCP-Servers
    cd ocimcp
    
  2. Create and activate a virtual environment (recommended):

    python -m venv .venv
    source .venv/bin/activate
    # On Windows, use: .venv\Scripts\activate
    
  3. Install the required dependencies: Each service has its own requirements.txt, but they are all the same.

    pip install -r compute/requirements.txt
    

Usage in Cursor

You can integrate these tools directly into the Cursor IDE, allowing the AI to use them to perform actions in your OCI tenancy. There are two methods for this: stdio and streamable-http.

Method 1: Standard I/O (stdio)

This method is the simplest, where Cursor manages the lifecycle of the server process. You configure Cursor to run the server_stdio.py script for each service.

Cursor JSON Configuration (~/.cursor/mcp.json):

To configure a server, add the following to your mcpServers object in Cursor's settings.

{
  "mcpServers": {
    "adb-stdio": {
      "command": "/path/to/your/.venv/bin/python",
      "args": ["-u", "/path/to/your/ocimcp/adb/server_stdio.py"]
    },
    "compute-stdio": {
      "command": "/path/to/your/.venv/bin/python",
      "args": ["-u", "/path/to/your/ocimcp/compute/server_stdio.py"]
    },
    "identity-stdio": {
      "command": "/path/to/your/.venv/bin/python",
      "args": ["-u", "/path/to/your/ocimcp/identity/server_stdio.py"]
    },
    "network-stdio": {
      "command": "/path/to/your/.venv/bin/python",
      "args": ["-u", "/path/to/your/ocimcp/network/server_stdio.py"]
    }
  }
}

Note: Replace /path/to/your/ with the absolute path to your project directory and virtual environment.


Method 2: Streamable HTTP

This method runs each service as a separate, persistent web server. This allows multiple clients to connect simultaneously.

1. Run the Servers:

You must start each server manually in its own terminal window. They are configured to run on different ports to avoid conflicts.

  • Terminal 1 (ADB):
    python adb/server.py
    
  • Terminal 2 (Compute):
    python compute/server.py
    
  • Terminal 3 (Identity):
    python identity/server.py
    
    Terminal 4 (Network):
    python network/server.py
    

2. Cursor JSON Configuration (~/.cursor/mcp.json):

Add the following configuration to your mcpServers object. This tells Cursor where to find the running MCP servers.

{
  "mcpServers": {
    "adb": {
      "url": "http://0.0.0.0:8000/mcp"
    },
    "compute": {
      "url": "http://0.0.0.0:8001/mcp"
    },
    "identity": {
      "url": "http://0.0.0.0:8002/mcp"
    },
    "network": {
      "url": "http://0.0.0.0:8003/mcp"
    }
  }
}

Related Servers