关于 mcp-oci
mcp-oci 是用于 Oracle Cloud Infrastructure 的 MCP 服务,帮助 MCP 客户端发现资源、查看依赖关系并生成 Terraform。它仅提供只读工具,并在返回结果前始终对疑似秘密字段脱敏。
主要功能
- 01发现 compartment、区域和云资源
- 02生成 Terraform HCL 与模块
- 03构建资源依赖图和建议顺序
- 04返回结果前对秘密字段脱敏
- 05按 compartment 和区域限制访问
适用场景
- 01查看指定 compartment 中的资源
- 02为已发现资源生成 Terraform
- 03梳理资源依赖及配置顺序
- 04在安全范围内盘点 OCI 环境
MCP 相关
该服务向 MCP 客户端提供 OCI 资源发现、Terraform 生成和依赖图工具。所有已发布工具均为只读,返回内容会经过秘密字段脱敏。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
8收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| rootCompartmentId | string | 否 | 要列出其下内容的 OCID(默认为租户根 compartment) |
详细介绍
mcp-oci
一个用于 Oracle Cloud Infrastructure (OCI) 的模型上下文协议服务。它让支持 MCP 的客户端(Claude Desktop、Claude Code、Cursor、Copilot 等)能够发现 OCI 中的实时资源、梳理资源间的关系,并生成可复现的 Terraform——行为完全由标志控制。
可以把它看作云基础设施领域的 Playwright-MCP:无需手动重新梳理基础设施信息,模型就能询问 “显示 prod compartment 中的所有 VCN” 和 “为这个 compartment 生成 Terraform”,并获得结构化且不含机密信息的结果。
功能
- 实时发现 — compartment、区域,以及通过 OCI Resource Search 查找的任意资源。
- Terraform 生成 — 为已知类型(VCN、子网、实例、存储桶、compartment)生成忠实的 HCL,为其他类型生成带注释的框架;还可生成带有 provider 变量的整个 compartment 模块。
- 依赖关系图 — 节点、边以及建议的配置顺序(先处理依赖项)。
- 机密信息不会传递给模型 — 返回前会对每个负载进行脱敏。
- 安全标志 — 访问模式、compartment/区域允许列表、配置门控、试运行和 JSON 审计日志(见下文)。
- 标准身份验证 — OCI 配置文件(
~/.oci/config)或实例主体。服务不会存储凭据。
安全模型
| 关注点 | 标志 | 默认值 | 效果 |
|---|---|---|---|
| 服务可以执行哪些操作? | OCI_MODE | read-only | 所有已提供的工具均为只读。read-write/admin 为未来的配置功能预留,目前不会开放额外工具。 |
| 哪些 compartment 在范围内? | OCI_COMPARTMENT_ALLOWLIST | (全部) | 设置后,将拒绝对其他 compartment 执行操作。 |
| 可以访问哪些区域? | OCI_REGION_ALLOWLIST | (已配置的区域) | 设置后,只能指定这些区域。 |
能否运行 terraform apply? | OCI_ALLOW_APPLY | false | 为配置功能预留的门控(尚未提供)。 |
| 仅预览,不执行 | OCI_DRY_RUN | false | 面向未来的写入工具:验证并记录操作意图,但不执行。 |
| 审计跟踪 | OCI_AUDIT_LOG | true | 每次受门控的操作都会向 stderr 输出一行 JSON。 |
| 机密信息脱敏 | (始终启用) | — | 返回任何结果前,都会将形似机密信息的字段替换为 ***REDACTED***。 |
工具
发现(读取):list_compartments、list_regions、search_resources、list_compartment_resources、get_resource
Terraform(读取):generate_terraform、generate_compartment_terraform、build_dependency_graph
快速开始 — 添加到你的 Agent
已在 npm 上发布,包名为 @dockndevai/mcp-oci。无需克隆或构建——MCP 客户端会在需要时通过 npx 运行它。请从 read-only 模式开始;所有变量请参阅 .env.example,各客户端的完整指南请参阅 docs/CLIENTS.md。
Claude Code(命令行)
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,Agent 模式) — 在 .vscode/mcp.json 中配置:
{
"servers": {
"oci": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@dockndevai/mcp-oci"
],
"env": {
"OCI_PROFILE": "DEFAULT",
"OCI_MODE": "read-only"
}
}
}
}
配置
将其指向标准 OCI 配置文件。为确保安全,请使用 IAM 用户/策略,仅对希望 Agent 查看内容的 compartment 授予只读(inspect/read)权限。
示例提示词
- “列出所有区间,然后显示
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。请参阅 PUBLISHING.md,了解如何发布到 npm,以及如何在 MCP 注册表、Smithery、Glama、Cursor 和 PulseMCP 上列出。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。