mcp-oci について
mcp-ociは、Oracle Cloud Infrastructureのリソース調査、依存関係の可視化、Terraform生成を行うMCPサーバーです。提供ツールは読み取り専用で、結果を返す前に秘密情報らしいフィールドを常にマスキングします。
主な機能
- 01コンパートメント、リージョン、リソースの調査
- 02Terraform HCLとモジュールの生成
- 03依存関係グラフと推奨順序の作成
- 04結果内の秘密情報らしい値のマスキング
- 05コンパートメントとリージョンによる範囲指定
活用シーン
- 01指定したコンパートメントのリソース確認
- 02検出したインフラのTerraform生成
- 03依存関係と構築順序の整理
- 04範囲を限定したOCI環境の棚卸し
MCP 対応
MCPクライアントにOCIリソース調査、Terraform生成、依存関係グラフのツールを提供します。提供されるツールはすべて読み取り専用で、返却前に秘密情報らしいフィールドをマスキングします。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
8掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| rootCompartmentId | string | いいえ | 配下を一覧表示する OCID(デフォルトはテナンシのルートコンパートメント) |
詳細
mcp-oci
Oracle Cloud Infrastructure (OCI) 用の Model Context Protocol サーバーです。MCP 対応クライアント(Claude Desktop、Claude Code、Cursor、Copilot など)から、OCI のリソースをリアルタイムに検出し、相互の関係を把握して、再現可能な Terraform を生成できます。動作はすべてフラグで制御します。
クラウド向けの Playwright-MCP のようなものだと考えてください。インフラの知識を手作業で再構築する代わりに、モデルに 「prod コンパートメント内のすべての VCN を表示して」、「このコンパートメントの Terraform を生成して」 と尋ねると、構造化された、シークレットを含まない回答が得られます。
機能
- リアルタイム検出 — コンパートメント、リージョン、OCI Resource Search を介したあらゆるリソース。
- Terraform の生成 — 既知のタイプ(VCN、サブネット、インスタンス、バケット、コンパートメント)には忠実な HCL を、それ以外には注釈付きのひな形を生成します。プロバイダー変数を含むコンパートメント全体のモジュールも生成できます。
- 依存関係グラフ — ノードとエッジに加え、推奨されるプロビジョニング順序(依存関係を先に処理)を示します。
- シークレットがモデルに届くことはありません — すべてのペイロードは返却前に秘匿化されます。
- セキュリティフラグ — アクセスモード、コンパートメント/リージョンの許可リスト、プロビジョニングゲート、ドライラン、JSON 監査ログに対応します(以下を参照)。
- 標準認証 — OCI 設定ファイル(
~/.oci/config)またはインスタンスプリンシパルを使用します。サーバーに認証情報は保存されません。
セキュリティモデル
| 懸念事項 | フラグ | デフォルト | 効果 |
|---|---|---|---|
| サーバーで実行できる操作は何ですか? | OCI_MODE | read-only | 提供されているツールはすべて読み取り専用です。read-write/admin は将来のプロビジョニング用に予約されており、現在は追加のツールを公開しません。 |
| 対象となるコンパートメントはどれですか? | OCI_COMPARTMENT_ALLOWLIST | (すべて) | 設定すると、ほかのコンパートメントに対する操作は拒否されます。 |
| アクセス可能なリージョンはどれですか? | OCI_REGION_ALLOWLIST | (設定済みのリージョン) | 設定すると、指定したリージョンのみを対象にできます。 |
terraform apply を実行できますか? | OCI_ALLOW_APPLY | false | プロビジョニング用の予約済みゲートです(未提供)。 |
| 実行せずにプレビューする | OCI_DRY_RUN | false | 将来の書き込みツール向けです。実行せずに検証し、実行予定をログに記録します。 |
| 監査証跡 | OCI_AUDIT_LOG | true | 保護対象の操作ごとに、JSON の1行を stderr に出力します。 |
| シークレットの秘匿化 | (常に有効) | — | シークレットに該当するフィールドは、結果を返す前に ***REDACTED*** に置き換えられます。 |
ツール
検出(読み取り):list_compartments、list_regions、search_resources、list_compartment_resources、get_resource
Terraform(読み取り):generate_terraform、generate_compartment_terraform、build_dependency_graph
クイックスタート — エージェントに追加する
@dockndevai/mcp-oci として npm で公開されています。クローンやビルドは不要です。MCP クライアントが必要に応じて npx で実行します。まずは read-only モードで開始してください。すべての変数については .env.example を、クライアントごとの詳しいガイドについては docs/CLIENTS.md を参照してください。
Claude Code(CLI)
claude mcp add oci -e OCI_PROFILE="DEFAULT" -e OCI_MODE="read-only" -- npx -y @dockndevai/mcp-oci
Claude Desktop · Cursor · Windsurf — 同じブロックを claude_desktop_config.json、.cursor/mcp.json、または ~/.codeium/windsurf/mcp_config.json に追加します。
{
"mcpServers": {
"oci": {
"command": "npx",
"args": [
"-y",
"@dockndevai/mcp-oci"
],
"env": {
"OCI_PROFILE": "DEFAULT",
"OCI_MODE": "read-only"
}
}
}
}
OpenAI Codex CLI — ~/.codex/config.toml に追加します。
[mcp_servers.oci]
command = "npx"
args = ["-y", "@dockndevai/mcp-oci"]
env = { OCI_PROFILE = "DEFAULT", OCI_MODE = "read-only" }
VS Code(GitHub Copilot、エージェントモード) — .vscode/mcp.json に追加します。
{
"servers": {
"oci": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@dockndevai/mcp-oci"
],
"env": {
"OCI_PROFILE": "DEFAULT",
"OCI_MODE": "read-only"
}
}
}
}
設定
標準の OCI 設定プロファイルを指定してください。安全のため、エージェントに表示するコンパートメントに対して、読み取り専用(inspect/read)権限を持つ IAM ユーザー/ポリシーを使用してください。
プロンプトの例
- 「すべてのコンパートメントを一覧表示してから、
prodコンパートメント内のすべてのリソースを表示してください。」 - 「VCN
ocid1.vcn.oc1..…の Terraform を生成してください。」 - 「コンパートメント
…の依存関係グラフを作成し、プロビジョニングの順序を教えてください。」
ソースから実行する(開発)
上記の公開パッケージの使用をおすすめします。クローンから実行するには、次のとおりです。
npm install
npm run build
node dist/index.js # with the environment variables set
開発
npm run dev # watch mode
npm test # security policy + terraform generation + graph + redaction
npm run typecheck
ロードマップ
read-write/adminとOCI_ALLOW_APPLYの設定のもとでterraform plan/applyを実行。- リソースタイプのマッパーを追加(ロードバランサー、データベース、DRG、IAM ポリシー)。
- 環境をまたいだドリフトの比較。
公開
このサーバーには、公式 MCP レジストリ用の server.json と、npm の所有権検証用の mcpName が含まれています。npm への公開と、MCP レジストリ、Smithery、Glama、Cursor、PulseMCP への掲載については、PUBLISHING.md をご覧ください。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。