Oracle Database に保存されている エンタープライズ データに対して エージェントアプリケーションを企業が構築できるようにするために、Model Context Protocol (MCP) Server を発表しました。
Oracle MCPサーバーは Oracleのコア開発ツールに統合されており、MCP をサポートするあらゆるプラットフォームで Oracle Database をすぐに利用できるようになります。この統合は、Oracle Database への新しいコマンドラインである Oracle SQLcl を介して実現されます。
SQLcl MCPサーバーは、AIアプリケーションとOracleデータベースの連携を強化するツールセットを提供します。これらのツールは、様々なデータベース操作に使用されるSQLclコマンドを抽象化することで、AIモデルが自律的にデータベースを管理できるようにします。これにより、手動のコマンドライン操作ではなく、戦略的な目標に集中できるようになります。
さらに、これらのツールは自然言語インターフェースを通じて高度なワークフローを実現し、AIシステムによるデータベースのデモ実行、大規模なデータ移行の管理、複雑な分析クエリの実行、管理タスクの自動化を可能にします。最終的に、SQLcl MCP Serverは直接的な手動入力の必要性を排除し、AIアプリケーションが高度な専門知識と労力を必要としていた複雑なデータベース操作を独自に実行できるようにします。
現在、SQLcl MCP サーバーは次のツールを提供しています。
list-connections:マシンに保存されているすべての Oracle データベース接続を検出し、一覧表示します。
connect:指定した名前付き接続の 1 つへの接続を確立します。
切断:現在アクティブな Oracle データベース接続を終了します。
run-sql:接続されたデータベースに対して標準の SQL クエリと PL/SQL コード ブロックを実行します。
run-sqlcl: SQLcl 固有のコマンドと拡張機能を実行します。
企業のデータにAIをより効率的に活用する新しい方法を模索している開発者であれば、モデル・コンテキスト・プロトコル(MCP)が最近なぜ注目されているのか、すでにご存知でしょう。MCPは、大規模言語モデル(LLM)とAIツールを統合するためのUSB-Cのような位置づけとなっています。 そして今、Oracle SQLcl 経由でアクセスできるOracle Database向けモデル・コンテキスト・プロトコル・サーバー(MCPサーバー)の登場により、AIツールやLLMごとにカスタム統合を構築することなく、AIアシスタントやLLMをOracle Databaseに安全に接続できるようになります。つまり、MCPをサポートするあらゆるプラットフォームからOracle Databaseにアクセスできるようになるのです。
ということで、MacBook へ SQLcl MCP Server と Anthropic社が開発した高性能な対話型AI Claude Desktop をインストールして Oracle Databse へ自然言語で問い合わせて ER図やグラフ、ダッシュボード作成もお願いしてみてみます。
■ 構成イメージ
MacBook へ SQLcl MCP Server と 対話方 AI Claude をインストールして Oracle Database と接続します。
事前に構成図のように Oracle Cloud Infrastructure (OCI) へ Oracle Database を構築して MacBook と SQL 通信できるように設定しておきます。
また、Oracle Database には サンプルスキーマをインストールしそのデータを使用した問合せをできるようにしておきます。
-
参考
- Oracle Database作成: Oracle Exadata Cloud Infrastructure X11M作成
- サンプル・データ投入: Oracle Database サンプル・スキーマをインストール
- FastConnect接続: NEC印西データセンターで Oracle FastConnect L2 接続
注意
大規模言語モデル(LLM)にデータベースへのアクセスを許可すると、重大なセキュリティリスクが生じます。LLMは入力されたデータを使用してレスポンスを生成するため、意図しないテーブルや機密情報が誤って公開される可能性があります。
これらのリスクを軽減するには、次の安全対策を実施してください。
- 最小限の権限を割り当てる: LLMが使用するデータベースユーザーアカウントに、タスクに必要な最小限の権限を設定します。このアプローチにより、LLMがアクセスできる範囲が制限されます。
- 本番データベースへのアクセスを避ける: LLMに本番データベースへの直接アクセスを許可しないでください。代わりに、サニタイズされた読み取り専用のレプリカまたは専用のデータサブセットを使用する必要があります。
-
LLMアクティビティの監査: LLMによって実行されるクエリを定期的に監査します。これにより、異常や制限されたデータへのアクセス試行を検出できます。監査作業をサポートするために、SQLcl MCPサーバーには以下の組み込み監視機能が用意されています。
- セッション トラッキング: 使用中の MCP クライアントが VSESSION.MODULE に入力され、LLM の名前が V$SESSION.ACTION に入力されます。
- アクティビティ ログ: DBTOOLS$MCP_LOGすべてのインタラクションと SQL 実行を記録する という 名前のテーブルを作成します。
- クエリ識別: SQLcl MCP サーバーのツールを通じて LLM によって生成されたすべてのクエリには、ログで簡単に識別できるように次のコメントが含まれます /* LLM in use ... */。
監視の詳細については、Monitoring the SQLcl MCP Serverを参照してください。
■ 環境の準備
● 必要なソフトウェアのインストール
SQLcl MCP サーバーを使用するには、システムに次のソフトウェアをインストールする必要があります。
・ Oracle SQLcl、バージョン 25.2.0 以上
・ Java ランタイム環境 (JRE) バージョン 17 以上
1) SQLcl と JRE/JDK インストール
次を参考に SQLcl と JRE をインストール
・参考: MacBook へ SQLcl と JRE/JDK インストール
2) SQLcl インストール確認
SQLcl コマンド実行できることを確認
shirok@macbook~ % sql /nolog
Warning: ORACLE_HOME must be database version 23 or later
or must be a 23c compatible instant client
Thick driver unavailable for use.
SQLcl: 月 8月 04 20:29:56 2025のリリース25.2 Production
Copyright (c) 1982, 2025, Oracle. All rights reserved.
SQL>
3) JRE インストール確認
java の Version 確認
shirok@macbook~ % java -version
java version "22" 2024-03-19
Java(TM) SE Runtime Environment (build 22+36-2370)
Java HotSpot(TM) 64-Bit Server VM (build 22+36-2370, mixed mode, sharing)
● データベース接続の構成
SQLcl MCPサーバーは、ディレクトリ内の接続ストアに保存された事前構成済みの接続に依存します。これらの接続は、 ~/.dbtools を使用して管理できます。
MCP 互換の保存済み接続を作成するには、次の例のようなコマンドを実行します。
1) SQLcl 接続
shirok@macbook~ % sql /nolog
Warning: ORACLE_HOME must be database version 23 or later
or must be a 23c compatible instant client
Thick driver unavailable for use.
SQLcl: 火 7月 29 19:23:06 2025のリリース25.2 Production
Copyright (c) 1982, 2025, Oracle. All rights reserved.
SQL>
2) MCP 互換の保存済み接続を作成
次のコマンドを使用して、Oracle Databaseへ接続します。
SQL> conn -save Claude_mcp -savepwd HR/Password@//10.10.1.185:1521/PDB.clientsubnet.vcnexatokyo.oraclevcn.com
名前: Claude_mcp
接続文字列: //10.10.1.185:1521/PDB.clientsubnet.vcnexatokyo.oraclevcn.com
ユーザー: HR
パスワード: ******
接続しました.
SQL> exit
Oracle Database 19c EE High Perf Release 19.0.0.0.0 - Production
Version 19.24.0.0.0から切断されました
3) ~/.dbtools ディレクトリ確認
SQLcl MCPサーバーは、~/.dbtoolsディレクトリ内の接続ストアに保存され、dbtools.propertiesファイルへ設定した接続情報が作成されます。
shirok@macbook~ % ls -l ~/.dbtools
total 0
drwx------ 3 shirok staff 96 Jul 29 18:15 connections
shirok@macbook ~ % cat .dbtools/connections/0HRl7egbDJvBqNDvpYtVHA/dbtools.properties
name=Claude_mcp
type=ORACLE_DATABASE
connectionString=//10.10.1.185\:1521/PDB.clientsubnet.vcnexatokyo.oraclevcn.com
userName=HR
4)MCPサーバ起動確認
SQLcl MCP サーバーが正常に起動すると、起動タイムスタンプを含む確認メッセージが表示され、MCP クライアントからの接続を受け入れる準備ができていることを示します。
ターミナルでこのメッセージを確認することで、サーバーの準備状況を確認できます。
shirok@macbook~ % sql -mcp
Warning: ORACLE_HOME must be database version 23 or later
or must be a 23c compatible instant client
Thick driver unavailable for use.
---------- MCP SERVER STARTUP ----------
MCP Server started successfully on Tue Jul 29 18:20:28 JST 2025
Press Ctrl+C to stop the server
----------------------------------------
■ SQLcl MCPサーバーの起動
SQLcl MCP サーバーは、MCP クライアント アプリケーションを通じて自動的に起動および管理されるように設計されています。
Claude DesktopやClineなどのお好みのクライアントを設定して、必要に応じてサーバーを起動します。設定が完了すると、MCPクライアントはサーバーの起動、ライフサイクルの管理、セッション完了時のクリーンな終了を自律的に処理し、自然な対話を通じてOracleデータベース操作を可能にします。
MCPクライアントを設定するには、クライアントでサーバーの場所を指定する必要があります。以下のトピックでは、一般的なMCPクライアントのClaudeデスクトップを構成を設定するための具体的な手順を説明します。
● Claudeデスクトップの設定
Claude DesktopをSQLcl MCP Server用に設定するには、以下の手順に従ってください。設定後、Claude DesktopはSQLcl MCP Serverを自動的に管理し、Claudeとの対話を通じてOracle Databaseの操作を実行できるようになります。
Claude Desktop をインストールします。Claude for Desktop のインストールを参照して作成します。
● システム要件
macOS: macOS 11 (Big Sur) 以上
Windows: Windows 10以降
● インストール手順
Claude のダウンロード・ページにアクセスしてください。
ご使用のオペレーティング システムに適したバージョンを選択してください。
Macユーザーの場合:「macOS」をクリックします
2) アプリケーション フォルダー (Mac) またはスタート メニュー (Windows) から Claude を起動します。
3) 開始するには、アカウントでサインインしてください。
アカウントを新規作成する場合、[メールで続ける]をクリックしてアカウントを作成してログインします。
● Claudeデスクトップの設定
Claude DesktopをSQLcl MCP Server用に設定するには、以下の手順に従ってください。設定後、Claude DesktopはSQLcl MCP Serverを自動的に管理し、Claudeとの対話を通じてOracle Databaseの操作を実行できるようになります。
1) 設定ファイルをダウンロードします。
Claude Desktop を開き、[メニュー]をクリックし、 [ファイル]を選択して、 [設定]をクリックします。
[設定の編集]をクリックして、設定ファイル ( claude_desktop_config.json) をコンピューターにダウンロードします。
2) 設定ファイルを編集します。
テキストエディタでファイルを開きclaude_desktop_config.json、以下の形式のJSON設定スニペットを追加します。SQLclPATH/bin/sqlインストールの絶対パスに置き換えて、設定ファイルを保存します。
shirok@macbook~ % cat Library/Application\ Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"sqlcl": {
"command": "/Users/shirok/oracle/sqlcl/bin/sql",
"args": ["-mcp"]
}
}
}
3) 構成を確認
プロンプトボックスで 「検索とツール」をクリックします。
SQLcl MCP Serverツールがリストされ、有効になっていることがわかります。必要に応じて、Claude Desktopを再起動して変更を有効にしてください。
■ ユースケースとプロンプトの例
では、MCPサーバ起動して自然言語で問い合わせしてみましょう。
● MCPサーバ起動ステータス確認
QLcl MCP サーバーが正常に起動すると、起動タイムスタンプを含む確認メッセージが表示され、MCP クライアントからの接続を受け入れる準備ができていることを示します。
ターミナルでこのメッセージを確認することで、サーバーの準備状況を確認できます。
停止する場合は、Ctrl+C です。
shirok@macbook~ % sql -mcp
Warning: ORACLE_HOME must be database version 23 or later
or must be a 23c compatible instant client
Thick driver unavailable for use.
---------- MCP SERVER STARTUP ----------
MCP Server started successfully on Tue Jul 29 18:20:28 JST 2025
Press Ctrl+C to stop the server
------
● Claude 問合せ: LLM自己紹介
現在しようされているLLMを教えてください
● Claude 問合せ: MCPサーバーとはなんでしょか?
OracleのMCPサーバーとはどのようなものでどんなことできるのでしょうか?
● Claude 問合せ: HRとOEスキーマER図作成
ER図を作成してもらいましょう。Mermaid 記法で作成してくれます。
HRとOEスキーマは外部キーでリレーションされているので連なっていることが確認できます。
databaseへ接続して、HRスキーマとOEスキーマのER図を作成してください
● Claude 問合せ: SHスキーマ商品売上問合せ
この問い合わせは以前、OpenAI API を使用して自然言語で Select AI した内容です。
出力結果は同じであることが確認できます。
SHスキーマのデータでは、各商品はどれだけ売れましたかしら?昇順で表示してちょ;
● Claude 問合せ: 売上上位10の国別売上の集計とグラフ化
集計結果を表にするだけでなく、ダッシュボードとしてグラフを作成してくれます。
売上上位10の国別売上の集計を教えてください
集計結果をグラフ化してください
■ ログによるアクティビティの追跡
SQLcl MCP サーバーは、データベース操作を追跡および監視するための主な 2 つの方法、履歴監査証跡とリアルタイム セッション監視を提供します。
● 監査証跡の確認
サーバーは、すべてのリクエストの実行履歴をDBTOOLS\$MCP_LOGテーブルに自動的に記録します。このテーブルは、サーバーが実行するすべてのデータベース操作の完全な監査証跡を提供します。リクエストの詳細、実行時間、結果が記録されるため、分析やトラブルシューティングに役立ちます。
データベースのパフォーマンスを最適に保つには、 DBTOOLS$MCP_LOG定期的にテーブルを整理する必要があります。レコード数の上限(例:1000件)を設定し、ログの過剰な蓄積を防ぐための自動クリーンアップ手順を作成することを検討してください。
監査証跡を表示するには、次の例のようなクエリを実行します。
SQL> SET LONG 40
SQL> select * from DBTOOLS$MCP_LOG order by CREATED_BY;
ID MCP_CLIENT MODEL END_POINT_TYPE END_POINT_NAME LOG_MESSAGE CREATED_ON CREATED_BY UPDATED_ON UPDATED_BY
_____ _____________ __________________ _________________ ___________________ ___________________________________________ ______________________________ _____________ ______________________________ _____________
1 Claude claude-sonnet-4 tool connect Connect to SYSTEM 25-08-13 13:21:28.712564000 SYSTEM 25-08-13 13:21:28.712564000 SYSTEM
2 Claude claude-sonnet-4 tool run-sql SELECT /* LLM in use is claude-sonnet-4 25-08-13 13:21:33.558252000 SYSTEM 25-08-13 13:21:33.558252000 SYSTEM
3 Claude claude-sonnet-4 tool run-sql SELECT /* LLM in use is claude-sonnet-4 25-08-13 13:21:40.455659000 SYSTEM 25-08-13 13:21:40.455659000 SYSTEM
4 Claude claude-sonnet-4 tool run-sql SELECT /* LLM in use is claude-sonnet-4 25-08-13 13:21:46.968147000 SYSTEM 25-08-13 13:21:46.968147000 SYSTEM
5 Claude claude-sonnet-4 tool run-sql SELECT /* LLM in use is claude-sonnet-4 25-08-13 13:21:53.184501000 SYSTEM 25-08-13 13:21:53.184501000 SYSTEM
6 Claude claude-sonnet-4 tool list-connections Connect to SYSTEM 25-08-13 13:34:17.928320000 SYSTEM 25-08-13 13:34:17.928320000 SYSTEM
7 Claude claude-sonnet-4 tool connect Connect to SYSTEM 25-08-13 13:34:21.744155000 SYSTEM 25-08-13 13:34:21.744155000 SYSTEM
8 Claude claude-sonnet-4 tool run-sql SELECT /* LLM in use is claude-sonnet-4 25-08-13 13:34:26.123719000 SYSTEM 25-08-13 13:34:26.123719000 SYSTEM
9 Claude claude-sonnet-4 tool list-connections Connect to SYSTEM 25-08-13 13:45:03.890344000 SYSTEM 25-08-13 13:45:03.890344000 SYSTEM
10 Claude claude-sonnet-4 tool list-connections Connect to SYSTEM 25-08-13 13:45:07.876006000 SYSTEM 25-08-13 13:45:07.876006000 SYSTEM
11 Claude claude-sonnet-4 tool connect Connect to SYSTEM 25-08-13 13:45:11.760044000 SYSTEM 25-08-13 13:45:11.760044000 SYSTEM
12 Claude claude-sonnet-4 tool run-sql SELECT /* LLM in use is claude-sonnet-4 25-08-13 13:45:17.277965000 SYSTEM 25-08-13 13:45:17.277965000 SYSTEM
13 Claude claude-sonnet-4 tool run-sql SELECT /* LLM in use is claude-sonnet-4 25-08-13 13:45:22.154956000 SYSTEM 25-08-13 13:45:22.154956000 SYSTEM
14 Claude claude-sonnet-4 tool run-sql SELECT /* LLM in use is claude-sonnet-4 25-08-13 13:45:26.031985000 SYSTEM 25-08-13 13:45:26.031985000 SYSTEM
15 Claude claude-sonnet-4 tool run-sql SELECT /* LLM in use is claude-sonnet-4 25-08-13 13:45:31.542981000 SYSTEM 25-08-13 13:45:31.542981000 SYSTEM
● ライブセッションの監視
データベース管理者(DBA)権限がある場合は、アクティブな MCP接続と操作をリアルタイムで監視できます。サーバーは Oracle の V$SESSION ビューと統合されているため、標準的な Oracle監視ツールを使用して、現在のセッション、リソース使用状況、パフォーマンスを追跡できます。MCPクライアント情報を確認するには、 V\$SESSION の MODULE との ACTION値を確認します。
select MODULE, ACTION from V$SESSION;
● クライアントを介した監視
MCP クライアントは、サーバーのアクティビティを監視するための最も直接的な方法を提供します。
たとえば、Claude Desktop のようなアプリケーションでは、ログ ファイルには次のようなサーバーの操作に関する詳細情報が記録されます。
・ 接続イベント
・ ツールの実行
・ クエリ結果
・ エラーメッセージ
問題をトラブルシューティングする必要がある場合は、必ず最初にクライアントのログを確認してください。
■ 参考
・ Claude
- Claude
- Claudeの紹介
- よくある質問
- Claude詳細
・ Oracle Documents
- Oracle SQLcl
- Using Oracle SQLcl
- 3.5 SQLcl MCPサーバーの起動と管理
・ Blogs
- Introducing MCP Server for Oracle Database
- How can Developers and DBAs benefit from MCP Server for Oracle Database?
- Oracle launches MCP server to power context-aware AI agents for enterprise data
- Oracle adds MCP support to advance agentic AI development
- Unleashing the Power of MCP for Oracle GenAI Agents
・ GitHub
- MCP Server - Oracle DB Context
- Oracle MCP Server Repository
・ Others
- Mermaid Diagramming and charting tool
・ Logging Analytics
- Logging Analytics概要