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
-
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
-
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"
]
}
}
}
- Parâmetros de Configuração:
<edition>: Escolha uma das seguintes ediçõesenterprise- Edição Enterprisecloud- Edição Cloudcommunity- Edição Community
<api-url>: Endereço do serviço de API<email>: E-mail da conta<password>: Senha da conta
- 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:
- Usando as Ferramentas MCP do PawSQL: Peça ao assistente de IA para listar os workspaces disponíveis usando comandos integrados
- 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:
-
Link do Relatório de Análise
- Visualize os resultados detalhados da análise
-
Detalhes do Ambiente de Análise
- Contém informações de contexto da análise SQL
-
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