SQL Analyzer

Analise, faça linting e converta dialetos SQL usando SQLGlot.

Documentação

mcp-server-sql-analyzer

Um servidor Model Context Protocol (MCP) que fornece análise de SQL, linting e conversão de dialetos usando SQLGlot.

Visão Geral

O servidor MCP SQL Analyzer fornece ferramentas para analisar e trabalhar com consultas SQL. Ele ajuda com:

  • Validação de sintaxe SQL e linting
  • Conversão de consultas entre diferentes dialetos SQL (ex.: MySQL para PostgreSQL)
  • Extração e análise de referências e dependências de tabelas
  • Identificação de uso de colunas e relacionamentos
  • Descoberta de dialetos SQL suportados

Como o Claude Usa Este Servidor

Como assistente de IA, este servidor aprimora minha capacidade de ajudar usuários a trabalhar com SQL de forma eficiente:

  1. Validação de Consultas: Posso validar instantaneamente a sintaxe SQL antes de sugeri-la aos usuários, garantindo que forneço consultas corretas e apropriadas ao dialeto.

  2. Conversão de Dialetos: Quando usuários precisam migrar consultas entre diferentes sistemas de banco de dados, posso converter com precisão a sintaxe preservando a lógica da consulta.

  3. Análise de Código: A análise de referências de tabelas e colunas me ajuda a entender consultas complexas, facilitando a explicação da estrutura da consulta e a sugestão de otimizações.

  4. Verificação de Compatibilidade: Ao conhecer os dialetos suportados e suas características específicas, posso orientar usuários para práticas recomendadas específicas do banco de dados.

Este conjunto de ferramentas me permite fornecer assistência relacionada a SQL mais precisa e útil, reduzindo o risco de erros de sintaxe ou problemas específicos de dialeto.

Dicas

Atualize suas preferências pessoais nas configurações do Claude Desktop para solicitar que o SQL gerado seja primeiro validado usando a ferramenta lint_sql.

Ferramentas

  1. lint_sql

    • Valida a sintaxe de consultas SQL e retorna quaisquer erros
    • Entrada:
      • sql (string): Consulta SQL para analisar
      • dialect (string, opcional): Dialeto SQL (ex.: 'mysql', 'postgres')
    • Retorna: ParseResult contendo:
      • is_valid (boolean): Se o SQL é válido
      • message (string): Mensagem de erro ou "Nenhum erro de sintaxe"
      • position (objeto, opcional): Linha e coluna do erro, se presente
  2. transpile_sql

    • Converte SQL entre diferentes dialetos
    • Entradas:
      • sql (string): Instrução SQL para transpilar
      • read_dialect (string): Dialeto SQL de origem
      • write_dialect (string): Dialeto SQL de destino
    • Retorna: TranspileResult contendo:
      • is_valid (boolean): Se a transpilação foi bem-sucedida
      • message (string): Mensagem de erro ou confirmação de sucesso
      • sql (string): SQL transpilado, se bem-sucedido
  3. get_all_table_references

    • Extrai referências de tabelas e CTEs do SQL
    • Entradas:
      • sql (string): Instrução SQL para analisar
      • dialect (string, opcional): Dialeto SQL
    • Retorna: TableReferencesResult contendo:
      • is_valid (boolean): Se a análise foi bem-sucedida
      • message (string): Mensagem de status
      • tables (array): Lista de referências de tabelas com tipo, catálogo, banco de dados, nome da tabela, alias e nome totalmente qualificado
  4. get_all_column_references

    • Extrai referências de colunas com contexto de tabela
    • Entradas:
      • sql (string): Instrução SQL para analisar
      • dialect (string, opcional): Dialeto SQL
    • Retorna: ColumnReferencesResult contendo:
      • is_valid (boolean): Se a análise foi bem-sucedida
      • message (string): Mensagem de status
      • columns (array): Lista de referências de colunas com nome da coluna, nome da tabela e nome totalmente qualificado

Recursos

Descoberta de Dialetos SQL

dialects://all

Retorna uma lista de todos os dialetos SQL suportados para uso em todas as ferramentas.

Configuração

Usando uvx (recomendado)

Adicione isto ao seu 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

Após clonar este repositório, adicione isto ao seu claude_desktop_config.json:

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

Desenvolvimento

Para executar o servidor em modo de desenvolvimento:

# 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 executar testes unitários:

uv run pytest .

Licença

MIT