MCPサーバを使って Oracle Database と会話してみた(FastMCP & Select AI)

前の記事では、Oracle社が提供しているコマンドラインクライアント SQLcl のMCPサーバー機能を利用してClaude Desktopから自然言語でOracle Databaseの中のデータにアクセスしました。

Autonomous Database には、Select AI という自然言語で問い合わせることができる機能が搭載されているので、Claude Desktopから自然言語でSelect AI経由のデータベースアクセスも試してみようと思います。

ですが、Claude Desktopなどから SELECT AI にアクセスするための公式ツールは提供されていません。
なので、FastMCP を使って、簡単な Claude Desktop用のMCPサーバーを作成してみます。

目次

事前準備

まずはSelect AIを使えるようにするための準備をします。

HRユーザーへSELECT AIを使うための権限を追加

前の記事で、例として挙げられていた HR ユーザーで SELECT AI を使えるようにします。

HR ユーザーで SELECT AIを使うためのクレデンシャルとプロファイルの登録

これ以降からは HR ユーザーで作業します。
まずは、クレデンシャルの登録をします。

次に上記のクレデンシャルを利用して動くSELECT AI のプロファイルを作成します。
対象となるテーブル7個 をオブジェクトのリストに追加します。

SELECT AI の 動作テスト

登録した Profile をSELECT AIで使用するようにセットします。

これで、SELECT AI を利用する準備が整ったので、試しに sqlcl で質問したのとほぼ同じ質問をしてみます。

実行結果は以下の通りになりました

SELECT AI の動作が確認できました。

MCP サーバーの作成

Windows 上でPythonを動かすのに便利な uv のインストール等については省略します。

MCPサーバープロジェクト作成

Oracle DBへの接続ドライバとFastMCPを加えます。

MCPサーバーのコードの作成

FastMCPを使うと簡単にMCPサーバーを作成できるので、MCPクライアントから渡された文字列をSELECT AIに渡すだけなら特に難しい部分はありません。
実際に使う場合には、Autonomous Database への接続部分などは適宜修正してください。

Claude DesktopへのMCPサーバーの設定

claude_desktop_config.json を編集して、MCPサーバーを追加してClaude Desktopを再起動します。

SELECT AI MCPサーバーの動作確認

それでは、まずテーブル一覧を得るために Claudeに Select AIに「スキーマにあるテーブルを教えて」と聞いて と入力してみます

MCPサーバーの応答に加えて、Claudeが知っているMCPサーバーのDiscriptionに書いた情報も付加して応答が返ってきています。

以前の記事と同じように Select AIに「どの職種の従業員が一番多い?」と聞いて と質問をするとSelect AIの結果に対して、コメントをつけて回答してくれました。

まとめ

簡単なMCPサーバーを作成して、Claude DesktopとSelect AIをつないでみました。

自然言語で問い合わせるとSelect AIが結果を返してくれるので、利用するMCPクライアント側はデータベースの内部構造を知る必要が無くなります。

Claude Desktopがデータベースの内部構造を調べるための問い合わせをする必要がない分だけMCPサーバーを利用する回数が減るので、回答を作成するまでのトークンの消費量は減ると思います。

Select AIでRAG を組むこともできるようなので、適材適所で選択してみてはいかがでしょうか?

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