JUHE API Marketplace
samscarrow avatar
MCP Server

Oracle MCP Server

Provides flexible access to Oracle databases for AI assistants like Claude, supporting SQL queries across multiple schemas with comprehensive database introspection capabilities.

0
GitHub Stars
8/18/2025
Last Updated
MCP Server Configuration
1{
2 "name": "oracle",
3 "command": "node",
4 "args": [
5 "/path/to/oracle-mcp/src/index.js"
6 ],
7 "env": {
8 "ORACLE_CONNECTION_STRING": "hostname: 1521/service_name",
9 "ORACLE_USER": "your_username",
10 "ORACLE_PASSWORD": "your_password"
11 }
12}
JSON12 lines

README Documentation

Oracle MCP Server

A Model Context Protocol (MCP) server that provides flexible access to Oracle databases for AI assistants like Claude. Supports querying across multiple schemas and comprehensive database introspection.

Features

  • Execute SQL queries with parameter binding
  • List tables across multiple schemas or filter by specific schema
  • Describe table structures with multi-schema support
  • View indexes and constraints across schemas
  • Multiple Oracle authentication methods
  • Automatic parameter conversion (PostgreSQL style to Oracle)
  • SQL injection prevention via bind variables
  • Audit logging for security monitoring

Installation

npm install

Configuration

Environment Variables

Create a .env file with your Oracle connection details. Choose one of these methods:

Method 1: Easy Connect String

ORACLE_CONNECTION_STRING=hostname:1521/service_name
ORACLE_USER=your_username
ORACLE_PASSWORD=your_password

Method 2: TNS Name

ORACLE_TNS_NAME=ORCL
ORACLE_USER=your_username
ORACLE_PASSWORD=your_password

Method 3: Individual Components

ORACLE_HOST=localhost
ORACLE_PORT=1521
ORACLE_SERVICE_NAME=ORCL  # or ORACLE_SID=ORCL
ORACLE_USER=your_username
ORACLE_PASSWORD=your_password

Optional settings:

ORACLE_DEFAULT_SCHEMA=HR  # Default schema if different from user

Usage with Claude Desktop

Add to your Claude Desktop configuration file:

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

{
  "mcpServers": {
    "oracle": {
      "command": "node",
      "args": ["/path/to/oracle-mcp/src/index.js"],
      "env": {
        "ORACLE_CONNECTION_STRING": "hostname:1521/service_name",
        "ORACLE_USER": "your_username",
        "ORACLE_PASSWORD": "your_password"
      }
    }
  }
}

Alternatively, use npx if you publish the package:

{
  "mcpServers": {
    "oracle": {
      "command": "npx",
      "args": ["-y", "oracle-mcp-server"],
      "env": {
        "ORACLE_CONNECTION_STRING": "hostname:1521/service_name",
        "ORACLE_USER": "your_username",
        "ORACLE_PASSWORD": "your_password"
      }
    }
  }
}

Usage with Claude Code

For Claude Code, add to ~/.claude.json:

{
  "mcpServers": {
    "oracle": {
      "type": "stdio",
      "command": "node",
      "args": ["/path/to/oracle-mcp/src/index.js"],
      "env": {
        "ORACLE_CONNECTION_STRING": "hostname:1521/service_name",
        "ORACLE_USER": "your_username",
        "ORACLE_PASSWORD": "your_password"
      }
    }
  }
}

After updating the configuration, restart Claude Desktop or Claude Code.

Available Tools

  1. execute_query - Execute any SQL query

    • Supports parameter binding
    • Auto-converts PostgreSQL-style parameters ($1) to Oracle (:1)
    • Returns rows, rowCount, and metadata
  2. list_tables - List database tables

    • Filter by specific schema or show all accessible schemas
    • Filter by pattern (with % wildcards)
    • Shows schema name, table name, row count, and last analyzed date
  3. describe_table - Get table structure

    • Column names, types, sizes
    • Nullable constraints
    • Default values
    • Works across all accessible schemas or filter by specific schema
  4. get_table_indexes - View table indexes

    • Index types and uniqueness
    • Indexed columns
    • Status information
    • Shows schema name for each index
  5. get_table_constraints - View table constraints

    • Primary keys, foreign keys
    • Unique and check constraints
    • Referenced tables
    • Shows schema name for each constraint
  6. list_schemas - List all accessible schemas

Security

  • All queries use bind variables to prevent SQL injection
  • Connections are created per-query (no persistent pools)
  • Comprehensive audit logging with timestamps and duration
  • Environment variables keep credentials secure
  • Supports both read-only and read-write operations

Requirements

  • Node.js 18+
  • Oracle Database (any version)
  • Network access to Oracle database

License

MIT

Quick Install

Quick Actions

Key Features

Model Context Protocol
Secure Communication
Real-time Updates
Open Source