PawSQL MCP Server

Un servicio de optimización SQL que proporciona análisis de rendimiento y sugerencias de optimización a través de una API.

Documentación

Servidor MCP de PawSQL

Resumen del Proyecto

El Servidor MCP de PawSQL es un servicio de optimización SQL desarrollado sobre Spring AI, que proporciona análisis de rendimiento SQL y sugerencias de optimización. Se ejecuta como un servidor MCP (Protocolo de Control de Modelos) y ofrece capacidades de optimización SQL a través de interfaces API.

Características Principales

  • Soporta modos de optimización con y sin espacio de trabajo
  • Proporciona sugerencias de reescritura SQL y optimización de índices
  • Análisis visual del plan de ejecución (para espacios de trabajo conectados a bases de datos)
  • Informes de evaluación de rendimiento

Bases de Datos Soportadas

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

Guía de Instalación

  1. Configurar Claude Desktop:

    • Abrir Claude Desktop
    • Seleccionar "Configuración", hacer clic en la pestaña "Desarrollador"
    • Hacer clic en "Editar Configuración"
    • Agregar la configuración del servidor MCP
    • Guardar el archivo
    • Reiniciar Claude Desktop
  2. Plantilla de Configuración del 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 Configuración:
  • <edition>: Elija una de las siguientes ediciones
    • enterprise - Edición Empresarial
    • cloud - Edición Cloud
    • community - Edición Comunidad
  • <api-url>: Dirección del servicio API
  • <email>: Correo electrónico de la cuenta
  • <password>: Contraseña de la cuenta
  1. Ejemplos de Configuración por Edición:

Edición Empresarial:

{
  "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"
      ]
    }
  }
}

Edición 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"
      ]
    }
  }
}

Edición Comunidad:

{
  "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"
      ]
    }
  }
}

Uso en Claude

Después de la configuración, puede usar el Servidor MCP de PawSQL de diferentes maneras. Aquí hay algunos ejemplos:

1. Obtener Información del Espacio de Trabajo

Antes de usar la optimización basada en espacio de trabajo, necesita obtener la información del espacio de trabajo:

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 Optimización SQL

Método 1: Optimización Simple de Consultas

Proporcione el tipo de base de datos y la 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: Optimización con Estructura de Tabla

Proporcione el tipo de base de datos, la estructura de la tabla (DDL) y la 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: Optimización Basada en Espacio de Trabajo

Proporcione el nombre/ID del espacio de trabajo y la consulta SQL para una optimización más precisa con el contexto real de la base de datos:

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 la Información del Espacio de Trabajo

Puede obtener información del espacio de trabajo mediante dos métodos:

  1. Usando las Herramientas MCP de PawSQL: Pida al asistente de IA que liste los espacios de trabajo disponibles usando comandos integrados
  2. Interfaz Web: Visite la interfaz web del servicio PawSQL configurado para ver y gestionar los espacios de trabajo

Descripción del Informe de Optimización

El sistema devolverá un informe de optimización que contiene lo siguiente:

  1. Enlace del Informe de Análisis

    • Ver resultados detallados del análisis
  2. Detalles del Entorno de Análisis

    • Contiene información del contexto del análisis SQL
  3. Sugerencias de Optimización

    • Sugerencias de reescritura SQL
    • Sugerencias de optimización de índices
    • Análisis del plan de ejecución (solo para espacios de trabajo con validación habilitada)
    • Estimaciones de mejora de rendimiento