mcp
Oracle 官方 MCP Server,将 20+ OCI 云服务封装为 AI 友好工具,实现自然
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
Oracle 官方 MCP Server,将 20+ OCI 云服务封装为 AI 友好工具,实现自然
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下,你是一家使用 Oracle Cloud Infrastructure(OCI)的企业的云运维工程师。每天的工作清单里,可能同时出现这些需求:查询某个数据库的备份状态、查看 VM 实例的规格、确认对象存储的桶列表、监控告警配置、检查网络 ACL 规则……传统做法是在 OCI Console 逐个页面操作,或者用 OCI CLI/Python SDK 编写独立脚本——工作量大、难以批量操作、跨服务协同困难。
Oracle MCP Server(Model Context Protocol Server)正是为解决这一痛点而生的。它将 Oracle Cloud Infrastructure 的 20 余种核心服务,封装为标准化的 MCP 工具(Tools)、资源(Resources)和提示(Prompts),让 AI 助手(如 Claude)能够直接调用这些接口,实现自然语言驱动的云运维操作。简单来说,它相当于给 Oracle Cloud 配备了一个"AI 友好的控制面板",AI 可以在理解运维意图后,自主调用相应工具完成任务。
Model Context Protocol(MCP)是由 Anthropic 主导推出的开放协议,旨在标准化 AI 应用与外部数据源/工具之间的通信方式。MCP 的核心理念是"一次接入,处处调用"——开发者只需实现一个 MCP Server,即可让任何支持 MCP 的 AI 客户端(如 Claude Desktop、Cursor、Cline 等)连接使用。Oracle 作为全球最大的企业数据库和云计算供应商之一,于 2025 年初开源了官方的 MCP Server 实现,这是 Oracle 在 AI 时代向开发者生态延伸的关键动作。
该仓库(oracle/mcp)是一个多服务聚合仓库(monorepo),包含 30 个独立的 MCP Server 实现,涵盖数据库、计算实例、网络、存储、监控、日志等几乎所有主流 OCI 服务。
图1:Oracle 官方 MCP Server 仓库
Oracle MCP 项目覆盖的 OCI 服务包括:
| 服务分类 | 具体服务 | 实现语言 |
|---|---|---|
| 数据库 | Autonomous Database, Database (DBCS), GoldenGate | Python / Java |
| 计算 | Compute Instance Agent, OCI Compute | Python |
| 网络 | Networking, Load Balancer, Network Load Balancer | Python |
| 存储 | Object Storage, Registry (OCIR) | Python |
| 监控/日志 | Monitoring, Logging, Cloud Guard | Python |
| 身份 | Identity, Limits | Python |
| 搜索 | Resource Search | Python |
| 迁移/恢复 | Migration, Disaster Recovery | Python |
以 oci-database-mcp-server 为例,它提供了超过 30 个工具(Tools),覆盖了从列出数据库实例、查看备份状态、获取 Data Guard 关联信息,到克隆数据库、查看字符集等全生命周期管理操作。每个工具的设计遵循 OCI SDK 规范,参数与 OCI Console 和 CLI 完全对齐,降低了运维人员的学习成本。
所有 MCP Server 均使用 OCI SDK(Python) 进行身份认证,支持通过环境变量或配置文件指定 OCI Profile。这意味着已有的 OCI 认证体系(Config 文件 + API Key)无需任何修改即可复用。认证配置示例:
# 使用 ~/.oci/config 中的 DEFAULT Profile
OCI_CONFIG_PROFILE=DEFAULT
# 或者指定其他 Profile
OCI_CONFIG_PROFILE=PRODUCTION
核心代码使用 Python 3.13+ 编写(少数服务如 GoldenGate 使用 Java),依赖:
每个 Server 独立构建,通过 pyproject.toml 声明依赖和入口脚本。
Oracle MCP 采用 monorepo 架构,根目录的 Makefile 提供了统一的 build/test/install/lint 命令。关键的工程设计包括:
1. 统一入口,差异化实现
根目录 Makefile 通过通配符遍历 src/ 下的各服务目录,排除特殊项目(dbtools、mysql 等),批量执行构建测试。这种方式确保了维护者可以用一条命令更新所有服务,同时每个服务又有独立的 pyproject.toml、oracle/ 源码目录和测试。
2. 标准化 MCP Server 模板
BEST_PRACTICES.md 定义了严格的代码结构规范:
oracle/<service>/models.py:Pydantic 数据模型oracle/<service>/server.py:MCP 工具和资源实现oracle/<service>/consts.py:常量定义main() 函数这一模板确保了新增服务的代码质量下限,同时降低了贡献者的学习门槛。
3. 分层测试覆盖
CI 测试要求覆盖率 ≥ 90%,并通过 pytest-cov 自动生成覆盖率报告。排除规则(omit)清晰排除了测试代码、__pycache__、构建产物等非源码文件。
4. Docker 支持
每个支持容器化的服务均提供 Containerfile(基于 Oracle Linux 9 slim 镜像),使用 uv sync 安装依赖,构建镜像约 200-300MB。部分服务还提供了独立的 Dockerfile 方案。
本地安装(推荐开发者)
# 克隆后使用 uv 安装
uv pip install oracle.oci-database-mcp-server
# 或从源码构建
make build project=oci-database-mcp-server
Docker 容器部署(适合生产环境)
# 每个服务有独立镜像
podman build -f src/oci-api-mcp-server/Containerfile .
对于有 OCI 使用经验的工程师,通过 README 指引通常可在 30 分钟内完成首个服务的配置运行。但对于初次接触 OCI 的用户,OCI Config 和 API Key 的配置过程有一定复杂度,难度标记为中等。
⚠️ 已知限制:dbtools-mcp-server、mysql-mcp-server、oracle-db-mcp-java-toolkit 等部分服务被排除在统一构建之外,需按各自 README 独立配置。
从 Best Practices 文档和代码结构来看,Oracle 对这个开源项目的质量把控相当严格:
ruff.toml 统一格式化配置,make lint 自动化检查Oracle MCP 不是一个"即开即用"的产品,而是一套开发者工具链:
适用人群:Oracle Cloud 运维工程师、DevOps 团队、需要在 AI 助手中集成 OCI 操作的开发者。
Oracle MCP 的发布,反映了当前 AI 基础设施领域的一个重要趋势——主流云厂商纷纷推出官方 MCP Server。在此之前,AWS Bedrock、MCP Hub 等平台已提供类似能力。Oracle 的入场,进一步完善了 MCP 生态的企业云覆盖。
对于 AI 应用开发者,这意味着可以通过统一协议,同时接入多家云厂商的服务能力,构建跨云 AI 工作流。对于 Oracle 自身,这也是吸引开发者生态、提升 OCI 平台竞争力的战略动作。
图2:Oracle 官方 GitHub 组织头像