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).

npm version License: MIT Node.js

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

VariableDescripciónPredeterminado
OMNISQL_CLI_PATHRuta a la CLI del cliente de base de datos externo (se usa como respaldo para controladores no compatibles)Sin establecer
OMNISQL_WORKSPACERuta al directorio del espacio de trabajo del cliente de base de datos localPredeterminado del SO
OMNISQL_TIMEOUTTiempo de espera de consulta (ms)30000
OMNISQL_DEBUGHabilitar registro de depuraciónfalse
OMNISQL_READ_ONLYDeshabilitar todas las operaciones de escriturafalse
OMNISQL_ALLOWED_CONNECTIONSLista blanca de IDs o nombres de conexión separados por comasTodas
OMNISQL_DISABLED_TOOLSHerramientas a deshabilitar separadas por comasNinguna
OMNISQL_POOL_MINConexiones mínimas por grupo2
OMNISQL_POOL_MAXConexiones máximas por grupo10
OMNISQL_POOL_IDLE_TIMEOUTTiempo de espera de conexión inactiva (ms)30000
OMNISQL_POOL_ACQUIRE_TIMEOUTTiempo 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 datos
  • get_connection_info - Obtener detalles de la conexión
  • test_connection - Probar conectividad

Operaciones de datos

  • execute_query - Ejecutar consultas de solo lectura (solo SELECT, EXPLAIN, SHOW, DESCRIBE)
  • write_query - Ejecutar INSERT/UPDATE/DELETE
  • export_data - Exportar a CSV/JSON

Gestión de esquemas

  • list_tables - Listar tablas y vistas
  • get_table_schema - Obtener estructura de la tabla
  • create_table - Crear tablas
  • alter_table - Modificar tablas
  • drop_table - Eliminar tablas (requiere confirmación)

Transacciones

  • begin_transaction - Iniciar una nueva transacción
  • execute_in_transaction - Ejecutar consulta dentro de una transacción
  • commit_transaction - Confirmar una transacción
  • rollback_transaction - Revertir una transacción

Análisis de consultas

  • explain_query - Analizar el plan de ejecución de consultas
  • compare_schemas - Comparar esquemas entre dos conexiones
  • get_pool_stats - Obtener estadísticas del grupo de conexiones

Otros

  • get_database_stats - Estadísticas de la base de datos
  • append_insight - Almacenar notas de análisis
  • list_insights - Recuperar notas almacenadas

Seguridad

  • Aplicación de solo lectura: execute_query solo acepta sentencias de solo lectura (SELECT, EXPLAIN, SHOW, DESCRIBE, PRAGMA). Las operaciones de escritura deben usar write_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