はじめに
OCIでもMCP Serverが提供されているのをご存知でしょうか?
最近はMCP(Model Context Protocol)を利用して、AIエージェントから外部システムやクラウドサービスを自然言語で操作・参照する流れが広がっています。
OracleでもOCI各種サービス向けのMCP Serverが公開されており、AIエージェントからOCIサービス情報を自然言語で扱えるようになっています。
OCIやOracle製品向けのMCP Server群は、以下のOracle公式GitHubリポジトリで公開されています。
Oracle MCP Server Repository
リポジトリ内には、Autonomous Recovery Service、Database Services、OCI Monitoring、OCI Object Storage、OCI Identityなど、複数のOCIサービス向けMCP Serverが含まれているので探ってみると面白いかもしれません。
今回は、その中でも先日公開されたOCI Recovery MCP Serverを実際に試してみます。
従来のAutonomous Recovery Service運用では、OCIコンソールやCLIを利用して個別に状態確認を行う必要がありました。
一方でOCI Recovery MCP Serverを利用すると、AIエージェント経由で自然言語からRecovery Serviceの情報を取得でき、バックアップ状態確認や保護状況の可視化を会話形式で実施できるようになります。
例えば、
- 保護されているデータベース一覧を確認したい
- バックアップ状態をサマリしたい
- リカバリ容量が多いDBを確認したい
- REDO転送状態を確認したい
といった内容を自然言語ベースで問い合わせできるようになります。
従来のようにConsoleやCLIを個別操作するのではなく、AIエージェント経由で状態確認や情報収集を行えるようになってきており、いわゆる「AI Ops」的な運用体験をOCI Recovery Serviceでも試せるようになってきました。
アナウンス内容はこちら
[オラクルエンジニア通信] OCI Recovery MCP Server の発表:AI が実現する次世代のデータ保護とレジリエンス
OCI Recovery MCP Serverを使うことで、Oracle Cloud InfrastructureのAutonomous Recovery Service(RCV/ZRCV)の情報を MCP経由でAIエージェントから利用できるようになります。
Autonomous Recovery Service(RCV/ZRCV)の概要はこちら
今回は、普段のVS Code環境からそのままOCI情報を扱ってみたかったため、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の拡張機能を利用しています。
VS Code + Codex環境は普段のコード作業と同じ流れでOCI情報を確認できるため、運用確認用途とも相性が良さそうでした。
- 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が含まれています。
今回はPyPI経由の uvx 実行ではうまく動作しなかったため、local build/install方式でセットアップしています。
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削除の実行
ちなみにREADMEには以下のようなツールの説明が公開されています。
| Tool | できること |
|---|---|
| list_protected_databases | 保護DB一覧 |
| summarize_protected_database_health | ヘルス集計 |
| get_recovery_service_metrics | リカバリ容量分析 |
| list_backups | バックアップ確認 |
| list_db_systems | DBシステムの確認 |
つまりOCI Recovery MCP Serverでは、読み取り・参照・分析系の操作を中心に利用できるようでした。一方で、削除や保護ポリシー変更などの破壊的操作は提供されておらず、運用AIとしては比較的安全側の設計になっている印象でした。
それでも、
- 自然言語で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.* の方で正常に認識されました。
まとめ
MCP Serverを利用することで、従来はOCI ConsoleやCLI中心だった運用確認を、AIエージェントとの会話ベースで実施できるようになってきました。
特にAutonomous Recovery Serviceのような状態確認・監視・分析系のサービスとは相性が良く、
今後さらにAI Ops的な運用ユースケースが増えていきそうだと感じました。
2026/05/27 追記
今回セットアップしたMCPサーバーから収集した情報をJSON化し、ダッシュボードを作成してみました。
DB数の多い環境などでは情報を可視化できるので非常に便利かと思います。
サンプルデータとダッシュボードのコードはGitHubに公開しています。
