はじめに
今回はOracle Cloud Infrastructure(OCI)のBase Database(以下、BaseDB) Oracle 19cに対して、
VS Codeから自然言語で問合せを行う方法を紹介します。
Oracleの自然言語問合せといえば、最新のOracle 23aiやAutonomous Databaseに
搭載されているSelect AIを思い浮かべる方が多いかと思いますが、
実はMCP Server for Oracle Databaseを利用すれば、BaseDB 19cに対しても
自然言語で問合せを実行できます。
■MCP Serverの概要
Introducing MCP Server for Oracle Database
https://blogs.oracle.com/database/post/introducing-mcp-server-for-oracle-database
■BaseDBに対して自然言語で問合せできるようにするまでの簡単な流れ
①Windows環境でWindows Subsystem for Linux(WSL)を使用してUbuntuをインストール
②UbuntuにMCP Server(SQLcl)をインストール
③Oracle DBにアクセスするための接続プロファイルを作成
④VS Codeをインストール
⑤VS Codeの拡張用フォルダにmcp.jsonを作成
⑥MCP Server(SQLcl)を起動
⑦Copilot Chatを起動して自然言語で問合せ
■事前準備
・OCI上にVCNとパブリックサブネットにBaseDB Oracle 19cを立てておき、
外側からアクセスできるように1521ポートを開けておきます。
・Oracle 19cにスキーマを作成しておき、テーブル及びテストデータを作成しておきます。
今回はtestスキーマで検証しています。
今回の構成を図にすると次のようなイメージとなります。
◆目次
1.MCP Server(SQLcl)の実行環境構築
2.VS Codeの実行環境構築
3.動作検証
1. MCP Server(SQLcl)の実行環境構築
それでは早速、MCP Serverの実行環境を構築していきます。
■PowerShellからUbuntu, MCP, DB接続プロファイル設定
・PowerShellを管理者権限で起動
管理者権限でPowerShellを起動してください。
スタートメニュー → PowerShell右クリック → 「管理者として実行」
[1] WSLとUbuntuのインストール
まずWSL(Windows Subsystem for Linux)とUbuntuをインストールします。
WSLのインストール(WSL2)
wsl --install
※インストール後、再起動が求められたらPCを再起動
Ubuntuディストリビューションを指定してインストール
wsl --install -d Ubuntu
インストールが終わると初回起動時にUbuntuのユーザ名とパスワード設定を求められます。
例:
Enter new UNIX username: (任意) opc
Enter new UNIX password: (任意) ****
※ここではopcにしていますが、別のユーザ名にする場合はこのあとのディレクト等を適宜変更してください。
[2] Ubuntu初期設定(PowerShell経由)
Ubuntuのアップデートと必要ツールをインストールします。
wsl -d Ubuntu -u root -- apt update && apt upgrade -y
wsl -d Ubuntu -u root -- apt install unzip wget -y
[3] SQLclのインストール(Ubuntu上)
Oracle SQLclのダウンロード
wsl -d Ubuntu -- wget https://download.oracle.com/otn_software/java/sqldeveloper/sqlcl-latest.zip -O /home/opc/sqlcl.zip
解凍
wsl -d Ubuntu -- mkdir -p /home/opc/oracle/sqlcl
wsl -d Ubuntu -- unzip /home/opc/sqlcl.zip -d /home/opc/oracle/sqlcl
[4] tnsnames.oraの設定
/home/opc/tnsnames.oraを作成
下記の通り、BaseDBのIPアドレスとホスト名を設定してtnsnames.oraを作成します。
cat > /home/opc/tnsnames.ora <<'EOF'
BASE19 =
(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=[BaseDBのIPアドレス])(PORT=1521))
(CONNECT_DATA=(SERVICE_NAME=[BaseDBのホスト名].vcn1.oraclevcn.com))
)
EOF
「SQLcl 用の環境変数を設定する」
SQLclでは接続情報の管理に環境変数を使います。
ここでは接続設定を保存する場所 (TNS_ADMIN)と
暗号化キー(DBTOOLS_KEYSTORE_PASS)を登録しておきます。
echo 'export TNS_ADMIN=/home/opc' >> ~/.bashrc
echo 'export DBTOOLS_KEYSTORE_PASS=MasterKey-Only-For-SQLcl' >> ~/.bashrc
source ~/.bashrc
[5] DB接続プロファイルの保存
cd ~/oracle/sqlcl/bin
./sql /nolog
conn -save base19 -replace -savepwd test/***@//[BaseDBのIPアドレス]:1521/[BaseDBのホスト名].vcn1.oraclevcn.com
※base19はDB接続プロファイル名ですが任意です。
以上でMCP Server(SQLcl)の実行環境構築は終了です。
2. VS Codeの実行環境構築
続いてVS Codeの実行環境を構築していきます。
[1] VS Code をインストール
VS Code (Visual Studio Code) 公式サイトから入手
https://code.visualstudio.com/download
[2] 拡張機能でGitHub Copilotをインストール
VS Codeを起動したら左側の拡張アイコン(四角いブロック)をクリック
検索でGitHub Copilotを選んでインストール
このタイミングで左下の人型アイコンからアカウントにログインしておくと良いです。
[3] プロジェクトフォルダを作成
VS Codeの左上メニューから下記を実行します。
File → Open Folder
任意の作業フォルダ(例:C:¥Users¥[ユーザ名]¥mcp¥copilot)を開く
.vscode フォルダを作成
C:¥Users¥[ユーザ名]¥mcp¥copilot¥.vscode
※必ずOpenするフォルダは.vscodeの1つ上にする
※Do you trustのダイアログが出たらチェックしてYesを選択
エクスプローラで右クリック → New Folder
名前を.vscodeにする
mcp.jsonを作成
.vscodeフォルダを右クリック → New File
名前をmcp.jsonにする
内容を貼り付け保存(Ctrl+S)
{
"servers": {
"sqlcl": {
"type": "stdio",
"command": "wsl",
"args": [
"bash",
"-lc",
"cd ~/oracle/sqlcl/bin && ./sql -mcp -nolog"
]
}
}
}
設定が完了したらVS Codeを再起動しておくと良いです。
以上でVS Codeの実行環境構築は終了です。
3. 動作検証
最後に動作検証ですが、DB接続プロファイルで保存しておいたスキーマに
テーブルやデータを準備しておきます。
準備が整ったらVS Code起動(再起動)し、mcp.jsonのスタートボタンを起動します。
起動するとrunningにステータスが変わるのでこれでDBにアクセスできます。
あとはショートカット:Ctrl + Shift + I でCopilot Chatを開き、
自然言語で問合せするだけです。
今回は以下を入力して実行しました。
Chat: SQLclのDB接続情報を使って売上TOP5を教えて
LLM Model: GPT-5 mini

しばらくすると、GitHub CopilotにGPT-5 miniのモデルを有効化確認が出てくるので
Enableを選択します。

Copilotが外部ツール(MCP Server)にアクセスしようとした時の許可確認も出てくるので
Allow (Allow in this Session)を選択します。

サンプル応答結果
売上TOP5 (実データ取得クエリ): SELECT COMPANY AS company, SUM(AMOUNT_YEN) AS total_amount_yen FROM SALES GROUP BY COMPANY ORDER BY SUM(AMOUNT_YEN) DESC FETCH FIRST 5 ROWS ONLY;
結果(CSV形式) "COMPANY","TOTAL_AMOUNT_YEN" "X社",10000000000 "Y社",5000000000 "Z社",4000000000 "A社",3000000000 "B社",2000000000
おわり
以上、Oracle 23aiやADBではないOracle 19cに対しての自然言語問合せも
MCP Server(SQLcl)とVS Codeを使えば比較的簡単に実現できます。





