Skip to main content
Glama
VAIBHAV7500

sqlpad-mcp

by VAIBHAV7500

Servidor MCP de SQLPad

npm version License: MIT node

Un servidor MCP para SQLPad. Apunta un agente de IA a una instancia de SQLPad con su URL base y un token de servicio, y el agente puede descubrir conexiones, inspeccionar esquemas, ejecutar SQL y gestionar consultas guardadas.

Requisitos

  • Node.js 20 o posterior.

  • Una instancia de SQLPad accesible.

  • El servidor de SQLPad debe tener SQLPAD_SERVICE_TOKEN_SECRET configurado. Sin él, cada solicitud autenticada con Bearer devuelve 401 Unauthorized.

  • Un token de servicio generado en la interfaz de administración de SQLPad.

Related MCP server: SQLite Database MCP Server

Inicio rápido

No se necesita paso de instalación: ejecútalo directamente desde npm:

SQLPAD_SERVICE_TOKEN=... npx sqlpad-mcp --base-url https://sqlpad.example.com

O instálalo globalmente:

npm install -g sqlpad-mcp

El servidor habla MCP sobre stdio, por lo que normalmente lo lanza un cliente MCP en lugar de ejecutarse manualmente. Ejecutarlo directamente sigue siendo útil para verificar las credenciales: en caso de éxito, registra la versión detectada de SQLPad en stderr.

Configuración

Variable de entorno

Indicador CLI

Predeterminado

Significado

SQLPAD_BASE_URL

--base-url

(obligatorio)

URL base de la instancia de SQLPad; se admite un montaje en subruta.

SQLPAD_SERVICE_TOKEN

--token

(obligatorio)

Token de servicio, enviado como Authorization: Bearer.

SQLPAD_ALLOW_WRITES

--allow-writes

false

Registra las herramientas de escritura de consultas guardadas.

SQLPAD_ALLOW_ADMIN

--allow-admin

false

Registra las herramientas solo de administración.

SQLPAD_MAX_ROWS

--max-rows

500

Límite de filas devueltas por sentencia.

SQLPAD_TIMEOUT_MS

--timeout-ms

60000

Tiempo de espera para sondear un lote antes de devolver un batchId reanudable.

Un indicador CLI tiene prioridad sobre la variable de entorno correspondiente. El intervalo de sondeo de lotes (250 ms) es interno y no configurable.

Configuración de Claude Code

Añade el servidor a tu mcp.json de Claude Code:

{
  "mcpServers": {
    "sqlpad": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "sqlpad-mcp",
        "--base-url",
        "https://sqlpad.example.com"
      ],
      "env": {
        "SQLPAD_SERVICE_TOKEN": "..."
      }
    }
  }
}

Proporcionar el token a través de env lo mantiene fuera de la lista de argumentos del proceso, que es legible por cualquier usuario mediante ps.

Para habilitar los grupos de herramientas restringidas, añade "SQLPAD_ALLOW_WRITES": "true" o "SQLPAD_ALLOW_ADMIN": "true" al mismo bloque env.

Herramientas

Doce herramientas están siempre registradas. Seis más están restringidas detrás de los dos indicadores SQLPAD_ALLOW_* y están desactivadas por defecto.

Ejecución

Herramienta

Descripción

run_sql

Ejecuta SQL arbitrario, incluidos DDL y DML, creando un lote asíncrono de SQLPad, sondeándolo hasta completarlo y devolviendo las filas en línea. No está aislado. Las filas están limitadas por maxRows y el truncamiento se informa explícitamente. En caso de tiempo de espera, devuelve un batchId para que la ejecución pueda reanudarse en lugar de volver a ejecutarse. Una sentencia fallida lleva un error.hint cuando la causa es reconocible, como un nombre de tabla que necesita calificación con schema..

get_batch

Obtiene un lote y los estados actuales de sus sentencias. Llama a esto después de que run_sql agote el tiempo de espera, o mientras un lote aún está en cola o en ejecución.

get_statement_results

Pagina un resultado de sentencia grande y finalizado en lugar de volver a ejecutar la consulta. Devuelve una página limitada convertida a objetos usando los nombres de columna de la sentencia.

cancel_batch

Solicita la cancelación de un lote asíncrono. SQLPad rechaza la cancelación cuando la conexión no admite ejecución asíncrona.

Descubrimiento

Herramienta

Descripción

list_connections

Lista las conexiones disponibles para el token de servicio. Funciona con un token no administrador, a diferencia de get_connection.

get_connection_schema

Obtiene un esquema de base de datos limitado para una conexión. La salida completa del esquema sin filtrar puede ser enorme: prefiere schemaFilter o tableFilter, y usa el modo resumen a menos que se necesiten detalles de columnas.

list_drivers

Lista los controladores de base de datos de SQLPad, limitados por el límite solicitado.

Consultas guardadas

Herramienta

Descripción

list_queries

Lista consultas guardadas usando filtros opcionales de conexión, texto, etiqueta, propiedad, creador y orden.

get_query

Obtiene una consulta guardada por ID.

list_tags

Lista etiquetas distintas de consultas guardadas, con paginación local limitada.

list_query_history

Lista el historial de consultas del usuario que llama, de más reciente a más antiguo, con paginación local limitada.

format_sql

Formatea texto SQL usando SQLPad. Los servidores SQLPad más antiguos pueden no proporcionar este endpoint.

Escritura de consultas guardadas: requiere SQLPAD_ALLOW_WRITES=true

Herramienta

Descripción

create_query

Crea una consulta guardada.

update_query

Reemplaza los campos editables de una consulta guardada existente.

delete_query

Elimina permanentemente una consulta guardada.

Administración: requiere SQLPAD_ALLOW_ADMIN=true

Estas llaman a endpoints de SQLPad que a su vez requieren un token de servicio de administrador.

Herramienta

Descripción

get_connection

Obtiene una conexión por ID.

test_connection

Prueba una configuración de conexión sin guardarla.

list_users

Lista usuarios de SQLPad, con límites de salida explícitos.

Cómo funciona la ejecución de SQL

SQLPad ejecuta SQL mediante lotes asíncronos. Crear un lote devuelve inmediatamente; cada sentencia pasa de queued a started, y luego a finished o error. Los resultados se obtienen por separado para cada sentencia y no están disponibles hasta que esa sentencia termina.

La herramienta run_sql absorbe todo el protocolo (crear, sondear, obtener y devolver filas), de modo que un agente hace una sola llamada. Si el sondeo alcanza el tiempo de espera configurado, la herramienta devuelve un batchId que el agente puede reanudar en lugar de quedarse colgado.

Las conexiones pueden no tener una base de datos predeterminada. Califica los nombres de tabla como schema.table y usa get_connection_schema para descubrir los esquemas disponibles.

Seguridad

  • run_sql ejecuta SQL arbitrario, incluidos DDL y DML, y no está aislado. SQLPAD_ALLOW_WRITES solo restringe la mutación de los objetos de consultas guardadas de SQLPad; no restringe el contenido SQL. Usa credenciales de base de datos de solo lectura en la propia conexión de SQLPad. Esa es la única aplicación real.

  • Los endpoints /api/service-tokens de SQLPad no se exponen deliberadamente. Una herramienta que acuña credenciales es una primitiva de escalada de privilegios.

  • Las herramientas de administración están desactivadas por defecto.

  • El token de servicio se redacta de todos los errores y registros. Todo el registro va a stderr porque stdout es el canal JSON-RPC.

  • Los lotes están limitados al propio usuario del token, por lo que el servidor solo ve su propio historial de consultas.

Contribuciones

Clona el repositorio e instala las dependencias:

git clone https://github.com/VAIBHAV7500/sqlpad-mcp.git
cd sqlpad-mcp
npm install
npm run build

Crea una rama para tu cambio. Antes de abrir una solicitud de extracción, ejecuta:

npm run typecheck && npm run lint && npm test

CI ejecuta los mismos tres comandos en Node 20 y 22.

Licencia

MIT

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to query databases via natural language using the Model Context Protocol, with automatic schema discovery, SQL query execution, and read-only safety checks.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to connect to and query an SQLite database through the Model Context Protocol, allowing natural language interaction with database tables and data.
    -
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI agents to search and read Metabase dashboards and cards, explore database schema, and run read-only query previews through the Model Context Protocol.
    17
    15 npm
    2
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to query, analyze, and manage SQL Server databases through natural language via the Model Context Protocol.
    6
    1
    -