sqlite-guard-mcp
sqlite-guard-mcp
Permite que un agente de IA trabaje en tu base de datos SQLite sin confiar en él.
Un servidor MCP con cuatro herramientas — schema, query, execute, audit_log — y tres garantías:
Las lecturas no pueden escribir.
queryse ejecuta en una conexión separada abierta conSQLITE_OPEN_READONLYa nivel de C. Una escritura disfrazada (/* solo comprobando */ UPDATE …) no es detectada por una expresión regular — es rechazada por el propio SQLite. Cumplimiento por construcción, no por inspección.Las escrituras se ejecutan primero en seco.
executeejecuta la sentencia dentro de una transacción que siempre se revierte e informa lo que habría sucedido (changes,lastInsertRowid). Confirmar requiere volver a llamar conconfirm: true— el agente debe declarar su intención dos veces, y su operador ve el efecto previsto entre medias.Las escrituras confirmadas dejan un rastro que puedes recorrer hacia atrás. Antes de cualquier confirmación, se crea una instantánea del archivo de la base de datos (
VACUUM INTO— transaccionalmente consistente incluso bajo WAL con lectores activos). La escritura y su fila de auditoría de solo anexión se confirman en la misma transacción: no puedes terminar con un cambio sin una entrada de auditoría, o una entrada de auditoría para un cambio que no ocurrió.
Por qué existe esto
Ejecuto un panel de control de finanzas personales cuya interfaz de usuario es deliberadamente de solo lectura — cada número en él es editado por agentes de IA a través de SQL. Esa arquitectura es maravillosa (sin formularios, sin puntos finales de escritura, los agentes mantienen los libros) hasta que un agente ejecuta un UPDATE de aspecto plausible con una cláusula WHERE incorrecta.
La conclusión de operar ese sistema: lo que el SQL de los agentes necesita no es un modelo más inteligente, es lo mismo que las operaciones humanas necesitaron durante décadas — separación de lectura/escritura, un paso de planificar/aplicar, copias de seguridad y un registro de auditoría. Este servidor empaqueta esas cuatro cosas detrás de MCP para que cualquier agente (Claude Code, o cualquier otra cosa que hable MCP) las obtenga gratis en cualquier archivo SQLite.
Related MCP server: SQLite Read-Only MCP Server
Inicio rápido
npm install
npm run demo # full guardrail walkthrough on a temp DB — 10 seconds, no setup
npm test # 10 tests: rollback semantics, backup consistency, audit atomicityConéctalo a Claude Code:
claude mcp add sqlite-guard \
-e SQLITE_GUARD_DB=/path/to/app.db \
-- npx tsx src/server.tsO inspecciónalo interactivamente: npx @modelcontextprotocol/inspector npx tsx src/server.ts
(con SQLITE_GUARD_DB configurada).
Las herramientas
Herramienta | Contrato |
| Cada tabla con columnas, tipos, claves primarias, conteos de filas — el mapa del agente. |
| SQL de solo lectura con parámetros |
| Sentencia de escritura única con parámetros |
| El rastro de solo anexión de cada escritura confirmada, la más reciente primero. |
Notas de diseño
La ejecución en seco es ejecución real, no una estimación basada en
EXPLAIN: la sentencia se ejecuta genuinamente (desencadenadores, restricciones y todo) y se revierte. Lo que ves es lo que haría una confirmación — incluyendo el error de restricción que encontrarías.Restaurar es copiar un archivo. Las copias de seguridad son archivos SQLite planos nombrados
<db>-backup-<timestamp>; la recuperación de una escritura confirmada incorrecta escp+ reinicio, y la fila de auditoría registra exactamente qué instantánea es anterior a qué escritura.BEGIN/COMMITdel agente son rechazados — el ciclo de vida de la transacción pertenece al guardia. De lo contrario, unBEGINfuera de lugar permitiría que una sentencia posterior confirme la ejecución en seco "revertida".La tabla de auditoría es legible a través de
queryintencionadamente. La transparencia supera al secretismo aquí: el agente puede revisar su propio historial, y el operador puede pedir al agente que resuma qué cambió y cuándo.La clasificación de sentencias (
classify.ts) es etiquetado, no seguridad. Etiqueta filas de auditoría y mensajes de error; los límites de seguridad son el indicador de conexión y el protocolo de transacción. Cualquier cosa que decida una expresión regular, una entrada determinada puede deshacerla.
Limitaciones (honestas)
No se implementan listas de permitir/denegar por tabla (la API de autorización de SQLite no está expuesta por better-sqlite3); el límite es por base de datos. Apunta el servidor a una base de datos que pretendas que los agentes administren.
VACUUM INTOnecesita SQLite ≥ 3.27 (2019); las compilaciones más antiguas recurren a una copia de archivo, que solo es segura cuando está inactiva.Un servidor MCP = un archivo de base de datos. Ejecuta varias instancias para varios archivos.
Stack
TypeScript · @modelcontextprotocol/sdk (transporte stdio) · better-sqlite3 · zod · vitest.
Licencia
MIT © Brandon Ta
This server cannot be installed
Maintenance
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
- AlicenseBqualityAmaintenanceProvides comprehensive SQLite database operations for LLMs with security features, transaction support, and separation of read-only and destructive operations.2213819MIT
- AlicenseAqualityCmaintenanceEnables safe, read-only SQL access to SQLite databases for AI agents, allowing schema exploration and SELECT queries with defense-in-depth protections.3MIT
- AlicenseBqualityBmaintenanceEnables LLM agents to query databases with read-only access, while requiring human approval for writes through a token-based confirmation system.6GPL 3.0
- Flicense-qualityBmaintenanceEnables AI agents to query a SQLite database using natural language through the Model Context Protocol (MCP). Includes security guardrails that block destructive SQL operations.
Related MCP Connectors
Runtime permission, approval, and audit layer for AI agent tool execution.
See, price, and control every tool call your AI agents make: policy checks, cost, and audit tools.
The WAF for agents. Pattern-based + heuristic firewall scans prompts, RAG documents, tool argume...
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/Brandon-35/sqlite-guard-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server