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