Skip to main content
Glama

Multi Database MCP Server

MIT License
164
  • Linux
  • Apple

MCP-Server mit mehreren Datenbanken

Ü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.

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

DatenbankStatusMerkmale
MySQL✅ Volle UnterstützungAbfragen, Transaktionen, Schemaanalyse, Leistungseinblicke
PostgreSQL✅ Volle Unterstützung (v9.6-17)Abfragen, Transaktionen, Schemaanalyse, Leistungseinblicke
TimescaleDB✅ Volle UnterstützungHypertabellen, 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

WerkzeugnameBeschreibung
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

WerkzeugnameBeschreibung
schema_<db_id>Informationen zu Tabellen, Spalten, Indizes und Fremdschlüsseln abrufen
generate_schema_<db_id>SQL oder Code aus dem Datenbankschema generieren

Leistungstools

WerkzeugnameBeschreibung
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:

WerkzeugnameBeschreibung
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

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Der Multi-DB-MCP-Server ist eine leistungsstarke Implementierung des Database Model Context Protocol, die die Interaktion von KI-Agenten mit Datenbanken revolutionieren soll. Unterstützt werden derzeit MySQL- und PostgreSQL-Datenbanken.

  1. Überblick
    1. Kernkonzepte
      1. Unterstützung mehrerer Datenbanken
      2. Dynamische Werkzeuggenerierung
      3. Saubere Architektur
    2. Merkmale
      1. Unterstützte Datenbanken
        1. Bereitstellungsoptionen
          1. Docker-Bereitstellung
          2. STDIO-Modus (IDE-Integration)
          3. SSE-Modus (Server-Sent Events)
          4. Installation des Quellcodes
        2. Konfiguration
          1. Datenbankkonfigurationsdatei
          2. Befehlszeilenoptionen
        3. Verfügbare Tools
          1. Abfragetools
          2. Schema-Tools
          3. Leistungstools
          4. TimescaleDB-Tools
        4. Beispiele
          1. Abfragen mehrerer Datenbanken
          2. Transaktionen verwalten
          3. Datenbankschema erkunden
        5. Fehlerbehebung
          1. Häufige Probleme
          2. Protokolle
        6. Beitragen
          1. Lizenz

            Related MCP Servers

            • A
              security
              A
              license
              A
              quality
              A Model Context Protocol (MCP) server implementation that provides database interaction and business intelligence capabilities through SQLite. This server enables running SQL queries, analyzing business data, and automatically generating business insight memos.
              Last updated -
              6
              50,196
              Python
              MIT License
            • -
              security
              A
              license
              -
              quality
              A Model Context Protocol (MCP) server that wraps the dbt CLI tool, enabling AI coding agents to interact with dbt projects through standardized MCP tools. Developed by Mammoth Growth.
              Last updated -
              8
              Python
              MIT License
              • Linux
              • Apple
            • -
              security
              A
              license
              -
              quality
              A Model Context Protocol (MCP) server that enables AI assistants to interact with MySQL databases by executing SQL queries and checking database connectivity.
              Last updated -
              TypeScript
              MIT License
              • Apple
              • Linux
            • A
              security
              F
              license
              A
              quality
              A Model Context Protocol server that allows AI agents to execute SQL queries against a MySQL database, supporting operations like reading data, creating tables, inserting, updating, and deleting records.
              Last updated -
              6
              419
              1
              JavaScript
              • Apple

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

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