PawSQL MCP Server

Um serviço de otimização SQL que fornece análise de desempenho e sugestões de otimização através de uma API.

Documentação

PawSQL MCP Server

Visão Geral do Projeto

O PawSQL MCP Server é um serviço de otimização SQL desenvolvido com base no Spring AI, fornecendo análise de desempenho SQL e sugestões de otimização. Ele é executado como um servidor MCP (Model Control Protocol) e oferece capacidades de otimização SQL por meio de interfaces de API.

Principais Recursos

  • Suporta modos de otimização com e sem workspace
  • Oferece sugestões de reescrita SQL e otimização de índices
  • Análise visual do plano de execução (para workspaces conectados ao banco de dados)
  • Relatórios de avaliação de desempenho

Bancos de Dados Suportados

  • MySQL
  • PostgreSQL
  • Oracle
  • KingbaseES
  • openGauss
  • MogDB
  • GaussDB
  • DWS

Guia de Instalação

  1. Configure o Claude Desktop:

    • Abra o Claude Desktop
    • Selecione "Configurações", clique na aba "Desenvolvedor"
    • Clique em "Editar Configuração"
    • Adicione a configuração do servidor MCP
    • Salve o arquivo
    • Reinicie o Claude Desktop
  2. Modelo de Configuração do Servidor MCP:

{
  "mcpServers": {
    "pawsql": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e", "PAWSQL_EDITION=<edition>",
        "-e", "PAWSQL_API_BASE_URL=<api-url>",
        "-e", "PAWSQL_API_EMAIL=<email>",
        "-e", "PAWSQL_API_PASSWORD=<password>",
        "pawsql/pawsql-mcp-server:latest"
      ]
    }
  }
}
  1. Parâmetros de Configuração:
  • <edition>: Escolha uma das seguintes edições
    • enterprise - Edição Enterprise
    • cloud - Edição Cloud
    • community - Edição Community
  • <api-url>: Endereço do serviço de API
  • <email>: E-mail da conta
  • <password>: Senha da conta
  1. Exemplos de Configuração por Edição:

Edição Enterprise:

{
  "mcpServers": {
    "pawsql": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "PAWSQL_EDITION=enterprise",
        "-e", "PAWSQL_API_BASE_URL=https://your-enterprise-api.com",
        "-e", "PAWSQL_API_EMAIL=admin@company.com",
        "-e", "PAWSQL_API_PASSWORD=your-password",
        "pawsql/pawsql-mcp-server:latest"
      ]
    }
  }
}

Edição Cloud:

{
  "mcpServers": {
    "pawsql": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "PAWSQL_EDITION=cloud",
        "-e", "PAWSQL_API_EMAIL=user@example.com",
        "-e", "PAWSQL_API_PASSWORD=your-password",
        "pawsql/pawsql-mcp-server:latest"
      ]
    }
  }
}

Edição Community:

{
  "mcpServers": {
    "pawsql": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "PAWSQL_EDITION=community",
        "-e", "PAWSQL_API_BASE_URL=https://community-api.pawsql.com",
        "pawsql/pawsql-mcp-server:latest"
      ]
    }
  }
}

Como Usar no Claude

Após a configuração, você pode usar o PawSQL MCP Server de diferentes maneiras. Aqui estão alguns exemplos:

1. Obtendo Informações do Workspace

Antes de usar a otimização baseada em workspace, você precisa obter as informações do workspace:

User: What workspaces are available?

Assistant: Here are the available workspaces:

| Workspace Name | Workspace ID | Database Type | Can Validate Optimization | Status |
|---------------|--------------|--------------|------------------------|--------|
| WS_MySQL_202505241801 | 1926217077522944002 | mysql | Yes | success |

2. Métodos de Otimização SQL

Método 1: Otimização Simples de Consulta

Informe o tipo de banco de dados e a consulta SQL:

Help me optimize this mysql query:

select *
  from customer
  where c_custkey = (select max(o_custkey)
                        from orders
                        where subdate(o_orderdate, interval '1' DAY) < '2022-12-20')

Método 2: Otimização com Estrutura de Tabela

Informe o tipo de banco de dados, a estrutura da tabela (DDL) e a consulta SQL:

I want to optimize this mysql query, here's the table structure:

CREATE TABLE `customer` (
  `C_CUSTKEY` int NOT NULL,
  `C_NAME` varchar(25) NOT NULL,
  `C_ADDRESS` varchar(40) NOT NULL,
  `C_NATIONKEY` int NOT NULL,
  `C_PHONE` char(15) NOT NULL,
  `C_ACCTBAL` decimal(15,2) NOT NULL,
  `C_MKTSEGMENT` char(10) NOT NULL,
  `C_COMMENT` varchar(117) NOT NULL,
  PRIMARY KEY `PK_IDX1614428511` (`C_CUSTKEY`)
  ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;

  CREATE TABLE `orders` (
  `O_ORDERKEY` int NOT NULL,
  `O_CUSTKEY` int NOT NULL,
  `O_ORDERSTATUS` char(1) NOT NULL,
  `O_TOTALPRICE` decimal(15,2) NOT NULL,
  `O_ORDERDATE` date NOT NULL,
  `O_ORDERPRIORITY` char(15) NOT NULL,
  `O_CLERK` char(15) NOT NULL,
  `O_SHIPPRIORITY` int NOT NULL,
  `O_COMMENT` varchar(79) NOT NULL
  ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

select *
  from customer
  where c_custkey = (select max(o_custkey)
                        from orders
                        where subdate(o_orderdate, interval '1' DAY) < '2022-12-20')

Método 3: Otimização Baseada em Workspace

Informe o nome/ID do workspace e a consulta SQL para uma otimização mais precisa com o contexto real do banco de dados:

Optimize this query in workspace WS_MySQL_202505241801:

select *
  from customer
  where c_custkey = (select max(o_custkey)
                        from orders
                        where subdate(o_orderdate, interval '1' DAY) < '2022-12-20')

Nota sobre Informações do Workspace

Você pode obter informações do workspace por dois métodos:

  1. Usando as Ferramentas MCP do PawSQL: Peça ao assistente de IA para listar os workspaces disponíveis usando comandos integrados
  2. Interface Web: Acesse a interface web do seu serviço PawSQL configurado para visualizar e gerenciar workspaces

Descrição do Relatório de Otimização

O sistema retornará um relatório de otimização contendo o seguinte:

  1. Link do Relatório de Análise

    • Visualize os resultados detalhados da análise
  2. Detalhes do Ambiente de Análise

    • Contém informações de contexto da análise SQL
  3. Sugestões de Otimização

    • Sugestões de reescrita SQL
    • Sugestões de otimização de índices
    • Análise do plano de execução (somente para workspaces com validação habilitada)
    • Estimativas de melhoria de desempenho