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