MaxKB 使用 MCP 连接 Oracle (免安装 cx_Oracle 和 Oracle Instant Client)

一、背景

安装cx_Oracle包和Oracle Instant Client来操作数据库,比较繁琐同时容易冲突,不同的 Oracle 版本都需要安装不同的插件。这篇文章将介绍使用 MCP 协议的连接方法。

二、操作步骤

1、使用 1Panel 安装 DBhub

a) 数据库类型选择 Oracle 类型。

b)修改 compose 文件

++注意: 把默认的 dbhub 镜像改成 dbhub-oracle-thick++

为什么要改?因为不修改安装会报错,如下:

查看 dbhub 的文档,找到对应的解决办法就是修改镜像。

c)安装完成之后查看日志,发现即使安装选择的 transport 是 sse,安装完之后仍然是 http 协议

尝试去修改 Command 发现改成 sse 不生效,猜测 dbhub-oracle-thick 不支持 sse 方式,为在 MaxKB 中配置 Streamable HTTP 调用方式埋下了伏笔。

2、MaxKB 对接 Oracle MCP

a、MCP 配置 transport 使用 streamable_http 模式。

|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| { ``"mcp-oracle"``: { ``"url"``: ``"http://10.1.12.115:8082/message"``, ``"transport"``: ``"streamable_http" ``} } |

b、提示词参考

|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| # 角色 你是一位专业的数据分析专家,精通oracle数据库SQL语言,能够熟练运用 mcp-oracle 工具执行execute_sql函数来进行SQL验证和查询,并且输出查询数据。 ## 技能 ### 技能``1``: 生成并验证SQL 1``. 基于用户提出的问题,结合已知信息,生成SQL语句。 2``. 使用 mcp-oracle 工具对每次生成的SQL进行验证和查询。若SQL出现错误,需尝试三次不同的SQL表述。 3``. 记录每次SQL验证和查询的结果。 请生成标准的Oracle SQL语句(严格遵循以下规则): 1```. **禁止使用任何分号;、中文或特殊符号**。`` 2. 表名/列名使用大写(例如:`EMPLOYEES`)。`` `3. 字符串值用单引号(例如:WHERE name=```'John'````)。`` 4. 保留字必须用双引号包裹(例如:`SELECT "LEVEL" ``FROM ...)。 `5. 输出内容必须是单行纯文本(无换行符)。 #### 数据库架构说明 所有表均属于 DCS 模式,必须显式声明模式名前缀! 禁止行为: - 使用未列出的表或视图` ` ```- 修改表名大小写(如`dcs.t_c_z_bu_daily_report`) ### 技能``2``: 根据SQL结果生成表格数据 1``、请使用表格格式对sql查询结果进行输出。 2``、结合表信息把英文字段替换成中文。 ## 限制 - 仅围绕与生成SQL、利用工具查询验证相关的内容进行回答,拒绝回答不涉及这些内容的话题。 - 生成的SQL需符合oracle语法规范。 - 分析和解释部分应尽量简洁明了,突出重点。 - 操作过程严格按照上述技能要求执行,不得随意更改工具使用方式。 |

三、效果展示

相关推荐
Decay__2 小时前
05_MySQL 常用 SQL 大全 —— 诊断、管理、优化辅助 SQL 与三大系统库速查
运维·数据库·sql·mysql·架构
小徐不徐说7 小时前
C++ 接口与插件设计:从工厂注册到 Qt 动态插件
数据库·c++·qt·系统架构·程序设计
论文复现现场7 小时前
WRF、FEA 能用 L40S 加速吗?求解器检查、断点恢复与长期运行
java·数据库·算法·wrf·有限元分析·gpu计算·断点续算
xrlfreedom8 小时前
MCP 面试高频考点:桌面客户端 stdio 连接失败,如何用 Resources、结构化输出与 OpenTelemetry 排查?
resources·opentelemetry·结构化输出·mcp
Decay__8 小时前
04_MySQL DBA 日常运维手册 —— 会话管理、锁与阻塞、事务监控、慢查询与日志巡检
运维·数据库·sql·mysql·架构
心梦缘-雪雁9 小时前
SQL Server 查询数据存在哪个表里
数据库
码哥字节10 小时前
AI 编码工具默认给 Agent 多大权限?三家差在这三处
mcp·claude code·ai编程工具
lusklusklusk10 小时前
Python 巡检脚本:进程运行状态、数据库写入时效检查及邮件通知与告警
数据库·python·oracle
GeW11 小时前
产业新优势基础软件的人才底盘,从Linux与数据库开始
linux·数据库