Model Context Protocol server to access oracle database
Project description
oracle-db-mcp
Model Context Protocol server to access oracle
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:
Option 1: Using uvx (Recommended)
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 databaselist_schemas: Get a list of all schemas in the databaselist_objects: List database objects (tables, views, sequences, packages) in a schemaget_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 queriesexec_dml_sql: Execute INSERT/UPDATE/DELETE/TRUNCATE statementsexec_ddl_sql: Execute CREATE/DROP/ALTER statementsexec_pro_sql: Execute PL/SQL code blocks
Performance Analysis
get_top_queries: Get the slowest queries based on elapsed timeexplain_query: Get the execution plan for a SQL queryanalyze_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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file oracle_db_mcp-0.0.1.tar.gz.
File metadata
- Download URL: oracle_db_mcp-0.0.1.tar.gz
- Upload date:
- Size: 27.5 kB
- Tags: Source
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
01a109b76275e52ba515e019322985b511da173583c479e2f0b1605cbbe33d8f
|
|
| MD5 |
faaca211649352e57853b64d627ad882
|
|
| BLAKE2b-256 |
29fca050bdaa32ef939ea349532d5f853ea36a5f7a552f2d7342fadebac57697
|
File details
Details for the file oracle_db_mcp-0.0.1-py3-none-any.whl.
File metadata
- Download URL: oracle_db_mcp-0.0.1-py3-none-any.whl
- Upload date:
- Size: 10.2 kB
- Tags: Python 3
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6c0165be8ac2803d965c1f6c343c1312af8fc04fd2d24bf01c41efabc98f7003
|
|
| MD5 |
1fa05f5c85c356100a5bd80063502a10
|
|
| BLAKE2b-256 |
ef30fb09ebd87bcc45b5e098ec00a1fb39583f4aac9ef51bcad4d790f9d66fef
|