sqlpad-mcp
SQLPad MCP Server
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 | По умолчанию | Назначение |
|
| (обязательно) | Базовый URL экземпляра SQLPad; поддерживается монтирование в подкаталог. |
|
| (обязательно) | Сервисный токен, отправляется как |
|
|
| Регистрирует инструменты записи сохранённых запросов. |
|
|
| Регистрирует инструменты, доступные только администратору. |
|
|
| Ограничение на количество строк, возвращаемых за один оператор. |
|
|
| Как долго опрашивать пакет перед возвратом возобновляемого |
Флаг 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_* и по умолчанию отключены.
Выполнение
Инструмент | Описание |
| Выполняет произвольный SQL, включая DDL и DML, создавая асинхронный пакет SQLPad, опрашивая его до завершения и возвращая строки встроенно. Не изолирован в песочнице. Строки ограничены |
| Получает пакет и текущие статусы его операторов. Вызывайте после тайм-аута |
| Постранично просматривает большой завершённый результат оператора, не перезапуская запрос. Возвращает ограниченную страницу, преобразованную в объекты с использованием имён столбцов оператора. |
| Запрашивает отмену асинхронного пакета. SQLPad отклоняет отмену, если подключение не поддерживает асинхронное выполнение. |
Обнаружение
Инструмент | Описание |
| Перечисляет подключения, доступные сервисному токену. Работает с токеном без прав администратора, в отличие от |
| Получает ограниченную схему базы данных для подключения. Нефильтрованный вывод полной схемы может быть огромным — предпочитайте |
| Перечисляет драйверы баз данных SQLPad, ограниченные запрошенным лимитом. |
Сохранённые запросы
Инструмент | Описание |
| Перечисляет сохранённые запросы с использованием необязательных фильтров по подключению, тексту, тегу, владельцу, создателю и сортировке. |
| Получает один сохранённый запрос по ID. |
| Перечисляет различные теги сохранённых запросов с ограниченной локальной пагинацией. |
| Перечисляет историю запросов вызывающего пользователя, сначала новые, с ограниченной локальной пагинацией. |
| Форматирует SQL-текст с помощью SQLPad. Более старые серверы SQLPad могут не предоставлять эту конечную точку. |
Запись сохранённых запросов — требует SQLPAD_ALLOW_WRITES=true
Инструмент | Описание |
| Создаёт сохранённый запрос. |
| Заменяет редактируемые поля существующего сохранённого запроса. |
| Окончательно удаляет сохранённый запрос. |
Администрирование — требует SQLPAD_ALLOW_ADMIN=true
Эти инструменты вызывают конечные точки SQLPad, которые сами требуют сервисный токен администратора.
Инструмент | Описание |
| Получает одно подключение по ID. |
| Проверяет конфигурацию подключения без сохранения. |
| Перечисляет пользователей 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 testCI запускает те же три команды на Node 20 и 22.
Лицензия
This server cannot be deployed
Maintenance
Related MCP Connectors
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
Safe, read-only Postgres and MySQL access for AI agents. Audit log + column-level controls.
- OleanderOAuthdev.oleander
The all-in-one data stack for agents. Upload files, run SQL, evolve tables, and render charts.
Connect AI agents to ProductNow's context engine to search, create, review, and act.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables 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.-
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to connect to and query an SQLite database through the Model Context Protocol, allowing natural language interaction with database tables and data.-
- AlicenseAqualityDmaintenanceEnables AI agents to search and read Metabase dashboards and cards, explore database schema, and run read-only query previews through the Model Context Protocol.1715 npm2MIT
- FlicenseAqualityDmaintenanceEnables AI assistants to query, analyze, and manage SQL Server databases through natural language via the Model Context Protocol.61-