sqlite-readonly-mcp
sqlite-readonly-mcp
Сервер SQLite в режиме только для чтения для протокола Model Context Protocol, работающий на удаленном сервере Linux. Использует Streamable HTTP (/mcp), аутентификацию через Bearer Token, а результаты запросов возвращаются в виде JSON-текста. Разработан для размещения за Nginx (HTTPS), при этом вышестоящий сервер прослушивает только локальный хост.
Функции
Инструмент
sqlite_query: выполнение одиночного запросаSELECT/WITH/EXPLAIN, возвращает JSON в формате{ rows, rowCount }.Инструмент
list_tables: вывод списка имен таблиц (за исключением системных).SQLite:
better-sqlite3с флагами readonly + fileMustExist; на уровне приложения ограничено выполнение только одного оператора и проверка префикса запроса.GET /health: только для локального доступа, используется для проверки работоспособности (см.src/server.ts).Передача данных: Streamable HTTP (
/mcp) + устаревший SSE (GET /sse,POST /messages) для обеспечения обратной совместимости с Cursor при необходимости.
Related MCP server: PostgreSQL MCP Server
Переменные окружения
Переменная | Обязательно | Описание |
| Да | Абсолютный путь к файлу базы данных |
| Да | Статический Bearer-токен (можно также использовать |
| Нет | По умолчанию |
| Нет | По умолчанию |
| Нет | Список разрешенных заголовков |
| Нет | Максимальное количество строк за один запрос, по умолчанию |
Локальная сборка и запуск
npm install
npm run build
export SQLITE_PATH=/path/to/db.sqlite
export BEARER_TOKEN='your-secret-token'
export ALLOWED_HOSTS='127.0.0.1,localhost'
node dist/server.jsРазработка и отладка: npm run dev
Nginx и systemd
См. deploy/nginx.example.conf, deploy/sqlite-readonly-mcp.service, deploy/sqlite-readonly-mcp.env.example.
Основные моменты: передача заголовков Authorization, Accept, Content-Type, mcp-session-id на вышестоящий сервер; отключение proxy_buffering для SSE/потоковых ответов. В примерах уже включены **/sse**, **/messages** (устаревший SSE-откат) вместе с Streamable HTTP /mcp для обратного проксирования.
Запуск от имени пользователя root (рекомендуемый пример)
Для упрощения настройки прав доступа на чтение к файлу SQLite и родительскому каталогу, в примере сервис запускается от имени root (в unit-файле systemd не указаны User= / Group=, по умолчанию используется root).
Разместите код и артефакты сборки, например, в
/opt/sqlite-readonly-mcp, и выполнитеnpm ci --omit=devиnpm run build.Скопируйте файл окружения и заполните переменные:
sudo cp deploy/sqlite-readonly-mcp.env.example /etc/sqlite-readonly-mcp.env
sudo chmod 600 /etc/sqlite-readonly-mcp.envУстановите и активируйте unit-файл (при необходимости измените
WorkingDirectoryи абсолютный путь кnodeвExecStart):
sudo cp deploy/sqlite-readonly-mcp.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now sqlite-readonly-mcp
sudo systemctl status sqlite-readonly-mcpЕсли вы ранее добавляли User=mcp, удалите эту строку, затем выполните daemon-reload и restart.
Совет по безопасности: взлом процесса root несет более серьезные последствия, поэтому обязательно используйте HTTPS, Bearer-токены, прослушивание локального хоста + Nginx, брандмауэр; если требуются минимальные привилегии, вернитесь к использованию выделенного пользователя и настройте права доступа к файлу данных и путям отдельно.
Ручная проверка (curl)
MCP требует, чтобы клиент принимал как application/json, так и text/event-stream:
curl -sS -D - \
-H "Authorization: Bearer $BEARER_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"curl","version":"1.0"}}}' \
"https://mcp.example.com/mcp"Неверный токен должен возвращать 401.
Клиент Cursor
В настройках MCP в Cursor укажите HTTPS URL для этого удаленного сервиса (например, https://mcp.example.com/mcp). Если требуется Bearer-токен, проверьте, поддерживает ли текущая версия Cursor настройку пользовательских заголовков для удаленных MCP; если нет, потребуется добавить локальный шлюз с фиксированным заголовком Authorization (см. описание рисков решения).
Эксплуатация
Подробности см. в docs/RUNBOOK.md.
Лицензия
MIT (в соответствии с @modelcontextprotocol/sdk; действуют лицензии соответствующих зависимостей).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Read-only MCP server for The Quiet Protocol's engines, benchmarks, proof, and business data.
Read-only MCP server for ClassQuill, a tutoring-business-management platform.
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
OAuth-protected, read-only-by-default MCP server for provenance-labeled QuillCaddie project memory.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA lightweight MCP server that provides read-only access to SQLite databases, allowing users to execute SELECT queries, list tables, and describe table schemas.1MIT
- AlicenseNot gradedqualityDmaintenanceA production-ready MCP server that enables safe, read-only SQL SELECT queries against PostgreSQL databases with built-in security validation. It features connection pooling, automatic row limits, and structured logging to ensure secure and reliable database interactions.29ISC
- AlicenseNot gradedqualityFmaintenanceRead-only MCP server for SQL databases (SQL Server, Postgres, SQLite) with multi-server support and three-layer safety using AST validation and linting.MIT
- FlicenseNot gradedqualityCmaintenanceCustom MCP server connected to a read-only SQLite database, exposing a schema resource and a query tool for safe data retrieval.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/dochaocn/sqlite-readonly-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server