Skip to main content
Glama
FreePeak

Multi Database MCP Server

MCP-Server mit mehreren Datenbanken

Lizenz: MIT Gehe zum Zeugnis Go-Referenz Mitwirkende

Überblick

Der DB MCP Server bietet KI-Modellen eine standardisierte Möglichkeit, gleichzeitig mit mehreren Datenbanken zu interagieren. Basierend auf dem FreePeak/Cortex- Framework ermöglicht er KI-Assistenten die Ausführung von SQL-Abfragen, die Verwaltung von Transaktionen, die Untersuchung von Schemata und die Analyse der Leistung verschiedener Datenbanksysteme über eine einheitliche Schnittstelle.

Related MCP server: MCP Server

Kernkonzepte

Unterstützung mehrerer Datenbanken

Im Gegensatz zu herkömmlichen Datenbankkonnektoren kann der DB MCP Server gleichzeitig eine Verbindung zu mehreren Datenbanken herstellen und mit ihnen interagieren:

{ "connections": [ { "id": "mysql1", "type": "mysql", "host": "localhost", "port": 3306, "name": "db1", "user": "user1", "password": "password1" }, { "id": "postgres1", "type": "postgres", "host": "localhost", "port": 5432, "name": "db2", "user": "user2", "password": "password2" } ] }

Dynamische Werkzeuggenerierung

Für jede verbundene Datenbank generiert der Server automatisch spezielle Tools:

// For a database with ID "mysql1", these tools are generated: query_mysql1 // Execute SQL queries execute_mysql1 // Run data modification statements transaction_mysql1 // Manage transactions schema_mysql1 // Explore database schema performance_mysql1 // Analyze query performance

Saubere Architektur

Der Server folgt den Prinzipien der Clean Architecture mit diesen Schichten:

  1. Domänenschicht : Kerngeschäftseinheiten und Schnittstellen

  2. Repository-Ebene : Implementierungen für den Datenzugriff

  3. Anwendungsfallebene : Geschäftslogik der Anwendung

  4. Delivery Layer : Externe Schnittstellen (MCP-Tools)

Merkmale

  • Gleichzeitige Unterstützung mehrerer Datenbanken : Stellen Sie gleichzeitig eine Verbindung zu mehreren MySQL- und PostgreSQL-Datenbanken her

  • Datenbankspezifische Tool-Generierung : Erstellt automatisch spezialisierte Tools für jede verbundene Datenbank

  • Saubere Architektur : Modulares Design mit klarer Trennung der Belange

  • OpenAI Agents SDK-Kompatibilität : Volle Kompatibilität für nahtlose KI-Assistentenintegration

  • Dynamische Datenbanktools : Abfragen ausführen, Anweisungen ausführen, Transaktionen verwalten, Schemata untersuchen, Leistung analysieren

  • Einheitliche Schnittstelle : Konsistente Interaktionsmuster über verschiedene Datenbanktypen hinweg

  • Verbindungsverwaltung : Einfache Konfiguration für mehrere Datenbankverbindungen

Unterstützte Datenbanken

Datenbank

Status

Merkmale

MySQL

✅ Volle Unterstützung

Abfragen, Transaktionen, Schemaanalyse, Leistungseinblicke

PostgreSQL

✅ Volle Unterstützung (v9.6-17)

Abfragen, Transaktionen, Schemaanalyse, Leistungseinblicke

TimescaleDB

✅ Volle Unterstützung

Hypertabellen, Zeitreihenabfragen, kontinuierliche Aggregate, Komprimierung, Aufbewahrungsrichtlinien

Bereitstellungsoptionen

Der DB MCP-Server kann auf verschiedene Arten bereitgestellt werden, um unterschiedlichen Umgebungen und Integrationsanforderungen gerecht zu werden:

Docker-Bereitstellung

# Pull the latest image docker pull freepeak/db-mcp-server:latest # Run with mounted config file docker run -p 9092:9092 \ -v $(pwd)/config.json:/app/my-config.json \ -e TRANSPORT_MODE=sse \ -e CONFIG_PATH=/app/my-config.json \ freepeak/db-mcp-server

Hinweis : Mounten Sie es in /app/my-config.json , da der Container eine Standarddatei unter /app/config.json hat.

STDIO-Modus (IDE-Integration)

# Run the server in STDIO mode ./bin/server -t stdio -c config.json

Für die Cursor-IDE-Integration fügen Sie zu .cursor/mcp.json hinzu:

{ "mcpServers": { "stdio-db-mcp-server": { "command": "/path/to/db-mcp-server/server", "args": ["-t", "stdio", "-c", "/path/to/config.json"] } } }

SSE-Modus (Server-Sent Events)

# Default configuration (localhost:9092) ./bin/server -t sse -c config.json # Custom host and port ./bin/server -t sse -host 0.0.0.0 -port 8080 -c config.json

Client-Verbindungsendpunkt: http://localhost:9092/sse

Installation des Quellcodes

# Clone the repository git clone https://github.com/FreePeak/db-mcp-server.git cd db-mcp-server # Build the server make build # Run the server ./bin/server -t sse -c config.json

Konfiguration

Datenbankkonfigurationsdatei

Erstellen Sie eine config.json Datei mit Ihren Datenbankverbindungen:

{ "connections": [ { "id": "mysql1", "type": "mysql", "host": "mysql1", "port": 3306, "name": "db1", "user": "user1", "password": "password1", "query_timeout": 60, "max_open_conns": 20, "max_idle_conns": 5, "conn_max_lifetime_seconds": 300, "conn_max_idle_time_seconds": 60 }, { "id": "postgres1", "type": "postgres", "host": "postgres1", "port": 5432, "name": "db1", "user": "user1", "password": "password1" } ] }

Befehlszeilenoptionen

# Basic syntax ./bin/server -t <transport> -c <config-file> # SSE transport options ./bin/server -t sse -host <hostname> -port <port> -c <config-file> # Inline database configuration ./bin/server -t stdio -db-config '{"connections":[...]}' # Environment variable configuration export DB_CONFIG='{"connections":[...]}' ./bin/server -t stdio

Verfügbare Tools

Für jede verbundene Datenbank generiert DB MCP Server automatisch diese speziellen Tools:

Abfragetools

Werkzeugname

Beschreibung

query_<db_id>

Führen Sie SELECT-Abfragen aus und erhalten Sie die Ergebnisse als tabellarischen Datensatz

execute_<db_id>

Führen Sie Datenmanipulationsanweisungen aus (INSERT, UPDATE, DELETE).

transaction_<db_id>

Starten, Festschreiben und Zurücksetzen von Transaktionen

Schema-Tools

Werkzeugname

Beschreibung

schema_<db_id>

Informationen zu Tabellen, Spalten, Indizes und Fremdschlüsseln abrufen

generate_schema_<db_id>

SQL oder Code aus dem Datenbankschema generieren

Leistungstools

Werkzeugname

Beschreibung

performance_<db_id>

Analysieren Sie die Abfrageleistung und erhalten Sie Optimierungsvorschläge

TimescaleDB-Tools

Für PostgreSQL-Datenbanken mit TimescaleDB-Erweiterung sind diese zusätzlichen Spezialtools verfügbar:

Werkzeugname

Beschreibung

timescaledb_<db_id>

Führen Sie allgemeine TimescaleDB-Operationen durch

create_hypertable_<db_id>

Konvertieren einer Standardtabelle in eine TimescaleDB-Hypertabelle

list_hypertables_<db_id>

Alle Hypertabellen in der Datenbank auflisten

time_series_query_<db_id>

Ausführen optimierter Zeitreihenabfragen mit Bucketing

time_series_analyze_<db_id>

Analysieren Sie Zeitreihendatenmuster

continuous_aggregate_<db_id>

Erstellen Sie materialisierte Ansichten, die automatisch aktualisiert werden

refresh_continuous_aggregate_<db_id>

Kontinuierliche Aggregate manuell aktualisieren

Eine ausführliche Dokumentation zu den TimescaleDB-Tools finden Sie unter TIMESCALEDB_TOOLS.md .

Beispiele

Abfragen mehrerer Datenbanken

-- Query the first database query_mysql1("SELECT * FROM users LIMIT 10") -- Query the second database in the same context query_postgres1("SELECT * FROM products WHERE price > 100")

Transaktionen verwalten

-- Start a transaction transaction_mysql1("BEGIN") -- Execute statements within the transaction execute_mysql1("INSERT INTO orders (customer_id, product_id) VALUES (1, 2)") execute_mysql1("UPDATE inventory SET stock = stock - 1 WHERE product_id = 2") -- Commit or rollback transaction_mysql1("COMMIT") -- OR transaction_mysql1("ROLLBACK")

Datenbankschema erkunden

-- Get all tables in the database schema_mysql1("tables") -- Get columns for a specific table schema_mysql1("columns", "users") -- Get constraints schema_mysql1("constraints", "orders")

Fehlerbehebung

Häufige Probleme

  • Verbindungsfehler : Überprüfen Sie die Netzwerkkonnektivität und die Datenbankanmeldeinformationen

  • Berechtigungsfehler : Stellen Sie sicher, dass der Datenbankbenutzer über die entsprechenden Berechtigungen verfügt

  • Timeout-Probleme : Überprüfen Sie die query_timeout Einstellung in Ihrer Konfiguration

Protokolle

Aktivieren Sie die ausführliche Protokollierung zur Fehlerbehebung:

./bin/server -t sse -c config.json -v

Beitragen

Wir freuen uns über Beiträge zum DB MCP Server-Projekt! So können Sie mitmachen:

  1. Forken Sie das Repository

  2. Erstellen Sie einen Feature-Zweig ( git checkout -b feature/amazing-feature )

  3. Übernehmen Sie Ihre Änderungen ( git commit -m 'feat: add amazing feature' )

  4. Pushen zum Zweig ( git push origin feature/amazing-feature )

  5. Öffnen einer Pull-Anfrage

Ausführliche Richtlinien finden Sie in unserer Datei CONTRIBUTING.md .

Lizenz

Dieses Projekt ist unter der MIT-Lizenz lizenziert – Einzelheiten finden Sie in der Datei LICENSE .

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

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/FreePeak/db-mcp-server'

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