MCP Oracle Database Server
About
A server for full integration with Oracle Database. Requires Oracle Instant Client libraries.
Details
- Author
- gcorroto
- Categories
- Database, Other
Jump to
Setup
Install MCP Oracle Database Server in your MCP client (Claude Desktop, Cursor, Windsurf, and others).
Repository: https://github.com/gcorroto/mcp-oracle-db
Follow the installation instructions in the repository README, then restart your MCP client.
Servidor MCP (Model Context Protocol) para integración completa con Oracle Database. Permite ejecutar consultas SQL, comandos DDL/DML, gestionar transacciones y explorar la estructura de la base de datos directamente desde aplicaciones MCP.
- Consultas SQL: Ejecuta SELECT con formateo inteligente de resultados
- Comandos DML/DDL: INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, etc.
- Gestión de Transacciones: Soporte para transacciones manuales y automáticas
- Exploración de BD: Lista tablas, describe estructuras, explora esquemas
- Pool de Conexiones: Gestión eficiente de conexiones con Oracle
- Compatibilidad: Soporte para versiones antiguas de Oracle (pre-12c)
- Monitoreo: Health checks y estadísticas de conexión
Verifica el estado de salud de la conexión Oracle DB.
Ejecuta consultas SQL SELECT con formato de tabla o JSON.
- Parámetros:sql,maxRows,formatAsTable,showMetadata
Ejecuta comandos SQL (INSERT, UPDATE, DELETE, CREATE, etc.).
- Parámetros:sql,autoCommit,showDetails
Lista todas las tablas del esquema especificado.
Muestra la estructura completa de una tabla.
- Parámetros:tableName,owner,showDetails
Ejecuta múltiples comandos SQL en una transacción.
Muestra información de configuración de la conexión.
⚠️IMPORTANTE: Para Oracle 9g y versiones antiguas
Si está usando Oracle 9g o versiones anteriores, debe realizar estos pasos adicionales:
- Descargar Oracle Instant Client 19.26(obligatorio para Oracle 9g):
ORACLE_CLIENT_LIB_DIR=C:\oracle\instantclient_19_26
{ "mcpServers": { "oracle-db": { "command": "npx", "args": ["@grec0/mcp-oracle-db"], "env": { "ORACLE_HOST": "tu-host-oracle", "ORACLE_PORT": "1521", "ORACLE_SERVICE_NAME": "tu-servicio", "ORACLE_USERNAME": "usuario", "ORACLE_PASSWORD": "contraseña", "ORACLE_OLD_CRYPTO": "true", "ORACLE_CLIENT_LIB_DIR": "C:\\oracle\\instantclient_19_26" } } } }
Instalación General MCP EN LOCAL (NO RECOMENDADO)
cp config.example.env .env # Editar .env con la configuración de su base de datos
Configuración MCP en Aplicaciones USANDO NPX (RECOMENDADO)
- Windows:%APPDATA%\Claude\claude_desktop_config.json
- macOS:~/Library/Application Support/Claude/claude_desktop_config.json
- Linux:~/.config/claude/claude_desktop_config.json
Configuración para Oracle 9g (con Instant Client 19.26):
{ "mcpServers": { "oracle-db": { "command": "npx", "args": ["@grec0/mcp-oracle-db"], "env": { "ORACLE_HOST": "tu-host-oracle", "ORACLE_PORT": "1521", "ORACLE_SERVICE_NAME": "tu-servicio", "ORACLE_USERNAME": "usuario", "ORACLE_PASSWORD": "contraseña", "ORACLE_OLD_CRYPTO": "true", "ORACLE_CLIENT_LIB_DIR": "C:\\oracle\\instantclient_19_26" } } } }
Configuración para Oracle 12c o superior:
{ "mcpServers": { "oracle-db": { "command": "npx", "args": ["@grec0/mcp-oracle-db"], "env": { "ORACLE_HOST": "host", "ORACLE_PORT": "port", "ORACLE_SERVICE_NAME": "service", "ORACLE_USERNAME": "user", "ORACLE_PASSWORD": "password" } } } }
{ "mcpServers": { "oracle-db": { "command": "node", "args": ["C:/workspaces/mcps/mcp-oracle-db/dist/index.js"], "env": { "ORACLE_HOST": "host", "ORACLE_PORT": "post", "ORACLE_SERVICE_NAME": "service", "ORACLE_USERNAME": "user", "ORACLE_PASSWORD": "pass", "ORACLE_OLD_CRYPTO": "true" } } } }
{ "mcpServers": { "oracle-db": { "command": "npm", "args": ["run", "dev"], "cwd": "C:/workspaces/mcps/mcp-oracle-db", "env": { "ORACLE_HOST": "localhost", "ORACLE_PORT": "1521", "ORACLE_SERVICE_NAME": "XE", "ORACLE_USERNAME": "hr", "ORACLE_PASSWORD": "hr" } } } }
Después de configurar el MCP, puedes verificar que funciona correctamente:
- Reiniciar la aplicación(Claude Desktop, etc.)
- Usar herramienta de diagnóstico:
oracle_health_check()
oracle_query("SELECT 1 FROM DUAL")
# Configuración básica ORACLE_HOST=localhost ORACLE_PORT=1521 ORACLE_SERVICE_NAME=XE ORACLE_USERNAME=hr ORACLE_PASSWORD=hr # O usar connection string completo ORACLE_CONNECTION_STRING="(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=XE)))" # Para versiones antiguas de Oracle (pre-11g) ORACLE_OLD_CRYPTO=true ORACLE_CLIENT_LIB_DIR=/path/to/instantclient
Basado en la configuración Java proporcionada:
ORACLE_HOST=host ORACLE_PORT=port ORACLE_SERVICE_NAME=service ORACLE_USERNAME=user ORACLE_PASSWORD=password ORACLE_OLD_CRYPTO=true ORACLE_FETCH_SIZE=100 # Basado en DataSourceCrmConfig.java
ORACLE_POOL_MIN=2 ORACLE_POOL_MAX=10 ORACLE_POOL_INCREMENT=1 ORACLE_POOL_TIMEOUT=60 ORACLE_STMT_CACHE_SIZE=30
SELECT * FROM employees WHERE department_id = 10
CREATE TABLE test_table ( id NUMBER PRIMARY KEY, name VARCHAR2(100) NOT NULL, created_date DATE DEFAULT SYSDATE )
INSERT INTO test_table (id, name) VALUES (1, 'Test Record')
-- Comando 1 INSERT INTO customers (id, name) VALUES (1, 'Cliente Test'); -- Comando 2 UPDATE orders SET customer_id = 1 WHERE id = 100; -- Comando 3 DELETE FROM temp_data WHERE processed = 'Y';
⚠️ Error Oracle 9g: Password Verifier Not Supported
Si obtiene el error "password verifier type 0x939 is not supported by node-oracledb in Thin mode" conOracle 9g:
📦 Paso 1: Descargar Oracle Instant Client 19.26
# Descargar desde: # https://download.oracle.com/otn_software/nt/instantclient/1926000/instantclient-basic-windows.x64-19.26.0.0.0dbru.zip # Extraer a: C:\oracle\instantclient_19_26
⚙️ Paso 2: Configurar variables obligatorias
ORACLE_OLD_CRYPTO=true ORACLE_CLIENT_LIB_DIR=C:\oracle\instantclient_19_26
🚀 Para versiones Oracle 10g-11g: Probar sin Instant Client primero
📦 Si falla con 10g-11g, instalar Oracle Instant Client
- Windows:Oracle Instant Client para Windows
- Linux:Oracle Instant Client para Linux
- macOS:Oracle Instant Client para macOS
ORACLE_CLIENT_LIB_DIR=/path/to/instantclient
ORACLE_HOST=your-oracle-host ORACLE_PORT=1521 ORACLE_SERVICE_NAME=your-service ORACLE_USERNAME=username ORACLE_PASSWORD=password ORACLE_OLD_CRYPTO=true
Configuración con Instant Client (si es necesario):
ORACLE_HOST=your-oracle-host ORACLE_PORT=1521 ORACLE_SERVICE_NAME=your-service ORACLE_USERNAME=username ORACLE_PASSWORD=password ORACLE_OLD_CRYPTO=true ORACLE_CLIENT_LIB_DIR=/opt/oracle/instantclient_19_8
Oracle Instant Client son librerías nativas que permiten conexionesThick(más compatibles con Oracle antiguo).
- ✅NO necesario: Si tu Oracle es 12c o superior
- ⚠️Puede ser necesario: Para Oracle 10g/11g con crypto antiguo
- ❌Obligatorio: Para funciones avanzadas (LDAP, conexiones wallet, etc.)
- Prueba primero conORACLE_OLD_CRYPTO=truesolamente
- Si obtienes errores, entonces instala Oracle Instant Client
📦 Instalación de Oracle Instant Client (Solo si es necesario)
- Descargar "Basic Package" desdeOracle Downloads - Extraer aC:\oracle\instantclient_XX_Y
- Configurar:ORACLE_CLIENT_LIB_DIR=C:\oracle\instantclient_XX_Y
# Ubuntu/Debian wget https://download.oracle.com/otn_software/linux/instantclient/XXX/instantclient-basic-linux.x64-XX.Y.Z.zip unzip instantclient-basic-linux.x64-XX.Y.Z.zip export ORACLE_CLIENT_LIB_DIR=/opt/oracle/instantclient_XX_Y
# Descargar desde Oracle y extraer export ORACLE_CLIENT_LIB_DIR=/opt/oracle/instantclient_XX_Y
- Host y puerto correctos
- Servicio/SID configurado
- Firewall/conectividad de red
- Listener de Oracle ejecutándose
# Ajustar configuración del pool ORACLE_POOL_MIN=1 ORACLE_POOL_MAX=5 ORACLE_POOL_TIMEOUT=30
- Oracle Database: 11g, 12c, 18c, 19c, 21c
- Node.js: >=18.0.0
- Sistemas: Windows, Linux, macOS
- Validación de SQL para prevenir inyecciones básicas
- Gestión segura de credenciales vía variables de entorno
- Soporte para conexiones SSL/TLS de Oracle
- Separación de permisos entre consultas y comandos
- Fork el proyecto
- Crear branch para feature (git checkout -b feature/nueva-funcionalidad)
- Commit cambios (git commit -am 'Agregar nueva funcionalidad')
- Push al branch (git push origin feature/nueva-funcionalidad)
- Crear Pull Request
MIT License - ver
LICENSEpara más detalles.Para reportar problemas o solicitar características:
- GitHub Issues:
github.com/gcorroto/mcp-oracle-db/issues-
Oracle Database Documentation- node-oracledb Documentation
- Model Context Protocol
Official MCP server for dbt (data build tool) providing integration with dbt Core/Cloud CLI, project metadata discovery, model information, and semantic layer querying capabilities.
Open source MCP server specializing in easy, fast, and secure tools for Databases.
Query and analyze data with MotherDuck and local DuckDB
Query Streams securely connects MCP clients to live databases through the Query Streams Cloud Network, with no VPNs, inbound ports, or complex setup.
Interact with the SingleStore database platform
Official Supabase MCP server for managing Supabase projects, databases, auth, storage, edge functions, and SQL workflows from AI agents.
A collection of tools for managing the platform, addressing data quality and reading and writing to Teradata Database.
Multi-database agent access (PostgreSQL, SQLite, MySQL, Oracle, SQL Server) with batch queries, pre-configured connections, and SQLGlot-enforced read-only safety
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.





