OpenLink MCP Server for JDBC

MIT License

Integrations

  • Supports configuration through .env files, allowing users to override default database connection settings with custom environment variables.

  • Provides ability to format database query results as Markdown tables, making data presentation more readable for reporting and visualization purposes.


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

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


特徴

  • スキーマの取得: 接続されたデータベースからすべてのスキーマ名を取得して一覧表示します。
  • テーブルの取得: 特定のスキーマまたはすべてのスキーマのテーブル情報を取得します。
  • テーブルの説明: 次の内容を含むテーブル構造の詳細な説明を生成します:
    • 列名とデータ型
    • ヌル値可能な属性
    • 主キーと外部キー
  • テーブルの検索: 名前の部分文字列に基づいてテーブルをフィルタリングおよび取得します。
  • ストアド プロシージャの実行: 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" } } } }

使用法

提供されるツール

インストールが成功すると、次のツールが 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_クエリSPASQL クエリを実行し、結果を返します。
jdbc_sparql_クエリSPARQL クエリを実行し、結果を返します。
jdbc_virtuoso_support_aiVirtuoso サポート アシスタント/エージェントと対話する - LLM と対話するための Virtuoso 固有の機能

詳細な説明

  • 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_クエリ
    • SPASQL(SQL/SPARQLハイブリッド)クエリを実行し、結果を返します。これはVirtuoso固有の機能です。
    • 入力パラメータ:
      • query (文字列、必須): SPASQL クエリ文字列。
      • max_rows (数値、オプション): 返される行の最大数。デフォルトは 20 です。
      • timeout (数値、オプション):クエリのタイムアウト(ミリ秒)。デフォルトは30000です。
      • user (文字列、オプション): データベースのユーザー名。デフォルトは「demo」です。
      • password (文字列、オプション): データベースのパスワード。デフォルトは「demo」です。
      • url (文字列、オプション): JDBC URL 接続文字列。
    • 基になるストアド プロシージャ呼び出し (例: Demo.demo.execute_spasql_query ) からの結果を返します。
  • jdbc_sparql_クエリ
    • SPARQLクエリを実行し、結果を返します。これはVirtuoso固有の機能です。
    • 入力パラメータ:
      • query (文字列、必須): SPARQL クエリ文字列。
      • format (文字列、オプション): 希望する結果形式。デフォルトは 'json' です。
      • timeout (数値、オプション):クエリのタイムアウト(ミリ秒)。デフォルトは30000です。
      • user (文字列、オプション): データベースのユーザー名。デフォルトは「demo」です。
      • password (文字列、オプション): データベースのパスワード。デフォルトは「demo」です。
      • url (文字列、オプション): JDBC URL 接続文字列。
    • 基礎となる関数呼び出しの結果を返します (例: "UB".dba."sparqlQuery" )。
  • jdbc_virtuoso_support_ai
    • Virtuoso固有のAIアシスタント機能を利用し、プロンプトとオプションのAPIキーを渡します。これはVirtuoso固有の機能です。
    • 入力パラメータ:
      • prompt (文字列、必須): AI 関数のプロンプト テキスト。
      • api_key (文字列、オプション):AIサービスのAPIキー。デフォルトは「なし」です。
      • user (文字列、オプション): データベースのユーザー名。デフォルトは「demo」です。
      • password (文字列、オプション): データベースのパスワード。デフォルトは「demo」です。
      • url (文字列、オプション): JDBC URL 接続文字列。
    • AI サポート アシスタント関数呼び出しの結果を返します (例: DEMO.DBA.OAI_VIRTUOSO_SUPPORT_AI )。

トラブルシューティング

トラブルシューティングを簡単にするには:

  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

提供された URL にアクセスして、サーバー相互作用のトラブルシューティングを行います。

-
security - not tested
A
license - permissive license
-
quality - not tested

OpenLink MCP サーバー (JDBC 用)

  1. Features
    1. Prerequisites
      1. Installation
        1. Environment Variables
          1. Configuration
            1. Usage
              1. Tools Provided
              2. Troubleshooting
            ID: q412uvi27y