SQL Analyzer

Analiza, lint y convierte dialectos SQL usando SQLGlot.

Documentación

mcp-server-sql-analyzer

Un servidor de Model Context Protocol (MCP) que proporciona análisis de SQL, linting y capacidades de conversión de dialectos utilizando SQLGlot.

Resumen

El servidor MCP de SQL Analyzer proporciona herramientas para analizar y trabajar con consultas SQL. Ayuda con:

  • Validación de sintaxis SQL y linting
  • Conversión de consultas entre diferentes dialectos SQL (por ejemplo, MySQL a PostgreSQL)
  • Extracción y análisis de referencias de tablas y dependencias
  • Identificación del uso de columnas y relaciones
  • Descubrimiento de dialectos SQL compatibles

Cómo Usa Claude Este Servidor

Como asistente de IA, este servidor mejora mi capacidad para ayudar a los usuarios a trabajar con SQL de manera eficiente al:

  1. Validación de Consultas: Puedo validar instantáneamente la sintaxis SQL antes de sugerirla a los usuarios, asegurando que proporciono consultas correctas y apropiadas para el dialecto.

  2. Conversión de Dialectos: Cuando los usuarios necesitan migrar consultas entre diferentes sistemas de bases de datos, puedo convertir con precisión la sintaxis mientras preservo la lógica de la consulta.

  3. Análisis de Código: El análisis de referencias de tablas y columnas me ayuda a comprender consultas complejas, facilitando la explicación de la estructura de la consulta y la sugerencia de optimizaciones.

  4. Verificación de Compatibilidad: Al conocer los dialectos compatibles y sus características específicas, puedo guiar a los usuarios hacia las mejores prácticas específicas de la base de datos.

Este conjunto de herramientas me permite proporcionar asistencia relacionada con SQL más precisa y útil, reduciendo el riesgo de errores de sintaxis o problemas específicos del dialecto.

Consejos

Actualice sus preferencias personales en la configuración de Claude Desktop para solicitar que el SQL generado se valide primero utilizando la herramienta lint_sql.

Herramientas

  1. lint_sql

    • Valida la sintaxis de consultas SQL y devuelve cualquier error
    • Entrada:
      • sql (cadena): Consulta SQL a analizar
      • dialect (cadena, opcional): Dialecto SQL (por ejemplo, 'mysql', 'postgres')
    • Devuelve: ParseResult que contiene:
      • is_valid (booleano): Si el SQL es válido
      • message (cadena): Mensaje de error o "No syntax errors"
      • position (objeto, opcional): Línea y columna del error si está presente
  2. transpile_sql

    • Convierte SQL entre diferentes dialectos
    • Entradas:
      • sql (cadena): Declaración SQL a transpilar
      • read_dialect (cadena): Dialecto SQL de origen
      • write_dialect (cadena): Dialecto SQL de destino
    • Devuelve: TranspileResult que contiene:
      • is_valid (booleano): Si la transpilación fue exitosa
      • message (cadena): Mensaje de error o confirmación de éxito
      • sql (cadena): SQL transpilado si fue exitoso
  3. get_all_table_references

    • Extrae referencias de tablas y CTE del SQL
    • Entradas:
      • sql (cadena): Declaración SQL a analizar
      • dialect (cadena, opcional): Dialecto SQL
    • Devuelve: TableReferencesResult que contiene:
      • is_valid (booleano): Si el análisis fue exitoso
      • message (cadena): Mensaje de estado
      • tables (matriz): Lista de referencias de tablas con tipo, catálogo, base de datos, nombre de tabla, alias y nombre completamente calificado
  4. get_all_column_references

    • Extrae referencias de columnas con contexto de tabla
    • Entradas:
      • sql (cadena): Declaración SQL a analizar
      • dialect (cadena, opcional): Dialecto SQL
    • Devuelve: ColumnReferencesResult que contiene:
      • is_valid (booleano): Si el análisis fue exitoso
      • message (cadena): Mensaje de estado
      • columns (matriz): Lista de referencias de columnas con nombre de columna, nombre de tabla y nombre completamente calificado

Recursos

Descubrimiento de Dialectos SQL

dialects://all

Devuelve una lista de todos los dialectos SQL compatibles para usar en todas las herramientas.

Configuración

Usando uvx (recomendado)

Agregue esto a su claude_desktop_config.json:

{
  "mcpServers": {
      "sql-analyzer": {
          "command": "uvx",
          "args": [
              "--from",
              "git+https://github.com/j4c0bs/mcp-server-sql-analyzer.git",
              "mcp-server-sql-analyzer"
          ]
      }
  }
}

Usando uv

Después de clonar este repositorio, agregue esto a su claude_desktop_config.json:

{
  "mcpServers": {
      "sql-analyzer": {
          "command": "uv",
          "args": [
              "--directory",
              "/path/to/mcp-server-sql-analyzer",
              "run",
              "mcp-server-sql-analyzer"
          ]
      }
  }
}

Desarrollo

Para ejecutar el servidor en modo de desarrollo:

# Clone the repository
git clone git@github.com:j4c0bs/mcp-server-sql-analyzer.git

# Run the server
npx @modelcontextprotocol/inspector uv --directory /path/to/mcp-server-sql-analyzer run mcp-server-sql-analyzer

Para ejecutar pruebas unitarias:

uv run pytest .

Licencia

MIT