Skip to main content
Glama
egoring

sql-guard-mcp

by egoring

sql-guard-mcp

CI

Read-only SQL für KI-Agenten, mit mehrschichtigen Sicherheitsvorkehrungen.

Einem LLM-Agenten rohen Datenbankzugriff zu gewähren, ist ein Eigentor. Dieser MCP-Server öffnet Agenten eine SQLite-Datenbank über vier unabhängige Schutzschichten, sodass das Schlimmste, was ein Agent tun kann, zu langsames Lesen ist – und selbst das wird unterbunden.

한국어 문서: README.ko.md

Schutzschichten

Schutzschicht

Was sie verhindert

Wie

Abfragevalidierung

Schreibvorgänge, Schemaänderungen, Injection über gestapelte Anweisungen

Nur einzelne SELECT/WITH-Anweisungen; Scan auf verbotene Schlüsselwörter (INSERT, DROP, PRAGMA, ATTACH, ...); Ablehnung mehrerer Anweisungen

Tabellen-Whitelist

Lesen sensibler Tabellen (PII, Anmeldedaten)

FROM/JOIN-Bezeichner werden gegen SQLGUARD_ALLOWED_TABLES geprüft; filtert auch list_tables/describe_table

Zeilenlimit

Überflutung des Kontextfensters

Jede Abfrage wird als Unterabfrage mit einem serverseitigen LIMIT umschlossen – ein vom Benutzer angegebenes LIMIT 999999 kann es nicht überschreiben; Kürzung wird gekennzeichnet

Ausführungslimit

Außer Kontrolle geratene Abfragen (kartesische Joins)

SQLite-Fortschritts-Watchdog bricht nach N VM-Schritten mit einer verständlichen Meldung ab

Betriebssystemebene schreibgeschützt

Alles oben Genannte schlägt fehl

Verbindung wird mit mode=ro geöffnet – die letzte Verteidigungslinie, von SQLite selbst erzwungen

Das Designprinzip stammt aus der Entwicklung von Entscheidungsschutzmechanismen für einen Produktions-LLM-Agenten: Vertraue nicht darauf, dass das Modell vorsichtig ist – mache Nachlässigkeit unmöglich und sorge dafür, dass jede Ablehnungsmeldung dem Agenten sagt, was er stattdessen tun soll.

Related MCP server: sqlite-analyst

Werkzeuge

  • sql_list_tables — sichtbare Tabellen (Whitelist angewendet)

  • sql_describe_table — Spalten, Typen, Zeilenanzahl

  • sql_query — geschützte schreibgeschützte Abfrage

  • sql_guard_status — aktuelle Schutz-Konfiguration (Transparenz für Debugging)

Demo

Verbunden mit Claude Desktop, Abfrage der gebündelten Demo-Datenbank für Werbekampagnen – und Ablehnung einer Lösch-Anfrage:

sql-guard-mcp Demo: CTR-Ranking beantwortet, DELETE-Anfrage abgelehnt

Der Agent erkundet und aggregiert frei („Welche aktive Kampagne hat die beste CTR?“), aber wenn er aufgefordert wird, die Tabelle campaigns zu löschen, lehnt der Schutz dies ab und der Agent erklärt warum – schreibgeschützt von Design, im Code erzwungen, nicht durch Prompt.

Einrichtung

Keine Abhängigkeiten außer dem MCP SDK – eine synthetische Demo-Datenbank für Werbekampagnen ist gebündelt und wird beim ersten Start automatisch erstellt.

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

Dann frag: „Welche aktive Kampagne hatte letzte Woche die beste CTR?“ – der Agent erkundet das Schema und führt Abfragen innerhalb der Schutzvorkehrungen aus. Versuch, ihn zu bitten, etwas zu löschen; lies die Ablehnung.

Test

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

Die Tests umfassen die adversarischen Fälle: gestapelte Anweisungen, mit SELECT präfixierte Schreibvorgänge, Whitelist-Umgehung über JOIN, Versuche, das vom Benutzer angegebene LIMIT zu überschreiben, und ein außer Kontrolle geratener kartesischer Join, der vom VM-Schritt-Watchdog abgebrochen wird.

Lizenz

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