mcpField
O
oracle

oracle

本地服务
github.com/marcelo-ochoa数据库210 周前更新

关于 oracle

面向数据库用户的 Oracle Database MCP 服务,支持只读 SQL 分析、结构检查、表统计和 Oracle AWR 报告。

主要功能

  1. 01执行只读 SQL 查询
  2. 02查看 SQL 执行计划
  3. 03获取当前结构的表统计
  4. 04生成 Oracle AWR 报告
  5. 05提供各表结构资源

适用场景

  1. 01检查当前数据库结构
  2. 02分析只读 SQL 查询
  3. 03查看 SQL 执行计划
  4. 04检查 Oracle AWR 报告

MCP 相关

向 MCP 客户端提供只读 Oracle 查询、执行计划、表统计、AWR 报告和结构资源。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"marcelo-ochoa-oracle": {
"command": "npx",
"args": [
"-y",
"@marcelo-ochoa/server-oracle"
],
"env": {
"ORACLE_USER": "<ORACLE_USER>",
"ORACLE_PASSWORD": "<ORACLE_PASSWORD>"
}
}
}
}
启动命令npx -y @marcelo-ochoa/server-oracle
需要配置的环境变量
ORACLE_USEROracle user name
ORACLE_PASSWORD密钥Oracle password

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

安装包
npm@marcelo-ochoa/server-oracle1.0.7

工具

5

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

参数类型必填说明
sqlstring是要执行的 SQL 查询
modelstring是MCP 客户端用于处理请求的语言模型名称和版本(例如 gpt-4.1、claude-sonnet-4、llama4……)
mcp_clientstring是指定所用 MCP 客户端实现的名称和版本(例如 Copilot、Claude、Cline……)

详细介绍

Oracle Database

一个提供 Oracle Database 只读访问权限的模型上下文协议服务。此服务使大模型能够检查数据库架构、执行只读查询并查看查询说明。

组件

工具
  • orcl-query

    • 对已连接的 Oracle Database 执行只读 SQL 查询
    • 输入:sql(字符串):要执行的 SQL 查询
    • 所有查询均在 READ ONLY 事务中执行
  • orcl-explain

    • 查看针对已连接的 Oracle Database 的 SQL 查询执行计划
    • 输入:sql(字符串):要执行的 SQL 查询
    • 需要执行 GRANT SELECT_CATALOG_ROLE TO your_user;
  • orcl-stats

    • 获取当前连接架构中指定表的统计信息
    • 输入:name(字符串):表名
    • 表所有者等于 USER SQL 函数返回的值
  • orcl-connect

    • 使用新凭据重新连接
    • 输入:connectionString(字符串):SQLNet 连接字符串,例如 host.docker.internal:1521/freepdb1
    • 输入:user(字符串):用户名,例如 scott
    • 输入:password(字符串):密码,例如 tiger

示例: orcl-connect host.docker.internal:1521/freepdb1 hr hr_2025

  • orcl-awr
    • 自动工作负载仓库(AWR),可选指定 sql_id;需要 SELECT_CATALOG_ROLE,并授予对 DBMS_WORKLOAD_REPOSITORY 程序包的执行权限
    • 输入:sql_id(字符串):(可选)要获取特定查询 AWR 报告的 SQL ID;如果为 null,则获取最近生成的完整 AWR 报告
资源

此服务为 Oracle Database 中当前已连接用户的每个表提供架构信息:

  • 表架构(oracle://USER/<table>/schema)
    • 每个表的 JSON 架构信息
    • 包含列名和数据类型
    • 自动从 Oracle Database 元数据中发现

更新日志

请参阅更新日志,了解变更历史。

演示

请参阅演示,查看与 Claude Desktop、Docker AI、Gemini CLI 和 Antigravity Code Editor 搭配使用的示例。

Oracle AWR 实际演示

请参阅 Oracle AWR 实际演示,查看使用 orcl-awr 工具生成的 AWR 报告示例,以及随后对排名靠前的 SQL 语句进行的分析。

Oracle 服务使用环境变量或 orcl-connect 工具安全管理凭据:

  • ORACLE_USER:Oracle 用户名(使用 orcl-connect 时可选)
  • ORACLE_PASSWORD:Oracle 密码(使用 orcl-connect 时可选)
连接字符串

连接字符串应仅包含主机、端口和服务/SID 信息(不包含嵌入的凭据)。通过命令行参数提供连接字符串是可选的。如果启动时未提供,则必须使用 orcl-connect 工具建立连接,然后才能使用其他功能。

支持的连接字符串格式:

  • host:port/service_name
  • host:port:SID

构建

Docker:

docker build -t mochoa/mcp-oracle -f src/oracle/Dockerfile .

在 Claude Desktop 中使用

要在 Claude Desktop 桌面应用中使用此服务,请将以下配置添加到 claude_desktop_config.json 的 "mcpServers" 部分:

Docker
  • 在 macOS 上运行 Docker 时,如果 Oracle Database 在主机网络上运行(例如 localhost),请使用 host.docker.internal
  • 凭据通过环境变量 ORACLE_USER 和 ORACLE_PASSWORD 传递
{
  "mcpServers": {
    "oracle": {
      "command": "docker",
      "args": [
        "run", 
        "-i", 
        "--rm",
        "-e", "ORACLE_USER=myuser",
        "-e", "ORACLE_PASSWORD=mypassword",
        "mochoa/mcp-oracle",
        "host.docker.internal:1521/freepdb1"
      ]
    }
  }
}

注意:如果希望在启动时自动连接,仍可将连接字符串作为最后一个参数提供:"args": [..., "mochoa/mcp-oracle", "host.docker.internal:1521/freepdb1"]。

来源

与往常一样,此扩展的代码位于 GitHub,欢迎提出更改建议并参与贡献。请注意,我是 React 和 TypeScript 初学者开发者,欢迎贡献代码来改进此 UI。

与 SQLcl MCP 服务的比较

使用 SQLcl Docker 扩展,可以使用以下方式注册连接:

docker exec --user sqlcl -ti mochoa_sqlcl-docker-extension-desktop-extension-service /opt/sqlcl/bin/sql -save hr_mcp -savepwd hr/[email protected]:1521/freepdb1   

之后使用此注册:

{
  "mcpServers": {
    "sqlcl-mcp-server": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "exec",
        "--user",
        "sqlcl",
        "-i",
        "mochoa_sqlcl-docker-extension-desktop-extension-service",
        "/opt/sqlcl/bin/sql",
        "-mcp"
      ]
    }
  }
}

只需替换上述演示提示词:将 "orcl-query" 工具替换为 "run-sql"。

📜 许可证

本项目的新贡献采用 Apache License 2.0 许可,现有代码采用 MIT 许可。详情请参阅 LICENSE 文件。

评论

支持 Markdown

第一次接触 MCP?

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

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