mcp-jdbc

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Allows querying, modifying, and creating tables in MariaDB databases via JDBC, including SELECT, INSERT, UPDATE, and DELETE operations

  • Enables inspection and manipulation of MySQL database content through SQL queries, with support for table creation and management

  • Provides access to a sample Netflix movie database for exploration and querying through the JDBC interface

JDBC 用モデルコンテキストプロトコルサーバー

このモデル コンテキスト プロトコル (MCP) サーバーにより、Java データベース接続 (JDBC) URL のみを指定して、大規模言語モデル (LLM) がデータベース コンテンツを検査、クエリ、作成、および変更できるようになります。

サポートされているデータベースには、PostgresSQL、Oracle、MariaDB、Sqliteなどがあります。

こちらのビデオをご覧ください。

一般的な使用法

  1. jbangをインストールする
  2. MCP クライアントをサーバーを実行するように構成します (以下のClaude Desktop Config を参照)

以下は、サーバーを構成するために使用するコマンドラインの例です。

空のデータベース (メモリ内 h2 データベース) から開始します。

jbang jdbc@quarkiverse/quarkus-mcp-servers

ライブ データベース (一般的な JDBC 互換データベース):

jbang jdbc@quarkiverse/quarkus-mcp-servers [jdbc_url]

たとえば、すでに実行中の Oracle データベースに接続するには、次のようにします。

jbang jdbc@quarkiverse/quarkus-mcp-servers jdbc:oracle:thin:@localhost:1521:orcl

PostgreSQL データベースの場合、ユーザーとパスワードを個別に指定することもできます。

jbang jdbc@quarkiverse/quarkus-mcp-servers jdbc:postgresql://localhost:5432/sakila -u sakila -p p_ssW0rd

ダウンロード可能なデータベース

JBang は Web からファイルをダウンロードし、それを h2 や sqlite などのデータベースに直接送信できます。

これは %{url} 構文を使用して行われます。

以下は、github からChinook_Sqlite.sqliteファイルをダウンロードして、SQLite で Chinook データベースに接続する方法の例です。

jbang jdbc@quarkiverse/quarkus-mcp-servers jdbc:sqlite:%{https://github.com/lerocha/chinook-database/raw/master/ChinookDatabase/DataSources/Chinook_Sqlite.sqlite}

データの探索に使用できる興味深いサンプル データの例がオンラインで入手できます。

以下は、このサーバーでそのまま動作することが分かっているデータベースとサンプル JDBC URL の非網羅的なリストです (追加の構成は不要です)。

サンプルデータベース

チヌーク

アーティスト、アルバム、トラック、請求書などを含む音楽ストアのサンプルデータ。

jdbc:sqlite:%{https://github.com/lerocha/chinook-database/raw/master/ChinookDatabase/DataSources/Chinook_Sqlite.sqlite}

ノースウィンド

顧客、注文、製品などを含むクラシックな Microsoft サンプル データベース。

jdbc:sqlite:%{https://github.com/jpwhite3/northwind-SQLite3/raw/refs/heads/main/dist/northwind.db}

Netflix映画

Netflixカタログに基づくサンプル映画データ

jdbc:sqlite:%{https://github.com/lerocha/netflixdb/releases/download/v1.0.0/netflixdb.sqlite}

サポートされているJDBCバリアント

データベース依存
マリアDBorg.mariadb.jdbc:mariadb-java-client:RELEASE
MySQLmysql:mysql-connector-java:RELEASE
PostgreSQLorg.postgresql:postgresql:RELEASE
オラクルcom.oracle.database.jdbc:ojdbc10:RELEASE
SQL サーバーcom.microsoft.sqlserver:mssql-jdbc:RELEASE
SAP DBcom.sapcloud.db.jdbc:ngdbc:RELEASE
インフォミックスcom.ibm.informix:jdbc:RELEASE
火の鳥org.firebirdsql.jdbc:jaybird:RELEASE
hsqldborg.hsqldb:hsqldb:RELEASE
h2com.h2database:h2:RELEASE
アパッチ・ダービーorg.apache.derby:derby:リリース
SQLiteorg.xerial:sqlite-jdbc:RELEASE

コンポーネント

以下は、このサーバーによって提供される MCP コンポーネントです。

ツール

  • read_query - データベースに対してSELECTクエリを実行する
  • write_query - データベースに対してINSERT、UPDATE、DELETEクエリを実行する
  • create_table - データベースにテーブルを作成する
  • list_tables - データベース内のすべてのテーブルを一覧表示する
  • describe_table - テーブルを説明する

プロンプト

  • jdbc_demo - サーバーの探索を開始するためのサンプルプロンプト(sqllite MCP のプロンプトに似ています)

Claude デスクトップ設定とmcp-cli

これをclaude_desktop_config.jsonまたはserver_config.jsonファイルに追加します。

{ "mcpServers": { "jdbc": { "command": "jbang", "args": [ "jdbc@quarkiverse/quarkus-mcp-servers", "[jdbc_url]" ] } } }

トラブルシューティング

jbangが見つかりません

  • jbangがインストールされ、PATHで利用可能であることを確認してください。
  • あるいは、jbang実行ファイルへのフルパスを使用します(例: /Users/username/.jbang/jbang

ログ記録をもっと取得する

より詳細なログを取得するには、jbang コマンドラインに次のパラメータを追加します。

-Dquarkus.log.file.enable=true -Dquarkus.log.file.path=${user.home}/mcp-server-jdbc.log

例:

jbang -Dquarkus.log.file.enable=true -Dquarkus.log.file.path=${user.home}/mcp-jdbc.log jdbc@quarkiverse/quarkus-mcp-servers jdbc:h2:mem:testdb

ネイティブイメージ/実行可能ファイル

サーバーをネイティブ実行可能ファイルにコンパイルすることはできますが、関連する JDBC ドライバーを動的にロードすることができないため、お勧めしません。

特定のJDBCドライバをターゲットとするサーバーをコンパイルすることは可能ですが、今のところは読者の課題として残しておきます。ご興味のある方は、IssueまたはPRをオープンしてください。

これはどうやって作られたのですか?

MCP サーバーは、Quarkus、Supersonic Subatomic Java フレームワーク、およびそのモデル コンテキスト プロトコル サポートを使用します。

Quarkus MCP Server のサポートについて詳しく知りたい場合は、このブログ投稿と Quarkus MCP Server拡張機能のドキュメントを参照してください。

サーバーを起動し、JDBC URLのマジックセットアップを処理するためuvxjbangを使用してJavaをセットアップし、.jarファイルを可能な限り透過的に実行します。uvx、 pipxnpmxなどの動作と非常に似ていますが、Java専用です。

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

MCP は、Postgres、Oracle、mysql、mariadb、sqlite など、JDBC 経由でアクセス可能な任意のデータベースにアクセスします。

  1. General Usage
    1. Downloadable databases
      1. Example databases
    2. Supported JDBC variants
      1. Components
        1. Tools
        2. Prompts
      2. Claude Desktop Config and mcp-cli
        1. Troubleshooting
      3. Native Image/Executable
        1. How was this made?
      ID: 2au072rrbc