Clineは、最先端のAIモデルをVS Codeエディタに直接組み込むオープンソースのAIコーディングエージェントです。オートコンプリートツールとは異なり、Clineはコードベース全体を理解、複雑な変更を計画し、複数ステップのタスクを実行できる真のコーディングエージェントです。
前回 は、Oracle MCPサーバーについて詳しく説明し、MacBook で Claude を使用したので今回は、Windows で Cline と OpenAI API をしようして Oracle Database に自然言語で問合せできるようにし、さらにMCPの監査証跡: DBTOOLS$MCP_LOG もみてみてみます。
■ 構成イメージ
事前に構成図のように Oracle Cloud Infrastructure (OCI) へ Oracle Database を構築して Windows と SQL 通信できるように設定しておきます。また、Oracle Database には サンプルスキーマをインストールしそのデータを使用した問合せをAIができるようにしておき、さらに AIからのアクセスLog、監査ログを取得/分析/アラート発報できるよう Logging Analytics も設定しておきます。
-
参考
- Oracle Database作成: Oracle Exadata Cloud Infrastructure X11M作成
- サンプル・データ投入: Oracle Database サンプル・スキーマをインストール
- FastConnect接続: NEC印西データセンターで Oracle FastConnect L2 接続
- Logging Analytics: Oracle Databaseの関連ログを取り込んで分析
- Logging Analytics: Databaseの監査表やユーザー表を分析
注意
大規模言語モデル(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 以上
■ Downloading and Installing SQLcl
● Download SQLcl:
次の SQLcl Downloads 画面に遷移し、最新の SQLcl をダウンロード
● To install SQLcl:
ダウンロードした zipファイルを選択し、クリックして解凍
1) unzip
Windows では、tarコマンドで zipファイルを解凍します。
PS C:\Users\opc> tar zxvf .\Downloads\sqlcl-25.2.2.199.0918.zip
x sqlcl/
x sqlcl/bin/
x sqlcl/lib/
・・・
x sqlcl/lib/quartz.jar
x sqlcl/lib/javassist.jar
PS C:\Users\opc>
2) 解凍確認
PS C:\Users\opc> ls *sqlcl
Directory: C:\Users\opc
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 1/1/2023 12:00 AM sqlcl
3) sqlcl ディレクトリ確認
PS C:\Users\opc> ls -l sqlcl
Directory: C:\Users\opc\sqlcl
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 1/1/2023 12:00 AM bin
d----- 1/1/2023 12:00 AM lib
-a---- 1/1/2023 12:00 AM 44 25.2.2.199.0918
-a---- 1/1/2023 12:00 AM 216 LICENSE.txt
-a---- 1/1/2023 12:00 AM 192 NOTICES.txt
-a---- 1/1/2023 12:00 AM 348 THIRD-PARTY-LICENSES.txt
3) sql.exe 確認
sqlcl コマンドは、./sqlcl/bin の中にあります。
Windows の場合は、sql.exe が sqlcl実行コマンドになります。
PS C:\Users\opc> ls .\sqlcl\bin\
Directory: C:\Users\opc\sqlcl\bin
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 1/1/2023 12:00 AM 3778 dependencies.txt
-a---- 1/1/2023 12:00 AM 35464 sql
-a---- 1/1/2023 12:00 AM 169472 sql.exe
-a---- 1/1/2023 12:00 AM 152 version.txt
4) sql.exe実行(Javaエラー)
次の表示がされた場合、要件の Java Version が不足していることが確認できます。
PS C:\Users\opc> .\sqlcl\bin\sql.exe
Oracle SQLcl Console: This application requires a Java Runtime Environment 17.0.5
■ Java install
● Java SE Development Kit Downloads
Java Downloads から、 17.0.5 以上の java をダウンロードします。
ここでは、最新の Java SE Development Kit 21.0.8 から、x64 Installer を downloads します。
● Java SE Development Kit Install
1) exe 実行
ダウンロードした jdk-21_windows-x64_bin.exe をクリックして実行
2) Install 実行
内容を確認し、インストールを進めていきます。
5) Java Version 確認
PowerShell で java -version 確認
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
Install the latest PowerShell for new features and improvements! https://aka.ms/PSWindows
PS C:\Users\opc> java -version
java version "21.0.8" 2025-07-15 LTS
Java(TM) SE Runtime Environment (build 21.0.8+12-LTS-250)
Java HotSpot(TM) 64-Bit Server VM (build 21.0.8+12-LTS-250, mixed mode, sharing)
PS C:\Users\opc>
● sqlcl 実行確認
sql コマンドがエラー無く実行できればOK
1) sql コマンド実行
PS C:\Users\opc> .\sqlcl\bin\sql /nolog
SQLcl: Release 25.2 Production on Sun Aug 24 10:11:54 2025
Copyright (c) 1982, 2025, Oracle. All rights reserved.
SQL>
2) Database 接続確認
事前に作成してある Oracle Databaseへ接続確認します。
PS C:\Users\opc> .\sqlcl\bin\sql system/Password@//10.10.1.2:1521/PDB.clientsubnet.vcnexatokyo.oraclevcn.com
SQLcl: Release 25.2 Production on Sun Aug 24 13:09:40 2025
Copyright (c) 1982, 2025, Oracle. All rights reserved.
Last Successful login time: Sun Aug 24 2025 13:09:42 +00:00
Connected to:
Oracle Database 19c EE High Perf Release 19.0.0.0.0 - Production
Version 19.24.0.0.0
SQL> show con_name
CON_NAME
------------------------------
PDB
■ VS Code での Cline の設定
Clineは、MCPをサポートするVisual Studio Code(VS Code)用のオープンソースAIコーディングアシスタントです。SQLcl MCPサーバー用にClineを設定します。
1) SQLcl 接続
PS C:\Users\opc> .\sqlcl\bin\sql system/password//10.10.1.2:1521/PDB.clientsubnet.vcnexatokyo.oraclevcn.com
SQLcl: Release 25.2 Production on Sun Aug 24 13:09:40 2025
Copyright (c) 1982, 2025, Oracle. All rights reserved.
Last Successful login time: Sun Aug 24 2025 13:09:42 +00:00
Connected to:
Oracle Database 19c EE High Perf Release 19.0.0.0.0 - Production
Version 19.24.0.0.0
SQL>
2) MCP 互換の保存済み接続を作成
次のコマンドを使用して、Oracle Databaseへ接続します。
SQL> conn -save cline_mcp -savepwd system/Password@//10.10.1.2:1521/PDB.clientsubnet.vcnexatokyo.oraclevcn.com
Name: cline_mcp
Connect String: //10.10.1.2:1521/PDB.clientsubnet.vcnexatokyo.oraclevcn.com
User: system
Password: ******
Connected.
SQL> exit
3) DBTools ディレクトリ確認
Windows の SQLcl MCPサーバーは、%appdata%\Roaming\DBTools ディレクトリ内の接続ストアに保存され、dbtools.propertiesファイルへ設定した接続情報が作成されます。
PS C:\Users\opc> ls .\AppData\Roaming\DBTools
ディレクトリ: C:\Users\opc\AppData\Roaming\DBTools
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2025/08/24 13:14 connections
PS C:\Users\opc> cat .\AppData\Roaming\DBTools\connections\WPX8HMDrglY19tw9NwENjA\dbtools.properties
name=cline_mcp
type=ORACLE_DATABASE
connectionString=//10.10.1.2\:1521/PDB.clientsubnet.vcnexatokyo.oraclevcn.com
userName=system
4) MCPサーバ起動確認
SQLcl MCP サーバーが正常に起動すると、起動タイムスタンプを含む確認メッセージが表示され、MCP クライアントからの接続を受け入れる準備ができていることを示します。
ターミナルでこのメッセージを確認することで、サーバーの準備状況を確認できます。
PS C:\Users\opc> .\sqlcl\bin\sql -mcp
---------- MCP SERVER STARTUP ----------
MCP Server started successfully on Sun Aug 24 13:28:12 UTC 2025
Press Ctrl+C to stop the server
----------------------------------------
● VS Codeをダウンロードしてインストール
1) VS Code ダウンロード
Download Visual Studio Code
● Cline 拡張機能をインストール
1) VS Code 起動
VS Code を開き、サイドバーの「拡張機能」をクリック
2) Cline 画面
検索フィールドに cline を入力し、Cline を表示
3) Cline Install
[インストール] をクリックし、[発行元を信頼してインストール] をクリックして続行します。
4) VS Cline 画面
拡張機能がインストールされ、サイドバーに表示されます。
4) AI 登録画面
API キーを設定し、希望する AI モデルを選択します。
今回は、事前登録した OpenAI API Key を使用してみます。
● SQLcl MCP サーバーを Cline に登録
1) Manage MCP Serve クリック
サイドバーで Cline 拡張機能を選択した状態で、プロンプト ボックスの下にある [Manage MCP Serve ] をクリックします。
2) MCP Server 画面
プロンプト ボックスの下に表示される MCP Server ダイアログで、歯車の設定アイコンをクリック
3) MCP Server Installed タブ画面
MCP サーバー ページが開き、 インストール済みタブが選択された状態になります。
表示されるダイアログで、[Configur MCP Server] をクリック
4) cline_mcp_settings.json ファイル 画面
右側 に VS Code エディターで cline_mcp_settings.json ファイルが開きます。
設定ファイルに、以下の形式のJSON構成スニペットを追加します。 SQLclインストールした sqlコマンドの絶対パス 'PATH/bin/sql' に置き換え、ファイルを保存し、[Done]をクリック
Windowsでは,\ (バックスラッシュ)はエスケープ文字となるため,\\\ と記載します。
{
"mcpServers": {
"SQLcl": {
"command": "C:\\Users\\opc\\sqlcl\\bin\\sql",
"args": ["-mcp"],
"disabled": false
}
}
}
これで、SQLcl MCP サーバーとそのツールが MCP サーバー ページに表示されます。
5) Clien 画面
MCP Server プロンプト ボックス へ SQLcl が追加されます。
追加されない場合、再起動して変更を有効にします。
6) 必要に応じて VS Code 再起動
必要に応じて、変更を有効にするために VS Code を再起動します。
再起動してしても、MCP Server プロンプト ボックス へ SQLcl が追加され無い場合、cline_mcp_settings.json へ記入した内容が間違っている可能性があります。
● Cline日本語設定
Cline がコミュニケーションに使用する言語を使用したい言語 [Japanese-日本語] に設定します。
■ ユースケースとプロンプトの例
ここでは、SQLcl MCP サーバーに接続された MCP クライアントを通じてさまざまなデータベース操作を実行するために使用できる自然言語要求の例をいくつか示します。
● 問合せ: SHスキーマ商品売上問合せ
この問い合わせは以前、OpenAI API を使用して自然言語で Select AI した内容です。
出力結果は同じであることが確認できます。
SHスキーマのデータでは、各商品はどれだけ売れましたかしら?上位10を昇順で表示してちょ。
SHスキーマにおける商品別売上(合計金額)の上位10件(昇順)は以下の通りです:
1. Soccer Jersey - 27,933.33
2. Tennis Grip Overgrip Tacky — 34,547.82
3. Cushioned Grip - 60,713.47
4. Practice Tennis Balls - 78,881.08
5. Wide Brim Hat — 84,498.67
6. MLB Official Game Baseball w/ Display Case — 88,756.80
7. Tennis Strings Polyester — 101,214.60
8. Plastic - Beach Cricket Ball - 106,468.41
9. Cricket - Athletic Guard Cup — 120,395.81
10. Tennis Strings Hybrids — 148,558.92
● 問合せ: HRとOEスキーマER図作成
ER図を作成してもらいましょう。PlantUML 形式で作成してくれます。
HRとOEスキーマは外部キーでリレーションされているので連なっていることが確認できます。
databaseへ接続して、HRスキーマとOEスキーマのER図を作成してください
HRスキーマおよびOEスキーマのER図をPlantUML形式(hr_oe_er.puml)で作成しました。このファイルをPlantUML対応ツールで開くことで、ER図を画像として可視化でき ます。
テーブル間のリレーション(外部キー)もすべて反映されています。
もし画像化や他形式での出力が必要な場合はご指示ください。
PlantUML形式の図面は、VS Codeのプラグイン: PlantUML でプレビュー機能を有効にすると図が表示されます。
今回は、PlantUML Online Server (https://www.plantuml.com/plantuml/) に .puml の内容を貼り付けるとその場で図を描画できるのでしてみてみました。
その他、PlantText (https://www.planttext.com/) でも同様にできます。
■ ログによるアクティビティの追跡
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
_____ _____________ __________________ _________________ ___________________ ___________________________________________ ______________________________ _____________ ______________________________ _____________
41 Cline gpt-4.1 tool connect Connect to SYSTEM 25-08-24 23:48:29.465703000 SYSTEM 25-08-24 23:48:29.465703000 SYSTEM
42 Cline gpt-4.1 tool run-sql SELECT /* LLM in use is gpt-4.1 */ table 25-08-24 23:48:50.988124000 SYSTEM 25-08-24 23:48:50.988124000 SYSTEM
43 Cline gpt-4.1 tool run-sql SELECT /* LLM in use is gpt-4.1 */ a.tab 25-08-24 23:49:09.999914000 SYSTEM 25-08-24 23:49:09.999914000 SYSTEM
44 Cline gpt-4.1 tool run-sql SELECT /* LLM in use is gpt-4.1 */ table 25-08-24 23:49:41.914066000 SYSTEM 25-08-24 23:49:41.914066000 SYSTEM
45 Cline gpt-4.1 tool run-sql SELECT /* LLM in use is gpt-4.1 */ table 25-08-24 23:51:34.813580000 SYSTEM 25-08-24 23:51:34.813580000 SYSTEM
46 Cline gpt-4.1 tool run-sql SELECT /* LLM in use is gpt-4.1 */ a.tab 25-08-24 23:51:40.540322000 SYSTEM 25-08-24 23:51:40.540322000 SYSTEM
47 Cline gpt-4.1 tool run-sql SELECT /* LLM in use is gpt-4.1 */ table 25-08-24 23:51:59.610532000 SYSTEM 25-08-24 23:51:59.610532000 SYSTEM
48 Cline gpt-4.1 tool connect Connect to SYSTEM 25-08-24 15:38:59.132703000 SYSTEM 25-08-24 15:38:59.132703000 SYSTEM
49 Cline gpt-4.1 tool run-sql SELECT /* LLM in use is gpt-4.1 */ t.tab 25-08-24 15:39:51.419102000 SYSTEM 25-08-24 15:39:51.419102000 SYSTEM
50 Cline gpt-4.1 tool run-sql SELECT /* LLM in use is gpt-4.1 */ t.tab 25-08-24 15:40:27.100708000 SYSTEM 25-08-24 15:40:27.100708000 SYSTEM
51 Cline gpt-4.1 tool list-connections Connect to SYSTEM 25-08-25 04:03:02.942715000 SYSTEM 25-08-25 04:03:02.942715000 SYSTEM
52 Cline gpt-4.1 tool connect Connect to SYSTEM 25-08-25 04:03:08.858351000 SYSTEM 25-08-25 04:03:08.858351000 SYSTEM
53 Cline gpt-4.1 tool run-sqlcl DESC USER_TABLES; 25-08-25 04:03:25.979329000 SYSTEM 25-08-25 04:03:25.979329000 SYSTEM
54 Cline gpt-4.1 tool run-sql SELECT /* LLM in use is gpt-4.1 */ TABLE 25-08-25 04:04:02.020655000 SYSTEM 25-08-25 04:04:02.020655000 SYSTEM
55 Cline gpt-4.1 tool run-sql SELECT /* LLM in use is gpt-4.1 */ OWNER 25-08-25 04:04:35.697365000 SYSTEM 25-08-25 04:04:35.697365000 SYSTEM
56 Cline gpt-4.1 tool run-sql SELECT /* LLM in use is gpt-4.1 */ COLUM 25-08-25 04:08:07.436995000 SYSTEM 25-08-25 04:08:07.436995000 SYSTEM
57 Cline gpt-4.1 tool run-sql SELECT /* LLM in use is gpt-4.1 */ COLUM 25-08-25 04:08:13.082599000 SYSTEM 25-08-25 04:08:13.082599000 SYSTEM
58 Cline gpt-4.1 tool run-sql SELECT /* LLM in use is gpt-4.1 */ COLUM 25-08-25 04:08:47.450330000 SYSTEM 25-08-25 04:08:47.450330000 SYSTEM
59 Cline gpt-4.1 tool run-sql SELECT /* LLM in use is gpt-4.1 */ ctry. 25-08-25 04:09:33.798452000 SYSTEM 25-08-25 04:09:33.798452000 SYSTEM
● ライブセッションの監視
データベース管理者(DBA)権限がある場合は、アクティブな MCP接続と操作をリアルタイムで監視できます。サーバーは Oracle の V$SESSION ビューと統合されているため、標準的な Oracle監視ツールを使用して、現在のセッション、リソース使用状況、パフォーマンスを追跡できます。MCPクライアント情報を確認するには、 V\$SESSION の MODULE との ACTION値を確認します。
select MODULE, ACTION from V$SESSION;
■ 参考
・ Cline
- Cline
- Cline とは何ですか?
- Clineのインストール
- AI モデル選択ガイド
・ 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
・ PlantUML
- PlantUML
- PlantUML Online Server
- PlantText
・ Others
- Mermaid Diagramming and charting tool
・ Logging Analytics
- Logging Analytics概要