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:
Umgebungsvariablen
Aktualisieren Sie Ihre .env
, indem Sie diese Standardeinstellungen überschreiben, damit sie Ihren Präferenzen entsprechen:
Konfiguration
Für Claude Desktop- Benutzer: Fügen Sie Folgendes zu claude_desktop_config.json
hinzu:
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:
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 ist20
.timeout
(Zahl, optional): Abfrage-Timeout in Millisekunden. Der Standardwert ist30000
(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 ist30000
(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:
- Installieren Sie den MCP Inspector:
- Starten Sie den Inspektor:
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:
- 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: - Starten Sie den Inspector mit den folgenden Befehlszeilenargumenten:
Anwendungsbeispiel basierend auf Oracle- und Informix-Treibern
- Vorausgesetzt werden die folgenden JDBC-Treiberinformationen:
- URL-Vorlage für Oracle JDBC-Treiber
- URL-Vorlage für Informix JDBC-Treiber
- URL-Vorlage für Oracle JDBC-Treiber
- 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: - Starten Sie den Inspector mit den folgenden Befehlszeilenargumenten:
- 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
This server cannot be installed
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
Related MCP Servers
- -securityAlicense-qualityMCP to access any database accessible via JDBC such as Postgres, Oracle, mysql, mariadb, sqlite etc.Last updated -122Apache 2.0
- GoApache 2.0
- -securityAlicense-qualityOpen source MCP server specializing in easy, fast, and secure tools for Databases.Last updated -977GoApache 2.0
- Python