Skip to main content
Glama

OpenLink MCP Server for JDBC

Official

JDBC 用の Java ベースのモデル コンテキスト プロトコル (MCP) サーバー

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

mcpクライアントとサーバー|648x499


特徴

  • スキーマの取得: 接続されたデータベースからすべてのスキーマ名を取得して一覧表示します。
  • テーブルの取得: 特定のスキーマまたはすべてのスキーマのテーブル情報を取得します。
  • テーブルの説明: 次の内容を含むテーブル構造の詳細な説明を生成します:
    • 列名とデータ型
    • ヌル値可能な属性
    • 主キーと外部キー
  • テーブルの検索: 名前の部分文字列に基づいてテーブルをフィルタリングおよび取得します。
  • ストアド プロシージャの実行: *Virtuoso 固有の機能です。*ストアド プロシージャを実行し、結果を取得します。
  • クエリの実行:
    • JSONL 結果形式: 構造化された応答に最適化されています。
    • Markdown テーブル形式: レポートと視覚化に最適です。

前提条件

MCP サーバーには Java 21 以上が必要です。


インストール

このリポジトリをクローンします:

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

環境変数

好みに合わせてこれらのデフォルトを上書きして.envを更新します。

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

構成

Claude Desktopユーザーの場合: claude_desktop_config.jsonに以下を追加します。

{ "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" } } } }

他の JDBC ドライバーまたはドライバーの組み合わせを使用するClaude Desktopユーザーの場合: claude_desktop_config.jsonに以下を追加します。

"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" } }

使用

提供されるツール

インストールが成功すると、次のツールが MCP クライアント アプリケーションで使用できるようになります。

概要
名前説明
jdbc_get_schemas接続されたデータベース管理システム (DBMS) にアクセス可能なデータベース スキーマを一覧表示します。
jdbc_get_tables選択したデータベース スキーマに関連付けられているテーブルを一覧表示します。
jdbc_describe_table指定されたデータベーススキーマに関連付けられたテーブルの説明を提供します。これには、列名、データ型、NULL値の処理、自動インクリメント、主キー、外部キーに関する情報が含まれます。
jdbc_filter_table_names選択したデータベース スキーマに関連付けられた、 q入力フィールドのサブ文字列パターンに基づいてテーブルを一覧表示します。
jdbc_query_databaseSQL クエリを実行し、結果を JSONL 形式で返します。
jdbc_execute_querySQL クエリを実行し、結果を JSONL 形式で返します。
jdbc_execute_query_mdSQL クエリを実行し、結果を Markdown テーブル形式で返します。
jdbc_spasql_queryVirtuoso 固有の機能です。SPASQLクエリを実行して結果を返します。
jdbc_sparql_queryVirtuoso 固有の機能です。SPARQLクエリを実行して結果を返します。
jdbc_virtuoso_support_aiVirtuoso 固有の機能です。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_CATTABLE_SCHEMTABLE_NAMETABLE_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_NAMETYPE_NAMECOLUMN_SIZEIS_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_query
    • Virtuoso 特有の機能です!
    • 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_query
    • Virtuoso 特有の機能です!
    • SPARQL クエリを実行し、結果を返します。
    • 入力パラメータ:
      • query (文字列、必須): SPARQL クエリ文字列。
      • format (文字列、オプション): 希望する結果の形式。デフォルトは'json'です。
      • timeout (数値、オプション):クエリのタ��ムアウト(ミリ秒単位)。デフォルトは30000 (つまり30秒)です。
      • user (文字列、オプション): データベースのユーザー名。デフォルトは"demo"です。
      • password (文字列、オプション): データベースのパスワード。デフォルトは"demo"です。
      • url (文字列、オプション): JDBC URL 接続文字列。
    • 基礎となる関数呼び出しの結果を返します (例: "UB".dba."sparqlQuery" )。
  • jdbc_virtuoso_support_ai
    • Virtuoso 特有の機能です!
    • 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 を使用します。

  1. MCP Inspector をインストールします。
    npm install -g @modelcontextprotocol/inspector
  2. インスペクターを起動します。
    npx @modelcontextprotocol/inspector java -jar /path/to/mcp-jdbc-server/MCPServer-1.0.0-runner.jar

MCP サーバーの相互作用のトラブルシューティングを行うには、インスペクターによって返された URL にアクセスします。

MCP Inspector 追加ドライバーへの接続

MCP クライアントの基本的な使用とトラブルシューティングについては、次のように MCP Inspector を使用します。

  1. JDBCドライバをインストールし、そのJARファイルが$CLASSPATH経由でホストオペレーティングシステムのJava仮想マシン(JVM)に登録されていることを確認します。例えば:
    export CLASSPATH=$CLASSPATH:/path/to/driver1.jar:/path/to/driver2.jar:/path/to/driverN.jar
  2. 次のコマンドライン引数を使用してインスペクターを起動します。
    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ドライバに基づく使用例
  1. 次の JDBC ドライバー情報を前提とします。
    • Oracle JDBC ドライバー URL テンプレート
      jdbc:oracle:thin:@<hostname>:[port]:<SERVICEID>
    • Informix JDBC ドライバー URL テンプレート
      jdbc:informix-sqli://<hostname>:<port>/<database></database>:<INFORMIXSERVER>=<SERVICEID>
  2. 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
  3. 次のコマンドライン引数を使用してインスペクターを起動します。
    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. インスペクターによって返された URL にアクセスし、次の入力フィールド テンプレートに実際の値を指定して、 jdbc_execute_query操作を使用してターゲット データベースを照会します。
    • JDBC URL
    • ユーザー
    • パスワード
    • クエリ
-
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 サーバー (JDBC 用)

  1. 特徴
    1. 前提条件
      1. インストール
        1. 環境変数
          1. 構成
            1. 使用
              1. 提供されるツール
              2. 基本的な使用方法とトラブルシューティング

            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