JDBC 用の Java ベースのモデル コンテキスト プロトコル (MCP) サーバー
Quakrusで構築された、JDBC 用の軽量 MCP (Model Context Protocol) サーバーです。このサーバーは、Virtuoso DBMS および JDBC ドライバーを備えたその他の DBMS バックエンドと互換性があります。

特徴
スキーマの取得: 接続されたデータベースからすべてのスキーマ名を取得して一覧表示します。
テーブルの取得: 特定のスキーマまたはすべてのスキーマのテーブル情報を取得します。
テーブルの説明: 次の内容を含むテーブル構造の詳細な説明を生成します:
列名とデータ型
ヌル値可能な属性
主キーと外部キー
テーブルの検索: 名前の部分文字列に基づいてテーブルをフィルタリングおよび取得します。
ストアド プロシージャの実行: *Virtuoso 固有の機能です。*ストアド プロシージャを実行し、結果を取得します。
クエリの実行:
JSONL 結果形式: 構造化された応答に最適化されています。
Markdown テーブル形式: レポートと視覚化に最適です。
Related MCP server: Joomla MCP Server
前提条件
MCP サーバーには Java 21 以上が必要です。
インストール
このリポジトリをクローンします:
環境変数
好みに合わせてこれらのデフォルトを上書きして.envを更新します。
構成
Claude Desktopユーザーの場合: claude_desktop_config.jsonに以下を追加します。
他の JDBC ドライバーまたはドライバーの組み合わせを使用するClaude Desktopユーザーの場合: claude_desktop_config.jsonに以下を追加します。
使用
提供されるツール
インストールが成功すると、次のツールが MCP クライアント アプリケーションで使用できるようになります。
概要
名前 | 説明 |
| 接続されたデータベース管理システム (DBMS) にアクセス可能なデータベース スキーマを一覧表示します。 |
| 選択したデータベース スキーマに関連付けられているテーブルを一覧表示します。 |
| 指定されたデータベーススキーマに関連付けられたテーブルの説明を提供します。これには、列名、データ型、NULL値の処理、自動インクリメント、主キー、外部キーに関する情報が含まれます。 |
| 選択したデータベース スキーマに関連付けられた、 |
| SQL クエリを実行し、結果を JSONL 形式で返します。 |
| SQL クエリを実行し、結果を JSONL 形式で返します。 |
| SQL クエリを実行し、結果を Markdown テーブル形式で返します。 |
| Virtuoso 固有の機能です。SPASQLクエリを実行して結果を返します。 |
| Virtuoso 固有の機能です。SPARQLクエリを実行して結果を返します。 |
| Virtuoso 固有の機能です。Virtuosoサポート アシスタント/エージェントを通じて LLM と対話します。 |
詳細な説明
jdbc_get_schemas接続されたデータベースからすべてのスキーマ名のリストを取得して返します。
入力パラメータ:
user(文字列、オプション): データベースのユーザー名。デフォルトは"demo"です。password(文字列、オプション): データベースのパスワード。デフォルトは"demo"です。url(文字列、オプション): JDBC URL 接続文字列。
スキーマ名の JSON 文字列配列を返します。
jdbc_get_tables指定されたスキーマ内のテーブルに関する情報を含むリストを取得して返します。スキーマが指定されていない場合は、接続のデフォルトスキーマが使用されます。
入力パラメータ:
schema(文字列, オプション): テーブルをフィルタリングするためのデータベーススキーマ。デフォルトは接続のデフォルトです。user(文字列、オプション): データベースのユーザー名。デフォルトは"demo"です。password(文字列、オプション): データベースのパスワード。デフォルトは"demo"です。url(文字列、オプション): JDBC URL 接続文字列。
テーブル情報 (例:
TABLE_CAT、TABLE_SCHEM、TABLE_NAME、TABLE_TYPE) を含む JSON 文字列を返します。
jdbc_filter_table_names名前に特定の部分文字列が含まれるテーブルに関する情報をフィルタリングして返します。
入力パラメータ:
q(文字列、必須): テーブル名内で検索する部分文字列。schema(文字列, オプション): テーブルをフィルタリングするためのデータベーススキーマ。デフォルトは接続のデフォルトです。user(文字列、オプション): データベースのユーザー名。デフォルトは"demo"です。password(文字列、オプション): データベースのパスワード。デフォルトは"demo"です。url(文字列、オプション): JDBC URL 接続文字列。
一致するテーブルの情報を含む JSON 文字列を返します。
jdbc_describe_table特定のテーブルの列に関する詳細情報を取得して返します。
入力パラメータ:
schema(文字列、必須): テーブルを含むデータベース スキーマ名。table(文字列、必須): 説明するテーブルの名前。user(文字列、オプション): データベースのユーザー名。デフォルトは"demo"です。password(文字列、オプション): データベースのパスワード。デフォルトは"demo"です。url(文字列、オプション): JDBC URL 接続文字列。
テーブルの列を記述する JSON 文字列を返します (例:
COLUMN_NAME、TYPE_NAME、COLUMN_SIZE、IS_NULLABLE)。
jdbc_query_database標準 SQL クエリを実行し、結果を JSON 形式で返します。
入力パラメータ:
query(文字列、必須): 実行する SQL クエリ文字列。user(文字列、オプション): データベースのユーザー名。デフォルトは"demo"です。password(文字列、オプション): データベースのパスワード。デフォルトは"demo"です。url(文字列、オプション): JDBC URL 接続文字列。
クエリ結果を JSON 文字列として返します。
jdbc_query_database_md標準 SQL クエリを実行し、Markdown テーブルとしてフォーマットされた結果を返します。
入力パラメータ:
query(文字列、必須): 実行する SQL クエリ文字列。user(文字列、オプション): データベースのユーザー名。デフォルトは"demo"です。password(文字列、オプション): データベースのパスワード。デフォルトは"demo"です。url(文字列、オプション): JDBC URL 接続文字列。
クエリ結果を Markdown テーブル文字列として返します。
jdbc_query_database_jsonl標準 SQL クエリを実行し、結果を JSON Lines (JSONL) 形式 (1 行につき 1 つの JSON オブジェクト) で返します。
入力パラメータ:
query(文字列、必須): 実行する SQL クエリ文字列。user(文字列、オプション): データベースのユーザー名。デフォルトは"demo"です。password(文字列、オプション): データベースのパスワード。デフォルトは"demo"です。url(文字列、オプション): JDBC URL 接続文字列。
クエリ結果を JSONL 文字列として返します。
jdbc_spasql_queryVirtuoso 特有の機能です!
SPASQL (SQL/SPARQL ハイブリッド) クエリを実行して結果を返します。
入力パラメータ:
query(文字列、必須): SPASQL クエリ文字列。max_rows(数値、オプション): 返される行の最大数。デフォルトは20です。timeout(数値、オプション):クエリのタイムアウト(ミリ秒単位)。デフォルトは30000(つまり30秒)です。user(文字列、オプション): データベースのユーザー名。デフォルトは"demo"です。password(文字列、オプション): データベースのパスワード。デフォルトは"demo"です。url(文字列、オプション): JDBC URL 接続文字列。
基になるストアド プロシージャ呼び出し (例:
Demo.demo.execute_spasql_query) からの結果を返します。
jdbc_sparql_queryVirtuoso 特有の機能です!
SPARQL クエリを実行し、結果を返します。
入力パラメータ:
query(文字列、必須): SPARQL クエリ文字列。format(文字列、オプション): 希望する結果の形式。デフォルトは'json'です。timeout(数値、オプション):クエリのタイムアウト(ミリ秒単位)。デフォルトは30000(つまり30秒)です。user(文字列、オプション): データベースのユーザー名。デフォルトは"demo"です。password(文字列、オプション): データベースのパスワード。デフォルトは"demo"です。url(文字列、オプション): JDBC URL 接続文字列。
基礎となる関数呼び出しの結果を返します (例:
"UB".dba."sparqlQuery")。
jdbc_virtuoso_support_aiVirtuoso 特有の機能です!
Virtuoso 固有の AI アシスタント機能を利用し、プロンプトとオプションの API キーを渡します。
入力パラメータ:
prompt(文字列、必須): AI 関数のプロンプト テキスト。api_key(文字列、オプション):AIサービスのAPIキー。デフォルトは"none"です。user(文字列、オプション): データベースのユーザー名。デフォルトは"demo"です。password(文字列、オプション): データベースのパスワード。デフォルトは"demo"です。url(文字列、オプション): JDBC URL 接続文字列。
AI サポート アシスタント関数呼び出しの結果を返します (例:
DEMO.DBA.OAI_VIRTUOSO_SUPPORT_AI)。
基本的な使用方法とトラブルシューティング
MCP Inspector Virtuoso の ODBC ドライバーへの接続
MCP クライアントの基本的な使用とトラブルシューティングについては、次のように MCP Inspector を使用します。
MCP Inspector をインストールします。
npm install -g @modelcontextprotocol/inspectorインスペクターを起動します。
npx @modelcontextprotocol/inspector java -jar /path/to/mcp-jdbc-server/MCPServer-1.0.0-runner.jar
MCP サーバーの相互作用のトラブルシューティングを行うには、インスペクターによって返された URL にアクセスします。
MCP Inspector 追加ドライバーへの接続
MCP クライアントの基本的な使用とトラブルシューティングについては、次のように MCP Inspector を使用します。
JDBCドライバをインストールし、そのJARファイルが
$CLASSPATH経由でホストオペレーティングシステムのJava仮想マシン(JVM)に登録されていることを確認します。例えば:export CLASSPATH=$CLASSPATH:/path/to/driver1.jar:/path/to/driver2.jar:/path/to/driverN.jar次のコマンドライン引数を使用してインスペクターを起動します。
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
OracleおよびInformixドライバに基づく使用例
次の JDBC ドライバー情報を前提とします。
Oracle JDBC ドライバー URL テンプレート
jdbc:oracle:thin:@<hostname>:[port]:<SERVICEID>Informix JDBC ドライバー URL テンプレート
jdbc:informix-sqli://<hostname>:<port>/<database></database>:<INFORMIXSERVER>=<SERVICEID>
Oracle (
ojdbc17.jar) および/または Informix (jdbc-15.0.0.1.1.jar) JDBC ドライバをインストールし、それらの JAR ファイルが$CLASSPATH経由でホストオペレーティングシステムの Java 仮想マシン (JVM) に登録されていることを確認します。例:export CLASSPATH=$CLASSPATH:/path/to/Java/Extensions/jdbc-15.0.0.1.1.jar export CLASSPATH=$CLASSPATH:/path/to/Java/Extensions/ojdbc17.jar次のコマンドライン引数を使用してインスペクターを起動します。
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インスペクターによって返された URL にアクセスし、次の入力フィールド テンプレートに実際の値を指定して、
jdbc_execute_query操作を使用してターゲット データベースを照会します。JDBC URL
ユーザー
パスワード
クエリ