Fire in da houseTop Tip:Paying $100+ per month for Perplexity, MidJourney, Runway, ChatGPT and other tools is crazy - get all your AI tools in one site starting at $15 per month with Galaxy AI Fire in da houseCheck it out free

mcp-server-sql-analyzer

MCP.Pizza Chef: j4c0bs

The mcp-server-sql-analyzer is an MCP server that provides comprehensive SQL query analysis, syntax validation, linting, and dialect conversion. Leveraging SQLGlot, it supports multiple SQL dialects, enabling users to convert queries between systems like MySQL and PostgreSQL. It also extracts table references, analyzes column usage, and identifies dependencies, making it a powerful tool for database developers and AI assistants to ensure query correctness and compatibility across environments.

Use This MCP server To

Validate SQL syntax for error-free queries Convert SQL queries between different dialects Extract table references from SQL queries Analyze column usage and relationships in queries Identify dependencies within SQL scripts Support AI assistants in generating correct SQL Facilitate database migration with dialect conversion Lint SQL queries to enforce style and best practices

README

mcp-server-sql-analyzer

A Model Context Protocol (MCP) server that provides SQL analysis, linting, and dialect conversion capabilities using SQLGlot.

Overview

The SQL Analyzer MCP server provides tools for analyzing and working with SQL queries. It helps with:

  • SQL syntax validation and linting
  • Converting queries between different SQL dialects (e.g., MySQL to PostgreSQL)
  • Extracting and analyzing table references and dependencies
  • Identifying column usage and relationships
  • Discovering supported SQL dialects

How Claude Uses This Server

As an AI assistant, this server enhances my ability to help users work with SQL efficiently by:

  1. Query Validation: I can instantly validate SQL syntax before suggesting it to users, ensuring I provide correct and dialect-appropriate queries.

  2. Dialect Conversion: When users need to migrate queries between different database systems, I can accurately convert the syntax while preserving the query's logic.

  3. Code Analysis: The table and column reference analysis helps me understand complex queries, making it easier to explain query structure and suggest optimizations.

  4. Compatibility Checking: By knowing the supported dialects and their specific features, I can guide users toward database-specific best practices.

This toolset allows me to provide more accurate and helpful SQL-related assistance while reducing the risk of syntax errors or dialect-specific issues.

Tips

Update your personal preferences in Claude Desktop settings to request that generated SQL is first validated using the lint_sql tool.

Tools

  1. lint_sql

    • Validates SQL query syntax and returns any errors
    • Input:
      • sql (string): SQL query to analyze
      • dialect (string, optional): SQL dialect (e.g., 'mysql', 'postgresql')
    • Returns: ParseResult containing:
      • is_valid (boolean): Whether the SQL is valid
      • message (string): Error message or "No syntax errors"
      • position (object, optional): Line and column of error if present
  2. transpile_sql

    • Converts SQL between different dialects
    • Inputs:
      • sql (string): SQL statement to transpile
      • read_dialect (string): Source SQL dialect
      • write_dialect (string): Target SQL dialect
    • Returns: TranspileResult containing:
      • is_valid (boolean): Whether transpilation succeeded
      • message (string): Error message or success confirmation
      • sql (string): Transpiled SQL if successful
  3. get_all_table_references

    • Extracts table and CTE references from SQL
    • Inputs:
      • sql (string): SQL statement to analyze
      • dialect (string, optional): SQL dialect
    • Returns: TableReferencesResult containing:
      • is_valid (boolean): Whether analysis succeeded
      • message (string): Status message
      • tables (array): List of table references with type, catalog, database, table name, alias, and fully qualified name
  4. get_all_column_references

    • Extracts column references with table context
    • Inputs:
      • sql (string): SQL statement to analyze
      • dialect (string, optional): SQL dialect
    • Returns: ColumnReferencesResult containing:
      • is_valid (boolean): Whether analysis succeeded
      • message (string): Status message
      • columns (array): List of column references with column name, table name, and fully qualified name

Resources

SQL Dialect Discovery

dialects://all

Returns a list of all supported SQL dialects for use in all tools.

Configuration

Using uvx (recommended)

Add this to your 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"
          ]
      }
  }
}

Using uv

After cloning this repo, add this to your claude_desktop_config.json:

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

Development

To run the server in development mode:

# 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

To run unit tests:

uv run pytest .

License

MIT

mcp-server-sql-analyzer FAQ

How does the mcp-server-sql-analyzer validate SQL queries?
It uses SQLGlot to parse and lint SQL queries, detecting syntax errors and style issues.
Can this server convert SQL queries between different database dialects?
Yes, it supports converting queries across multiple dialects like MySQL, PostgreSQL, and more.
What SQL dialects are supported by this server?
The server supports a wide range of dialects including MySQL, PostgreSQL, SQLite, and others via SQLGlot.
How does the server help with understanding query dependencies?
It extracts table references and analyzes column relationships to identify dependencies within SQL scripts.
Is this server useful for AI assistants working with SQL?
Yes, it enables AI assistants like Claude to validate, lint, and convert SQL queries accurately.
Can it help with database migration projects?
Absolutely, by converting SQL queries between dialects, it simplifies migrating databases across different systems.
How do I integrate this MCP server into my workflow?
You connect it as an MCP server endpoint that your client or AI assistant can query for SQL analysis tasks.
Does it support linting to enforce SQL style guidelines?
Yes, it provides linting features to ensure SQL queries follow best practices and style conventions.