MCP Migration Advisor

Análisis de riesgos de migración de bases de datos para Flyway y Liquibase. Detecta cambios peligrosos en el esquema —riesgos de bloqueo, pérdida de datos, operaciones destructivas— antes de que lleguen a producción.

Documentación

npm version License: MIT

MCP Migration Advisor

Servidor MCP para análisis de riesgo de migraciones de bases de datos. Detecta cambios de esquema peligrosos antes de que lleguen a producción.

¿Por qué esta herramienta?

Los fallos de migración de bases de datos causan interrupciones. Esta herramienta analiza tus migraciones de Flyway y Liquibase antes de que se ejecuten — detectando operaciones destructivas, riesgos de bloqueo y patrones de pérdida de datos.

A diferencia de MigrationPilot (solo PG, análisis de SQL crudo), esta herramienta analiza changelogs de Liquibase en XML y YAML de forma nativa — extrayendo changeSets, detectando conflictos entre IDs de changeSet y validando la completitud de los rollbacks. Funciona con múltiples tipos de bases de datos, no solo PostgreSQL.

Características

  • Análisis de riesgo de bloqueo: Detecta operaciones DDL que adquieren bloqueos pesados de tabla (bloqueos ACCESS EXCLUSIVE, SHARE)
  • Detección de pérdida de datos: Encuentra eliminaciones de columnas, cambios de tipo que truncan, TRUNCATE/DELETE sin WHERE
  • Puntuación de riesgo: Calcula una puntuación de riesgo de 0-100 según la gravedad de los problemas detectados
  • Soporte de Flyway: Analiza nombres de archivos de migración V__.sql y R__.sql
  • Soporte de Liquibase: Analiza changelogs XML y YAML con extracción de changeSets
  • Detección de conflictos: Identifica IDs de changeSet duplicados y problemas de orden
  • Validación de rollback: Comprueba la completitud del rollback para cada changeSet
  • Recomendaciones accionables: Cada riesgo incluye una alternativa segura específica

Nivel Pro

Genera informes de diagnóstico exportables (HTML + PDF) con una clave de licencia Pro.

  • Informe completo de análisis de volcado de hilos JVM con recomendaciones accionables
  • Exportación a PDF para compartir con tu equipo
  • Soporte prioritario

$9.00/mes — Obtener licencia Pro

La clave de licencia Pro activa la herramienta MCP generate_report en mcp-jvm-diagnostics.

Instalación

npx mcp-migration-advisor

O instalar globalmente:

npm install -g mcp-migration-advisor

Configuración de Claude Desktop

Añade a ~/.claude/claude_desktop_config.json:

{
  "mcpServers": {
    "migration-advisor": {
      "command": "npx",
      "args": ["-y", "mcp-migration-advisor"]
    }
  }
}

Demo rápida

Prueba estos prompts en Claude:

  1. "Analiza esta migración para detectar riesgos: ALTER TABLE users DROP COLUMN email;" — Devuelve puntuación de riesgo (0-100), riesgos de bloqueo, advertencias de pérdida de datos y alternativas seguras
  2. "Genera un rollback para esta migración: CREATE TABLE orders (...); CREATE INDEX idx_orders_user ON orders(user_id);" — Produce DDL inverso en el orden correcto
  3. "Puntúa este changelog de Liquibase: [pegar XML]" — Analiza los changeSets y calcula el riesgo general

Herramientas

analyze_migration

Análisis completo de un archivo de migración SQL. Devuelve riesgos de bloqueo, análisis de pérdida de datos y recomendaciones.

Parámetros:

  • filename — Nombre del archivo de migración (p. ej., V2__add_user_email.sql)
  • sql — El contenido SQL

analyze_liquibase

Análisis completo de un changelog XML de Liquibase. Analiza los changeSets y aplica el mismo análisis de riesgo de bloqueo y pérdida de datos.

Parámetros:

  • xml — El contenido del changelog XML de Liquibase

analyze_liquibase_yaml

Análisis completo de un changelog YAML de Liquibase. Analiza los changeSets del formato YAML y aplica el mismo análisis de riesgo de bloqueo y pérdida de datos. Soporta todos los tipos de cambio estándar: createTable, dropTable, addColumn, dropColumn, modifyDataType, createIndex, renameTable, renameColumn y más.

Parámetros:

  • yaml — El contenido del changelog YAML de Liquibase

score_risk

Puntuación de riesgo rápida (0-100) con veredicto (RIESGO BAJO/MODERADO/ALTO).

Parámetros:

  • filename — Nombre del archivo de migración
  • sql — El contenido SQL

generate_rollback

Genera DDL inverso para deshacer una migración SQL. Produce SQL de rollback con advertencias para operaciones irreversibles.

Parámetros:

  • filename — Nombre del archivo de migración
  • sql — El contenido SQL

Invierte automáticamente:

  • CREATE TABLE → DROP TABLE
  • ADD COLUMN → ALTER TABLE ... DROP COLUMN
  • CREATE INDEX → DROP INDEX (conserva CONCURRENTLY)
  • ADD CONSTRAINT → DROP CONSTRAINT
  • SET NOT NULL → DROP NOT NULL
  • RENAME → RENAME inverso

Advierte sobre operaciones irreversibles:

  • DROP TABLE, DROP COLUMN (pérdida de datos)
  • Cambios de tipo de columna (tipo original desconocido)
  • DROP INDEX, DROP CONSTRAINT (definición original desconocida)

Incluye la declaración de limpieza schema_history de Flyway.

detect_conflicts

Detecta conflictos entre dos archivos de migración SQL. Identifica modificaciones en la misma tabla, cambios en la misma columna, riesgos de contención de bloqueos y dependencias de eliminación que podrían causar fallos si se aplican de forma concurrente o en el orden incorrecto.

Parámetros:

  • filename_a — Nombre del primer archivo de migración (p. ej., V3__add_email.sql)
  • sql_a — Contenido SQL de la primera migración
  • filename_b — Nombre del segundo archivo de migración (p. ej., V4__modify_users.sql)
  • sql_b — Contenido SQL de la segunda migración

Detecta:

  • Conflictos en la misma columna (CRÍTICO) — ambas migraciones modifican la misma columna en la misma tabla
  • Dependencias de eliminación (CRÍTICO) — una migración elimina una tabla que la otra modifica, causando fallos dependientes del orden
  • Contención de bloqueos (ADVERTENCIA) — ambas migraciones requieren bloqueos exclusivos en la misma tabla, arriesgando tiempos de espera de bloqueo

Devuelve un informe de conflictos con niveles de gravedad, tablas/columnas afectadas y si las migraciones pueden ejecutarse de forma segura de manera concurrente.

Qué detecta

PatrónGravedadPor qué es peligroso
NOT NULL sin DEFAULTCRÍTICOReescritura completa de la tabla con bloqueo ACCESS EXCLUSIVE
Cambio de tipo de columnaCRÍTICOReescritura de tabla, riesgo de truncamiento de datos
CREATE INDEX (no CONCURRENTLY)ALTOEl bloqueo SHARE bloquea todas las escrituras
DROP TABLE CASCADECRÍTICOElimina todos los objetos dependientes
DROP COLUMNALTOPérdida de datos irreversible
SET NOT NULLALTOEscaneo completo de la tabla con bloqueo
Restricción FOREIGN KEYMEDIOBloquea ambas tablas para validación
TRUNCATE / DELETE sin WHEREPérdida de datos CERTERATodas las filas se eliminan permanentemente

Limitaciones y problemas conocidos

  • Solo análisis estático: Analiza el texto SQL sin conectividad a la base de datos. No puede comprobar tamaños reales de tablas, recuentos de filas ni el esquema existente para calibrar el riesgo.
  • Centrado en PostgreSQL: Las recomendaciones de riesgo de bloqueo son principalmente para PostgreSQL. Los comportamientos de bloqueo de MySQL y SQLite difieren y pueden no estar completamente cubiertos.
  • DDL complejo: Los procedimientos almacenados, disparadores y SQL dinámico dentro de las migraciones se clasifican como "OTRO" y reciben una evaluación de riesgo genérica.
  • Soporte de Liquibase: Maneja changeSets XML y YAML estándar. El formato JSON de Liquibase y los tipos de cambio personalizados no son compatibles.
  • Limitaciones de rollback: Los rollbacks generados automáticamente no pueden revertir DROP TABLE, DROP COLUMN ni cambios de tipo (los datos se pierden). Estos producen advertencias en lugar de SQL de rollback.
  • Transacciones de múltiples declaraciones: El analizador divide por punto y coma. Las declaraciones que contienen punto y coma dentro de cadenas o bloques entre comillas de dólar pueden dividirse incorrectamente.
  • Sin ejecución: El asesor analiza pero nunca ejecuta migraciones. Todas las recomendaciones son de carácter consultivo.
  • DDL específico de base de datos: El analizador se dirige a la sintaxis DDL de PostgreSQL/MySQL. Oracle PL/SQL o SQL Server T-SQL pueden no reconocerse completamente.

Parte del conjunto MCP Java Backend

Licencia

MIT


Fin de vida útil: 2026-05-10.

Este servidor MCP ya no se mantiene ni se distribuye. La Corporación ha cambiado a actores del marketplace de Apify. Consulta irrationalways en Apify y irrcorp/bzp-poland-tenders para el trabajo actual de la Corporación.

El paquete npm se ha retirado de la publicación. El repositorio está archivado solo como referencia histórica.