はじめに
OCIでもMCP Serverが提供されているのをご存知でしょうか?
OracleではOCI各種サービス向けのMCP Serverが公開されており、AIエージェントからOCIサービス情報を自然言語で扱えるようになっています。
OCIやOracle製品向けのMCP Server群が以下のGitHubリポジトリOracleから公開されているので時間のある時に漁って見ると意外と面白いかもしれません。
Oracle MCP Server Repository
今回は先日OCI Recovery MCP Serverが公開されたので、早速OCI Recovery MCP Serverを試してみました。
アナウンス内容はこちら
[オラクルエンジニア通信] OCI Recovery MCP Server の発表:AI が実現する次世代のデータ保護とレジリエンス
OCI Recovery MCP Serverを使うことで、Oracle Cloud InfrastructureのAutonomous Recovery Service(RCV/ZRCV)の情報を MCP経由でAIエージェントから利用できるようになります。
Autonomous Recovery Service(RCV/ZRCV)の概要はこちら
今回はVSCodeの拡張機能の1つであるOpenAI CodexからOCI Recovery MCP Serverを接続し、日本語でAutonomous Recovery Serviceを利用しているデータベースを確認できるところまで試してみました。
最終的には以下のように自然言語で保護されたデータベースの一覧取得ができたのでそこまでのセットアップを整理していきます。
保護されているデータベースを一覧表示して
結果:
保護DBは 18 件でした。
Compartment DB State Health
<コンパートメント名> DB1 ACTIVE PROTECTED
<コンパートメント名> DB2 ACTIVE ALERT
...
やりたかったこと
今回の検証のきっかけとしては以下のような「AI Ops的な操作を試してみたかった」です。
- 保護DB一覧確認
- リアルタイムREDO転送オプションが有効化されているデータベースの確認
- バックアップ容量確認、容量が多いDBの確認
特に「日本語で会話して正確な情報を確認できるか」が気になっていたところでした。
なお、セットアップ手順は以下のGitHubのREADME.mdを参考にしています。
https://github.com/oracle/mcp/tree/main/src/oci-recovery-mcp-server
環境
今回の環境ではVSCodeのCodexの拡張機能を利用しています。
- macOS
- VS Code
- OpenAI Codex
- OCI CLI 設定済み
- Python 3.14
- uv
事前準備
uv インストール
Oracle MCP RepositoryではPython package管理やMCP Server実行にuvが利用されています。
uvはPythonのpackage/venv管理を高速に扱えるツールで、最近のMCP関連サンプルでもよく利用されています。
今回はREADME.mdに合わせてuvを利用しました。
brew install uv
確認:
uv --version
OCI CLI 確認
OCI Recovery MCP ServerはOCI SDK/OCI CLIの認証情報を利用してOCI APIを呼び出します。
そのため、事前にOCI CLIが利用可能な状態になっていることを確認します。
私の環境はすでにOCI CLIのセットアップが完了していたため、今回は既存のOCI CLI profileを利用しました。
oci os ns get
例:
{
"data": "<テナンシ名>"
}
Oracle MCP Repository を clone
OCI Recovery MCP ServerはOracle MCP Repository内で公開されています。
今回はlocal build/installを行いたかったため、リポジトリをcloneしました。
git clone https://github.com/oracle/mcp.git
cd mcp
リポジトリ内には今回のAutonomous Recovery Service以外にも、
- OCI Database
- OCI Monitoring
- OCI Object Storage
- OCI Identity
など、複数のOCI向けMCP Serverが含まれています。
各MCP Serverは src/ 配下に配置されています。
src/
├── oci-recovery-mcp-server
├── oci-database-mcp-server
├── oci-monitoring-mcp-server
└── ...
MCP Server build
cloneしたリポジトリには複数のOCI向けMCP Serverが含まれています。
今回はlocal環境でRecovery MCP Serverを利用したかったため、リポジトリ全体をbuildしました。
make build
buildを実行すると、各MCP ServerのPython package/wheelが生成されます。
実行時には以下のように複数のMCP Serverがbuildされました。
oci-recovery-mcp-server
oci-database-mcp-server
oci-monitoring-mcp-server
oci-object-storage-mcp-server
oci-identity-mcp-server
など。
今回利用する oci-recovery-mcp-serverもここでbuildされます。
最初は python: command not found エラーで build に失敗しました。
macOS 環境では python コマンドが存在せず、python3 のみ利用できるケースがあるため、今回は以下で対応しました。
alias python=python3
Python venv作成
今回はOCI Recovery MCP Serverをローカル環境へインストールして利用するため、Python venvを作成しました。
Homebrew Python環境ではsystem installが制限されているため、venvを利用してローカル検証環境を分離しています。
uv venv
source .venv/bin/activate
OCI Recovery MCP Server をインストール
続いて、今回利用する OCI Recovery MCP Server をインストールします。
uv pip install ./src/oci-recovery-mcp-server
インストール後、MCP Server起動用のexecutable が .venv/bin 配下に作成されます。
以下で確認できます。
ls .venv/bin | grep recovery
例:
oracle.oci-recovery-mcp-server
このexecutableをCodex 側のMCP Server設定で利用します。
CodexのMCP Server設定
続いて、CodexからOCI Recovery MCP Serverを利用できるように設定します。
~/.codex/config.toml に以下を追加します。
[mcp_servers.oci_recovery]
command = "/Users/<USER>/Dev/work/mcp/.venv/bin/oracle.oci-recovery-mcp-server"
[mcp_servers.oci_recovery.env]
OCI_CONFIG_PROFILE = "DEFAULT"
この設定により、Codex起動時にOCI Recovery MCP Serverが自動的に起動されます。
ポイント:
- local installしたexecutableをフルパスで指定
- OCI CLI profile (
DEFAULT) を利用して OCI 認証を実施
今回はOCI CLIの既存認証情報を利用する構成にしました。
VS Code 再起動
CodexにMCP Server設定を反映させるため、VS Codeを完全終了 (Cmd + Q) 後、再起動します。
再起動後、Codex が config.toml を読み込み、OCI Recovery MCP Serverを起動します。
MCP Tool 確認
設定反映後、Codex Chatから利用可能なMCP Toolを確認します。
以下を実行します。
利用可能なMCP Toolを表示して
以下のnamespaceが表示されれば、OCI Recovery MCP Serverの登録成功です。
mcp__oci_recovery__
実際には以下のような Recovery 関連 Tool が利用可能になります。
list_protected_databasessummarize_protected_database_healthlist_backupsget_recovery_service_metrics
実際に使ってみる
セットアップが完了したので実際に Codexから日本語で問い合わせてみます。
保護されているデータベースの一覧を取得してみましょう。
保護されているデータベースを一覧表示して
実行すると、Codexが OCI Recovery MCP ServerのToolを利用し、OCI Recovery Serviceから情報を取得してくれます。
結果:
保護DBは 18 件でした。
PROTECTED 3件
ALERT 13件
WARNING 2件
実際には以下のような情報も取得できました。
- コンパートメント
- 保護されているデータベースの名前
- ヘルス状態
- バックアップの使用量
- 保持設定
コンパートメント横断で Autonomous Recovery Serviceの状態を自然言語ベースで確認できるのはかなり面白い体験でした。
日本語でも問題なく利用可能
以下のようなクエリも利用できます。
リアルタイムREDO転送オプションが有効化されているDBはある?
バックアップ容量が多いDBを教えて
バックアップの状態をサマリして
おまけ
動作確認では一覧取得や状態確認など、比較的シンプルなプロンプトを試していました。
そこで、「実際にはどこまで操作できるのだろう?」と思い、Codex に現在利用可能な操作範囲を聞いてみました。
返ってきた内容はこちらです。
今このセッションで見えている oci_recovery MCPは読み取り系のみなので、
私から直接「削除オプション」「保護ポリシー」「REDO転送」などを変更するツールはありません。
できること:
- 現在の設定確認
- 影響範囲の洗い出し
- 変更対象DBの候補作成
- OCI Console / OCI CLI / API 用の手順やコマンド案の作成
-
このMCPではできないこと:
- Protected Database の設定更新
- Recovery Service の削除スケジュール変更
- 保護ポリシーの割り当て変更
- リアルタイムREDO転送の有効/無効切り替え
- バックアップ削除や保護DB削除の実行
つまりOCI Recovery MCP Serverでは、読み取り・参照・分析系の操作を中心に利用できるようでした。一方で、重要な設定変更や削除などのプロアクティブな操作までは提供されていませんでした。
それでも、
- 自然言語でOCI情報を確認できる
- コンパートメント横断で状態を把握できる
- OCIコンソールにログインせず確認できる
といった点は非常に便利で、AI経由でOCI運用情報を扱う体験としてかなり面白いと感じました。
つまずきポイント
最後に、セットアップ時に少し詰まったポイントも備忘録としてまとめておきます。
1. uvx oracle.oci-recovery-mcp-serverがそのままでは利用できなかった
README.mdでは以下のような uvx 実行例が紹介されています。
uvx oracle.oci-recovery-mcp-server
ただ、今回の環境ではそのままではpackageを取得できず、正常に起動できませんでした。
そのため今回は、GitHubリポジトリをcloneし、local build/installを実施しています。
2. Homebrew Python環境ではsystem installが制限される
Homebrew管理のPython環境では、PEP668によりsystem installが制限されていました。
そのため、今回は uv venv を利用してローカル検証用のPython仮想環境を作成しています。
uv venv
source .venv/bin/activate
3. CodexのMCP config形式
Codexの設定では、以下の mcp_servers.* 形式で設定すると認識されました。
[mcp_servers.oci_recovery]
最初は mcp.servers.* 形式も試しましたが、今回の環境では mcp_servers.* の方で正常に認識されました。
まとめ
OCI Recovery MCP Serverを利用することで、保護されたデータベースの参照などを AI から自然言語で操作できました。
特に日本語で利用できる点はかなり嬉しく、OCI運用の AI Ops化をイメージしやすい体験でした。