@munlib/oracledb-readonly-mcp
v0.1.0
Published
Read-only MCP server for querying one or more Oracle Database connections.
Maintainers
Readme
Oracle Database Read-Only MCP
Servidor MCP en Node.js/TypeScript para consultar Oracle Database desde OpenCode en modo solo lectura.
Capacidades
- Consultar tablas, vistas y materialized views con
SELECToWITH. - Hacer joins, filtros, agregaciones, conteos y busquedas avanzadas.
- Listar schemas, tablas, vistas, columnas, claves, constraints e indices.
- Inspeccionar procedures, functions y packages sin ejecutarlos.
- Leer source disponible y dependencias de objetos.
- Obtener
EXPLAIN PLANde consultas read-only.
Instalacion
npm install
npm run buildCuando este publicado en npm:
npx -y @munlib/oracledb-readonly-mcpConfiguracion OpenCode
Ejemplo opencode.json con datos genericos:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"oracledb-readonly": {
"type": "local",
"enabled": true,
"command": ["npx", "-y", "@munlib/oracledb-readonly-mcp"],
"env": {
"ORACLE_NAME": "oracleReadonly",
"ORACLE_USER": "readonly_user",
"ORACLE_PASSWORD": "REPLACE_WITH_SECRET",
"ORACLE_CONNECT_STRING": "db-host.example.com:1521/service_name",
"ORACLE_DEFAULT_LIMIT": "25",
"ORACLE_MAX_LIMIT": "100",
"ORACLE_QUERY_TIMEOUT_MS": "15000"
}
}
}
}Formato con nombre de servicio:
host:puerto/service_nameFormato con SID:
host:puerto:SIDDespues de cambiar opencode.json, reinicia OpenCode.
Variables
| Variable | Uso |
| --- | --- |
| ORACLE_CONNECTIONS | JSON con varias conexiones. |
| ORACLE_USER | Usuario para una conexion. |
| ORACLE_PASSWORD | Password para una conexion. |
| ORACLE_CONNECT_STRING | Host/puerto/servicio o descriptor Oracle. |
| ORACLE_NAME | Nombre logico de la conexion. |
| ORACLE_DEFAULT_LIMIT | Limite por defecto. |
| ORACLE_MAX_LIMIT | Limite maximo. |
| ORACLE_QUERY_TIMEOUT_MS | Timeout por consulta. |
| ORACLE_SEARCH_TABLE_LIMIT | Maximo de tablas/vistas en busqueda global. |
| ORACLE_SEARCH_COLUMN_LIMIT | Maximo de columnas por tabla/vista en busqueda global. |
Herramientas
| Herramienta | Uso |
| --- | --- |
| oracle_list_connections | Lista conexiones configuradas. |
| oracle_list_schemas | Lista schemas visibles. |
| oracle_list_tables | Lista tablas, vistas y materialized views. |
| oracle_describe_table | Describe columnas. |
| oracle_table_keys | Lista claves, constraints e indices. |
| oracle_query_readonly | Ejecuta SELECT o WITH con binds. |
| oracle_count_rows | Cuenta filas con filtro opcional. |
| oracle_table_sample | Devuelve muestra limitada. |
| oracle_search_database | Busca texto en tablas/vistas. |
| oracle_list_routines | Lista procedures, functions y packages. |
| oracle_describe_routine | Muestra argumentos de rutinas. |
| oracle_get_routine_source | Lee source disponible. |
| oracle_list_dependencies | Lista dependencias. |
| oracle_explain_query | Muestra plan de ejecucion. |
Solo Lectura
El MCP bloquea INSERT, UPDATE, DELETE, MERGE, CREATE, ALTER, DROP, TRUNCATE, GRANT, REVOKE, CALL, EXEC, EXECUTE, BEGIN y DECLARE.
Tambien bloquea multiples statements. Usa ademas un usuario Oracle con permisos reales de solo lectura.
Publicacion NPM
npm run publish:check
npm run publish:dry-run
npm run publish:npmLinux/macOS:
npm run publish:npm:bash -- --bump none --dry-run --skip-login