mcpField
M
mcp-oci

mcp-oci

本地服务
github.com/dockndevai云与基础设施13 天前更新

关于 mcp-oci

mcp-oci 是用于 Oracle Cloud Infrastructure 的 MCP 服务,帮助 MCP 客户端发现资源、查看依赖关系并生成 Terraform。它仅提供只读工具,并在返回结果前始终对疑似秘密字段脱敏。

主要功能

  1. 01发现 compartment、区域和云资源
  2. 02生成 Terraform HCL 与模块
  3. 03构建资源依赖图和建议顺序
  4. 04返回结果前对秘密字段脱敏
  5. 05按 compartment 和区域限制访问

适用场景

  1. 01查看指定 compartment 中的资源
  2. 02为已发现资源生成 Terraform
  3. 03梳理资源依赖及配置顺序
  4. 04在安全范围内盘点 OCI 环境

MCP 相关

该服务向 MCP 客户端提供 OCI 资源发现、Terraform 生成和依赖图工具。所有已发布工具均为只读,返回内容会经过秘密字段脱敏。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"dockndevai-mcp-oci": {
"command": "npx",
"args": [
"-y",
"@dockndevai/mcp-oci"
],
"env": {
"OCI_PROFILE": "<OCI_PROFILE>",
"OCI_MODE": "<OCI_MODE>"
}
}
}
}
启动命令npx -y @dockndevai/mcp-oci
需要配置的环境变量
OCI_PROFILEProfile within ~/.oci/config (default DEFAULT).
OCI_MODEAccess mode: read-only | read-write | admin.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@dockndevai/mcp-oci0.1.4

工具

8

收录的工具列表 · 更新于 2 周前

参数类型必填说明
rootCompartmentIdstring否要列出其下内容的 OCID(默认为租户根 compartment)

详细介绍

mcp-oci

CI License: MIT npm

一个用于 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_MODEread-only所有已提供的工具均为只读。read-write/admin 为未来的配置功能预留,目前不会开放额外工具。
哪些 compartment 在范围内?OCI_COMPARTMENT_ALLOWLIST(全部)设置后,将拒绝对其他 compartment 执行操作。
可以访问哪些区域?OCI_REGION_ALLOWLIST(已配置的区域)设置后,只能指定这些区域。
能否运行 terraform apply?OCI_ALLOW_APPLYfalse为配置功能预留的门控(尚未提供)。
仅预览,不执行OCI_DRY_RUNfalse面向未来的写入工具:验证并记录操作意图,但不执行。
审计跟踪OCI_AUDIT_LOGtrue每次受门控的操作都会向 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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。