MCPサーバを使って Oracle Database と会話してみた(SQLcl)

SQLcl は、Oracle Database に接続して SQL を実行したり、スクリプトを操作したり、開発者向けに支援機能が強化されたコマンドラインツールですが、今月(2025年7月)にリリースされた Oracle SQLcl 25.2.1 でMCPサーバとして使用できるようになりました。

これにより、Oracle Database に対して自然言語で問い合わせができるようになるということで、実際に簡単に触ってみた内容を記事にしたいと思います。

目次

環境・構成

MCPクライアントとして、Claude for Desktop (以降、Claude Desktop とします)を使用し、Claude Desktop だと Docker にMCPサーバをインストールするというのが最近のトレンドかと思いますが、今回は、WSL2上の Ubuntu にインストールしてみました。
(ちなみに、Windows上に SQLcl を直接インストールするのが、最も簡単な手法ではありますが、Windows上にJREをインストールしたくなかったのと、既にWindows上にインストールしてみたというブログが他にもあった為、WSL2にインストールして確認してみました。)

全体的な構成としては、以下のような感じで、SQLcl の接続先として OCI の Autonomous Database 23ai を使用しています。

前提条件

  • Claude Desktop はインストール済みであること。
  • WSL2 に、Ubuntu 22.04 がインストール済みであること。
  • Autonomous Database は、ローカル環境からアクセス可能で、Walletファイルは Ubuntu 上に保存済みであること。

SQLcl のインストール

JRE のインストール

SQLcl の MCPサーバを使用するには、Java Runtime Environment (JRE) の バージョン 17 以上が必要となります。
詳細については、以下のリファレンスの 3.4.1 Installing the Required Software をご確認下さい。

まずは、こちらを Ubuntu にインストールします。

SQLcl のダウンロード

以下のURLへアクセスし、ダウンロード画面から SQLcl をダウンロードします。
https://www.oracle.com/database/sqldeveloper/technologies/sqlcl/download/

ダウンロードした zip ファイルは、Ubuntu 上の /home/blog/oracle/ に保存します。
/home/blog は、WSLのデフォルトのログオンユーザのホームディレクトリに沿って変更して下さい。これ以降のコマンドでも同様に置き換えて下さい。
デフォルトのログオンユーザは /etc/wsl.conf で設定可能です。

合わせて、 Autonomous Database の Walletファイルも同ディレクトリに配置します。

SQLcl のセットアップ

Ubuntu にログオン後、 oracle ディレクトリに移動し、ダウンロードしたファイルを解凍します。

この状態で、Walletファイルを使用して、Autonomous Database へ接続します。

正常に接続できれば、 conn -save で接続情報を保存します。
以下では、接続名を my_mcp_wallet として保存しています。
こちらについての詳細は、以下のリファレンスの 3.4.2 Configuring Database Connections をご確認下さい。

実行後、ホームディレクトリの ~/.dbtools/connections 内に接続情報が保存されていることが分かります。

最後に、MCPサーバが起動することを確認しておきましょう。

テストデータの登録

続いて、テストデータを登録しておきます。
テストデータとして、以下を使用させて頂きました。

Claude Desktopの設定

claude_desktop_config.json に以下のように設定を追加します。

今回、個人的な都合で WSL2 でMCPサーバを起動させてますが、Windows上に SQLcl をインストールすれば、以下のように、よりシンプルに設定することができます。

設定追加後は、Claude Desktop を再起動させ、「検索とツール」から「sqlcl」が表示されるのを確認し、有効化します。

続いて表示されたメニュー「すべてのツールを有効化」を押します。

自然言語で問い合わせてみる

まずは、 HRスキーマにあるテーブルを教えて と聞いてみました。

正確にテーブル一覧を返してくれました。
次は、 どの職種の従業員が一番多い? としてみました。

これは、単一テーブルでなく、JOBS テーブルと、EMPLOYEES テーブルを結合しないと答えられないと思いますが、以下のようなSQLを実行して、しっかりと回答を返してくれてます。

まとめ

SQLcl のMCPサーバを使うことで、Oracle Database に対して、シンプルなセットアップで自然言語によるクエリ実行が可能になりました。

今回は、GitHub に公開されているサンプルデータベースであった為、もしかすると Claude が学習済みでうまくレスポンスが返ってきた可能性もあるかと思いますので、実際に業務で使用するようなデータベースで、どの程度、使用できるのかは引き続き検証してみようと思います。

実際に使ってみると、非エンジニアでもデータにアクセスできる未来が、もう未来でなくなっていることを実感しました。
Autonomous Database でいえば、Select AIがありますが、現時点では、Oracle Database では使えないので、Oracle Database をお使いの方は、是非、SQLcl のMCPサーバを使って検証してみて下さい。

よかったらシェアしてね!
  • URLをコピーしました!
目次