Skip to main content
Glama
VAIBHAV7500

sqlpad-mcp

by VAIBHAV7500

SQLPad MCP Server

npm version License: MIT node

MCP сервер для SQLPad. Укажите ИИ-агенту базовый URL экземпляра SQLPad и сервисный токен — и агент сможет обнаруживать подключения, просматривать схемы, выполнять SQL и управлять сохранёнными запросами.

Требования

  • Node.js 20 или новее.

  • Доступный экземпляр SQLPad.

  • На сервере SQLPad должен быть настроен SQLPAD_SERVICE_TOKEN_SECRET. Без него каждый запрос с Bearer-аутентификацией возвращает 401 Unauthorized.

  • Сервисный токен, созданный в административном интерфейсе SQLPad.

Related MCP server: SQLite Database MCP Server

Быстрый старт

Установка не требуется — запускайте прямо из npm:

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

Или установите глобально:

npm install -g sqlpad-mcp

Сервер общается по MCP через stdio, поэтому обычно его запускает MCP-клиент, а не вручную. Однако прямой запуск полезен для проверки учётных данных: при успехе он выводит обнаруженную версию SQLPad в stderr.

Конфигурация

Переменная окружения

Флаг CLI

По умолчанию

Назначение

SQLPAD_BASE_URL

--base-url

(обязательно)

Базовый URL экземпляра SQLPad; поддерживается монтирование в подкаталог.

SQLPAD_SERVICE_TOKEN

--token

(обязательно)

Сервисный токен, отправляется как Authorization: Bearer.

SQLPAD_ALLOW_WRITES

--allow-writes

false

Регистрирует инструменты записи сохранённых запросов.

SQLPAD_ALLOW_ADMIN

--allow-admin

false

Регистрирует инструменты, доступные только администратору.

SQLPAD_MAX_ROWS

--max-rows

500

Ограничение на количество строк, возвращаемых за один оператор.

SQLPAD_TIMEOUT_MS

--timeout-ms

60000

Как долго опрашивать пакет перед возвратом возобновляемого batchId.

Флаг CLI имеет приоритет над соответствующей переменной окружения. Интервал опроса пакета (250 мс) является внутренним и не настраивается.

Конфигурация Claude Code

Добавьте сервер в ваш mcp.json для Claude Code:

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

Передача токена через env не позволяет ему попасть в список аргументов процесса, который доступен для чтения всем через ps.

Чтобы включить группы инструментов, управляемые флагами, добавьте "SQLPAD_ALLOW_WRITES": "true" или "SQLPAD_ALLOW_ADMIN": "true" в тот же блок env.

Инструменты

Двенадцать инструментов регистрируются всегда. Ещё шесть скрыты за двумя флагами SQLPAD_ALLOW_* и по умолчанию отключены.

Выполнение

Инструмент

Описание

run_sql

Выполняет произвольный SQL, включая DDL и DML, создавая асинхронный пакет SQLPad, опрашивая его до завершения и возвращая строки встроенно. Не изолирован в песочнице. Строки ограничены maxRows, а усечение явно сообщается. При тайм-ауте возвращает batchId, чтобы выполнение можно было возобновить, а не запускать заново. При неудачном операторе в error.hint указывается причина, если она распознана, например имя таблицы, требующее квалификации schema..

get_batch

Получает пакет и текущие статусы его операторов. Вызывайте после тайм-аута run_sql или пока пакет ещё в очереди или выполняется.

get_statement_results

Постранично просматривает большой завершённый результат оператора, не перезапуская запрос. Возвращает ограниченную страницу, преобразованную в объекты с использованием имён столбцов оператора.

cancel_batch

Запрашивает отмену асинхронного пакета. SQLPad отклоняет отмену, если подключение не поддерживает асинхронное выполнение.

Обнаружение

Инструмент

Описание

list_connections

Перечисляет подключения, доступные сервисному токену. Работает с токеном без прав администратора, в отличие от get_connection.

get_connection_schema

Получает ограниченную схему базы данных для подключения. Нефильтрованный вывод полной схемы может быть огромным — предпочитайте schemaFilter или tableFilter и используйте режим сводки, если не нужны детали столбцов.

list_drivers

Перечисляет драйверы баз данных SQLPad, ограниченные запрошенным лимитом.

Сохранённые запросы

Инструмент

Описание

list_queries

Перечисляет сохранённые запросы с использованием необязательных фильтров по подключению, тексту, тегу, владельцу, создателю и сортировке.

get_query

Получает один сохранённый запрос по ID.

list_tags

Перечисляет различные теги сохранённых запросов с ограниченной локальной пагинацией.

list_query_history

Перечисляет историю запросов вызывающего пользователя, сначала новые, с ограниченной локальной пагинацией.

format_sql

Форматирует SQL-текст с помощью SQLPad. Более старые серверы SQLPad могут не предоставлять эту конечную точку.

Запись сохранённых запросов — требует SQLPAD_ALLOW_WRITES=true

Инструмент

Описание

create_query

Создаёт сохранённый запрос.

update_query

Заменяет редактируемые поля существующего сохранённого запроса.

delete_query

Окончательно удаляет сохранённый запрос.

Администрирование — требует SQLPAD_ALLOW_ADMIN=true

Эти инструменты вызывают конечные точки SQLPad, которые сами требуют сервисный токен администратора.

Инструмент

Описание

get_connection

Получает одно подключение по ID.

test_connection

Проверяет конфигурацию подключения без сохранения.

list_users

Перечисляет пользователей SQLPad с явными ограничениями вывода.

Как работает выполнение SQL

SQLPad выполняет SQL через асинхронные пакеты. Создание пакета возвращается немедленно; каждый оператор переходит из состояния queued в started, затем в finished или error. Результаты извлекаются отдельно для каждого оператора и недоступны, пока оператор не завершён.

Инструмент run_sql поглощает весь протокол — создание, опрос, извлечение и возврат строк — так что агенту достаточно одного вызова. Если опрос достигает настроенного тайм-аута, инструмент возвращает batchId, который агент может использовать для возобновления, вместо зависания.

У подключений может не быть базы данных по умолчанию. Квалифицируйте имена таблиц как schema.table и используйте get_connection_schema для обнаружения доступных схем.

Безопасность

  • run_sql выполняет произвольный SQL, включая DDL и DML, и не изолирован в песочнице. SQLPAD_ALLOW_WRITES ограничивает только изменение собственных сохранённых запросов SQLPad; он не ограничивает содержимое SQL. Используйте учётные данные базы данных только для чтения на самом подключении SQLPad. Это единственное реальное ограничение.

  • Конечные точки SQLPad /api/service-tokens намеренно не раскрываются. Инструмент, создающий учётные данные, является примитивом повышения привилегий.

  • Административные инструменты по умолчанию отключены.

  • Сервисный токен скрывается из всех ошибок и журналов. Все журналы идут в stderr, потому что stdout — это канал JSON-RPC.

  • Пакеты ограничены пользователем самого токена, поэтому сервер видит только свою собственную историю запросов.

Участие в разработке

Клонируйте репозиторий и установите зависимости:

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

Создайте ветку для вашего изменения. Перед открытием pull request выполните:

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

CI запускает те же три команды на Node 20 и 22.

Лицензия

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
    -