2025年11月27日木曜日

ORDSのRESTサービスをClaude Desktopのカスタムコネクタとして登録して呼び出す

Oracle REST Data Servicesで作成したRESTサービスを、Claude Desktopにカスタムコネクタとして追加して呼び出します。実際には、リモートMCPサーバーに見えるようにORDSのRESTサービスを作成します。とりあえずRESTサービスを呼び出せることは確認できましたが、Oracle REST Data ServicesではClaude Desktopがカスタムコネクタに要求しているOAuth2.1 + PKCE Authorization Codeフローは実装できません。

以下の記事で作成したORDSのRESTサービスを、Claude Desktopのカスタムコネクタとして登録します。

Oracle REST Data ServicesのRESTサービスとしてStreamable HTTPを話すMCP Serverを実装してみる

詳しい作業内容は元記事を参照していただくとして、本記事ではClaude Desktopのカスタムコネクタとして追加して、データベースに問い合わせるまでを実施します。


カスタムコネクタとして追加するリモートMCPサーバーは、DNSでホスト名が参照でき、かつ、HTTPSで通信する必要があります。そのため、今回の作業はAlways FreeのAutonomous AI Databaseで行います。

Autonomous AI DatabaseにAPEXのワークスペースとしてAPEXDEVが作成済みとします。

以下のAPEXアプリケーションをワークスペースにインポートします。
https://github.com/ujnak/apexapps/blob/master/exports/chat-with-generative-ai-hc-242.zip

アプリケーション・ビルダーよりインポートを実行します。


インポートするファイルとしてchat-with-generative-ai-hc-242.zipを選択します。ファイル・タイプアプリケーション、ページまたはコンポーネントのエクスポートです。

へ進みます。


アプリケーションのインストールを実行します。


アプリケーションがインストールされると、サポートするオブジェクトのインストールの確認を求めれらます。

サポートするオブジェクトとして、表OPENAI_TOOLSとファンクションget_schemarun_sqlが作成され、属性などの定義情報が表に挿入されます。これらの定義情報を、リモートMCPサーバーで流用します。

サポートするオブジェクトのインストールをクリックします。


APEXアプリケーションと、それをサポートするオブジェクトがインストールされました。


インストールされたアプリケーションを実行し、ナビゲーション・メニューのToolsを開きます。

MCPサーバーのツールにあたる設定として、run_sqlget_schemaが登録済みです。run_sqlおよびget_schemaは、PL/SQLのファンクションとして実装されています。この2つのツールはCountriesという名前のTool Setとしてまとめられています。


次にリモートMCPサーバーの実装をサポート・スクリプトとして含む、以下のAPEXアプリケーションをインポートします。作業手順は、先ほどのchat-with-generative-ai-hc-242.zipと同じです。
https://github.com/ujnak/apexapps/blob/master/exports/mcp_handler.zip

APEXアプリケーションがインストールされると、パッケージMCP_HTTP_SERVER_PKGMCP_SAMPLEが作成されます。またORDSのRESTサービスとしてsampleseverが作成されます。

インストールされたAPEXアプリケーションを実行します。

作成をクリックし、ORDSのRESTサービスとMCPサーバーの実装を紐付けます。


今回は、APEXアプリケーションをインポートしたときに作成されたORDS RESTサービスsampleserverと、MCPサーバーの実装MCP_SAMPLEを使います。

Ords Url/ords/[ワークスペース名]/sampleserverを指定します。ワークスペース名はアプリケーションをインポートしたワークスペース名を、小文字で指定します。Apex App IDはデフォルトで、このアプリケーション自身のアプリケーションIDになります。変更は不要です。Apex Page IDのこのAPEXアプリケーションのホーム・ページのIDになります。変更は不要です。これらはAPEXセッションを開始する際に使用します。

Package NameMCP_SAMPLEを指定します。このパッケージにMCPサーバーに必要なinitialize、tools/list、tools/callなどに対応した処理が、プロシージャとして実装されています。

Log Level4Tool SetCountriesを選択します。Tool SetのCountriesにはget_schemaおよびrun_sqlがツールとして含まれています。

以上で作成をクリックします。


/ords/apexdev/sampleserverとパッケージMCP_SAMPLEの紐付けができました。


作成済みのORDS RESTサービスの保護を解除します。

ORDS RESTサービスのsampleserverは、インポート時に権限oracle.example.mcpによって保護されるように構成しています。

Claude Desktopからカスタムコネクタとして呼び出すために、保護を解除しなければなりません。

SQLワークショップRESTfulサービスを開き、権限oracle.example.mcpを選択します。

保護されたモジュールからsampleserverを除外します。


変更の適用をクリックします。


Oracle REST Data Servicesの認証を解除すると、APEXワークスペース・スキーマがユーザーになるようにコードを書いています。そのため、同名のAPEXユーザーを作成します。

ワークスペースの管理ユーザーとグループの管理を開きます。


ユーザーの作成をクリックします。


ユーザー名はAPEXのワークスペース・スキーマの名前にします。それ以外の必須項目である、電子メール・アドレスパスワードを設定します。

ユーザーの作成をクリックします。

以上でユーザーの作成をクリックします。


ユーザーが作成されました。


以上でClaude Desktopにカスタムコネクタとして登録する準備は完了です。

RESTfulサービスのモジュールsampleserverに含まれるテンプレートmcpを選択し、完全なURLをコピーします。このURLがリモートMCPサーバーURLとして指定する値になります。


Claude Desktopの設定コネクタを開きます。

カスタムコネクタを追加をクリックします。


カスタムコネクタを追加のダイアログが開きます。

名前My Custom ConnectorリモートMCPサーバーURLには、テンプレートmcp完全なURLをペーストします。

追加をクリックします。


なぜかまたダイアログが開きます。これは、キャンセルします。


My Custom Connectorが追加されています。設定を開いて確認します。


設定を開くと、ツールとしてget_schemaおよびrun_sqlが認識されていることが確認できます。


以上でOracle REST Data Servicesで作成したRESTサービスを、Claude Desktopのカスタムコネクタとして設定することができました。

サンプル・データセットをインストールすると、記事の先頭にあるGIF動画の問い合わせを実行できます。


ユーザー認証の実装はできていないため実用的とは言えないですが、何かの役には立つと思います。

今回の記事は以上になります。