mcpField
O
oraclemcp

oraclemcp

本地服务
github.com/MuhDur数据库43 周前更新

关于 oraclemcp

oraclemcp 是面向 AI Agent 的 Oracle Database MCP 服务,以纯 Rust 实现并在 SQL 到达数据库前进行失败即拒绝的分类。适合需要受控数据库访问的团队,支持分级权限、默认回滚和审计。

主要功能

  1. 01失败即拒绝的 SQL 分类
  2. 02READ_ONLY 至 ADMIN 权限阶梯
  3. 03DML 默认回滚并需确认提交
  4. 04签名哈希链审计
  5. 05stdio 与 Streamable HTTP 传输
  6. 06Oracle VECTOR 搜索

适用场景

  1. 01在只读配置下查询 Oracle 数据库
  2. 02通过预览和确认执行受控写入
  3. 03审计特权数据库操作
  4. 04对 Oracle 23ai 执行受治理的向量搜索

MCP 相关

提供 43 个受治理 MCP 工具及兼容别名,供 MCP 客户端访问 Oracle Database。支持 stdio 和带 TLS/mTLS 的 Streamable HTTP。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"muhdur-oraclemcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/muhdur/oraclemcp:0.11.0"
]
}
}
}
启动命令docker run -i --rm ghcr.io/muhdur/oraclemcp:0.11.0

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

安装包
ocighcr.io/muhdur/oraclemcp:0.11.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

oraclemcp:以纯 Rust 编写的 Oracle Database MCP 服务,具备受控访问和最小权限

持续集成 crates.io 许可证 禁止使用 unsafe_code 约 3,300 个测试 nightly-2026-05-11

以纯 Rust 为 AI Agent 提供受控的 Oracle Database 访问,并遵循最小权限原则。

oraclemcp 是一个模型上下文协议服务,为 AI Agent 提供受控的 Oracle 数据库访问,并遵循最小权限原则。Agent 提交的每条原始语句都会在到达 Oracle 之前进行分类:读取工具只允许执行已证明为只读的语句;非只读 SQL 只能通过明确且受配置文件控制的路径执行,该路径默认会回滚 DML,并要求提供基于预览生成的授权才能提交。会话权限提升必须显式进行、仅在临时期限内有效,且受配置文件中的 max_level 限制。与 PL/SQL 智能分析相互独立的 SQL 防护引擎无需外部引擎;默认二进制文件内嵌离线引擎。所有 crate 均使用 #![forbid(unsafe_code)]。

这是一个独立的开源项目,与 Oracle 没有隶属关系。请参阅对比说明,了解它与 Oracle 自有 MCP 服务的区别。

驱动程序

oraclemcp 通过自有的成熟纯 Rust Oracle 驱动程序进行连接,这是主要连接路径。Oracle 官方的 oracledb crate(我们在友好协商中将其 crate 名称让给了 Oracle)目前仍处于 beta 阶段,因此仅作为有界的连接时备用方案,用于应对偶发的异常情况。无需安装 Oracle Instant Client、ODPI-C 或 C 工具链。

flowchart LR
    A["Connection request"] --> D["driver-cx<br/>pure-Rust · primary<br/>password · IAM · wallet · TCPS/PEM"]
    D -->|"basic-password<br/>connect fails"| O["oracledb<br/>Oracle · beta<br/>connect-time fallback"]
    D --> DB[("Oracle Database")]
    O --> DB

只有基本密码连接失败时才会启用备用方案;IAM、wallet 和 TCPS/PEM 始终使用 driver-cx,且备用方案绝不会迁移已建立的会话。

概览

工具43 个受控 MCP 工具 + 25 个兼容性别名,每个工具都有真实的 JSON Schema 和 MCP 安全提示
安全性失败时默认拒绝的 SQL 分类器 · 4 级权限梯度 READ_ONLY → READ_WRITE → DDL → ADMIN · 默认回滚 DML · 签名且采用哈希链的审计
身份验证TCP 用户名/密码 · IAM / OCI ADB 令牌 · TLS/TCPS + PEM · Oracle wallet(cwallet.sso)
Oracle18c · 21c · 23ai — 包括受控的原生 VECTOR 搜索
代码9 个纯 Rust crate + 二进制文件 · #![forbid(unsafe_code)] · 约 3,300 个测试 + 差分模糊测试器
传输方式stdio(默认)+ Streamable HTTP,支持 rustls TLS/mTLS 和可选 OAuth

快速开始

在 macOS 和 Linux 上,一行命令即可安装或更新(可粘贴到终端中运行,也可在非交互式 Agent 运行中使用):

curl -fsSL "https://raw.githubusercontent.com/MuhDur/oraclemcp/main/install.sh?$(date +%s)" | bash

该命令会验证 SHA-256 摘要(如果存在 cosign,还会验证其签名和来源证明),并将 oraclemcp 和简短别名 om 安装到 $HOME/.local。此外还支持:Windows(install.ps1)、Docker(ghcr.io/muhdur/oraclemcp:latest)以及 cargo binstall oraclemcp。关于隔离网络环境下的离线安装、验证策略和服务安装,请参阅 bash install.sh --help 和 docs/。不提供 npm/npx 安装渠道。

完成引导并连接客户端:

oraclemcp setup --discover           # one READ_ONLY profile per tnsnames.ora entry — consent-gated, no secrets written to disk
oraclemcp doctor                     # offline diagnostics: driver, TNS/wallet, classifier, NLS
oraclemcp serve --profile db_ro --allow-no-auth    # stdio (local dev)

通过 stdio 将其接入 MCP 客户端(例如 Claude Desktop):

{
  "mcpServers": {
    "oracle": {
      "command": "oraclemcp",
      "args": ["serve", "--profile", "db_ro", "--allow-no-auth"]
    }
  }
}

多个本地 MCP 客户端可以同时使用同一 stdio 配置,包括具备写入能力的配置文件。需要服务状态时,客户端会自动连接到同一个本地代理,由其管理审计写入器和数据库连接池。每个客户端都保留各自的会话级别、确认令牌、事务和取消状态。如果 60 秒内没有客户端连接,代理就会退出。默认情况下,HTTP 也会为每个客户端提供相互隔离的有状态会话。 HTTP 和 stdio 客户端共用同一个代理和状态根目录。每个本地客户端都必须解析各自配置的数据库凭据。若凭据与代理的凭据不同,在打开会话前会收到 ORACLEMCP_BROKER_CREDENTIAL_MISMATCH 错误。

也可以运行经过身份验证的 HTTP 服务,该服务会显示仅一次的 bearer 令牌;并通过不含密钥的一次性配对 URL 打开本地仪表板:

oraclemcp --json clients issue --label claude --scope oracle:read
oraclemcp serve --listen 127.0.0.1:7070 --client-credentials --profile db_ro
om dashboard

doctor 的输出可安全粘贴到 Agent 会话中——其中不会包含连接字符串、用户名、凭据引用、密码、钱包路径、IAM 令牌或服务器 DN,同时会保留结构化故障类别和 ORA 代码。

为什么选择 oraclemcp

  • 从设计上确保失败时关闭。 Agent 构造的 SELECT 绝不会悄然变成 DELETE。读取工具只接受已证实为只读的 SELECT/WITH 和字典查询。非读取执行通过 oracle_execute 隔离,受配置文件上限约束,DML 默认回滚,并且必须明确确认后才能提交。在触及 Oracle 之前,会拒绝禁止的结构(多语句批处理、字符串拼接式动态 SQL、SELECT 中未经证实的函数调用),并返回类型化信封和建议的安全替代方案。
  • 以 Agent 为先的 UX。 每个工具都提供真正的 JSON Schema、标题和明确的 MCP 注解(readOnlyHint、destructiveHint、idempotentHint、openWorldHint)。错误均为结构化的 ErrorEnvelope,包含机器稳定的类别、模糊匹配建议和后续步骤提示——绝不会只是裸字符串。Agent 可通过零参数的 oracle_capabilities 工具发现可用功能。
  • 纯 Rust,不使用 unsafe。 每个 crate 都设有 #![forbid(unsafe_code)];失败时关闭的分类器是基于 sqlparser AST 的真实分类器,并配有差分 cargo-fuzz 测试目标。
  • 两种传输方式。 stdio(默认)和 Streamable HTTP(--listen),均采用失败时关闭的身份验证默认设置,支持可选的 OAuth bearer 强制验证,并原生支持 rustls TLS/mTLS。

对比

Oracle 在 SQLcl 中内置了官方 MCP;我们的方案则是独立的。在决定你能否安全地让 AI Agent 连接数据库的关键维度上——Agent 与数据之间的防护措施——以下是基于事实的客观对比:

Oracle SQLcl MCPoraclemcp
默认状态非只读只读,默认拒绝
写入 / DDL 控制服务内没有防护关卡——依赖数据库授权和非生产副本服务内:分类器 + READ_ONLY→ADMIN 级别阶梯 + 预览→确认令牌 + 默认回滚
安全边界你的授权管理——错误授权或巧妙的提示词都可能导致写入服务本身——无论授权如何,都会强制执行
SQL 处理自由格式,标记为 /* LLM in use */自由格式,但 在到达 Oracle 之前会先经过分类
审计数据库侧日志表(DBTOOLS$MCP_LOG)签名、哈希链式 HMAC 审计 + 判定证书
运行时Java——需要 JVM 和 SQLcl 安装单个纯 Rust 静态二进制文件——无需 JVM、C 工具链或 Instant Client

SQLcl-MCP 的相关内容依据 Oracle 官方文档(配置最小权限用户、优先使用非生产副本、通过 DBTOOLS$MCP_LOG 进行审计);oraclemcp 的相关内容则在此代码库中强制执行。Oracle 是官方支持的选项,其托管式 Autonomous MCP 采用不同的精选报告方案,并按用户身份区分——非常适合安全限制严格的只读 BI。

安全模型

当受保护的请求遭到拒绝时,请使用生成的拒绝目录查找有类型的安全后续操作;它绝不会建议绕过防护措施。

核心不变量是默认拒绝的 SQL 防护——并非“永远只读”。操作级别构成一个阶梯:READ_ONLY < READ_WRITE < DDL < ADMIN,通过 oracle_execute、oracle_compile_object、oracle_create_or_replace、oracle_patch_source 和 oracle_set_session_level 提供。只读是默认级别,也是未配置或 protected 配置文件的上限;配置文件的 max_level 可允许逐级提升,最高至 ADMIN。每次提级都受到防护:

  • 执行任何非只读语句前,必须经过预览 → 确认令牌提级步骤,
  • 临时、受 TTL 限制的提权窗口,
  • 分类器仍会在 当前级别 对每条语句进行把关,
  • 默认回滚 DML;protected 配置文件固定在 READ_ONLY,上限不可变;OAuth 作用域只能降低有效级别,
  • 每项特权操作都会生成一条签名、仅追加、采用 HMAC-SHA256 哈希链的审计记录。
flowchart LR
    A["Agent SQL"] --> C{"Fail-closed<br/>classifier"}
    C -->|"proven READ_ONLY"| R["Read tools · rows returned"]
    C -->|"forbidden / unparseable"| X["Refuse<br/>typed ErrorEnvelope"]
    C -->|"non-read"| L{"Operating-level gate<br/>READ_ONLY → READ_WRITE → DDL → ADMIN"}
    L -->|"above level / ceiling"| X
    L -->|"within profile ceiling"| P["Preview → confirmation token"]
    P --> E["Execute"]
    E -->|"DML"| RB["Rollback by default<br/>commit only with grant"]
    R --> AU[("Signed hash-chained audit")]
    E --> AU

无法解析或分类的语句会被默认拒绝。语句可以生成与已分类字节和审计记录绑定的判定证书;其所依赖的例程纯度定律在 proofs/purity-core/PurityCore.lean 中有明确规定,并通过一致性测试与 Rust 分类器绑定。

受治理的维度

数据库会话被视为一个受治理的界面,包含多个相互独立的控制项,每项都有可执行的验证脚本:

维度管控内容验证
Cost每次调用的 max_query_cost + 按主体持久化的预算;超出上限的估算会在执行前被拒绝cost_gate.sh
Timeas_of 闪回读取、跨 SCN/跨数据库的 oracle_diff、历史执行计划时间线time_diff.sh
Egress按配置文件范围应用结果脱敏,再将行数据发送出服务端,并提供脱敏证书(ADR 0008)served_egress.sh
Proof判定证书 + 审计头的异步 Rekor 锚定(ADR 0010)verdict_certificate.sh
Policy按配置文件设置的 SQL 拒绝/仅收紧策略,可收紧但绝不放宽基础分类器(ADR 0009)sql_policy.sh
Living DBCQN 更改通知、oracle_orient 新鲜度/漂移、Arrow IPC 输出living_db.sh
Vector search通过完整策略/脱敏/审计流程,执行有界且失败时默认拒绝的 23ai oracle_semantic_searchgoverned_rag.sh
Fleet一次映射或比较多个 MCP 可见配置文件;无法访问的目标会成为带类型的 UNREACHABLE/FAIL_CLOSED 通道fleet.sh
Reversible workspace原生 SAVEPOINT 检查点、暂存的 DML、oracle_undo_to、支持撤销的 oracle_preview_dmlreversible.sh
Editions通过允许列表执行基于 Edition 的重定义、持久化提案,以及仅限 ADMIN 的合并editions.sh
Incident captureom incident capture/replay — 脱敏、确定性的数据包,可在离线状态下重新分类(ADR 0011)incident.sh
Diagnosticsoracle_top_queries(免费的 V$SQLSTATS)以及只读 oracle_db_health 套件,可在最低权限账户下正常降级(ADR 0005)版本矩阵通道

Agent 能看到的内容取决于当前级别和有效上限。在 READ_ONLY 下,如果有效配置文件/OAuth 上限允许 READ_WRITE,tools/list 会包含 oracle_execute 和 execute_approved;它们的可见性不代表授予写入权限。其他更高级别的工具会保持隐藏,直到会话在上限范围内提升级别。调用尚不可见的工具时,会被拒绝,并返回与任何其他低于级别的语句相同的类型化 ErrorEnvelope。

工具

下表由 scripts/docs_generate.sh 根据服务端的工具注册表生成,即 tools/list 返回的同一组描述符(通过 oraclemcp robot-docs tools --markdown 渲染)。请勿手动编辑;应修改注册表并运行 bash scripts/docs_generate.sh --write。

Tool标题用途可见级别是否具有破坏性
oracle_list_profilesOracle 配置档案列表列出已配置的连接配置档案,不暴露连接字符串、用户名或凭据引用。READ_ONLY否
oracle_connection_infoOracle 连接信息描述当前配置档案、其有效 MCP 访问权限(运行级别、配置档案 max_level、受保护状态,以及当前是否允许写入)和 Oracle 连接状态。READ_ONLY否
oracle_switch_profileOracle 切换配置档案按名称将此 MCP 服务重新连接到另一个已配置的配置档案,并报告该配置档案的有效 MCP 访问权限。READ_ONLY否
oracle_set_session_levelOracle 设置会话级别预览或应用临时会话运行级别提升(不超过当前配置档案的上限),或降回 READ_ONLY。READ_ONLY是
oracle_queryOracle 查询使用位置绑定变量运行只读 SELECT;支持分页,并限制行数和字节数。READ_ONLY否
oracle_semantic_searchOracle 语义搜索通过与 oracle_query 相同的策略、语义解析、屏蔽和审计流程,执行受限且失败时默认拒绝的 23ai 向量搜索。READ_ONLY否
oracle_diffOracle 差异比较在两个 Oracle SCN 之间或两个数据库之间,对一条经验证的只读 SELECT 进行差异比较。READ_ONLY否
oracle_preview_sqlOracle SQL 预览对 SQL 进行分类但不执行,并将确切的 SQL、类型化绑定变量、提交/保留模式、输出上限和超时绑定到任何确认中。READ_ONLY否
oracle_executeOracle 执行通过分类器和当前配置档案的访问控制执行一条非只读 SQL 语句;DML 默认回滚。READ_ONLY是
oracle_checkpointOracle 检查点在此会话中建立一个命名检查点(原生 Oracle SAVEPOINT),开启可撤销工作区:使用 hold=true 和匹配的预览确认执行 oracle_execute 时,DML 会保持待处理状态,而非回滚;oracle_undo_to 可将其撤销。READ_WRITE是
oracle_undo_toOracle 撤销至检查点撤销可撤销工作区:ROLLBACK TO SAVEPOINT 会丢弃该检查点之后执行的所有保留语句,并释放其上方堆叠的检查点,同时保持事务开启。READ_WRITE是
oracle_preview_dmlOracle DML 预览对一条 DML 语句进行试运行:服务在自己的保存点中执行该语句,读取其影响的行,然后回滚到该保存点并呈现结果——不会提交,也不会留下任何更改。READ_WRITE是
oracle_compile_objectOracle 编译对象通过当前 DDL 配置档案的访问控制预览或编译一个 PL/SQL/视图对象;默认仅预览,执行需要使用返回的确认令牌。DDL是
oracle_create_or_replaceOracle 创建或替换通过分类器和当前 DDL 配置档案的访问控制,预览或应用一条 CREATE OR REPLACE 语句。DDL是
oracle_patch_sourceOracle 修补源代码针对一个已存储的源对象,将确切的 old_text 替换为 new_text;预览时会重新获取当前源代码,执行时使用现有的 DDL 确认控制。DDL是
oracle_list_schemasOracle 架构列表列出拥有此会话可见对象的架构,可按名称筛选。READ_ONLY否
oracle_schema_inspectOracle 架构检查列出当前架构、一个所有者或所有可访问架构中的对象,可按类型/名称筛选。READ_ONLY否
oracle_search_objectsOracle 对象搜索统一的只读对象搜索/检查,并指定 detail_level。READ_ONLY否
oracle_orientOracle 环境概览返回有限的环境概览证据:默认返回当前配置档案的一个可缓存快照;fleet=true 会分别映射所有 MCP 可见配置档案,并提供架构、版本、新鲜度、漂移以及类型化的 UNREACHABLE/FAIL_CLOSED 通道状态。READ_ONLY否
oracle_describeOracle 描述对象描述一个表/视图的列和约束元数据。READ_ONLY否
oracle_describe_indexOracle 描述索引描述一个索引的元数据、索引列和基于函数的表达式。READ_ONLY否
oracle_describe_triggerOracle 描述触发器描述一个触发器的时机、事件、目标表、状态和主体。READ_ONLY否
oracle_describe_viewOracle 描述视图描述一个视图的定义元数据和列。READ_ONLY否
oracle_get_ddlOracle 获取 DDL通过 DBMS_METADATA.GET_DDL 获取对象的 DDL(对象类型采用允许列表)。READ_ONLY否
oracle_get_sourceOracle 获取源代码从 ALL_SOURCE 获取对象的完整源代码文本或包含指定行的范围,或从 ALL_VIEWS.TEXT 获取视图定义,并限制字符数。READ_ONLY否
oracle_sample_rowsOracle 抽样行读取表或视图中任意的前几行,并设置硬性行数上限。READ_ONLY否
oracle_read_clobOracle 读取 CLOB按键读取一个 CLOB/NCLOB/文本值,并限制字符数。READ_ONLY否
oracle_compile_errorsOracle 编译错误检索当前架构、一个所有者或一个对象的编译错误(ALL_ERRORS)。READ_ONLY否
oracle_search_sourceOracle 搜索源代码在 ALL_SOURCE 中全文搜索指定内容(限制行数和行长度)。READ_ONLY否
oracle_plscope_inspectOracle PL/Scope 检查当 ALL_IDENTIFIERS/ALL_STATEMENTS 中存在数据时,检查一个 PL/SQL 对象的 PL/Scope 标识符和 SQL 语句元数据。READ_ONLY否
oracle_explain_planOracle 解释执行计划对经过审核的 SELECT 执行明确的诊断写入 EXPLAIN PLAN;会写入 PLAN_TABLE,需要 READ_WRITE 和 allow_plan_table_write,并且在只读备用数据库上禁用。READ_WRITE是
oracle_top_queriesOracle 高耗时查询对免费实时游标缓存(V$SQLSTATS)中的顶级 SQL,按经过时间/CPU/缓冲区获取次数/磁盘读取次数排名,只读;实时调用可按确切 sql_id 或受限的 sql_text 缩小范围。READ_ONLY否
oracle_plan_timelineOracle 执行计划时间线从 AWR 快照读取一个 SQL ID 的历史优化器执行计划和相对成本时间线,只读。READ_ONLY否
oracle_db_healthOracle 数据库健康状况只读 DBA 健康检查套件。READ_ONLY否
oracle_plsql_parseOracle PL/SQL 解析使用离线 plsql-intelligence 降级器解析 PL/SQL 源代码,并返回声明和诊断计数。READ_ONLY否
oracle_plsql_analyzeOracle PL/SQL 分析在本地项目根目录上运行离线 plsql-intelligence 引擎,并返回 doctor 摘要。READ_ONLY否
oracle_plsql_what_breaksOracle PL/SQL 变更影响预测预测 PL/SQL ChangeSet 的失效和重新编译影响,不访问 Oracle。READ_ONLY否
oracle_plsql_lineageOracle PL/SQL 血缘分析从本地 PL/SQL 项目中的逻辑对象 ID 开始,运行离线依赖血缘遍历。READ_ONLY否
oracle_lineageOracle 血缘分析实时验证 COLUMN 血缘:将源代码推导出的 owner.object.column 关系边与受保护的 Oracle 目录交叉核对,并标记已验证、缺失或类型不匹配的漂移。READ_ONLY否
oracle_plsql_sastOracle PL/SQL 静态应用程序安全测试在本地 PL/SQL 项目上运行离线 plsql-sast 规则测试框架,并返回发现项及跳过规则的证据。READ_ONLY否
oracle_plsql_docOracle PL/SQL 文档从源代码中提取文档注释,或渲染现有的 plsql-doc DocSet。READ_ONLY否
oracle_plsql_live_snapshotOracle PL/SQL 实时快照提取 Oracle 实时数据字典行集,并通过 plsql-intelligence CatalogSnapshotBuilder 对其进行规范化。READ_ONLY否
oracle_plsql_blast_radiusOracle PL/SQL 影响范围提取实时目录快照,然后为提议的 ChangeSet 运行 plsql-cicd 变更影响预测器。READ_ONLY否
每个公开的工具描述符都包含人工可读的标题和明确的 MCP 注解;这些提示仅供客户端参考,真正的执行边界仍由默认拒绝分类器和运行级别门控保障。oracle_query 和 oracle_explain_plan 还会公开 outputSchema,查询结果默认将 Oracle NUMBER 单元格保留为字符串(如需浮点数,请明确启用 numbers_as_float=true)。除 tools/* 外,initialize 还会公开 resources、prompts 和 completions(协议 2025-11-25):resources/list 会列出 oracle://capabilities 和 oracle://tools,而 oracle://schema/{owner} 和 oracle://object/{owner}/{type}/{name} 的读取模板会通过相同的安全分发路径路由。
兼容性别名

为便于从较短的 Oracle MCP 工具接口迁移,服务会公开兼容性别名,将请求路由到受保护的 oracle_* 工具,并共用其分类器、验证和运行级别行为。execute_approved、deploy_ddl 和 read_patch_preview 是封装器,而非简单重命名。

别名路由至
current_databaseoracle_connection_info
switch_databaseoracle_switch_profile
enable_writesoracle_set_session_level
disable_writesoracle_set_session_level
queryoracle_query
preview_sqloracle_preview_sql
execute_approvedoracle_execute
compile_objectoracle_compile_object
compile_with_warningsoracle_compile_object
create_or_replaceoracle_create_or_replace
patch_packageoracle_patch_source
patch_vieworacle_patch_source
read_patch_previeworacle_patch_source
deploy_ddloracle_create_or_replace
list_objectsoracle_schema_inspect
list_schemasoracle_list_schemas
get_schemaoracle_schema_inspect
describe_tableoracle_describe
describe_indexoracle_describe_index
describe_triggeroracle_describe_trigger
describe_vieworacle_describe_view
get_ddloracle_get_ddl
get_object_sourceoracle_get_source
get_errorsoracle_compile_errors
get_cloboracle_read_clob

配置

连接配置文件位于 profiles.toml。不会将任何密钥写入磁盘——凭据以引用形式保存,并在运行时通过 env:、file: 或 keyring: 解析。最简只读配置:

[profiles.db_ro]
connect_string = "//db.example.com:1521/FREEPDB1"
username       = "APP_RO"
credential_ref = "env:ORACLE_APP_PASSWORD"
# default_level defaults to read_only and is the ceiling for this profile;
# set max_level to permit explicit, TTL-bounded elevation up to ADMIN.

完整字段参考涵盖 HTTP TLS/mTLS/OAuth 监听器、签名审计链、结果脱敏策略、集群/监控配置文件、TCPS/钱包和 IAM/DRCP/代理身份验证,以及每次调用的超时/SDU 预算,详见 docs/configuration.md。

文档

从源代码构建

此分支固定使用 nightly-2026-05-11,且没有稳定的最低支持 Rust 版本(此固定版本通过 asupersync 间接引入,Windows 还需要 windows_by_handle;请参阅 docs/toolchain.md)。建议优先使用上方经过验证的发布归档;仅在你打算执行以下操作时,才从源代码构建:

rustup toolchain install nightly-2026-05-11 --component rustfmt --component clippy
cargo +nightly-2026-05-11 install oraclemcp

通过纯 Rust 轻量驱动程序内置实时数据库访问功能——无需 Oracle Instant Client、ODPI-C 或 C 工具链。对于网络服务名称连接,可选设置 TNS_ADMIN。默认构建会嵌入离线 PL/SQL 引擎;--no-default-features 会将其排除。

许可证

采用 Apache-2.0 OR MIT 许可。Docker 镜像和 crate 不会重新分发 Oracle Instant Client。

评论

支持 Markdown

第一次接触 MCP?

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

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