Skip to main content
Glama
egoring

sql-guard-mcp

by egoring

sql-guard-mcp

CI

SQL только для чтения для ИИ-агентов, с многоуровневыми защитными механизмами.

Предоставление LLM-агенту прямого доступа к базе данных — это выстрел себе в ногу. Этот MCP-сервер открывает базу данных SQLite для агентов через четыре независимых уровня защиты, так что худшее, что может сделать агент, — это читать слишком медленно, и даже это будет прервано.

한국어 문서: README.ko.md

Слои защиты

Слой

Что предотвращает

Как

Проверка запросов

Запись, изменение схемы, инъекции через составные запросы

Только одиночные выражения SELECT/WITH; сканирование запрещённых ключевых слов (INSERT, DROP, PRAGMA, ATTACH, ...); отклонение многосоставных запросов

Белый список таблиц

Чтение чувствительных таблиц (PII, учётные данные)

Идентификаторы FROM/JOIN проверяются по SQLGUARD_ALLOWED_TABLES; также фильтрует list_tables/describe_table

Ограничение строк

Затопление контекстного окна

Каждый запрос оборачивается в подзапрос с серверным LIMIT — указанный пользователем LIMIT 999999 не может его переопределить; усечение помечается

Ограничение выполнения

Вышедшие из-под контроля запросы (декартовы соединения)

Сторожевой таймер прогресса SQLite прерывает выполнение после N шагов виртуальной машины с сообщением о дальнейших действиях

Режим только для чтения на уровне ОС

Отказ всех предыдущих мер

Подключение открывается с mode=ro — последний рубеж обороны, обеспечивается самой SQLite

Принцип дизайна взят из практики создания защитных механизмов принятия решений для продакшн-LLM-агента: не доверяйте модели быть осторожной — сделайте неосторожность невозможной, и пусть каждое сообщение об отказе подсказывает агенту, что делать вместо этого.

Related MCP server: sqlite-analyst

Инструменты

  • sql_list_tables — видимые таблицы (применён белый список)

  • sql_describe_table — столбцы, типы, количество строк

  • sql_query — защищённый запрос только для чтения

  • sql_guard_status — текущая конфигурация защит (прозрачность для отладки)

Демонстрация

Подключено к Claude Desktop, запрос к встроенной демо-БД рекламной кампании — и отказ на запрос удаления:

демо sql-guard-mcp: дан ответ на запрос о рейтинге CTR, запрос DELETE отклонён

Агент свободно исследует и агрегирует («У какой активной кампании лучший CTR?»), но когда его просят очистить таблицу campaigns, защита отклоняет запрос, и агент объясняет почему — режим только для чтения по замыслу, обеспечен кодом, а не промптом.

Установка

Никаких зависимостей, кроме MCP SDK, — синтетическая демо-БД рекламных кампаний включена в комплект и автоматически создаётся при первом запуске.

pip install -e .

# optional configuration
export SQLGUARD_DB="/path/to/your.db"                      # default: bundled demo
export SQLGUARD_ALLOWED_TABLES="campaigns,daily_stats"     # default: all tables
export SQLGUARD_MAX_ROWS="200"

Claude Desktop

{
  "mcpServers": {
    "sql-guard-mcp": {
      "command": "sql-guard-mcp",
      "env": { "SQLGUARD_ALLOWED_TABLES": "campaigns,daily_stats" }
    }
  }
}

Затем спросите: «У какой активной кампании был лучший CTR на прошлой неделе?» — агент исследует схему и выполняет запросы в рамках ограничений. Попробуйте попросить его что-нибудь удалить; прочитайте отказ.

Тесты

pip install -e ".[dev]"
pytest   # guard validation + execution enforcement, no external DB needed

Тесты включают состязательные случаи: составные запросы, записи с префиксом SELECT, обход белого списка через JOIN, попытки переопределения через указанный пользователем LIMIT и вышедшее из-под контроля декартово соединение, прерванное сторожевым таймером шагов виртуальной машины.

Лицензия

MIT

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to explore and query SQLite databases through read-only tools, with defense-in-depth sandboxing preventing any data modifications.
    MIT
  • F
    license
    A
    quality
    C
    maintenance
    Enables AI agents to safely explore and query a SQLite database in read-only mode, allowing them to inspect schema and run analytical SQL queries without risking data modification.
    3

View all related MCP servers

Related MCP Connectors

  • Explore, query, and inspect SQLite databases with ease. List tables, preview results, and view det…

  • Query PostgreSQL databases in plain English — LLM-generated, safety-validated SQL.

  • Read-only bank access for your AI agent. Connects Claude, ChatGPT, Cursor, Gemini, Codex.

View all MCP Connectors

Latest Blog Posts

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/egoring/sql-guard-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server