/ Verzeichnis / Playground / SQLite
● Offiziell modelcontextprotocol ⚡ Sofort

SQLite

von modelcontextprotocol · modelcontextprotocol/servers

Fragen Sie eine lokale SQLite-Datei ab. Perfekt für persönliche Projekte, exportierte Daten-Dumps oder Analysen einer Journal-/Protokoll-/Datenbankdatei.

Der Referenz-SQLite-MCP. Zeigt auf eine einzelne SQLite-Datei und macht Schema-Introspektion, Leseabfragen und Schreibabfragen verfügbar (konfigurierbar). Kein Setup, kein Server, kein Netzwerk – und im Gegensatz zu Postgres MCP kann es auch schreiben, wenn Sie es zulassen.

Warum nutzen

Hauptfunktionen

Live-Demo

In der Praxis

sqlite.replay ▶ bereit
0/0

Installieren

Wählen Sie Ihren Client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "sqlite": {
      "command": "uvx",
      "args": [
        "mcp-server-sqlite",
        "--db-path",
        "/data/sample.db"
      ]
    }
  }
}

Öffne Claude Desktop → Settings → Developer → Edit Config. Nach dem Speichern neu starten.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "sqlite": {
      "command": "uvx",
      "args": [
        "mcp-server-sqlite",
        "--db-path",
        "/data/sample.db"
      ]
    }
  }
}

Cursor nutzt das gleiche mcpServers-Schema wie Claude Desktop. Projektkonfiguration schlägt die globale.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "sqlite": {
      "command": "uvx",
      "args": [
        "mcp-server-sqlite",
        "--db-path",
        "/data/sample.db"
      ]
    }
  }
}

Klicken Sie auf das MCP-Servers-Symbol in der Cline-Seitenleiste, dann "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "sqlite": {
      "command": "uvx",
      "args": [
        "mcp-server-sqlite",
        "--db-path",
        "/data/sample.db"
      ]
    }
  }
}

Gleiche Struktur wie Claude Desktop. Windsurf neu starten zum Übernehmen.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "sqlite",
      "command": "uvx",
      "args": [
        "mcp-server-sqlite",
        "--db-path",
        "/data/sample.db"
      ]
    }
  ]
}

Continue nutzt ein Array von Serverobjekten statt einer Map.

~/.config/zed/settings.json
{
  "context_servers": {
    "sqlite": {
      "command": {
        "path": "uvx",
        "args": [
          "mcp-server-sqlite",
          "--db-path",
          "/data/sample.db"
        ]
      }
    }
  }
}

In context_servers hinzufügen. Zed lädt beim Speichern neu.

claude mcp add sqlite -- uvx mcp-server-sqlite --db-path /data/sample.db

Einzeiler. Prüfen mit claude mcp list. Entfernen mit claude mcp remove.

Anwendungsfälle

Praxisnahe Nutzung: SQLite

Analysieren Sie einen CSV/JSON-Dump, indem Sie ihn in SQLite laden

👤 Analysten und Ingenieure untersuchen exportierte Daten ⏱ ~15 min beginner

Wann einsetzen: Jemand hat Ihnen eine CSV-Datei mit 200.000 Zeilen und der Frage „Welches Segment konvertiert am besten?“ gesendet. — zu groß für Tabellenkalkulationen, zu klein für eine echte Datenbank.

Voraussetzungen
  • Quelldatei auf der Festplatte — Speichern Sie als .csv oder .json in einem Arbeitsordner
  • Ein leerer SQLite-Dateipfad — Wählen Sie einen Speicherort wie /tmp/analysis.db; Der MCP wird es erstellen
Ablauf
  1. Erstellen Sie die Tabelle und laden Sie sie
    Erstellen Sie eine Tabelle „signups“ in /tmp/analysis.db, die den Spalten von /data/signups.csv entspricht. Alle Zeilen laden. Sagen Sie mir die Anzahl der Zeilen.✓ Kopiert
    → Tabelle erstellt, Zeilenanzahl stimmt mit der Datei überein
  2. Erkunden Sie das Schema
    Welche Spalten gibt es? Wie ist jeweils die Werteverteilung (die fünf wichtigsten eindeutigen Werte für kategoriale Werte; Min./Max./Durchschnitt für Zahlen)?✓ Kopiert
    → Profil pro Spalte
  3. Beantworten Sie die eigentliche Frage
    Gruppieren Sie nach signup_source. Berechnen Sie für jeden: Gesamtzahl der Anmeldungen, Conversion-Rate (Anmeldungen mit abgeschlossenem_onboarding=true/gesamt). Sortieren Sie nach Conversion-Rate.✓ Kopiert
    → Entscheidungstabelle mit der angezeigten SQL

Ergebnis: Vertretbare Antworten in 5 Minuten, mit einer .db-Datei, die Sie erneut abfragen können, wenn neue Fragen auftauchen.

Fallstricke
  • CSV-Spalten automatisch falsch eingegeben (Zahlen als TEXT) — Führen Sie nach dem Laden „PRAGMA table_info(signups)“ und CAST aus oder erstellen Sie bei Bedarf Spalten mit expliziten Typen neu
  • Datumszeichenfolgen werden nicht korrekt als TEXT sortiert/vergleicht — Speichern Sie Daten als ISO 8601 (JJJJ-MM-TTTHH:MM:SSZ), also lexikographisch = chronologisch; oder verwenden Sie „julianday()“ für Mathematik
Kombinieren mit: filesystem · antv-chart

Überprüfen und bearbeiten Sie die SQLite-Datenbank einer persönlichen App

👤 Entwickler, die CLI-Tools, Journal-Apps oder Local-First-Software entwickeln ⏱ ~10 min beginner

Wann einsetzen: Sie erstellen eine Local-First-App und möchten sehen, was sich in der Datenbank befindet, ohne dafür eine CLI zu schreiben.

Ablauf
  1. Überprüfen Sie das Schema
    Listen Sie jede Tabelle in /Users/me/Library/Application Support/MyApp/data.db auf. Zeigen Sie jeweils das Schema und die Zeilenanzahl an.✓ Kopiert
    → Inventar der Live-App-Datenbank
  2. Untersuchen Sie eine Reihe
    Suchen Sie den Benutzerdatensatz mit email = „[email protected]“. Zeigen Sie die Zeile und alle zugehörigen Zeilen in anderen Tabellen (Bestellungen, Sitzungen) an.✓ Kopiert
    → Vollständiges Bild der Daten eines Benutzers
  3. Korrigieren Sie fehlerhafte Daten
    Für diesen Benutzer liegt eine Bestellung von vor zwei Tagen im Status „Ausstehend“ vor. Aktualisieren Sie es auf „abgebrochen“. Zeigen Sie die SQL vor der Ausführung an.✓ Kopiert
    → SQL-Vorschau vor der Mutation, dann Zeile aktualisiert

Ergebnis: App-Debugging, ohne wegwerfbare SQL-Skripte zu schreiben.

Fallstricke
  • Bei der App ist die Datenbank möglicherweise im WAL-Modus geöffnet — Wenn Sie die Meldung „Datenbank ist gesperrt“ erhalten, stoppen Sie die App oder fragen Sie den mit WAL zusammengeführten schreibgeschützten Snapshot über „?mode=ro&immutable=1“ ab
Kombinieren mit: filesystem

Erstellen Sie deterministische Testvorrichtungen aus einer Stichprobe von Produktdaten

👤 Ingenieure schreiben Integrationstests ⏱ ~25 min intermediate

Wann einsetzen: Sie möchten wiederholbare Testdaten, die einem Produkt ähneln, aber klein und sicher sind.

Ablauf
  1. Beispiel für anonymisierte Zeilen
    Probieren Sie aus /prod-export/orders.db 100 Zeilen aus „Bestellungen“ aus, die jeden Status abdecken. Namen und E-Mails anonymisieren.✓ Kopiert
    → Beispiel mit anonymisierten PII
  2. Als Fixture-Datei speichern
    Schreiben Sie die Stichprobenzeilen als neue SQLite-Datei nach /test/fixtures/orders.db. Schema einschließen.✓ Kopiert
    → Neue Fixture-Datei erstellt
  3. Überprüfen Sie es mit Ihrem Testloader
    Führen Sie meine Testsuite („npm test“) aus – übernimmt sie das neue Fixture? Wenn nicht, was ist der erste fehlgeschlagene Test?✓ Kopiert
    → Tests laufen; Fehler lokalisiert

Ergebnis: Realistische Vorrichtungen, die nicht von realen Datenformen abweichen.

Fallstricke
  • Anonymisierung, die die referenzielle Integrität bricht — Join-Schlüssel konsistent (gleicher Hash) über Tabellen hinweg anonymisieren; niemals pro Zeile randomisieren
Kombinieren mit: filesystem · github

Analysieren Sie eine SQLite-gestützte Protokoll-/Ereignisdatei

👤 Ingenieure debuggen CLI-Tools oder Apps, die sich bei SQLite protokollieren ⏱ ~10 min beginner

Wann einsetzen: Viele moderne Tools (Homebrew, einige Browser, App-Caches) speichern den Status in SQLite. Sie möchten sie abfragen.

Ablauf
  1. Bestätigen Sie, dass es sich um die richtige Datei handelt
    Öffnen Sie ~/Library/Application Support/SomeApp/cache.db. Listen Sie Tabellen und eine Auswahl der letzten Zeilen auf.✓ Kopiert
    → Ein erkennbares Schema bestätigt, dass Sie über die richtige Datei verfügen
  2. Finden Sie die Antwort
    Wie viele Einträge enthält der Cache pro Quelldomäne? Top 20.✓ Kopiert
    → Aggregationsergebnis
  3. Optional aufräumen
    Löschen Sie Einträge von Domains, auf die seit 90 Tagen nicht zugegriffen wurde. Zuerst die Anzahl anzeigen, vor dem Löschen nachfragen.✓ Kopiert
    → Vorschau, Bestätigung, dann löschen

Ergebnis: Antworten zum App-Verhalten, ohne dass ein integrierter „Stats“-Befehl erforderlich ist.

Fallstricke
  • Wenn Sie die Live-Datenbank einer App ändern, während die App ausgeführt wird, kann diese beschädigt werden — Schließen Sie immer zuerst die App oder arbeiten Sie an einer Kopie der .db-Datei
Kombinieren mit: filesystem

Kombinationen

Mit anderen MCPs für 10-fache Wirkung

sqlite + filesystem

Lesen Sie eine CSV-Datei von der Festplatte und laden Sie sie zur Analyse in SQLite

Lesen Sie /data/orders.csv mit dem Dateisystem-MCP, leiten Sie Typen ab und laden Sie es über SQLite MCP als Tabelle „orders“ in /tmp/analysis.db.✓ Kopiert
sqlite + antv-chart

Fragen Sie eine SQLite-Datenbank ab und stellen Sie die Ergebnisse grafisch dar

Erhalten Sie unter /tmp/analysis.db monatliche Anmeldungen für 2026. Rendern Sie sie als Balkendiagramm über antv-chart.✓ Kopiert
sqlite + github

Analysieren Sie Daten und schreiben Sie Ergebnisse in ein GitHub-Issue

Führen Sie meine Abwanderungsanalyse auf /tmp/users.db aus. Erstellen Sie ein GitHub-Problem in acme/analytics, in dem Sie die drei wichtigsten Ergebnisse mit dem SQL-Anhang zusammenfassen.✓ Kopiert

Werkzeuge

Was dieses MCP bereitstellt

WerkzeugEingabenWann aufrufenKosten
list_tables none Der erste Schritt in jeder Sitzung free
describe_table table_name: str Untersuchen Sie das Schema einer einzelnen Tabelle free
read_query query: str (SELECT only) Führen Sie ein SELECT aus – standardmäßig sicher free
write_query query: str (INSERT/UPDATE/DELETE) Daten mutieren – Gated; erfordert bei den meisten Klienten eine ausdrückliche Zustimmung free
create_table query: str (CREATE TABLE ...) DDL – Schema erstellen oder ändern free
append_insight insight: str Fügen Sie dem Sitzungsmemo einen Befund hinzu (wird von einigen Kunden zum Erstellen eines Berichts verwendet). free

Kosten & Limits

Was der Betrieb kostet

API-Kontingent
Unbegrenzt – lokal
Tokens pro Aufruf
Schemaabfragen: klein. Ergebnismengen skalieren mit der Zeilenanzahl – bei explorativen Abfragen immer LIMIT
Kosten in €
Frei
Tipp
Fügen Sie „LIMIT 100“ zu jeder explorativen Abfrage hinzu und entfernen Sie es erst, wenn Sie wissen, was Sie zurückbekommen.

Sicherheit

Rechte, Secrets, Reichweite

Credential-Speicherung: Keine Anmeldeinformationen. Die DB-Datei ist der Pfad, den Sie über „--db-path“ starten.
Datenabfluss: Keine vom Server. Abfrageergebnisse werden als Kontext an Ihren LLM-Anbieter gesendet.
Niemals gewähren: never point at a file holding sensitive data unless you intend the model to see it

Fehlerbehebung

Häufige Fehler und Lösungen

database is locked

Ein anderer Prozess (oft die App, die die Datenbank besitzt) hält die Sperre. Schließen Sie diesen Prozess oder kopieren Sie die .db-Datei und fragen Sie die Kopie ab.

Prüfen: lsof <db file>
no such table: X

Falsche DB-Datei oder falsches Schema, nicht das, was Sie denken. Führen Sie „list_tables“ aus, um zu sehen, was tatsächlich vorhanden ist. Überprüfen Sie das Startargument „--db-path“ in Ihrer MCP-Client-Konfiguration.

datatype mismatch / unexpected NULL

SQLite ist dynamisch typisiert – eine als INTEGER deklarierte Spalte kann TEXT enthalten. Verwenden Sie „CAST(col AS INTEGER)“ defensiv oder korrigieren Sie es beim Laden.

Disk image is malformed

Die Datenbank ist beschädigt, häufig weil ein Prozess während eines Schreibvorgangs beendet wurde. Versuchen Sie es mit „sqlite3 file.db .recover > out.sql“ und erstellen Sie es aus dem Dump neu.

Alternativen

SQLite vs. andere

AlternativeWann stattdessenKompromiss
Postgres MCPGleichzeitiger Zugriff mehrerer Benutzer, vernetzte Datenbank oder Sie nutzen bereits PostgresBenötigt einen Server; Postgres MCP ist konstruktionsbedingt schreibgeschützt
DuckDB (via shell)Gleiches Ein-Datei-Modell, jedoch für OLAP-förmige Analysen mit viel schnelleren ScansNoch kein Erstanbieter-MCP; säulenförmig, also unterschiedliche Leistungsmerkmale
dbHubSie benötigen einen MCP für SQLite + Postgres + MySQL + andereNeuer; weniger kampferprobt

Mehr

Ressourcen

📖 Offizielle README auf GitHub lesen

🐙 Offene Issues ansehen

🔍 Alle 400+ MCP-Server und Skills durchsuchen