SQLite MCP Sidecar — MCP-сервер для Claude Code: запуск и функции
Сервер запускается рядом с работающей базой SQLite и даёт агенту доступ к данным через HTTP, защищая таблицы от случайного удаления и поломки каскадами.
Открыть на GitHubЧто делает SQLite MCP Sidecar
Сервер работает как отдельный процесс-сайдкар на .NET 10 рядом с уже существующей базой SQLite. Общение идёт по протоколу MCP через HTTP. Ответы на выборки возвращаются в компактном табличном виде TOON, что тратит меньше токенов по сравнению со стандартным JSON. Базу данных сервер сам не создаёт, поэтому рабочий файл приложения уже должен лежать на диске.
Главный фокус архитектуры сделан на защите от ошибок авторизованного агента. Обычные команды update и delete не принимают произвольный SQL. Фильтры строятся только через связку AND, исключая логическое OR внутри одного запроса. Параметр maxRows задаёт жёсткий порог: он учитывает не только прямые совпадения, но также действия триггеров и каскадные удаления ON DELETE CASCADE. Если операция превышает лимит, происходит откат всей транзакции. Для защиты от дублей обязателен заголовок requestId, возвращающий сохранённый ответ при повторной отправке.
Даже при правах только на чтение каталог с базой в Docker обязан монтироваться на запись. Причиной тому служит режим WAL: библиотека SQLite пытается открыть файл -shm на чтение и запись, а read-only монтирование сразу роняет процесс. Запускать две реплики для одной базы нельзя, поскольку бюджеты запросов и кеш ответов хранятся в памяти единственного процесса.
Какие задачи решает
- дать агенту безопасный доступ к работающей SQLite без прямого SQL
- предотвратить массовое удаление строк из-за ошибки в предикате агента
- проконтролировать число затронутых строк с учётом триггеров и каскадов
- снять резервную копию базы данных во время непрерывной записи сервиса
Примеры запросов агенту
- Покажи схему таблиц и индексов из рабочей базы данных
- Найди в таблице заказов строки со статусом failed
- Обнови статус в таблице задач на done для записи с id 54, лимит строк 1
Как установить SQLite MCP Sidecar
Установка
Команды запуска нет в реестре MCP — смотрите README репозитория
По шагам, с командами для каждой платформы: Как подключить MCP-сервер: Claude Code, Codex, Cursor, VS Code, Gemini CLI и другие
Вопросы о SQLite MCP Sidecar
Как установить SQLite MCP Sidecar в Claude Code?
Запустите контейнер командой `docker run -d --name sqlite-sidecar -p 127.0.0.1:8080:8080 -v /srv/myapp/data:/data -e SQLITE_SIDECAR_DB=/data/app.db -e SQLITE_SIDECAR_TOKEN='<a long random string>' -e SQLITE_SIDECAR_PERMISSIONS=schema,read --read-only --tmpfs /tmp --cap-drop=ALL --security-opt=no-new-privileges ghcr.io/xakpc/sqlite-mcp-sidecar:latest. После этого добавьте в настройки mcpServers вашего клиента эндпоинт /db/mcp (например, https://example.com/db/mcp) и токен в заголовке Authorization`.
Что делает SQLite MCP Sidecar?
Он открывает агенту доступ к живому файлу SQLite через HTTP-интерфейс MCP. Сервер исключает опасные операции, преобразует ответы в компактный формат TOON и останавливает запросы, превышающие лимит затронутых строк.
Почему том базы данных в Docker требует права на запись при режиме только для чтения?
При включённом режиме WAL драйвер SQLite открывает служебный файл -shm на запись даже для обычного чтения. Если каталог примонтирован в режиме read-only, процесс аварийно завершится с системной ошибкой доступа.