A server for full integration with Oracle Database. Requires Oracle Instant Client libraries.
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.
oracle_health_check
Verifica el estado de salud de la conexión Oracle DB.
oracle_query
Ejecuta consultas SQL SELECT con formato de tabla o JSON.
sql
, maxRows
, formatAsTable
, showMetadata
oracle_execute
Ejecuta comandos SQL (INSERT, UPDATE, DELETE, CREATE, etc.).
sql
, autoCommit
, showDetails
oracle_list_tables
Lista todas las tablas del esquema especificado.
owner
, showDetails
oracle_describe_table
Muestra la estructura completa de una tabla.
tableName
, owner
, showDetails
oracle_transaction
Ejecuta múltiples comandos SQL en una transacción.
commands
, rollbackOnError
oracle_info
Muestra información de configuración de la conexión.
Si está usando Oracle 9g o versiones anteriores, debe realizar estos pasos adicionales:
ORACLE_OLD_CRYPTO=true
C:\oracle\instantclient_19_26
)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"
}
}
}
}
npm install
cp config.example.env .env
# Editar .env con la configuración de su base de datos
npm run build
Variable | Descripción | Por Defecto |
---|---|---|
ORACLE_HOST | Host del servidor Oracle | localhost |
ORACLE_PORT | Puerto de Oracle | 1521 |
ORACLE_SERVICE_NAME | Nombre del servicio Oracle | XE |
ORACLE_USERNAME | Usuario de base de datos | hr |
ORACLE_PASSWORD | Contraseña de base de datos | hr |
ORACLE_CONNECTION_STRING | Connection string completo (alternativo) | - |
ORACLE_OLD_CRYPTO | OBLIGATORIO para Oracle 9g - Usar modo Thick | false |
ORACLE_CLIENT_LIB_DIR | OBLIGATORIO para Oracle 9g - Ruta a Instant Client 19.26 | - |
ORACLE_POOL_MIN | Conexiones mínimas del pool | 1 |
ORACLE_POOL_MAX | Conexiones máximas del pool | 10 |
ORACLE_POOL_TIMEOUT | Timeout del pool en segundos | 60 |
ORACLE_FETCH_SIZE | Filas a traer por lote | 100 |
ORACLE_STMT_CACHE_SIZE | Tamaño cache de statements | 30 |
Claude Desktop:
%APPDATA%\Claude\claude_desktop_config.json
~/Library/Application Support/Claude/claude_desktop_config.json
~/.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:
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
npm run start
npm run dev
npm run inspector
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';
Si obtiene el error "password verifier type 0x939 is not supported by node-oracledb in Thin mode" con Oracle 9g:
Solución OBLIGATORIA para Oracle 9g:
# 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
ORACLE_OLD_CRYPTO=true
ORACLE_CLIENT_LIB_DIR=C:\oracle\instantclient_19_26
ORACLE_OLD_CRYPTO=true
Descargar Oracle Instant Client:
Configurar la ruta:
ORACLE_CLIENT_LIB_DIR=/path/to/instantclient
Configuración básica (probar primero):
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 conexiones Thick (más compatibles con Oracle antiguo).
¿Cuándo es necesario?
¿Cómo saber si lo necesito?
ORACLE_OLD_CRYPTO=true
solamenteWindows:
C:\oracle\instantclient_XX_Y
ORACLE_CLIENT_LIB_DIR=C:\oracle\instantclient_XX_Y
Linux:
# 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
macOS:
# Descargar desde Oracle y extraer
export ORACLE_CLIENT_LIB_DIR=/opt/oracle/instantclient_XX_Y
Verificar:
# Ajustar configuración del pool
ORACLE_POOL_MIN=1
ORACLE_POOL_MAX=5
ORACLE_POOL_TIMEOUT=30
npm test
git checkout -b feature/nueva-funcionalidad
)git commit -am 'Agregar nueva funcionalidad'
)git push origin feature/nueva-funcionalidad
)MIT License - ver LICENSE para más detalles.
Para reportar problemas o solicitar características:
Allows Claude AI to interact directly with MySQL databases.
A read-only MCP server for CSV files from CData, requiring an external JDBC driver for connection.
Enables persistent knowledge storage for Claude using a knowledge graph with multiple database backends like PostgreSQL and SQLite.
Access MySQL databases to inspect schemas and execute SQL queries via a NodeJS-based server.
Read-only access to Snowflake databases. Requires Snowflake connection information provided via MCP client configuration.
Interact with the Timeplus real-time data platform for querying and managing data streams.
Interact with the Solana blockchain to check balances, send SOL, and airdrop SOL.
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.
Enables AI assistants to query, read, and move data on DICOM servers such as PACS and VNA for medical imaging.
A local, high-performance memory server for AI agents, built with SQLite, vector embeddings, and a knowledge graph. Packaged for npm and Docker.