Skip to main content
Glama
OpenLinkSoftware

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.


Related MCP server: Joomla MCP Server

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

Name

Beschreibung

jdbc_get_schemas

Listen Sie Datenbankschemata auf, auf die das verbundene Datenbankverwaltungssystem (DBMS) zugreifen kann.

jdbc_get_tables

Listen Sie Tabellen auf, die mit einem ausgewählten Datenbankschema verknüpft sind.

jdbc_describe_table

Geben 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_names

Listen Sie Tabellen auf, basierend auf einem Teilzeichenfolgenmuster aus dem Eingabefeld q , das mit einem ausgewählten Datenbankschema verknüpft ist.

jdbc_query_database

Führen Sie eine SQL-Abfrage aus und geben Sie Ergebnisse im JSONL-Format zurück.

jdbc_execute_query

Führen Sie eine SQL-Abfrage aus und geben Sie Ergebnisse im JSONL-Format zurück.

jdbc_execute_query_md

Führen Sie eine SQL-Abfrage aus und geben Sie die Ergebnisse im Markdown-Tabellenformat zurück.

jdbc_spasql_query

Eine Virtuoso-spezifische Funktion! Führen Sie eine SPASQL-Abfrage aus und geben Sie Ergebnisse zurück.

jdbc_sparql_query

Eine Virtuoso-spezifische Funktion! Führen Sie eine SPARQL-Abfrage aus und geben Sie Ergebnisse zurück.

jdbc_virtuoso_support_ai

Eine 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

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

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