SQLFluff MCP Server
Servidor MCP que expone las funciones lint/fix/parse de SQLFluff a través del Model Context Protocol
Documentación
sqlfluff-mcp-server
Un servidor MCP que expone el linting, el arreglo y el análisis de SQLFluff a través del Model Context Protocol, de modo que cualquier cliente compatible con MCP (Claude, otros agentes, integraciones de IDE) pueda hacer lint y arreglar SQL directamente.
Este proyecto es independiente de los mantenedores de SQLFluff: es un envoltorio ligero alrededor del paquete público de Python sqlfluff.
Herramientas
| Herramienta | Entrada | Resolución de configuración |
|---|---|---|
lint_file | ruta en disco | sube desde el archivo buscando .sqlfluff / pyproject.toml / etc. |
fix_file | ruta en disco (+ indicador write) | misma búsqueda en el directorio |
parse_file | ruta en disco | misma búsqueda en el directorio |
lint_sql | texto SQL sin procesar + dialect | ninguna: el dialecto se proporciona explícitamente |
fix_sql | texto SQL sin procesar + dialect | ninguna: el dialecto se proporciona explícitamente |
parse_sql | texto SQL sin procesar + dialect | ninguna: el dialecto se proporciona explícitamente |
list_dialects | — | lista los nombres de dialectos compatibles |
clear_config_cache | — | limpia el contenido en caché de los archivos de configuración de SQLFluff |
Las herramientas *_file respetan la configuración del proyecto de la misma manera que la CLI sqlfluff (a través de FluffConfig.from_path, que sube por el árbol de directorios buscando .sqlfluff, pyproject.toml, setup.cfg o tox.ini). Las herramientas *_sql son para contenido que aún no se ha escrito en disco (p. ej., transmitido desde un buffer del editor) y requieren que pases dialect explícitamente, ya que no hay una ubicación de archivo de la que resolver la configuración.
Caché de configuración
SQLFluff guarda en caché el contenido de los archivos de configuración que lee al recorrer un árbol de directorios, durante toda la vida del proceso. Como este servidor es de larga duración (a diferencia de la CLI sqlfluff, que es un proceso nuevo por invocación), editar un archivo .sqlfluff después de que el servidor haya arrancado no será detectado por lint_file / fix_file / parse_file hasta que llames a clear_config_cache. Llámalo cada vez que cambie la configuración en disco, o simplemente de forma proactiva antes de una llamada de lint/fix/parse si no estás seguro.
Requisitos
- Python 3.10+
- uv (recomendado) o
pipx/pip mcp>=2.0.0,<3.0.0 andsqlfluff>=3.0.0 (se instalan automáticamente como dependencias; consulta Notas sobre dependencias)
Registro con un cliente MCP
Este paquete está publicado en PyPI, así que no hay nada que clonar o instalar de antemano. Apunta la configuración de tu cliente MCP (p. ej., .claude.json / .mcp.json para Claude Code, o el archivo de configuración de Claude Desktop) a él mediante uvx, y se descargará en una caché aislada y se lanzará bajo demanda:
{
"mcpServers": {
"sqlfluff": {
"command": "uvx",
"args": ["sqlfluff-mcp-server"]
}
}
}
¿No tienes uv? pipx run sqlfluff-mcp-server como command/args funciona de la misma manera.
Para servidores basados en stdio como este, el propio cliente lanza el proceso, automáticamente, cuando la sesión del cliente comienza, no cuando un prompt lo necesita por primera vez. Una vez registrado, solo pide al cliente que haga lint o arregle un archivo SQL; el servidor ya está ejecutándose en segundo plano y las herramientas ya están disponibles. Si el proceso del servidor se bloquea, el cliente lo reinicia por ti.
Ejecución manual (para pruebas/depuración locales)
uvx sqlfluff-mcp-server
Esto inicia el servidor a través de stdio y se bloquea, esperando a que un cliente MCP le hable el protocolo por stdin/stdout; no es algo que ejecutes de forma interactiva a diario, solo es útil para verificar la instalación o para canalizarlo a través del MCP Inspector.
Desarrollo
Clona el repositorio para trabajar en el propio servidor (en lugar de solo consumirlo a través de uvx):
git clone <this-repo-url>
cd sqlfluff-mcp-server
uv sync --extra dev
uv run pytest
uv run ruff check .
Para apuntar un cliente MCP a tu copia local en lugar de la versión de PyPI (p. ej., para probar cambios no publicados):
{
"mcpServers": {
"sqlfluff": {
"command": "uv",
"args": ["--directory", "/path/to/sqlfluff-mcp-server", "run", "sqlfluff-mcp-server"]
}
}
}
Notas sobre dependencias
mcpestá fijado a>=2.0.0,<3.0.0. La línea 2.0 del SDK renombrómcp.server.fastmcp.FastMCPamcp.server.mcpserver.MCPServery movió la selección de transporte arun(transport=...); la API del decorador@mcp.tool()no cambió.sqlfluffse deja sin fijar por encima de3.0.0: SQLFluff publica versiones con bastante frecuencia y este servidor solo depende de su API estableLinter/FluffConfig.
Licencia
MIT: consulta LICENSE.