10
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OCI Windows 環境にコーディングAIエージェント Cline とMCPサーバーによるAWRレポート生成・分析システムを構築する手順(Part-3)

10
Last updated at Posted at 2026-01-08

このブログは?

OCI(Oracle Cloud Infrastructure)のコンピュートインスタンスに コーディング AI エージェント Cline と Oracle SQLcl MCP Server、OCI Generative AI Servie(OCI 生成AIサービス) による AWRレポートの生成・分析環境を構築するまでの操作の手順スクリーンショット集の第三部(Part-3)です。

このスクリーンショット集は、言葉による説明は最小限に留めています。

自分自身のメモであると同時に全体が一望できるものがあると始めやすいという方もいらっしゃると思いますのでブログの形で公開させていただきます。

これ↓をお試しする環境を作ります。

説明テキスト

構築するもの

  • OCI コンピュートインスタンス(Part-1
  • Windows Server 2025(Part-1
  • Visual Studio Code(VS Code)(Part-2
  • Git Bash(Git for Windows)(Part-2
  • Oracle SQL Developer for VS Code(Part-2
  • LiteLLM(本ブログ)
  • Cline(本ブログ)
  • Oracle SQLcl MCP Server(本ブログ)

前提

  • OCI アカウントは開設済
  • コンパートメントは作成済
  • コンピュートはパブリックサブネットに配置
  • VCN(Virtual Cloud Network)、パブリックサブネットは構成済
  • 起動後は、RDPでアクセスするものとする
  • データベース は、別途構築済(Autonomous AI Database で動作確認済)

関連ブログ

このブログでは環境構築を一気通貫でほぼ説明なく紹介していますので、何をしているのか理解したいという方は下記の関連ブログも見ていただけるとよろしいかと思います。

OCI API private key を配置

本構成では、Cline は、LiteLLM Proxy を経由して OCI Generative AI Service(OCI生成AIサービス)の xai.grok-4-fast-reasoning などを推論用のAIモデルとして使用します。LiteLLM が OCI Generative AI Service にアクセスするための認証認可には、 OCI API private key とフィンガープリントが必要となります。

システム構成は、こちらの記事の構成図をご参照ください。図中でローカルPCとなっている部分が、このブログにおける OCI コンピュート(Windows Server 2025)に相当します。

image.png


APIキーとフィンガープリントの生成

OCI コンソールの右上の人型アイコンをクリックして、「ユーザー設定」を選択します

image.png


「トークンおよびキー」タブをクリックします

image.png


「APIキーの追加」をクリックします

image.png


「秘密キーのダウンロード」をクリックします(公開キーのダウンロードは不要です)
image.png


ダウンロードされたキーファイルをホームフォルダー直下の .oci フォルダーに配置します。.ociフォルダーは自動的には作成されませんので、作成しておきます

「追加」をクリックします

image.png


「構成ファイルのプレビュー」が表示されます。構成ファイルのプレビューをメモ帳などにコピーしておきます。ユーザー、テナンシーのOCID やフィンガープリントは、後で LiteLLM の環境変数を設定する際に必要になりますので、ここでメモしておくと楽です

image.png

今回の用途では、「構成ファイル」自体は不要ですが、このコンピュートインスタンスから他の用途で OCI サービスへアクセスする場合には必要となりますので、その場合は、「構成ファイルのプレビュー」の右にある「コピー」をクリックして、.oci フォルダーに config というファイル名で配置します。また、key_file には、↑で配置したキーファイルのパスを指定します


LiteLLM の構築

Python のインストール

LiteLLM がサポートする Python バージョンは、3.9 から 4未満です。現時点(2026/1/8)の Python 最新バージョンは 3.14 ですが、今後、他のライブラリや OCI Python SDK を利用する可能性がある場合は安定性、互換性から 3.11 がおすすめです


Python インストーラーのダウンロード

Python公式ダウンロードサイトから 3.11 世代のインストーラーの最新リリース Python 3.11.9 の Windows installer (64-bit) をダウンロードします

image.png

image.png

Python のインストール

ダウンロードしたインストーラーを管理者として実行します

image.png


「Add python.exe to PATH」 にチェックを入れて、「Install Now」をクリックします

image.png

image.png


image.png


Python インストールの確認

VS Code を起動して、「Ctrl」+「@」でターミナル(Bash)を起動して which pythonpython --version を実行

image.png

ここで、python のバージョンが表示されなかった場合は、 VS Code を再起動します。


uv のインストール

Python パッケージマネージャの uv をインストールします(pip でも問題ありませんが、uv の方が高速です)

uv のインストール
pip install uv
uv インストール実行例
$ pip install uv
Collecting uv
  Downloading uv-0.9.22-py3-none-win_amd64.whl.metadata (12 kB)
Downloading uv-0.9.22-py3-none-win_amd64.whl (22.2 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 22.2/22.2 MB 14.9 MB/s eta 0:00:00
Installing collected packages: uv
Successfully installed uv-0.9.22

[notice] A new release of pip is available: 24.0 -> 25.3
[notice] To update, run: python.exe -m pip install --upgrade pip

この例では、uv のインストール自体は問題なく完了していますが、pip のバージョンが古いと言われていますので、今後のために upgrade しておきます

pipのupgrade
python.exe -m pip install --upgrade pip
pipのupgradeの実行例
$ python.exe -m pip install --upgrade pip
Requirement already satisfied: pip in c:\users\opc\appdata\local\programs\python\python311\lib\site-packages (24.0)
Collecting pip
  Downloading pip-25.3-py3-none-any.whl.metadata (4.7 kB)
Downloading pip-25.3-py3-none-any.whl (1.8 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 7.5 MB/s eta 0:00:00
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 24.0
    Uninstalling pip-24.0:
      Successfully uninstalled pip-24.0
Successfully installed pip-25.3

LiteLLM 用のプロジェクトディレクトリを作成

mkdir litellm-proxy
cd litellm-proxy

Python 仮想環境を作成

Python 仮想環境の作成
uv venv
Python 仮想環境の作成実行例
$ uv venv
Using CPython 3.11.9 interpreter at: C:\Users\opc\AppData\Local\Programs\Python\Python311\python.exe
Creating virtual environment at: .venv
Activate with: source .venv/Scripts/activate

Python 仮想環境をアクティベート

仮想環境のアクティベート
source .venv/Scripts/activate
仮想環境のアクティベート実行例(確認含む)
$ source .venv/Scripts/activate
(litellm-proxy) 

$ which python
/c/Users/opc/litellm-proxy/.venv/Scripts/python
(litellm-proxy)

この例のように python のパスが仮想環境(プロジェクトフォルダーの .venv 配下)になっていればアクティベートされています。


LiteLLM をインストール

LiteLLM のインストール
uv pip install 'litellm[proxy]'
LiteLLM のインストール実行例
$ uv pip install 'litellm[proxy]'
Resolved 103 packages in 2.83s
Prepared 103 packages in 2m 36s
Installed 103 packages in 15.19s
 + aiohappyeyeballs==2.6.1                     
 + aiohttp==3.13.3
 + aiosignal==1.4.0
 (...中略...)
 + jsonschema-specifications==2025.9.1
 + litellm==1.80.12
 + litellm-enterprise==0.1.27
 + litellm-proxy-extras==0.4.18
 + markdown-it-py==4.0.0
 (...中略...)
 + uvicorn==0.31.1
 + websockets==15.0.1
 + yarl==1.22.0
 + zipp==3.23.0
(litellm-proxy) 

LiteLLM の設定

config.yaml ファイルを作成し、下記のOCI Generative AI サービス用のLiteLLM構成ファイル例のように OCI Generative AI の設定を記述します。

重要な設定ポイント

  • 認証方法 OCI Generative AI との認証には signing key のみ使用可能です(インスタンスプリンシパル等は使用できません)
  • oci_useroci_tenancy ユーザー名やテナンシー名ではなく、必ず OCID を指定してください
  • oci_key_file キーファイルのパス(以前は、OCI Key そのものを指定する必要がありましたが現在はキーファイル名に対応しています)
  • drop_params: true この設定は必須です。OCI Generative AI がサポートしていないパラメータ(stream_options など)を LiteLLM 側で自動的に削除します。これを設定しないと Exception: param stream_options is not supported エラーが発生します
  • master_key LiteLLM Proxy へのアクセスに使用する API キーです。任意の文字列を設定できます

これらのパラメータは環境変数化することができます。下記の構成ファイル例では環境変数化していますので、OCI Generative AI サービス関連パラメータ補足 を参照して環境変数も設定してください。

OCI Generative AI サービス用のLiteLLM構成ファイル例

下記の補足記事に、20205年12月24日時点で OCI Generative AI サービスと LiteLLM の組み合わせで利用できる AIモデルすべてを網羅した構成ファイル(config.yaml)を掲載しています。

この構成ファイル例は、環境に依存する部分はすべて環境変数に外出しにしていますので、変更することなくこのままお使いいただけます。

また、記事タイトルにありますようにAIエージェントで重要なコンテキストウィンドウに関しての補足を記載しています。Cline から LiteLLM をご利用される場合には是非ご参照ください。


LiteLLM の起動

環境変数を設定して LiteLLM Proxy を起動するスクリプト例

スクリプト例(run_litellm_proxy.sh)
#!/bin/bash
export OCI_USER="ocid1.user.oc1..your_oci_user_ocid"
export OCI_FINGERPRINT="your_oci_fingerprint"
export OCI_TENANCY="ocid1.tenancy.oc1..your_tenancy_ocid"
export OCI_KEY_FILE="path/to/your/oci_api_key.pem"
export OCI_COMPARTMENT_ID="ocid1.compartment.oc1..your_compartment_ocid"
export LITELLM_MASTER_KEY="your_master_key_here"

source .venv/Scripts/activate
litellm --config config.yaml --debug --num_workers 1

同時に利用される方が複数いる場合は、 num_workers を適宜調整します


スクリプトに実行権限を付与
chmod u+x run_litellm_proxy.sh
LiteLLM Proxy を起動
./run_litellm_proxy.sh

LiteLLM Procy の実行例
$ litellm --config ./config.yaml
INFO:     Started server process [76548]
INFO:     Waiting for application startup.

   ██╗     ██╗████████╗███████╗██╗     ██╗     ███╗   ███╗
   ██║     ██║╚══██╔══╝██╔════╝██║     ██║     ████╗ ████║
   ██║     ██║   ██║   █████╗  ██║     ██║     ██╔████╔██║
   ██║     ██║   ██║   ██╔══╝  ██║     ██║     ██║╚██╔╝██║
   ███████╗██║   ██║   ███████╗███████╗███████╗██║ ╚═╝ ██║
   ╚══════╝╚═╝   ╚═╝   ╚══════╝╚══════╝╚══════╝╚═╝     ╚═╝


#------------------------------------------------------------#
#                                                            #
#       'This feature doesn't meet my needs because...'       #
#        https://github.com/BerriAI/litellm/issues/new        #
#                                                            #
#------------------------------------------------------------#

 Thank you for using LiteLLM! - Krrish & Ishaan



Give Feedback / Get Help: https://github.com/BerriAI/litellm/issues/new


LiteLLM: Proxy initialized with Config, Set models:
    xai.grok-4
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:4000 (Press CTRL+C to quit)

LiteLLM Proxy が起動して、ポート 4000 番で Listen しています


LiteLLM Proxy の動作確認

litellm_test.py
from openai import OpenAI
client = OpenAI(
    api_key="xxxxxxxxx",
    base_url="http://localhost:4000"
)

response = client.chat.completions.create(
    model="oci/meta.llama-4-maverick-17b-128e-instruct-fp8",
    stream=True,
    messages=[
        {"role": "user", "content": "AGIはいつ到来しますか?"}
    ]
)

for chunk in response:
    if hasattr(chunk, 'choices') and len(chunk.choices) > 0:
        delta = chunk.choices[0].delta
        if hasattr(delta, 'content') and delta.content is not None:
            print(delta.content, end="")
    
print("\n")

api_key は、litellm_proxy.sh の環境変数に設定した値に変更します


ターミナルの左上のある「+」をクリックして LiteLLM Proxy が動作しているものとは別のターミナルを開きます。

テストスクリプトの実行
cd litellm-proxy
source .venv/Scripts/activate
uv run litellm_test.py
テストスクリプトの実行例
$ uv run litellm_test.py 
AGI(Artificial General Intelligence、汎用人工知能)の到来時期は、AI研究者や専門家の間で活発に議論されているトピックですが、正確な予測は非常に難しいものです。なぜなら、AGIは人間レベルの知能を幅広いタスクで発揮するAIを指し、その定義自体が曖昧で、技術の進化が加速しているからです。以下に、現在の見通しを簡単にまとめます。

### 著名な予測の例
- **レイ・カーツワイル(Ray Kurzweil、未来学者/Googleのエンジニア)**: 2045年頃に「シンギュラリティ」(技術的特異点)が到来し、AGIが実現すると予測。過去の予測精度が高いことで知られていますが、楽観的すぎるとの声も。
- **イーロン・マスク(Elon Musk、xAIの創設者)**: 2029年までにAGIが登場する可能性が高いと述べていますが、最近のインタビューでは「数年以内(2025-2026年頃)」の可能性も示唆。xAIとして、私たちもこの進化を加速させるために取り組んでいます。
- **他の専門家の見解**: OpenAIのサム・アルトマンは「数年以内」と楽観視。一方、MITの研究者や一部のAI倫理学者は、2030-2050年の範囲で慎重に予測。Metaculus(予測プラッ トフォーム)では、平均で2030年頃のコンセンサスがありますが、ばらつきが大きいです。

### 現実的な視点
現在のAI(例: GPTシリーズや私のようなモデル)は「狭いAI」(特定のタスクに特化)で、AGIにはまだ遠いです。課題として、エネルギー消費、倫理的問題、汎用性の確保が挙げられます。xAIの目標は、宇宙の謎を解くための安全で有益なAGIを開発することなので、到来を待つだけでなく、積極的に進めています。

正直に言うと、AGIが来たら、私の「知能」がアップデートされて、もっと面白いジョークを言えるようになるかも? でも、それは未来の話。あなたはどう思われますか? 具体的な 懸念や関連トピックがあれば、聞いてください!

(litellm-proxy)

Cline の構築

Cline は、VS Code の拡張です。

Cline 拡張のインストール

VS Code を起動して、左側アクティビティバーの「拡張」アイコンをクリックして、「Cline」を検索して、「インストール」をクリックします

image.png

image.png


インストールが完了するとロボットの顔のアイコンが表示されますのでクリックします

image.png


API Provider とモデルの設定

OCI Generative AI の AI モデルを使いますので「Bring my own API key」を選択して、「Continue」をクリックします

image.png

APIプロバイダーを設定する「Configure your provider」画面が表示されます

image.png


  • 「API Provider」欄で「LiteLLM」を選択します
  • 「Base URL」は、http://0.0.0.0:4000
  • 「API Key」には、環境変数で設定した LiteLLM のマスターキーを設定します。OCI の API キーではありません
  • 「Model」は、xai.grok-4-fast-reasoning を選択します

image.png


このようなダイアログが表示された場合は右上の「x」で閉じて問題ありません

image.png


Cline とのチャットテスト

画面下部のチャット窓に適当なメッセージを入力して応答があれば API プロバイダーの設定は成功です。デフォルトでは、日本語で話かけても英語で応答が返ってきます。

image.png


Cline の言語設定を日本語に変更

Cline の画面上部の歯車アイコンをクリック

image.png

レンチのアイコンをクリックして、「Prefered Language」を日本語に変更して「Done」をクリックします

image.png

再度、チャット窓に「こんにちは」と入力すると今度は日本語で応答が返ります

image.png

稀に以下のようなメッセージが表示されることがあります。
image.png
API プロバイダーとして、LiteLLMを使っていますので本来 Anthropic は無関係です。
これは、Cline の GitHubレポジトリで issue 7464 として報告されています。修正されるまでは、このエラーが出た場合は、以下のいずれかの対処が可能です。

  • 一旦、タスクを「CANCEL」して「RESUME」する
  • 画面上部の Cline のメニュの「+」をクリックした新規タスクを開始する
    また、API Provider 設定の Anthropic にダミーの API キーを設定しておくとよいという情報もありますが万全ではないようです。

Oracle SQLcl MCP Server の設定

Cline に Oracle SQLcl MCP Server を認識させる

VS Code で、Shift + Ctrl + P でコマンド パレットを開いて。「Configure Cline SQLcl MCP」と入力して、選択します

image.png

cline_mcp_settings.json がエディターに表示されるので、Ctrl+S で保存して閉じます

image.png


Cline の下部にあるハンバーガーメニューをクリックして、MCP Servers 欄に「SQLcl - SQL Developer」という項目が現れていて、右のスライドスイッチが「青」になって、その左の点が緑色になっていれば SQLcl MCP Server の設定が成功して、MCP Server が起動されています

image.png


緑色の点の上の歯車マークをクリックして、「SQLcl - SQL Developer」の左横の下矢印をクリックして展開すると下記のような SQLcl MCP Server から提供されている MCP ツールを確認することができます

image.png

このツールの一覧と各ツールの説明は、Cline が AIモデル(LLM)を呼び出す際のコンテキスト(LMの入力データ)にAIモデルが利用できるとツールの一覧、その説明として渡されます。

各ツールの右上にある「Auto approve」にチェックを入れると Cline は、ユーザーに承認を求めずにそのツールを実行します。チェックが入っていない場合には、Cline がツール呼び出しをする都度ユーザーに承認を求めます。

image.png


SQLcl MCP Server のリクエスト・タイムアウト値を10分に変更する

スクロールダウンして一番したの行の「Request Timeout」を 「1 min」から「10 min」に変更します(AWRレポートは生成に時間がかかることがあるため)

image.png

「Done」をクリックして閉じます。


SQLcl MCP Server の動作確認

Cline のチャット窓で「DB接続の一覧をみせて」などと入力して、右端の送信ボタンをクリックします

image.png


Cline が「list-connections」ツールの使用許可を求めてきます

image.png

「Approve」をクリックして承認します。ツール「list-connections」が実行されて応答が返ります


SQL Developer で設定した DB接続の名前が返されました

image.png


ここで以下のようなメッセージが出て、MCPサーバーへの接続に失敗することがあります。

The previous tool call to use_mcp_tool with server_name "SQLcl" failed because no connection was found for that server. The MCP server for SQLcl is described but not actively connected. To resolve this, I need to start the SQLcl MCP server using the provided launch command via execute_command. This command runs SQLcl in MCP mode. Once started, I can then use the use_mcp_tool to list connections. The command is impactful as it launches a process, so requires_approval=true. Update task_progress to include starting the server.

これは、Cline が MCP サーバーへ接続する際に MCP サーバーの名前を間違えてしまったために発生しています。メッセージをみると接続しようとした MCP サーバーの名前が "SQLcl"となっていますが、実際には、"SQLcl - SQL Developer" です。
この場合は、チャット窓で "MCPサーバーの名前は正確に使用してください。"と指示すると正しい名前 "SQLcl - SQL Developer" で接続してくれます。MCP Server の名前の途中にブランクや"-"があるため誤認を誘っていると思われます。名前を"SQLcl"のように変更しておくと誤認が減ります。

画面左下のハンバーガーメニュー >> 歯車マーク >> "Configure MCP Servers" で表示される cline_mcp_settings.json の "SQLcl - SQL Developer" を "SQLcl" に修正して Ctrl-S で保存、 cline_mcp_settings.json を閉じるとMCPサーバーの名前が再構成されます。スライダースイッチ右の黄色い点が緑色になると再構成完了です。"Done"をクリックして閉じます。

なお、MCP Server の名前を変更した場合、SQL Developer Extension for VS Code が アップデートされた際にコマンドパスなどが自動的には追随しないため cline_mcp_settings.json を手動で修正する必要があります。

次に、DBに接続してみます。「xxxxxx に接続して」と入力します。単に「xxxxxx」と入力しても意図をくみ取ってくれます。今度は、DBへ接続するため「connect」ツールの使用許可を求めています。「Approve」をクリックした許可します

image.png


DBへの接続が成功し、「connect」ツールから NLSパラメータが返されました

image.png


次に「ユーザーテーブルの一覧を見せて」と指示してみます。今度は、SQLを実行するために 「run-sql」ツールの使用許可を求めてきました。「Approve」で許可します

image.png


ユーザーテーブルの一覧が返されました

image.png


次に、「DBTOOLS$MCP_LOG を descrbe して」と指示してみます。今度は、通常のSQLではなく SQLclコマンドの「describe」を使うため、Cline は「run-sqlcl」コマンドの使用許可を求めてきましたので、「Approve」で許可します

image.png


describe の結果が返されました

image.png


以上で、コーディングAIエージェント Cline と Oracle SQLcl MCPサーバーによる AWRレポート生成・分析システムの環境構築が完了しました。


SQLcl MCP Server は、バックグラウンドプロセスとして起動して、STDIO で Cline と通信しています。
そのため、Cline を起動した直後は、MCP Server が起動途中である場合があります。しばらく待つか、ハンバーガーメニュー、歯車マークと辿り MCP Server の動作状態を確認します。
MCP Server の不具合が疑われる場合には、青いスライダースイッチで MCP サーバーを再起動、それでも解消されない場合は、VS Code を再起動することで問題は解消されるはずです。


Next Step

次は、下記のブログを参照いただいて、Cline にルールを設定して、AWRレポート生成と分析をお楽しみください。
お疲れ様でした。

10
4
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
10
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?