Supports configuration via environment variables stored in .env files, allowing secure storage of Oracle database connection credentials.
Supports integration with Claude Desktop on macOS through specific configuration file paths.
Runs as a Node.js application, with configuration for launching the server via Node.js runtime.
Provides parameter conversion from PostgreSQL-style ($1) to Oracle-style (:1) for compatibility with PostgreSQL query formats.
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
Related MCP server: MariaDB Reader MCP Server
Installation
Configuration
Environment Variables
Create a .env file with your Oracle connection details. Choose one of these methods:
Method 1: Easy Connect String
Method 2: TNS Name
Method 3: Individual Components
Optional settings:
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
Alternatively, use npx if you publish the package:
Usage with Claude Code
For Claude Code, add to ~/.claude.json:
After updating the configuration, restart Claude Desktop or Claude Code.
Available Tools
execute_query - Execute any SQL query
Supports parameter binding
Auto-converts PostgreSQL-style parameters ($1) to Oracle (:1)
Returns rows, rowCount, and metadata
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
describe_table - Get table structure
Column names, types, sizes
Nullable constraints
Default values
Works across all accessible schemas or filter by specific schema
get_table_indexes - View table indexes
Index types and uniqueness
Indexed columns
Status information
Shows schema name for each index
get_table_constraints - View table constraints
Primary keys, foreign keys
Unique and check constraints
Referenced tables
Shows schema name for each constraint
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