Skip to main content
Glama
gwdmnn

db-mcp-server

by gwdmnn

db-mcp-server

Ein lokaler MCP-Server, der einem KI-Codierungsassistenten (z. B. Claude Code) zugangsdatenisolierten Zugriff auf Ihre PostgreSQL-Datenbanken gewährt. Der Assistent sendet nur SQL und erhält nur Zeilen — Datenbank-Benutzernamen, Passwörter und SSH-Schlüssel gelangen nie in den Kontext des Modells oder das Gesprächsprotokoll.

Warum

Die Verbindung eines KI-Assistenten mit einer Datenbank bedeutet normalerweise, Verbindungszeichenfolgen und Passwörter an einem Ort zu platzieren, an dem das Modell (und sein Protokoll) sie lesen kann. Dieser Server hält diese Grenze ein: Er besitzt die verschlüsselten Anmeldedaten und die SSH-Tunnel, stellt eine kleine, nur-SQL-Werkzeugoberfläche bereit und ist standardmäßig schreibgeschützt.

Related MCP server: Postgres Scout MCP

So funktioniert es

  • Katalog (registry.yaml) — nicht-geheime Weiterleitung. Organisiert als Kunden → Umgebungen → Dienste; jeder Dienst ist einem Datenbanknamen und einem secret_ref (einem Zeiger in den Tresor — niemals einer Anmeldeinformation) zugeordnet.

  • Tresor (vault.enc) — AES-256-GCM mit einem aus scrypt abgeleiteten Schlüssel. Enthält die DB-Anmeldedaten, die beim Start einmalig mit einer Passphrase in den Speicher entschlüsselt werden.

  • Tunnel-Pool — ein SSH-Tunnel pro (Kunde, Umgebung) über sshtunnel, gebunden an einen ephemeren 127.0.0.1-Port.

  • Ausführerpsycopg. run_query läuft in einer PostgreSQL READ ONLY-Transaktion (die Engine lehnt jeden Schreibvorgang ab); run_write_query erfordert confirm=true.

Installation

python -m venv .venv
# Windows PowerShell: .venv\Scripts\Activate.ps1   (bash: source .venv/Scripts/activate)
pip install -e ".[dev]"

Konfiguration

Die Konfiguration erfolgt über Umgebungsvariablen; Standardwerte werden relativ zum Projektstamm aufgelöst.

Variable

Zweck

Standard

DB_MCP_PASSPHRASE

Tresor-Passphrase (erforderlich zum Ausführen des Servers)

DB_MCP_REGISTRY

Pfad zu registry.yaml

./registry.yaml

DB_MCP_VAULT

Pfad zu vault.enc

./vault.enc

DB_MCP_KEYS_DIR

Verzeichnis mit den SSH-PEM-Schlüsseln

./keys

DB_MCP_BOOTSTRAP

Pfad zu bootstrap.yaml

./bootstrap.yaml

Bereitstellung (Erstsetup)

  1. Kopieren Sie die Vorlage und füllen Sie echte Werte ein:

    cp bootstrap.example.yaml bootstrap.yaml
  2. Legen Sie Ihre SSH-Privatekeys in keys/ ab (Dateinamen müssen den pem_key-Feldern im Katalog entsprechen).

  3. Generieren Sie den nicht-geheimen Katalog und den verschlüsselten Tresor (fragt nach der Passphrase, die Sie zum Ausführen des Servers wiederverwenden):

    python -m db_mcp_server.bootstrap --dry-run   # preview, writes nothing
    python -m db_mcp_server.bootstrap             # writes registry.yaml + vault.enc
    python -m db_mcp_server.vault_admin verify     # expect {"ok": true}

bootstrap.yaml enthält Klartext-Anmeldedaten — es ist git-ignoriert; löschen Sie es oder bewahren Sie es offline auf, sobald der Tresor existiert.

Befehlszeilenwerkzeuge

Befehl

Zweck

db-mcp-server

Der MCP-Server (stdio). Wird vom MCP-Client gestartet, nicht von Hand.

db-vault

Anmeldedaten im Tresor verwalten: set / rm / list / verify.

db-bootstrap

bootstrap.yaml in registry.yaml + vault.enc aufteilen.

(Konsolenbefehle existieren nach pip install -e .; die Form python -m db_mcp_server.<Modul> funktioniert immer.)

Dem Assistenten bereitgestellte Werkzeuge

  • list_databases() — der Katalog (Kunden → Umgebungen → Dienste); keine Geheimnisse.

  • run_query(customer, environment, service, sql, max_rows?) — schreibgeschützt.

  • run_write_query(customer, environment, service, sql, confirm) — gesteuerter Schreibzugriff.

Domänenfehler werden als strukturiertes {error_code, message} zurückgegeben, nicht als Ausnahme, sodass der Assistent reagieren kann.

Bei einem MCP-Client registrieren

Beispiel .mcp.json (Pfade anpassen). Verwenden Sie ${DB_MCP_PASSPHRASE}, damit die Passphrase aus der Shell gelesen wird, statt in die Datei geschrieben zu werden:

{
  "mcpServers": {
    "db": {
      "command": "/absolute/path/to/db-mcp-server/.venv/Scripts/python.exe",
      "args": ["-m", "db_mcp_server.server"],
      "env": {
        "DB_MCP_PASSPHRASE": "${DB_MCP_PASSPHRASE}"
      }
    }
  }
}

Sicherheitshinweise

  • vault.enc, keys/, bootstrap.yaml, *.env und *.pem sind git-ignoriert — committen Sie sie niemals.

  • Die Tresor-Passphrase wird über DB_MCP_PASSPHRASE (oder eine Eingabeaufforderung) bereitgestellt — niemals in registry.yaml, argv oder Protokollen gespeichert.

  • db-vault liest das DB-Passwort über eine versteckte Eingabeaufforderung (getpass), niemals über argv.

  • run_query ist auf PostgreSQL-Engine-Ebene schreibgeschützt; Schreibvorgänge erfordern confirm=true.

Tests

pip install -e ".[dev]" && python -m pytest -q

Der DB-Integrationstest wird übersprungen, es sei denn, DB_MCP_TEST_DSN zeigt auf ein erreichbares PostgreSQL.

Roadmap (nicht in diesem Build)

Persistenter Prüfpfad, Mehrbenutzerbetrieb, externe Secret-Manager-Anbindung, Schema-Introspektionswerkzeuge und eine Berechtigungs-Denylist, um die Anmeldedatenisolation zu einer harten Grenze zu machen.

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

  • F
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to interact with PostgreSQL databases using natural language queries, providing secure read-only access to database schemas and SQL translation capabilities.
    6
    7
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to safely explore, analyze, and maintain PostgreSQL databases with read-only mode by default, SQL injection prevention, query performance analysis, and optional write operations.
    90
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to interact with PostgreSQL databases through MCP, supporting multi-database and schema access with security controls like read-only mode and SQL auditing.
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to query SQL databases safely with read-only access, allowing schema discovery and SELECT queries while blocking writes and DDL operations.

View all related MCP servers

Related MCP Connectors

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

  • Generate realistic, FK-consistent synthetic test data for your databases from your AI assistant.

  • Comprehensive PostgreSQL documentation and best practices, including ecosystem tools

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/gwdmnn/keyward-mcp-server'

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