Gestor de bases de datos

Explora y edita PostgreSQL y MySQL del VPS desde el panel o por MCP, por túnel privado, con guardas y auditoría.

  • Categoría: Servidores e infraestructura
  • Estado: Disponible
  • Requisitos: Un VPS activo con PostgreSQL o MySQL/MariaDB instalado; Ser miembro de la empresa con acceso a ese VPS
  • Herramientas MCP (Solo leen): listar_motores_db_vps, probar_conexion_db_vps, listar_bases_db_vps, listar_tablas_db_vps, describir_tabla_db_vps, leer_filas_db_vps, contar_filas_db_vps, consultar_sql_db_vps, explicar_sql_db_vps, historial_operaciones_db_vps
  • Herramientas MCP (Escriben o modifican): guardar_credencial_db_vps, insertar_fila_db_vps
  • Herramientas MCP (Destructivas): actualizar_fila_db_vps, borrar_fila_db_vps, ejecutar_ddl_db_vps

Markdown

¿Qué permite hacer?

El gestor de bases de datos es la ventana de ArduMaker a los motores PostgreSQL y MySQL que corren dentro del VPS. Funciona igual desde el panel, desde la consola interactiva y por MCP: una sola implementación por motor.

  • Ver motores, bases (tamaño y codificación), tablas y vistas con cantidad estimada de filas.
  • Describir una tabla: columnas con tipo normalizado, nulos, clave primaria, claves foráneas e índices.
  • Leer filas con filtros y orden sin escribir SQL, con paginado por clave.
  • Insertar, editar o borrar una fila por su clave primaria completa.
  • Consola SQL de solo lectura y EXPLAIN.
  • Ejecutar DDL (CREATE, ALTER, DROP, TRUNCATE) con confirmación por nombre cuando destruye datos.
  • Exportar tablas a CSV o Excel e importar CSV o Excel (hasta 32 MB) en dos pasos.
  • Ver el historial de operaciones destructivas: quién, cuándo, qué sentencia y desde dónde.

¿Cuándo conviene usarlo?

  • Revisar datos de producción sin abrir el motor a internet ni instalar un cliente.
  • Darle a un agente de IA acceso controlado a la base, con escrituras fila por fila y auditoría.
  • Cargar una planilla en una tabla revisando antes cómo va a entrar.

¿Cómo funciona en ArduMaker?

El backend llega al motor por un túnel SSH privado hacia el VPS, con una clave efímera que solo permite reenviar al puerto del motor. El puerto de la base no se publica para esto: PostgreSQL y MySQL siguen escuchando solo dentro del VPS.

  1. Permisos: la empresa, el alcance MCP del agente sobre ese VPS y las listas de miembros permitidos o excluidos del VPS.
  2. Túnel y conexión: se abre o reusa el túnel y se valida con SELECT 1.
  3. Credencial: la guardada para ese motor (si el cliente cambió la clave a mano y la cargó) o la administrativa de la plataforma.
  4. Operación: el SQL lo arma la capa de cada motor con listas blancas; los valores viajan siempre como parámetros del driver, nunca pegados al texto.
  5. Auditoría: lo que escribe o destruye queda en el historial con su origen (interfaz o agente).

¿Qué cambia realmente?

Leer no cambia nada. Escribir filas, ejecutar DDL e importar cambian datos del cliente dentro del motor; crear tablas desde el formulario también, y se audita como escritura. En el VPS, el túnel usa un usuario propio con una clave restringida que no abre una shell.

OperaciónRegla
Consola SQLUna sola sentencia, de lectura; hasta 1000 filas por página
Actualizar o borrar filasUna fila por vez, por clave primaria completa; no hay actualización masiva
DDL destructivoResponde 428 con confirmacion_esperada; se repite pasando ese nombre exacto
ImportarPaso 1 dry_run analiza sin tocar; paso 2 exige el nombre de la tabla como confirmación
EXPLAIN ANALYZEEjecuta la consulta de verdad; solo PostgreSQL

Diferencias entre motores

  • En PostgreSQL una tabla puede llevar esquema (esquema.tabla); en MySQL el esquema es la base.
  • EXPLAIN devuelve el formato propio de cada motor; no son comparables.
  • La cantidad de filas de listar_tablas_db_vps es la estimación del motor; el conteo exacto es contar_filas_db_vps, más caro en tablas grandes.

Esquema

  1. Panel o agente MCP: mismo servicio y mismos permisos
  2. Backend de ArduMaker: permisos, guardas y auditoría
  3. Túnel SSH privado: clave efímera, solo al puerto del motor
  4. Motor en el VPS: PostgreSQL 127.0.0.1:5432 o MySQL 127.0.0.1:3306
Del panel o el agente al motor

Resultado esperado

probar_conexion_db_vps confirma que el backend llega y entra al motor. A partir de ahí, listar_bases_db_vps, listar_tablas_db_vps y describir_tabla_db_vps muestran la estructura y leer_filas_db_vps los datos. Cada escritura devuelve la fila como quedó, con valores por defecto y autoincrementos resueltos.

Errores y resolución

ErrorCausa
vps_apagadoEl VPS no está active
credenciales_invalidasEl motor rechaza el usuario o la contraseña (alguien la cambió a mano): cargarla con guardar_credencial_db_vps
credenciales_requeridasNo hay credencial guardada ni una administrativa utilizable
motor_no_respondeEl túnel está abierto pero el motor no acepta la conexión o falla SELECT 1
tunel_no_disponible / clave_tunel_rechazadaNo se pudo preparar el túnel; la clave se regenera y se reintenta una vez sola
pool_agotadoSe alcanzó el tope de conexiones simultáneas para esa base
consulta_fallidaEl motor rechazó la operación (sintaxis, restricción, permisos); el mensaje llega saneado
acceso_denegadoNo es de la empresa, está excluido del VPS o el agente no tiene ese VPS en su alcance

Relación con MCP

El gestor completo está disponible por MCP; referencia en /mcp/docs y /mcp/bases-de-datos. Todas las herramientas reciben engine (postgres o mysql) y, salvo las de motores, la base.

TipoHerramientas
Lecturalistar_motores_db_vps, probar_conexion_db_vps, listar_bases_db_vps, listar_tablas_db_vps, describir_tabla_db_vps, leer_filas_db_vps, contar_filas_db_vps, consultar_sql_db_vps, explicar_sql_db_vps, historial_operaciones_db_vps
Modificaninsertar_fila_db_vps, guardar_credencial_db_vps
Destructivasactualizar_fila_db_vps, borrar_fila_db_vps, ejecutar_ddl_db_vps
  • consultar_sql_db_vps rechaza escrituras a propósito y una segunda sentencia separada por ;. Los valores van en params.
  • ejecutar_ddl_db_vps destructivo exige repetir con confirmacion igual a confirmacion_esperada; confirmar un nombre equivocado se rechaza.
  • guardar_credencial_db_vps guarda cifrada la contraseña del motor y ninguna herramienta la devuelve.
  • Exportar e importar archivos solo existen en el panel.

Funciones relacionadas