Skip to main content

oracle-db-mcp

Model Context Protocol server to access oracle

Python 3.12 License: MIT

Note: This repository is based on hdcola/mcp-server-oracle. Original work by hdcola.

Quickstart

Prerequisites

  • Python 3.12+ or Docker
  • Claude Desktop or other MCP client
  • Oracle Database connection credentials

Installation

Choose one of the following methods:

uvx oracle-db-mcp

Option 2: Using pipx

pipx install oracle-db-mcp

Option 3: Using Docker

docker pull ghcr.io/kuass/oracle-db-mcp

Configuration

Add the server configuration to your Claude Desktop config file:

MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json

Using uvx

{
  "mcpServers": {
    "oracle-db-mcp": {
      "command": "uvx",
      "args": [
        "oracle-db-mcp"
      ],
      "env": {
        "ORACLE_CONNECTION_STRING": "username/password@hostname:port/service_name"
      }
    }
  }
}

Using pipx

{
  "mcpServers": {
    "oracle-db-mcp": {
      "command": "oracle-db-mcp",
      "args": [],
      "env": {
        "ORACLE_CONNECTION_STRING": "username/password@hostname:port/service_name"
      }
    }
  }
}

Using Docker

{
  "mcpServers": {
    "oracle-db-mcp": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "ORACLE_CONNECTION_STRING",
        "ghcr.io/kuass/oracle-db-mcp"
      ],
      "env": {
        "ORACLE_CONNECTION_STRING": "username/password@hostname:port/service_name"
      }
    }
  }
}

The Docker image automatically remaps localhost to work from inside the container:

  • MacOS/Windows: Uses host.docker.internal
  • Linux: Uses the host IP address

Using uv (Development)

{
  "mcpServers": {
    "oracle-db-mcp": {
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "/path/to/oracle-db-mcp",
        "oracle-db-mcp"
      ],
      "env": {
        "ORACLE_CONNECTION_STRING": "username/password@hostname:port/service_name"
      }
    }
  }
}

Thick Mode (Optional)

By default, the server uses Thin mode which doesn't require Oracle Client installation. To use Thick mode:

{
  "mcpServers": {
    "oracle-db-mcp": {
      "command": "uvx",
      "args": [
        "oracle-db-mcp"
      ],
      "env": {
        "ORACLE_CONNECTION_STRING": "username/password@hostname:port/service_name",
        "ORACLE_THICK_MODE": "true",
        "ORACLE_CLIENT_LIB_DIR": "/path/to/oracle/instantclient"
      }
    }
  }
}

SSE Transport

Oracle MCP supports Server-Sent Events (SSE) transport, allowing multiple MCP clients to share one server.

Start SSE Server

Using Docker

docker run -p 8000:8000 \
  -e ORACLE_CONNECTION_STRING="username/password@hostname:port/service_name" \
  ghcr.io/kuass/oracle-db-mcp --transport=sse

Using uvx

ORACLE_CONNECTION_STRING="username/password@hostname:port/service_name" \
  uvx oracle-db-mcp --transport=sse

Configure MCP Client

For Cursor or Cline (mcp.json or cline_mcp_settings.json):

{
  "mcpServers": {
    "oracle-db-mcp": {
      "type": "sse",
      "url": "http://localhost:8000/sse"
    }
  }
}

For Windsurf (mcp_config.json):

{
  "mcpServers": {
    "oracle-db-mcp": {
      "type": "sse",
      "serverUrl": "http://localhost:8000/sse"
    }
  }
}

Available Tools

Schema Exploration

  • list_tables: Get a list of all tables in the database
  • list_schemas: Get a list of all schemas in the database
  • list_objects: List database objects (tables, views, sequences, packages) in a schema
  • get_object_details: Get detailed information about a database object (columns, constraints, indexes)
  • describe_table: Get detailed information about a table

Query Execution

  • read_query: Execute SELECT queries
  • exec_dml_sql: Execute INSERT/UPDATE/DELETE/TRUNCATE statements
  • exec_ddl_sql: Execute CREATE/DROP/ALTER statements
  • exec_pro_sql: Execute PL/SQL code blocks

Performance Analysis

  • get_top_queries: Get the slowest queries based on elapsed time
  • explain_query: Get the execution plan for a SQL query
  • analyze_db_health: Perform comprehensive database health checks (tablespace usage, session status, wait events, invalid objects)

License

This project is licensed under the MIT License - see the LICENSE file for details.

Metadata

Release files for oracle-db-mcp 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for oracle-db-mcp 0.0.1
File Size Uploaded Provenance
oracle_db_mcp-0.0.1.tar.gz 27.5 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for oracle-db-mcp 0.0.1
File Interpreter ABI Platform
oracle_db_mcp-0.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 37.7 kB

Release files / oracle_db_mcp-0.0.1.tar.gz

Download URL oracle_db_mcp-0.0.1.tar.gz
Size 27.5 kB
Tags Source
SHA-256 checksum
How to use checksums
01a109b76275e52ba515e019322985b511da173583c479e2f0b1605cbbe33d8f
BLAKE2b-256 checksum
How to use checksums
29fca050bdaa32ef939ea349532d5f853ea36a5f7a552f2d7342fadebac57697
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / oracle_db_mcp-0.0.1-py3-none-any.whl

Download URL oracle_db_mcp-0.0.1-py3-none-any.whl
Size 10.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6c0165be8ac2803d965c1f6c343c1312af8fc04fd2d24bf01c41efabc98f7003
BLAKE2b-256 checksum
How to use checksums
ef30fb09ebd87bcc45b5e098ec00a1fb39583f4aac9ef51bcad4d790f9d66fef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for oracle-db-mcp 0.0.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.0.1 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page