Skip to main content
Glama

DBHub

by bytebase

DBHub ist ein universelles Datenbank-Gateway, das die Serverschnittstelle des Model Context Protocol (MCP) implementiert. Dieses Gateway ermöglicht MCP-kompatiblen Clients die Verbindung zu verschiedenen Datenbanken und deren Nutzung.

+------------------+ +--------------+ +------------------+ | | | | | | | | | | | | | Claude Desktop +--->+ +--->+ PostgreSQL | | | | | | | | Cursor +--->+ DBHub +--->+ SQL Server | | | | | | | | Other MCP +--->+ +--->+ SQLite | | Clients | | | | | | | | +--->+ MySQL | | | | | | | | | | +--->+ MariaDB | | | | | | | | | | +--->+ Oracle | | | | | | | +------------------+ +--------------+ +------------------+ MCP Clients MCP Server Databases

Demo-SSE-Endpunkt

https://demo.dbhub.ai/sse verbindet eine Beispiel-Mitarbeiterdatenbank . Sie können mit Cursor oder MCP Inspector darauf zeigen, um sie in Aktion zu sehen.

MCP-Inspektor

Unterstützte Matrix

Datenbankressourcen

Ressourcenname

URI-Format

PostgreSQL

MySQL

MariaDB

SQL Server

SQLite

Orakel

Schemata

db://schemas

Tabellen_im_Schema

db://schemas/{schemaName}/tables

Tabellenstruktur im Schema

db://schemas/{schemaName}/tables/{tableName}

Indizes_in_Tabelle

db://schemas/{schemaName}/tables/{tableName}/indexes

Prozeduren_im_Schema

db://schemas/{schemaName}/procedures

Prozedurdetails im Schema

db://schemas/{schemaName}/procedures/{procedureName}

Datenbanktools

Werkzeug

Befehlsname

PostgreSQL

MySQL

MariaDB

SQL Server

SQLite

Orakel

SQL ausführen

execute_sql

Listenkonnektoren

list_connectors

Eingabeaufforderungsfunktionen

Prompt

Befehlsname

PostgreSQL

MySQL

MariaDB

SQL Server

SQLite

Orakel

SQL generieren

generate_sql

DB-Elemente erklären

explain_db

Installation

Docker

# PostgreSQL example docker run --rm --init \ --name dbhub \ --publish 8080:8080 \ bytebase/dbhub \ --transport sse \ --port 8080 \ --dsn "postgres://user:password@localhost:5432/dbname?sslmode=disable"
# Demo mode with sample employee database docker run --rm --init \ --name dbhub \ --publish 8080:8080 \ bytebase/dbhub \ --transport sse \ --port 8080 \ --demo
# Oracle example docker run --rm --init \ --name dbhub \ --publish 8080:8080 \ bytebase/dbhub \ --transport sse \ --port 8080 \ --dsn "oracle://username:password@localhost:1521/service_name"
# Oracle example with thick mode for connecting to 11g or older docker run --rm --init \ --name dbhub \ --publish 8080:8080 \ bytebase/dbhub-oracle-thick \ --transport sse \ --port 8080 \ --dsn "oracle://username:password@localhost:1521/service_name"

NPM

# PostgreSQL example npx @bytebase/dbhub --transport sse --port 8080 --dsn "postgres://user:password@localhost:5432/dbname?sslmode=disable"
# Demo mode with sample employee database npx @bytebase/dbhub --transport sse --port 8080 --demo

Hinweis: Der Demomodus enthält eine gebündelte SQLite-Beispieldatenbank „Mitarbeiter“ mit Tabellen für Mitarbeiter, Abteilungen, Gehälter und mehr.

Claude Desktop

Claude-Desktop

// claude_desktop_config.json { "mcpServers": { "dbhub-postgres-docker": { "command": "docker", "args": [ "run", "-i", "--rm", "bytebase/dbhub", "--transport", "stdio", "--dsn", // Use host.docker.internal as the host if connecting to the local db "postgres://user:password@host.docker.internal:5432/dbname?sslmode=disable" ] }, "dbhub-postgres-npx": { "command": "npx", "args": [ "-y", "@bytebase/dbhub", "--transport", "stdio", "--dsn", "postgres://user:password@localhost:5432/dbname?sslmode=disable" ] }, "dbhub-demo": { "command": "npx", "args": ["-y", "@bytebase/dbhub", "--transport", "stdio", "--demo"] } } }

Cursor

Cursor

Verwendung

SSL-Verbindungen

Sie können den SSL-Modus mit dem Parameter sslmode in Ihrer DSN-Zeichenfolge angeben:

Datenbank

sslmode=disable

sslmode=require

Standardmäßiges SSL-Verhalten

PostgreSQL

Zertifikatsüberprüfung

MySQL

Zertifikatsüberprüfung

MariaDB

Zertifikatsüberprüfung

SQL Server

Zertifikatsüberprüfung

Orakel

N/A (Oracle-Clientkonfiguration verwenden)

SQLite

N/A (dateibasiert)

SSL-Modusoptionen:

  • sslmode=disable : Die gesamte SSL/TLS-Verschlüsselung ist deaktiviert. Die Daten werden im Klartext übertragen.

  • sslmode=require : Die Verbindung ist verschlüsselt, das Serverzertifikat wird jedoch nicht überprüft. Dies bietet Schutz vor Paket-Sniffing, jedoch nicht vor Man-in-the-Middle-Angriffen. Sie können dies für vertrauenswürdige, selbstsignierte Zertifizierungsstellen verwenden.

Ohne Angabe von sslmode verwenden die meisten Datenbanken standardmäßig die Zertifikatsüberprüfung, die das höchste Maß an Sicherheit bietet.

Anwendungsbeispiel:

# Disable SSL postgres://user:password@localhost:5432/dbname?sslmode=disable # Require SSL without certificate verification postgres://user:password@localhost:5432/dbname?sslmode=require # Standard SSL with certificate verification (default) postgres://user:password@localhost:5432/dbname

Schreibgeschützter Modus

Sie können DBHub im schreibgeschützten Modus ausführen, wodurch die Ausführung von SQL-Abfragen auf schreibgeschützte Vorgänge beschränkt wird:

# Enable read-only mode npx @bytebase/dbhub --readonly --dsn "postgres://user:password@localhost:5432/dbname"

Im schreibgeschützten Modus sind nur schreibgeschützte SQL-Operationen zulässig.

Dies bietet eine zusätzliche Sicherheitsebene beim Herstellen einer Verbindung mit Produktionsdatenbanken.

Konfigurieren der Datenbankverbindung

Sie können DBHub im Demomodus mit einer Beispiel-Mitarbeiterdatenbank zum Testen verwenden:

npx @bytebase/dbhub --demo

Für echte Datenbanken ist ein Datenbankquellenname (DSN) erforderlich. Sie können diesen auf verschiedene Arten angeben:

  • Befehlszeilenargument (höchste Priorität):

    npx @bytebase/dbhub --dsn "postgres://user:password@localhost:5432/dbname?sslmode=disable"
  • Umgebungsvariable (zweite Priorität):

    export DSN="postgres://user:password@localhost:5432/dbname?sslmode=disable" npx @bytebase/dbhub
  • Umgebungsdatei (dritte Priorität):

    • Für die Entwicklung: Erstellen Sie .env.local mit Ihrem DSN

    • Für die Produktion: Erstellen Sie .env mit Ihrem DSN GXP14

WARNING

Verwenden Sie bei der Ausführung in Dockerhost.docker.internal anstelle von localhost , um eine Verbindung mit Datenbanken herzustellen, die auf Ihrem Hostcomputer ausgeführt werden. Beispiel: mysql://user:password@host.docker.internal:3306/dbname

DBHub unterstützt die folgenden Datenbankverbindungszeichenfolgenformate:

Datenbank

DSN-Format

Beispiel

MySQL

mysql://[user]:[password]@[host]:[port]/[database]

mysql://user:password@localhost:3306/dbname?sslmode=disable

MariaDB

mariadb://[user]:[password]@[host]:[port]/[database]

mariadb://user:password@localhost:3306/dbname?sslmode=disable

PostgreSQL

postgres://[user]:[password]@[host]:[port]/[database]

postgres://user:password@localhost:5432/dbname?sslmode=disable

SQL Server

sqlserver://[user]:[password]@[host]:[port]/[database]

sqlserver://user:password@localhost:1433/dbname?sslmode=disable

SQLite

sqlite:///[path/to/file]

oder

sqlite::memory:

sqlite:///path/to/database.db

,

sqlite:C:/Users/YourName/data/database.db (windows)

oder

sqlite::memory:

Orakel

oracle://[user]:[password]@[host]:[port]/[service_name]

oracle://username:password@localhost:1521/service_name?sslmode=disable

Orakel

Wenn der Fehler „NJS-138: Verbindungen zu dieser Datenbankserverversion werden von Node-OracleDB im Thin-Modus nicht unterstützt“ angezeigt wird, müssen Sie den Thick-Modus wie unten beschrieben verwenden.

Docker

Verwenden Sie bytebase/dbhub-oracle-thick anstelle des Docker-Images bytebase/dbhub .

npx
  1. Laden Sie Oracle Instant Client für Ihre Plattform herunter und installieren Sie ihn

  2. Legen Sie die Umgebungsvariable ORACLE_LIB_DIR auf den Pfad Ihres Oracle Instant Client fest:

# Set environment variable to Oracle Instant Client directory export ORACLE_LIB_DIR=/path/to/instantclient_19_8 # Then run DBHub npx @bytebase/dbhub --dsn "oracle://username:password@localhost:1521/service_name"

SQL Server

Zusätzliche Abfrageparameter:

Authentifizierung

  • authentication=azure-active-directory-access-token . Gilt nur bei Ausführung über Azure. Siehe DefaultAzureCredential .

Transport

  • stdio (Standard) – für die direkte Integration mit Tools wie Claude Desktop:

    npx @bytebase/dbhub --transport stdio --dsn "postgres://user:password@localhost:5432/dbname?sslmode=disable"
  • sse – für Browser- und Netzwerkclients:

    npx @bytebase/dbhub --transport sse --port 5678 --dsn "postgres://user:password@localhost:5432/dbname?sslmode=disable"

Befehlszeilenoptionen

Option

Beschreibung

Standard

Demo

Im Demomodus mit einer Beispiel-Mitarbeiterdatenbank ausführen

false

dsn

Datenbankverbindungszeichenfolge

Erforderlich, wenn nicht im Demomodus

Transport

Transportmodus:

stdio

oder

sse

stdio

Hafen

HTTP-Server-Port (nur anwendbar bei Verwendung

--transport=sse

)

8080

schreibgeschützt

Beschränken Sie die SQL-Ausführung auf schreibgeschützte Vorgänge

false

Der Demomodus verwendet eine In-Memory-SQLite-Datenbank mit der Beispiel-Mitarbeiterdatenbank . Diese enthält Tabellen für Mitarbeiter, Abteilungen, Titel, Gehälter, Abteilungsmitarbeiter und Abteilungsleiter. Die Beispieldatenbank enthält SQL-Skripte zum Erstellen, Laden und Testen von Tabellen.

Entwicklung

  1. Installieren Sie Abhängigkeiten:

    pnpm install
  2. Im Entwicklungsmodus ausführen:

    pnpm dev
  3. Für die Produktion erstellen:

    pnpm build pnpm start --transport stdio --dsn "postgres://user:password@localhost:5432/dbname?sslmode=disable"

Testen

Das Projekt verwendet Vitest zum Testen:

  • Tests ausführen: pnpm test

  • Führen Sie Tests im Überwachungsmodus aus: pnpm test:watch

Pre-Commit-Hooks (für Entwickler)

Das Projekt enthält Pre-Commit-Hooks, um vor jedem Commit automatisch Tests auszuführen:

  1. Richten Sie nach dem Klonen des Repository die Pre-Commit-Hooks ein:

    ./scripts/setup-husky.sh
  2. Dadurch wird sichergestellt, dass die Testsuite automatisch ausgeführt wird, wenn Sie einen Commit erstellen, und Commits werden verhindert, die Tests unterbrechen würden.

Debuggen mit MCP Inspector

stdio

# PostgreSQL example TRANSPORT=stdio DSN="postgres://user:password@localhost:5432/dbname?sslmode=disable" npx @modelcontextprotocol/inspector node /path/to/dbhub/dist/index.js

SSE

# Start DBHub with SSE transport pnpm dev --transport=sse --port=8080 # Start the MCP Inspector in another terminal npx @modelcontextprotocol/inspector

Stellen Sie eine Verbindung zum DBHub-Server-Endpunkt /sse her

Mitwirkende

Sternengeschichte

Sternenverlaufsdiagramm

-
security - not tested
A
license - permissive license
-
quality - not tested

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Universeller Datenbank-MCP-Server mit Verbindung zu MySQL, PostgreSQL, SQLite, DuckDB usw.

  1. Unterstützte Matrix
    1. Datenbankressourcen
    2. Datenbanktools
    3. Eingabeaufforderungsfunktionen
  2. Installation
    1. Docker
    2. NPM
    3. Claude Desktop
    4. Cursor
  3. Verwendung
    1. SSL-Verbindungen
    2. Schreibgeschützter Modus
    3. Konfigurieren der Datenbankverbindung
    4. Transport
    5. Befehlszeilenoptionen
  4. Entwicklung
    1. Testen
    2. Debuggen mit MCP Inspector
  5. Mitwirkende
    1. Sternengeschichte

      Related MCP Servers

      • -
        security
        A
        license
        -
        quality
        MCP to access any database accessible via JDBC such as Postgres, Oracle, mysql, mariadb, sqlite etc.
        Last updated -
        167
        Apache 2.0
      • -
        security
        A
        license
        -
        quality
        An MCP server that connects to Supabase PostgreSQL databases, exposing table schemas as resources and providing tools for data analysis through SQL queries.
        Last updated -
        1
        MIT License
      • -
        security
        A
        license
        -
        quality
        MCP-Server from your Database optimized for LLMs and AI-Agents. Supports PostgreSQL, MySQL, ClickHouse, Snowflake, MSSQL, BigQuery, Oracle Database, SQLite, ElasticSearch, DuckDB
        Last updated -
        478
        Apache 2.0
        • Linux
      • -
        security
        A
        license
        -
        quality
        Open source MCP server specializing in easy, fast, and secure tools for Databases.
        Last updated -
        10,748
        Apache 2.0
        • Linux

      View all related MCP servers

      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/bytebase/dbhub'

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