关于 oracle
面向数据库用户的 Oracle Database MCP 服务,支持只读 SQL 分析、结构检查、表统计和 Oracle AWR 报告。
主要功能
- 01执行只读 SQL 查询
- 02查看 SQL 执行计划
- 03获取当前结构的表统计
- 04生成 Oracle AWR 报告
- 05提供各表结构资源
适用场景
- 01检查当前数据库结构
- 02分析只读 SQL 查询
- 03查看 SQL 执行计划
- 04检查 Oracle AWR 报告
MCP 相关
向 MCP 客户端提供只读 Oracle 查询、执行计划、表统计、AWR 报告和结构资源。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
5收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| sql | string | 是 | 要执行的 SQL 查询 |
| model | string | 是 | MCP 客户端用于处理请求的语言模型名称和版本(例如 gpt-4.1、claude-sonnet-4、llama4……) |
| mcp_client | string | 是 | 指定所用 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_namehost: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 文件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。