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.
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.
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
NPM
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 unterstützt nur
stdio
-Transport https://github.com/orgs/modelcontextprotocol/discussions/16
Cursor
- Cursor unterstützt sowohl
stdio
als auchsse
. - Folgen Sie der Cursor-MCP-Anleitung und stellen Sie sicher, dass Sie den Agentenmodus verwenden.
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:
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:
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:
Für echte Datenbanken ist ein Datenbankquellenname (DSN) erforderlich. Sie können diesen auf verschiedene Arten angeben:
- Befehlszeilenargument (höchste Priorität):
- Umgebungsvariable (zweite Priorität):
- 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
- Für die Entwicklung: Erstellen Sie
[!WARNING] Verwenden Sie bei der Ausführung in Docker
host.docker.internal
anstelle vonlocalhost
, 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
- Laden Sie Oracle Instant Client für Ihre Plattform herunter und installieren Sie ihn
- Legen Sie die Umgebungsvariable
ORACLE_LIB_DIR
auf den Pfad Ihres Oracle Instant Client fest:
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:
- sse – für Browser- und Netzwerkclients:
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
- Installieren Sie Abhängigkeiten:
- Im Entwicklungsmodus ausführen:
- Für die Produktion erstellen:
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:
- Richten Sie nach dem Klonen des Repository die Pre-Commit-Hooks ein:
- 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
SSE
Stellen Sie eine Verbindung zum DBHub-Server-Endpunkt /sse
her
Mitwirkende
Sternengeschichte
This server cannot be installed
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.
Related Resources
Related MCP Servers
- -securityAlicense-qualityMCP to access any database accessible via JDBC such as Postgres, Oracle, mysql, mariadb, sqlite etc.Last updated -129Apache 2.0
- -securityAlicense-qualityAn MCP server that connects to Supabase PostgreSQL databases, exposing table schemas as resources and providing tools for data analysis through SQL queries.Last updated -JavaScriptMIT License
- -securityAlicense-qualityMCP-Server from your Database optimized for LLMs and AI-Agents. Supports PostgreSQL, MySQL, ClickHouse, Snowflake, MSSQL, BigQuery, Oracle Database, SQLite, ElasticSearch, DuckDBLast updated -392GoApache 2.0
- AsecurityAlicenseAqualityMCP server that allows interaction with PocketBase databases, enabling record operations (fetch, list, create, update), file management, and schema migrations through natural language.Last updated -208TypeScriptMIT License