Oracle ADB MCP Server
Generates Entity Relationship Diagrams (ERDs) in Mermaid syntax from database schema introspection, enabling visualization of table relationships, columns, and foreign key constraints.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Oracle ADB MCP Serverdescribe the employees table and its relationships"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Oracle ADB MCP Server — Setup Guide
How the tunnel works
This server connects to Oracle ADB through your existing ossh tunnel.
Two modes are supported — pick whichever suits your workflow:
Mode | What you do | What the server does |
manual (default) | Run your | Checks |
auto | Nothing — just call | Spawns the |
Your ossh command (for reference):
ssh -o 'ProxyCommand=ossh proxy -V -U%r --overlay-bastion --region us-ashburn-1
--compartment <ocid.compartment> -- ssh stb-internal.bastion<region>.oci.oracleiaas.com
-p 22 -A -s proxy:ocid.bastion.oc1.iad.<key> 192.168.111.2
-L 1522:ocidwdata.adb.<region>.oraclecloud.com:1522
-t watch -n 90 date'Related MCP server: Oracle DB MCP Server
Prerequisites
Python 3.11+ ✅ (you have 3.14)
osshin your system PATH ✅Wallet zip at
C:\scripts\oci_01.zip✅
Step 1 — Install dependencies
Open PowerShell and run:
cd C:\scripts
python -m venv mcp-oracle-env
mcp-oracle-env\Scripts\activate
pip install -r oracle-mcp\requirements.txtStep 2 — Edit config.py
Open C:\scripts\oracle-mcp\config.py and fill in:
# "manual" or "auto" — see table above
TUNNEL_MODE = "manual"
# Only needed if TUNNEL_MODE = "auto"
OCI_REGION = "us-ashburn-1"
COMPARTMENT_OCID = "ocid1.compartment.oc1..<your-compartment-ocid>"
BASTION_SESSION_OCID = "ocid1.bastion.oc1.iad.<your-static-session-key>"
ADB_PRIVATE_IP = "192.168.111.2"
ADB_HOSTNAME = "<your-adb-hostname>.adb.us-ashburn-1.oraclecloud.com"
# Always required
ADB_SERVICE_NAME = "<your_db_name>_medium" # see Step 3 below
DB_USERNAME = "<your_db_username>"
DB_PASSWORD = "<your_db_password>"
# Leave as "" if you didn't set a password when downloading the wallet
WALLET_PASSWORD = ""Step 3 — Find your ADB service name
The service name is inside your wallet zip:
Expand-Archive C:\scripts\oci_01.zip -DestinationPath C:\scripts\wallet_preview -Force
type C:\scripts\wallet_preview\tnsnames.oraYou'll see entries like mydb_high, mydb_medium, mydb_low, mydb_tp.
Use mydb_medium for general use — good balance of speed and concurrency.
Step 4 — Register with Cline (VS Code)
Open VS Code with the Cline extension installed
Click the Cline icon in the sidebar → MCP Servers → Edit Config
Add the following:
{
"mcpServers": {
"oracle-adb": {
"command": "C:\\scripts\\mcp-oracle-env\\Scripts\\python.exe",
"args": ["C:\\scripts\\oracle-mcp\\server.py"]
}
}
}Save the file — Cline will pick up the server automatically.
Also works with Claude Desktop. Config file is at:
C:\Users\mh026488\AppData\Roaming\Claude\claude_desktop_config.jsonUse the same JSON block above.
Step 5 — Connect and use
Manual tunnel mode (default)
Open a PowerShell terminal and run your ossh command — leave it running
In Cline, say:
Connect to the Oracle databaseThe server verifies the tunnel is up and connects
Auto tunnel mode
Set
TUNNEL_MODE = "auto"in config.pyIn Cline, say:
Connect to the Oracle databaseThe server launches ossh, waits for the tunnel, then connects
When you say
disconnect, the tunnel is killed cleanly
Example prompts once connected
Show me all tables starting with AP_Generate an ERD for the AP invoicing tablesExplain the AP_INVOICES table — row count, columns, sample dataSearch for all columns containing EMPLOYEE across the schemaQuery the top 10 suppliers by invoice countTroubleshooting
Problem | Fix |
| You're in manual mode but haven't run your ossh command yet |
| Check BASTION_SESSION_OCID and COMPARTMENT_OCID in config.py match your command |
| Check DB_USERNAME / DB_PASSWORD in config.py |
| Verify WALLET_ZIP_PATH is |
| Check ADB_SERVICE_NAME matches an entry in tnsnames.ora (Step 3) |
Tunnel drops after a while | Normal — the |
File layout
C:\scripts\
├── oracle-mcp\
│ ├── server.py # MCP entrypoint
│ ├── connection.py # ossh tunnel + wallet + DB connection
│ ├── schema.py # Table/column introspection
│ ├── relationships.py # Heuristic FK inference
│ ├── diagram.py # Mermaid ERD generation
│ ├── query.py # Read-only SQL executor
│ ├── config.py # ← EDIT THIS
│ └── requirements.txt
├── oci_01.zip # Your wallet ✅
└── mcp-oracle-env\ # Python venv (created in Step 1)This server cannot be deployed
Maintenance
Related MCP Connectors
Query 40 databases from Claude, ChatGPT, or Cursor — on any device. Read-only, encrypted, audited.
Query your Postgres from ChatGPT or Claude without exposing the database or handing over credentials. Run npx boltschema connect next to your database and it dials out over HTTPS — no inbound firewall rule, no open port, works with localhost and VPC-private databases. Read-only is enforced by a SQL guard, a Postgres READ ONLY transaction, and a scoped role generated for you.
Safe, read-only Postgres and MySQL access for AI agents. Audit log + column-level controls.
Query your org's data in natural language — read-only MCP access to SQL, NoSQL, files & warehouses.
Related MCP Servers
- AlicenseAqualityBmaintenanceEnables GitHub Copilot and other LLMs to execute read-only SQL queries against Oracle databases with secure connection pooling and schema introspection capabilities.2160 npm5AGPL 3.0
- AlicenseAqualityCmaintenanceEnables AI tools to interact with Oracle databases through query execution, schema browsing, stored procedure calls, and transaction management. Supports multiple database connections with safety features like read-only mode and dangerous query detection.16MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI-powered database operations on Oracle Autonomous Database via natural language, including SQL translation, schema exploration, and API orchestration.4-
- FlicenseNot gradedqualityBmaintenanceEnables read-only exploration of Oracle databases through natural language, providing schema inspection and safe bounded SQL query execution.-