Skip to main content
Glama

OpenLink MCP Server for JDBC

Official

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.

mcp-client-und-servers|648x499


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

            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/OpenLinkSoftware/mcp-jdbc-server'

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