UC_AIについては以下を参照してください。
UC AI - Agentic AI for Oracle
This PL/SQL framework lets you integrate AI agents and automations directly into your Oracle database; no need for Python or other external tools. With UC AI, you can work with LLMs from providers like OpenAI GPT, Anthropic Claude, Google Gemini, Ollama, and OpenRouter, including features like function calling, step-by-step reasoning, and file analysis, all via a simple unified PL/SQL API. Keep everything close to your data.インストール手順については、以下で説明されています。
UC_AIが提供しているLLM呼び出しAPI - UC_AI.generate_text - はツール呼び出しをサポートしています。プロンプトにツール定義を含めるために、パッケージUC_AI_TOOLS_APIを使用して、PL/SQLのファンクションやプロシージャをツールとして定義します。
本記事ではUC_AIで定義したツールを、ORDS REST APIとして動作するリモートMCPサーバーのツールとして流用します。
以下の処理を行なうスクリプトをsetup-sample-mcp-server.sqlとして作成しました。
- ツールの実装としてファンクションget_schemaおよびrun_sqlを作成します。
- UC_AIのAPIを呼び出し、ファンクションget_schemaおよびrun_sqlを、同名のツールとして登録します。両方のツールにタグとしてnl2sqlを割り当てます。
- ORDSのREST APIのURLとMCPサーバーの実装を紐づける表MCP_HTTP_SERVERSを作成します。
- JSONRPCを扱うユーティリティ・パッケージMCP_HTTP_SERVER_PKGを作成します。
- MCPのプロトコルを処理するパッケージMCP_SAMPLEを作成します。
- ORDS RESTサービスsampleserverを作成します。sampleseverはMCPを処理します。
- ORDS RESTサービスsampleserverと、UC_AIに登録したツールをnl2sqlタグで紐付けます。これでsampleserverとして実装したリモートMCPサーバーから、UC_AIで登録したツールget_schemaおよびrun_sqlを呼び出せます。
スクリプトの実行直後は、ORDS RESTサービスsampleserverは保護されていません。ロールORDSUsersによる保護を適用するには、ロールORDSUsersが割り当てられている権限oracle.example.mcpに、モジュールとしてsampleserverを割り当てる必要があります。
上記の一連の処理を行なうスクリプトsetup-sample-mcp-server.sqlです。実行するスキーマには、あらかじめUC_AIがインストールされている必要があります。
スクリプトの先頭で定義しているAPEX_APP_IDには、ワークスペースに存在するAPEXアプリケーションのIDを設定します。今回の実装では、MCPサーバーのセッションにAPEXセッションを使用しています。ORDS_PATH_PREFIXは、ORDS REST APIのパス別名を設定します。
ロールORDSUsersでRESTサービスsampleserverを保護するには、以下のスクリプトを実行します。
本記事は以上になります。
完