SQLFluff Analyzer

Analiza, lint y corrige consultas SQL usando el linter SQLFluff.

Documentación

mcp-server-sql-analyzer

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

Descripción general

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

  • Analizar (lint) consultas SQL y devolver errores de sintaxis.
  • Corregir consultas SQL y devolver la versión corregida.
  • Analizar sintácticamente (parsear) consultas SQL y devolver el árbol de análisis.

Herramientas

  1. lint_sql
  • Analiza (lint) consultas SQL y devuelve errores de sintaxis. Algunos errores de sintaxis no son detectados por el analizador, como las comas finales.
  • Entradas:
    • sql (string): consulta SQL a analizar.
    • dialect (string, opcional): dialecto SQL (p. ej., 'mysql', 'postgresql').
  • Devuelve:
    • Lista de resultados de linting, cada uno con:
      • start_line_no: número de línea donde comienza el problema
      • start_line_pos: posición en la línea donde comienza el problema
      • code: código de error
      • description: descripción del problema
      • name: nombre de la regla de linting
      • warning: si es una advertencia o un error
      • fixes: lista de posibles correcciones
      • start_file_pos: posición inicial en el archivo
      • end_line_no: número de línea donde termina el problema
      • end_line_pos: posición en la línea donde termina el problema
      • end_file_pos: posición final en el archivo
  1. fix_sql

    • Corrige consultas SQL y devuelve la versión corregida.
    • Entradas:
      • sql (string): consulta SQL a corregir.
      • dialect (string, opcional): dialecto SQL (p. ej., 'mysql', 'postgresql').
    • Devuelve:
      • Cadena de consulta SQL corregida.
  2. parse_sql

    • Analiza sintácticamente (parsea) consultas SQL y devuelve el árbol de análisis.
    • Entradas:
      • sql (string): consulta SQL a analizar sintácticamente.
      • dialect (string, opcional): dialecto SQL (p. ej., 'mysql', 'postgresql').
    • Devuelve:
      • Árbol de análisis como cadena.

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

Añade esto a tu archivo de configuración del cliente MCP:

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

Usando uv

Después de clonar este repositorio, añade esto a tu archivo de configuración del cliente MCP:

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

Desarrollo

Para ejecutar el servidor en modo de desarrollo:

# Clone the repository
git clone git@github.com:antoprince001/mcp-server-sqlfluff.git

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

Para ejecutar las pruebas unitarias:

uv run pytest .

Licencia

Publicado bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.