一、背景
安裝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語法規范。 - 分析和解釋部分應盡量簡潔明了,突出重點。 - 操作過程嚴格按照上述技能要求執行,不得隨意更改工具使用方式。? |
三、效果展示
