Skip to main content
Glama
egoring

sql-guard-mcp

by egoring

sql-guard-mcp

CI

SQL de solo lectura para agentes de IA, con salvaguardas de seguridad en capas.

Dar a un agente LLM acceso sin restricciones a la base de datos es un tiro en el pie. Este servidor MCP abre una base de datos SQLite a los agentes a través de cuatro capas de protección independientes, de modo que lo peor que un agente puede hacer es leer demasiado despacio — e incluso eso se corta.

Documentación en coreano: README.ko.md

Capas de protección

Capa

Qué impide

Cómo

Validación de consultas

Escrituras, cambios de esquema, inyección mediante sentencias apiladas

Solo sentencias SELECT/WITH individuales; escaneo de palabras clave prohibidas (INSERT, DROP, PRAGMA, ATTACH, ...); rechazo de sentencias múltiples

Lista blanca de tablas

Lectura de tablas sensibles (PII, credenciales)

Identificadores de FROM/JOIN verificados contra SQLGUARD_ALLOWED_TABLES; también filtra list_tables/describe_table

Límite de filas

Inundación de la ventana de contexto

Cada consulta se envuelve como una subconsulta con un LIMIT del lado del servidor — un LIMIT 999999 proporcionado por el usuario no puede anularlo; la truncación se señala

Límite de ejecución

Consultas descontroladas (joins cartesianos)

Un watchdog del controlador de progreso de SQLite aborta después de N pasos de la VM con un mensaje accionable

Solo lectura a nivel de SO

Si todo lo anterior falla

Conexión abierta con mode=ro — la última línea de defensa, aplicada por el propio SQLite

El principio de diseño surge de construir salvaguardas de decisión para un agente LLM de producción: no confíes en que el modelo sea cuidadoso — haz que el descuido sea imposible, y haz que cada mensaje de rechazo le diga al agente qué hacer en su lugar.

Related MCP server: sqlite-analyst

Herramientas

  • sql_list_tables — tablas visibles (lista blanca aplicada)

  • sql_describe_table — columnas, tipos, número de filas

  • sql_query — consulta de solo lectura protegida

  • sql_guard_status — configuración de protección actual (transparencia para depuración)

Demo

Conectado a Claude Desktop, consultando la base de datos de demostración de campañas publicitarias incluida — y rechazando una solicitud de borrado:

Demo de sql-guard-mcp: respuesta del ranking de CTR, solicitud DELETE rechazada

El agente explora y agrega libremente («¿Qué campaña activa tiene el mejor CTR?»), pero cuando se le pide que elimine la tabla campaigns, la protección rechaza la petición y el agente explica por qué — solo lectura por diseño, aplicada en el código, no mediante el prompt.

Configuración

Cero dependencias aparte del MCP SDK — se incluye una base de datos de demostración sintética de campañas publicitarias que se crea automáticamente en la primera ejecución.

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" }
    }
  }
}

Luego pregunta: «¿Qué campaña activa tuvo el mejor CTR la semana pasada?» — el agente explora el esquema y realiza consultas dentro de los límites de seguridad. Intenta pedirle que borre algo; lee el rechazo.

Pruebas

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

Las pruebas incluyen los casos adversarios: sentencias apiladas, escrituras con prefijo SELECT, evasión de la lista blanca mediante JOIN, intentos de anular un LIMIT proporcionado por el usuario y un join cartesiano desbocado abortado por el watchdog de pasos de la VM.

Licencia

MIT

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    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
    -