QualigenAI Oracle Bridge (MCP)
Official# QualigenAI Oracle Bridge (MCP) 🚀
An advanced **Model Context Protocol (MCP)** server that enables Claude Desktop to act as an autonomous Oracle Database Administrator and Data Analyst.
Unlike standard SQL tools, this bridge allows for **Agentic workflows**, where the AI explores the schema, self-corrects SQL errors, and handles complex joins through natural language.
## 🧠 Agentic Intelligence Features
- **Autonomous Schema Discovery**: Claude identifies tables and relationships without manual mapping.
- **Self-Healing Queries**: Automatically interprets Oracle `ORA-` errors and rewrites SQL to fix issues.
- **Complex Data Handling**: Native support for `CLOB` data types and multi-table `JOIN` operations.
- **Automatic Commits**: Built-in `autoCommit` for persistent DDL (CREATE/DROP) and DML (INSERT/UPDATE) operations.
## 🛠️ Setup Instructions
### 1. Prerequisites
- **Node.js** (v18+)
- **Docker** (for Oracle XE)
- **Claude Desktop**
### 2. Database Setup
Run the Oracle XE container using the following command:
```bash
docker run -d --name qualigenai-db -p 1521:1521 -e ORACLE_PASSWORD='YOURPASSWORD' gvenzl/oracle-xe
3. Environment Configuration
Create a .env file in the root directory:
Code snippet
DB_USER=system
DB_PASSWORD=<YOUR_PASSWORD>
DB_CONNECTION_STRING=localhost:1521/FREEPDB1
4. Build the Bridge
Run these commands to install dependencies and compile the TypeScript code:
Bash
npm install
npm run build
🖥️ Claude Integration
Add this configuration to your claude_desktop_config.json (located at %APPDATA%\Claude\claude_desktop_config.json on Windows):
JSON
{
"mcpServers": {
"qualigenai-oracle": {
"command": "node",
"args": ["C:/ABS/path/to/your/project/dist/index.js"],
"env": {
"DB_USER": "system",
"DB_PASSWORD": "<YOUR_PASSWORD>",
"DB_CONNECTION_STRING": "localhost:1521/FREEPDB1"
}
}
}
}
Disclaimer: This project is an independent open-source tool and is not affiliated with, sponsored by, or endorsed by Oracle Corporation. "Oracle" is a registered trademark of Oracle Corporation.TDQS
Scored across 2 tools
The two tools have clearly distinct purposes: one lists database tables, the other executes arbitrary SQL commands. Although execute_query could technically be used to list tables, the descriptions and intended use cases are unambiguous.
Both tool names follow a consistent verb_noun pattern using snake_case: 'list_oracle_tables' and 'execute_query'. This makes the toolset predictable and easy to navigate.
With only two tools, the server feels slightly thin, but the scope is narrow—a database bridge. The pair of listing tables and executing queries covers the core needs, and each tool serves a distinct role, so the count is reasonable.
The execute_query tool accepts any SQL command, enabling full CRUD, DDL, and metadata operations. list_oracle_tables provides a convenient starting point for exploration. Together, they cover the domain without dead ends.