OpenLink MCP Server for JDBC

Official
Integrations
  • Supports configuration through .env files, allowing users to override default database connection settings with custom environment variables.

  • Provides ability to format database query results as Markdown tables, making data presentation more readable for reporting and visualization purposes.


Java-basierter Model Context Protocol (MCP)-Server für JDBC

Ein leichter MCP-Server (Model Context Protocol) für JDBC, erstellt mit Quakrus . Dieser Server ist kompatibel mit Virtuoso DBMS und anderen DBMS-Backends mit JDBC-Treibern.


Merkmale

  • Schemas abrufen : Ruft alle Schemanamen aus der verbundenen Datenbank ab und listet sie auf.
  • Tabellen abrufen : Rufen Sie Tabelleninformationen für bestimmte oder alle Schemata ab.
  • Tabelle beschreiben : Erstellen Sie eine detaillierte Beschreibung der Tabellenstrukturen, einschließlich:
    • Spaltennamen und Datentypen
    • Nullable-Attribute
    • Primär- und Fremdschlüssel
  • Tabellen durchsuchen : Filtern und Abrufen von Tabellen basierend auf Namensteilzeichenfolgen.
  • Gespeicherte Prozeduren ausführen : Eine Virtuoso-spezifische Funktion! Führen Sie gespeicherte Prozeduren aus und rufen Sie Ergebnisse ab.
  • Abfragen ausführen :
    • JSONL-Ergebnisformat: Optimiert für strukturierte Antworten.
    • Markdown-Tabellenformat: Ideal für Berichte und Visualisierung.

Voraussetzungen

Der MCP-Server erfordert Java 21 oder höher.


Installation

Klonen Sie dieses Repository:

git clone https://github.com/OpenLinkSoftware/mcp-jdbc-server.git cd mcp-jdbc-server

Umgebungsvariablen

Aktualisieren Sie Ihre .env , indem Sie diese Standardeinstellungen überschreiben, damit sie Ihren Präferenzen entsprechen:

jdbc.url=jdbc:virtuoso://localhost:1111 jdbc.user=dba jdbc.password=dba jdbc.api_key=xxx

Konfiguration

Für Claude Desktop- Benutzer: Fügen Sie Folgendes zu claude_desktop_config.json hinzu:

{ "mcpServers": { "my_database": { "command": "java", "args": ["-jar", "/path/to/mcp-jdbc-server/MCPServer-1.0.0-runner.jar"], "env": { "jdbc.url": "jdbc:virtuoso://localhost:1111", "jdbc.user": "username", "jdbc.password": "password", "jdbc.api_key": "sk-xxx" } } } }

Für Claude Desktop- Benutzer, die andere JDBC-Treiber oder eine Kombination von Treibern verwenden: Fügen Sie Folgendes zu claude_desktop_config.json hinzu:

"jdbc": { "command": "java", "args": [ "-cp", "/path/to/mcp-jdbc-server/MCPServer-1.0.0-runner.jar:/path/to/jdbc_driver1.jar:/path/to/jdbc_driverN.jar", "io.quarkus.runner.GeneratedMain" ], "env": { "jdbc.url": "jdbc:virtuoso://localhost:1111", "jdbc.user": "dba", "jdbc.password": "dba" } }

Verwenden

Mitgelieferte Werkzeuge

Nach erfolgreicher Installation stehen den MCP-Clientanwendungen die folgenden Tools zur Verfügung.

Überblick
NameBeschreibung
jdbc_get_schemasListen Sie Datenbankschemata auf, auf die das verbundene Datenbankverwaltungssystem (DBMS) zugreifen kann.
jdbc_get_tablesListen Sie Tabellen auf, die mit einem ausgewählten Datenbankschema verknüpft sind.
jdbc_describe_tableGeben Sie die Beschreibung einer Tabelle an, die einem bestimmten Datenbankschema zugeordnet ist. Dies umfasst Informationen zu Spaltennamen, Datentypen, Nullverarbeitung, Autoinkrementierung, Primärschlüssel und Fremdschlüsseln.
jdbc_filter_table_namesListen Sie Tabellen auf, basierend auf einem Teilzeichenfolgenmuster aus dem Eingabefeld q , das mit einem ausgewählten Datenbankschema verknüpft ist.
jdbc_query_databaseFühren Sie eine SQL-Abfrage aus und geben Sie Ergebnisse im JSONL-Format zurück.
jdbc_execute_queryFühren Sie eine SQL-Abfrage aus und geben Sie Ergebnisse im JSONL-Format zurück.
jdbc_execute_query_mdFühren Sie eine SQL-Abfrage aus und geben Sie die Ergebnisse im Markdown-Tabellenformat zurück.
jdbc_spasql_queryEine Virtuoso-spezifische Funktion! Führen Sie eine SPASQL-Abfrage aus und geben Sie Ergebnisse zurück.
jdbc_sparql_queryEine Virtuoso-spezifische Funktion! Führen Sie eine SPARQL-Abfrage aus und geben Sie Ergebnisse zurück.
jdbc_virtuoso_support_aiEine Virtuoso-spezifische Funktion! Interagieren Sie mit LLMs über den Virtuoso-Supportassistenten/-Agenten.
Detaillierte Beschreibung
  • jdbc_get_schemas
    • Rufen Sie eine Liste aller Schemanamen aus der verbundenen Datenbank ab und geben Sie sie zurück.
    • Eingabeparameter:
      • user (Zeichenfolge, optional): Datenbankbenutzername. Der Standardwert ist "demo" .
      • password (Zeichenfolge, optional): Datenbankkennwort. Der Standardwert ist "demo" .
      • url (Zeichenfolge, optional): JDBC-URL-Verbindungszeichenfolge.
    • Gibt ein JSON-String-Array mit Schemanamen zurück.
  • jdbc_get_tables
    • Ruft eine Liste mit Informationen zu Tabellen in einem angegebenen Schema ab und gibt sie zurück. Wenn kein Schema angegeben ist, wird das Standardschema der Verbindung verwendet.
    • Eingabeparameter:
      • schema (Zeichenfolge, optional): Datenbankschema zum Filtern von Tabellen. Standardmäßig wird der Verbindungsstandard verwendet.
      • user (Zeichenfolge, optional): Datenbankbenutzername. Der Standardwert ist "demo" .
      • password (Zeichenfolge, optional): Datenbankkennwort. Der Standardwert ist "demo" .
      • url (Zeichenfolge, optional): JDBC-URL-Verbindungszeichenfolge.
    • Gibt eine JSON-Zeichenfolge mit Tabelleninformationen zurück (z. B. TABLE_CAT , TABLE_SCHEM , TABLE_NAME , TABLE_TYPE ).
  • jdbc_filter_table_names
    • Filtert und gibt Informationen zu Tabellen zurück, deren Namen eine bestimmte Teilzeichenfolge enthalten.
    • Eingabeparameter:
      • q (Zeichenfolge, erforderlich): Die Teilzeichenfolge, nach der in Tabellennamen gesucht werden soll.
      • schema (Zeichenfolge, optional): Datenbankschema zum Filtern von Tabellen. Standardmäßig wird der Verbindungsstandard verwendet.
      • user (Zeichenfolge, optional): Datenbankbenutzername. Der Standardwert ist "demo" .
      • password (Zeichenfolge, optional): Datenbankkennwort. Der Standardwert ist "demo" .
      • url (Zeichenfolge, optional): JDBC-URL-Verbindungszeichenfolge.
    • Gibt eine JSON-Zeichenfolge zurück, die Informationen zu übereinstimmenden Tabellen enthält.
  • jdbc_describe_table
    • Rufen Sie detaillierte Informationen zu den Spalten einer bestimmten Tabelle ab und geben Sie sie zurück.
    • Eingabeparameter:
      • schema (Zeichenfolge, erforderlich): Der Datenbankschemaname, der die Tabelle enthält.
      • table (Zeichenfolge, erforderlich): Der Name der zu beschreibenden Tabelle.
      • user (Zeichenfolge, optional): Datenbankbenutzername. Der Standardwert ist "demo" .
      • password (Zeichenfolge, optional): Datenbankkennwort. Der Standardwert ist "demo" .
      • url (Zeichenfolge, optional): JDBC-URL-Verbindungszeichenfolge.
    • Gibt eine JSON-Zeichenfolge zurück, die die Spalten der Tabelle beschreibt (z. B. COLUMN_NAME , TYPE_NAME , COLUMN_SIZE , IS_NULLABLE ).
  • jdbc_query_database
    • Führen Sie eine Standard-SQL-Abfrage aus und geben Sie die Ergebnisse im JSON-Format zurück.
    • Eingabeparameter:
      • query (Zeichenfolge, erforderlich): Die auszuführende SQL-Abfragezeichenfolge.
      • user (Zeichenfolge, optional): Datenbankbenutzername. Der Standardwert ist "demo" .
      • password (Zeichenfolge, optional): Datenbankkennwort. Der Standardwert ist "demo" .
      • url (Zeichenfolge, optional): JDBC-URL-Verbindungszeichenfolge.
    • Gibt Abfrageergebnisse als JSON-Zeichenfolge zurück.
  • jdbc_query_database_md
    • Führen Sie eine Standard-SQL-Abfrage aus und geben Sie die Ergebnisse als Markdown-Tabelle formatiert zurück.
    • Eingabeparameter:
      • query (Zeichenfolge, erforderlich): Die auszuführende SQL-Abfragezeichenfolge.
      • user (Zeichenfolge, optional): Datenbankbenutzername. Der Standardwert ist "demo" .
      • password (Zeichenfolge, optional): Datenbankkennwort. Der Standardwert ist "demo" .
      • url (Zeichenfolge, optional): JDBC-URL-Verbindungszeichenfolge.
    • Gibt Abfrageergebnisse als Markdown-Tabellenzeichenfolge zurück.
  • jdbc_query_database_jsonl
    • Führen Sie eine Standard-SQL-Abfrage aus und geben Sie die Ergebnisse im JSON-Zeilenformat (JSONL) zurück (ein JSON-Objekt pro Zeile).
    • Eingabeparameter:
      • query (Zeichenfolge, erforderlich): Die auszuführende SQL-Abfragezeichenfolge.
      • user (Zeichenfolge, optional): Datenbankbenutzername. Der Standardwert ist "demo" .
      • password (Zeichenfolge, optional): Datenbankkennwort. Der Standardwert ist "demo" .
      • url (Zeichenfolge, optional): JDBC-URL-Verbindungszeichenfolge.
    • Gibt Abfrageergebnisse als JSONL-Zeichenfolge zurück.
  • jdbc_spasql_query
    • Eine Virtuoso-spezifische Funktion!
    • Führen Sie eine SPASQL-Abfrage (SQL/SPARQL-Hybrid) aus, um Ergebnisse zurückzugeben.
    • Eingabeparameter:
      • query (Zeichenfolge, erforderlich): Die SPASQL-Abfragezeichenfolge.
      • max_rows (Zahl, optional): Maximale Anzahl der zurückzugebenden Zeilen. Der Standardwert ist 20 .
      • timeout (Zahl, optional): Abfrage-Timeout in Millisekunden. Der Standardwert ist 30000 (d. h. 30 Sekunden).
      • user (Zeichenfolge, optional): Datenbankbenutzername. Der Standardwert ist "demo" .
      • password (Zeichenfolge, optional): Datenbankkennwort. Der Standardwert ist "demo" .
      • url (Zeichenfolge, optional): JDBC-URL-Verbindungszeichenfolge.
    • Gibt das Ergebnis des zugrunde liegenden gespeicherten Prozeduraufrufs zurück (z. B. Demo.demo.execute_spasql_query ).
  • jdbc_sparql_query
    • Eine Virtuoso-spezifische Funktion!
    • Führen Sie eine SPARQL-Abfrage aus und geben Sie Ergebnisse zurück.
    • Eingabeparameter:
      • query (Zeichenfolge, erforderlich): Die SPARQL-Abfragezeichenfolge.
      • format (Zeichenfolge, optional): Gewünschtes Ergebnisformat. Standardmäßig 'json' .
      • timeout (Zahl, optional): Abfrage-Timeout in Millisekunden. Der Standardwert ist 30000 (d. h. 30 Sekunden).
      • user (Zeichenfolge, optional): Datenbankbenutzername. Der Standardwert ist "demo" .
      • password (Zeichenfolge, optional): Datenbankkennwort. Der Standardwert ist "demo" .
      • url (Zeichenfolge, optional): JDBC-URL-Verbindungszeichenfolge.
    • Gibt das Ergebnis des zugrunde liegenden Funktionsaufrufs zurück (z. B. "UB".dba."sparqlQuery" ).
  • jdbc_virtuoso_support_ai
    • Eine Virtuoso-spezifische Funktion!
    • Verwendet eine Virtuoso-spezifische KI-Assistentenfunktion und übergibt eine Eingabeaufforderung und einen optionalen API-Schlüssel.
    • Eingabeparameter:
      • prompt (Zeichenfolge, erforderlich): Der Eingabeaufforderungstext für die KI-Funktion.
      • api_key (Zeichenfolge, optional): API-Schlüssel für den KI-Dienst. Standardmäßig "none" .
      • user (Zeichenfolge, optional): Datenbankbenutzername. Der Standardwert ist "demo" .
      • password (Zeichenfolge, optional): Datenbankkennwort. Der Standardwert ist "demo" .
      • url (Zeichenfolge, optional): JDBC-URL-Verbindungszeichenfolge.
    • Gibt das Ergebnis des Funktionsaufrufs des AI Support Assistant zurück (z. B. DEMO.DBA.OAI_VIRTUOSO_SUPPORT_AI ).

Grundlegende Verwendung und Fehlerbehebung

MCP Inspector stellt eine Verbindung zum ODBC-Treiber von Virtuoso her

Für die grundlegende Verwendung des MCP-Clients und zur Fehlerbehebung verwenden Sie den MCP Inspector wie folgt:

  1. Installieren Sie den MCP Inspector:
    npm install -g @modelcontextprotocol/inspector
  2. Starten Sie den Inspektor:
    npx @modelcontextprotocol/inspector java -jar /path/to/mcp-jdbc-server/MCPServer-1.0.0-runner.jar

Greifen Sie auf die vom Inspektor zurückgegebene URL zu, um Probleme mit MCP-Serverinteraktionen zu beheben.

MCP Inspector: Verbindung zu zusätzlichen Treibern herstellen

Für die grundlegende Verwendung des MCP-Clients und zur Fehlerbehebung verwenden Sie den MCP Inspector wie folgt:

  1. Installieren Sie die JDBC-Treiber und stellen Sie sicher, dass ihre JAR-Dateien über $CLASSPATH bei der Java Virtual Machine (JVM) des Host-Betriebssystems registriert sind. Beispiel:
    export CLASSPATH=$CLASSPATH:/path/to/driver1.jar:/path/to/driver2.jar:/path/to/driverN.jar
  2. Starten Sie den Inspector mit den folgenden Befehlszeilenargumenten:
    npx @modelcontextprotocol/inspector java -cp MCPServer-1.0.0-runner.jar:/path/to/driver1.jar:/path/to/driver2.jar:/path/to/driverN.jar io.quarkus.runner.GeneratedMain
Anwendungsbeispiel basierend auf Oracle- und Informix-Treibern
  1. Vorausgesetzt werden die folgenden JDBC-Treiberinformationen:
    • URL-Vorlage für Oracle JDBC-Treiber
      jdbc:oracle:thin:@<hostname>:[port]:<SERVICEID>
    • URL-Vorlage für Informix JDBC-Treiber
      jdbc:informix-sqli://<hostname>:<port>/<database></database>:<INFORMIXSERVER>=<SERVICEID>
  2. Installieren Sie die JDBC-Treiber von Oracle ( ojdbc17.jar ) und/oder Informix ( jdbc-15.0.0.1.1.jar ) und stellen Sie sicher, dass deren JAR-Dateien über $CLASSPATH bei der Java Virtual Machine (JVM) des Host-Betriebssystems registriert sind. Beispiel:
    export CLASSPATH=$CLASSPATH:/path/to/Java/Extensions/jdbc-15.0.0.1.1.jar export CLASSPATH=$CLASSPATH:/path/to/Java/Extensions/ojdbc17.jar
  3. Starten Sie den Inspector mit den folgenden Befehlszeilenargumenten:
    npx @modelcontextprotocol/inspector java -cp MCPServer-1.0.0-runner.jar:/path/to/Java/Extensions/ojdbc17.jar:/path/to/Java/Extensions/jdbc-15.0.0.1.1.jar io.quarkus.runner.GeneratedMain
  4. Greifen Sie auf die vom Inspektor zurückgegebene URL zu und verwenden Sie dann die Operation jdbc_execute_query , um die Zieldatenbank abzufragen, indem Sie tatsächliche Werte für die folgenden Eingabefeldvorlagen angeben:
    • JDBC-URL
    • Benutzer
    • Passwort
    • Abfrage
-
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.

OpenLink MCP-Server für JDBC

  1. Merkmale
    1. Voraussetzungen
      1. Installation
        1. Umgebungsvariablen
          1. Konfiguration
            1. Verwenden
              1. Mitgelieferte Werkzeuge
              2. Grundlegende Verwendung und Fehlerbehebung

            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 -
              122
              Apache 2.0
            • -
              security
              A
              license
              -
              quality
              MCP Server for Netbird
              Last updated -
              28
              Go
              Apache 2.0
            • -
              security
              A
              license
              -
              quality
              Open source MCP server specializing in easy, fast, and secure tools for Databases.
              Last updated -
              977
              Go
              Apache 2.0
              • Linux

            View all related MCP servers

            ID: q412uvi27y