DBeaver MCP Server
Se integra con DBeaver para proporcionar a los asistentes de IA acceso a más de 200 tipos de bases de datos utilizando conexiones existentes.
Documentación
OmniSQL MCP
Servidor MCP universal de bases de datos: proporciona a los asistentes de IA acceso de lectura/escritura a tus bases de datos utilizando conexiones ya guardadas en el espacio de trabajo de tu cliente de base de datos local (compatible con DBeaver).
Soporte de bases de datos
Compatible de forma nativa (controlador directo, rápido):
- PostgreSQL (mediante
pg) - MySQL / MariaDB (mediante
mysql2) - SQL Server / MSSQL (mediante
mssql) - SQLite (mediante la CLI de
sqlite3)
Compatible con Postgres (enrutado automáticamente a través del controlador pg):
- CockroachDB, TimescaleDB, Amazon Redshift, YugabyteDB, AlloyDB, Supabase, Neon, Citus
Otras bases de datos: se recurre a una CLI externa configurada mediante OMNISQL_CLI_PATH. Los resultados varían según la CLI.
Características
- Reutiliza conexiones ya configuradas en el espacio de trabajo de tu cliente de base de datos local: sin configuración duplicada
- Ejecución nativa de consultas para PostgreSQL, MySQL/MariaDB, SQLite, SQL Server
- Agrupación de conexiones con tamaño de grupo y tiempos de espera configurables
- Soporte de transacciones (BEGIN/COMMIT/ROLLBACK)
- Análisis del plan de ejecución de consultas (EXPLAIN)
- Comparación de esquemas entre conexiones con generación de scripts de migración
- Modo de solo lectura con SELECT obligatorio en
execute_query - Lista blanca de conexiones para restringir qué bases de datos son accesibles
- Filtrado de herramientas para deshabilitar operaciones específicas
- Validación de consultas para bloquear operaciones peligrosas (DROP DATABASE, TRUNCATE, DELETE/UPDATE sin WHERE)
- Exportación de datos a CSV/JSON
- Apagado elegante con limpieza del grupo de conexiones
Requisitos
- Node.js 18+
- Un cliente de base de datos local (compatible con DBeaver) con al menos una conexión configurada
Instalación
npm install -g omnisql-mcp
Configuración
Claude Desktop
Añade a ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
"mcpServers": {
"omnisql": {
"command": "omnisql-mcp"
}
}
}
Claude Code
Añade a ~/.claude/settings.json:
{
"mcpServers": {
"omnisql": {
"command": "omnisql-mcp"
}
}
}
Cursor
Añade en Cursor Settings > MCP Servers:
{
"mcpServers": {
"omnisql": {
"command": "omnisql-mcp"
}
}
}
Variables de entorno
| Variable | Descripción | Predeterminado |
|---|---|---|
OMNISQL_CLI_PATH | Ruta a la CLI del cliente de base de datos externo (se usa como respaldo para controladores no compatibles) | Sin establecer |
OMNISQL_WORKSPACE | Ruta al directorio del espacio de trabajo del cliente de base de datos local | Predeterminado del SO |
OMNISQL_TIMEOUT | Tiempo de espera de consulta (ms) | 30000 |
OMNISQL_DEBUG | Habilitar registro de depuración | false |
OMNISQL_READ_ONLY | Deshabilitar todas las operaciones de escritura | false |
OMNISQL_ALLOWED_CONNECTIONS | Lista blanca de IDs o nombres de conexión separados por comas | Todas |
OMNISQL_DISABLED_TOOLS | Herramientas a deshabilitar separadas por comas | Ninguna |
OMNISQL_POOL_MIN | Conexiones mínimas por grupo | 2 |
OMNISQL_POOL_MAX | Conexiones máximas por grupo | 10 |
OMNISQL_POOL_IDLE_TIMEOUT | Tiempo de espera de conexión inactiva (ms) | 30000 |
OMNISQL_POOL_ACQUIRE_TIMEOUT | Tiempo de espera de adquisición de conexión (ms) | 10000 |
Modo de solo lectura
Bloquea todas las operaciones de escritura. La herramienta execute_query solo permite sentencias SELECT, EXPLAIN, SHOW y DESCRIBE. Las herramientas de transacciones están completamente deshabilitadas.
{
"mcpServers": {
"omnisql": {
"command": "omnisql-mcp",
"env": {
"OMNISQL_READ_ONLY": "true"
}
}
}
}
Lista blanca de conexiones
Restringe qué conexiones del espacio de trabajo son visibles. Acepta IDs de conexión o nombres para mostrar, separados por comas:
{
"mcpServers": {
"omnisql": {
"command": "omnisql-mcp",
"env": {
"OMNISQL_ALLOWED_CONNECTIONS": "dev-postgres,staging-mysql"
}
}
}
}
Deshabilitar herramientas específicas
{
"mcpServers": {
"omnisql": {
"command": "omnisql-mcp",
"env": {
"OMNISQL_DISABLED_TOOLS": "drop_table,alter_table,write_query"
}
}
}
}
Herramientas disponibles
Gestión de conexiones
list_connections- Listar todas las conexiones de bases de datosget_connection_info- Obtener detalles de la conexióntest_connection- Probar conectividad
Operaciones de datos
execute_query- Ejecutar consultas de solo lectura (solo SELECT, EXPLAIN, SHOW, DESCRIBE)write_query- Ejecutar INSERT/UPDATE/DELETEexport_data- Exportar a CSV/JSON
Gestión de esquemas
list_tables- Listar tablas y vistasget_table_schema- Obtener estructura de la tablacreate_table- Crear tablasalter_table- Modificar tablasdrop_table- Eliminar tablas (requiere confirmación)
Transacciones
begin_transaction- Iniciar una nueva transacciónexecute_in_transaction- Ejecutar consulta dentro de una transaccióncommit_transaction- Confirmar una transacciónrollback_transaction- Revertir una transacción
Análisis de consultas
explain_query- Analizar el plan de ejecución de consultascompare_schemas- Comparar esquemas entre dos conexionesget_pool_stats- Obtener estadísticas del grupo de conexiones
Otros
get_database_stats- Estadísticas de la base de datosappend_insight- Almacenar notas de análisislist_insights- Recuperar notas almacenadas
Seguridad
- Aplicación de solo lectura:
execute_querysolo acepta sentencias de solo lectura (SELECT, EXPLAIN, SHOW, DESCRIBE, PRAGMA). Las operaciones de escritura deben usarwrite_query. - Validación de consultas: bloquea DROP DATABASE, DROP SCHEMA, TRUNCATE, DELETE/UPDATE sin WHERE, GRANT, REVOKE y sentencias de gestión de usuarios.
- Lista blanca de conexiones: restringe qué conexiones se exponen mediante
OMNISQL_ALLOWED_CONNECTIONS. - Filtrado de herramientas: deshabilita cualquier herramienta mediante
OMNISQL_DISABLED_TOOLS. - Saneamiento de entradas: los IDs de conexión y los identificadores SQL se sanean para prevenir inyecciones.
- Recomendación: para uso en producción, utiliza también un usuario de solo lectura a nivel de base de datos para una defensa en profundidad.
Soporte de formatos de espacio de trabajo
Admite ambos formatos de configuración escritos por clientes de base de datos compatibles con DBeaver:
- Legado: configuración XML en
.metadata/.plugins/org.jkiss.dbeaver.core/ - Moderno: configuración JSON en
General/.dbeaver/
Las credenciales se descifran automáticamente desde el credentials-config.json del espacio de trabajo.
Desarrollo
git clone https://github.com/srthkdev/omnisql-mcp.git
cd omnisql-mcp
npm install
npm run build
npm test
npm run lint
Licencia
MIT