24
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Windows で AIデータベース体験: MCPサーバーをインストールして Cline で ORACLE に自然言語で質問してみてみた

Last updated at Posted at 2025-08-26

Clineは、最先端のAIモデルをVS Codeエディタに直接組み込むオープンソースのAIコーディングエージェントです。オートコンプリートツールとは異なり、Clineはコードベース全体を理解、複雑な変更を計画し、複数ステップのタスクを実行できる真のコーディングエージェントです。
前回 は、Oracle MCPサーバーについて詳しく説明し、MacBook で Claude を使用したので今回は、Windows で Cline と OpenAI API をしようして Oracle Database に自然言語で問合せできるようにし、さらにMCPの監査証跡: DBTOOLS$MCP_LOG もみてみてみます。

■ 構成イメージ

構成.png
事前に構成図のように Oracle Cloud Infrastructure (OCI) へ Oracle Database を構築して Windows と SQL 通信できるように設定しておきます。また、Oracle Database には サンプルスキーマをインストールしそのデータを使用した問合せをAIができるようにしておき、さらに AIからのアクセスLog、監査ログを取得/分析/アラート発報できるよう Logging Analytics も設定しておきます。

注意
大規模言語モデル(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 をダウンロード

01_SQLclDownload.png

● To install SQLcl:

ダウンロードした zipファイルを選択し、クリックして解凍

01_SQLclDownload02.png

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 をクリックして実行
02_Java21Download02.png

03_Java21Install01.png

2) Install 実行
内容を確認し、インストールを進めていきます。
03_Java21Install02.png

3) Install 中〜
03_Java21Install04.png

4) Install 完了
03_Java21Install05.png

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

04_VSCodeDownload01.png

2) exe 実行
04_VSCodeDownload02.png

3) Iinstall 開始
05_VSCodeInstall01.png

4) Iinstall 中
05_VSCodeInstall06.png

5) Install 完了
05_VSCodeInstall07.png

● Cline 拡張機能をインストール

1) VS Code 起動
VS Code を開き、サイドバーの「拡張機能」をクリック
05_VSCodeInstall08-1.png

2) Cline 画面
検索フィールドに cline を入力し、Cline を表示
06_ClineInstall01-1.png

3) Cline Install
[インストール] をクリックし、[発行元を信頼してインストール] をクリックして続行します。
06_ClineInstall02.png

4) VS Cline 画面
拡張機能がインストールされ、サイドバーに表示されます。
06_ClineInstall03.png

4) AI 登録画面
API キーを設定し、希望する AI モデルを選択します。
今回は、事前登録した OpenAI API Key を使用してみます。
07_OpenAI-Key04.png

● SQLcl MCP サーバーを Cline に登録

1) Manage MCP Serve クリック
サイドバーで Cline 拡張機能を選択した状態で、プロンプト ボックスの下にある [Manage MCP Serve ] をクリックします。
08_Clien-MCP設定01-1.png

2) MCP Server 画面
プロンプト ボックスの下に表示される MCP Server ダイアログで、歯車の設定アイコンをクリック
08_Clien-MCP設定02-1.png

3) MCP Server Installed タブ画面
MCP サーバー ページが開き、 インストール済みタブが選択された状態になります。
表示されるダイアログで、[Configur MCP Server] をクリック
08_Clien-MCP設定03.png

4) cline_mcp_settings.json ファイル 画面
右側 に VS Code エディターで cline_mcp_settings.json ファイルが開きます。
設定ファイルに、以下の形式のJSON構成スニペットを追加します。 SQLclインストールした sqlコマンドの絶対パス 'PATH/bin/sql' に置き換え、ファイルを保存し、[Done]をクリック

Windowsでは,\ (バックスラッシュ)はエスケープ文字となるため,\\\ と記載します。

cline_mcp_settings.json 設定内容
{
   "mcpServers": {
    "SQLcl": {
            "command": "C:\\Users\\opc\\sqlcl\\bin\\sql",
            "args": ["-mcp"],
            "disabled": false
        }
    }
}

08_Clien-MCP設定04.png

これで、SQLcl MCP サーバーとそのツールが MCP サーバー ページに表示されます。

5) Clien 画面
MCP Server プロンプト ボックス へ SQLcl が追加されます。
追加されない場合、再起動して変更を有効にします。
08_Clien-MCP設定05-1.png

6) 必要に応じて VS Code 再起動
必要に応じて、変更を有効にするために VS Code を再起動します。
再起動してしても、MCP Server プロンプト ボックス へ SQLcl が追加され無い場合、cline_mcp_settings.json へ記入した内容が間違っている可能性があります。

● Cline日本語設定

Cline がコミュニケーションに使用する言語を使用したい言語 [Japanese-日本語] に設定します。
10_Cline日本語設定01.png

■ ユースケースとプロンプトの例

ここでは、SQLcl MCP サーバーに接続された MCP クライアントを通じてさまざまなデータベース操作を実行するために使用できる自然言語要求の例をいくつか示します。

● 問合せ: SHスキーマ商品売上問合せ

この問い合わせは以前、OpenAI API を使用して自然言語で Select AI した内容です。
出力結果は同じであることが確認できます。

問合せ内容
SHスキーマのデータでは、各商品はどれだけ売れましたかしら?上位10を昇順で表示してちょ。

21_Clien問合せ-SH売上上位top10.png

Cline回答
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図を作成してください

21_Clien問合せ-ER図作成.png

Cline回答
HRスキーマおよびOEスキーマのER図をPlantUML形式(hr_oe_er.puml)で作成しました。このファイルをPlantUML対応ツールで開くことで、ER図を画像として可視化でき ます。
テーブル間のリレーション(外部キー)もすべて反映されています。
もし画像化や他形式での出力が必要な場合はご指示ください。

PlantUML形式の図面は、VS Codeのプラグイン: PlantUML でプレビュー機能を有効にすると図が表示されます。
今回は、PlantUML Online Server (https://www.plantuml.com/plantuml/) に .puml の内容を貼り付けるとその場で図を描画できるのでしてみてみました。
21_Clien問合せ-ER図作成2.png
その他、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概要

24
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
24
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?