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


こちらのビデオをご覧ください。
一般的な使用法
jbangをインストールする
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:orclPostgreSQL データベースの場合、ユーザーとパスワードを個別に指定することもできます。
jbang jdbc@quarkiverse/quarkus-mcp-servers jdbc:postgresql://localhost:5432/sakila -u sakila -p p_ssW0rdRelated MCP server: Supabase MCP Server
ダウンロード可能なデータベース
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バリアント
データベース | 依存 |
org.mariadb.jdbc:mariadb-java-client:RELEASE | |
mysql:mysql-connector-java:RELEASE | |
org.postgresql:postgresql:RELEASE | |
com.oracle.database.jdbc:ojdbc10:RELEASE | |
com.microsoft.sqlserver:mssql-jdbc:RELEASE | |
com.sapcloud.db.jdbc:ngdbc:RELEASE | |
com.ibm.informix:jdbc:RELEASE | |
org.firebirdsql.jdbc:jaybird:RELEASE | |
org.hsqldb:hsqldb:RELEASE | |
com.h2database:h2:RELEASE | |
org.apache.derby:derby:リリース | |
SQLite | org.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のマジックセットアップを処理するためuvx 、 jbangを使用してJavaをセットアップし、.jarファイルを可能な限り透過的に実行します。uvx、 pipx 、 npmxなどの動作と非常に似ていますが、Java専用です。