DSH Plugins Marketplace

DSH Plugins

Plugins

/

Tools & Capabilities

/

dsh-dbhub-live

m

dsh-dbhub-live

Manifest valid★ 2

Database access for DeepSeek Harness through the DBHub MCP server: configure MySQL, MariaDB, PostgreSQL, SQLite and SQL Server connections per workspace and environment, then let the agent configure,

UI (client)hasBundlePatch

dsh-dbhub-live

简体中文 · English

License: MIT DSH DBHub npm version Listed on dsh-plugin.org

让 DeepSeek Harness 里的 AI 直接查你的数据库——密码只在界面里输入,不作为工具参数交给模型。

装上它,你就能直接对 AI 说「查一下 orders 表最近 10 条」。AI 通过 DBHub(数据库 MCP 服务器)执行 SQL,但它只知道「哪个工作区的哪个环境」,以及 mysql://host:3306/db 这类元数据;密码、账号、完整连接串始终留在你本机,只在你面前的输入框里敲。

📷 界面预览:设置 → DBHub 数据库工具

DBHub 数据库工具配置页

为什么用它

🔒 凭据不进工具参数模型只见类型 / 主机 / 端口 / 库名;密码与完整 DSN 不作为工具参数接收,只在界面输入
⚡ 一次性进程无常驻 dbhub 服务:每次调用一条独立进程、跑完即杀;一次查询失败只影响它自己,多实例并行不互杀
🧮 工具恒定 4 个环境再多也不膨胀模型上下文
🗂 按工作区 × 环境管理一个工作区可配 default / prod / dev…(环境名支持中文),用 source 区分,绝不串库
🛡 环境级只读写操作由 dbhub 原生拒绝;模型只能开、不能关(关闭只由你在配置页操作)
🔐 手动 SSH 隧道跳板机后面的库也能连;SSH 密码 / 密钥口令只在界面输入
📦 开箱即用没装 dbhub 就自动安装,之后按间隔自动更新

支持 MySQL · PostgreSQL · MariaDB · SQLite · SQL Server。

支持的版本范围

DSH 0.1.5 起(0.1.5 / 0.1.6 / 0.1.7 / 0.2.0 / 0.2.1 共 5 条版本线,含预发布) — 6 个声明版本已实测通过(最近验证 2026-10-24)。

逐版本实测明细(点开查看)
DSH 版本界面启动硬检查结论最近验证
0.1.5-rc.3旧版39.8s19⚠️ 通过(有告警) · 手工装配2026-10-24 · 91642fa2
0.1.6-alpha.2旧版13.1s19⚠️ 通过(有告警) · 手工装配2026-10-24 · 91642fa2
0.1.7-rc.2旧版14.8s20⚠️ 通过(有告警) · 手工装配2026-10-24 · 91642fa2
0.2.0-rc.2旧版14.8s20⚠️ 通过(有告警) · 手工装配2026-10-24 · 91642fa2
0.2.1-alpha.1新版15.2s20⚠️ 通过(有告警) · 手工装配2026-10-24 · 91642fa2
0.2.1-rc.2新版16.9s20⚠️ 通过(有告警) · 手工装配2026-10-24 · 91642fa2

完整证据、判定规则与已知偏差见 doc/SUPPORT-MATRIX.md。

安装

# web 端(dsh web)
dsh plugin --profile web add dsh-dbhub-live

# 桌面端
dsh plugin --profile desktop add dsh-dbhub-live

# 没装 dsh(用 npx):命令相同,前缀换成 npx @deepseek-ai/dsh
npx @deepseek-ai/dsh plugin --profile web add dsh-dbhub-live
npx @deepseek-ai/dsh plugin --profile desktop add dsh-dbhub-live

桌面端也可以全程用界面装:左侧菜单 → 插件 → 新增 → 输入 dsh-dbhub-live(或从插件市场搜索)→ 安装。同一个插件在 web profile 与 desktop profile 上都能用,界面与行为一致;桌面端的安装 / 更新 / 卸载都可以在这张「插件」页里完成。

装完 web 端重启 dsh web,打开 设置 → DBHub 数据库工具 即可看到配置页(也有左侧栏快捷入口和插件页那行的「配置」,三个入口是同一个页面)。

环境要求:dsh 0.1.5 起的全部版本线(含 0.2.x);新界面需要 0.2.1+(含 0.2.1 的预发布版)——宽屏整页、页头版本与升级提示、行内只读开关都只在 0.2.1 及以上出现;0.1.x 仍受支持,但保持旧版布局与行为。建议本机有 Node.js ≥ 18(用于自动安装 dbhub)。只读模式与 SSH 隧道需要 dbhub 1.4.0+,插件会自动检测并给出升级指引。每个版本的实测记录见 doc/SUPPORT-MATRIX.md(由发布测试自动生成,发版前必跑)。

更新

Web 端(命令行):

dsh plugin --profile web up dsh-dbhub-live@<最新版本号>

然后重启 dsh web。

桌面端:在 左侧菜单 → 插件 页里卸载该插件,再重新安装最新版本(桌面端更新走可视化插件页)。连接与凭据不会被重装清掉——它们都在 ~/.dsh/storages/dsh-dbhub-live,与模块目录无关。

不用自己记版本号:配置页页头显示插件名与当前版本,检测到更新时会出现一行低调的「↑ 可升级到 」文字链接,点开后在面板里点一下即可复制 dsh-dbhub-live@<latest>;旁边的「检查更新」按钮可以随时手动检查。打开页面时也会自动检查一次(有节流,不会每次打开都打网络)。检查以 npm registry 为主、GitHub Releases 为兜底,发布说明见 GitHub Releases。

版本与升级提示属于新界面,需要插件 5.2.0+ 且 DSH 0.2.1+;0.1.x 上不显示(见「配置页」)。

快速开始

不用记任何命令,直接跟 AI 说:

你:mysql 192.0.2.10:3306 的 app 库,账号 ops
AI:(弹出输入框,你在里面填密码)→ 已保存,source = myapp_1a2b3c_default
你:查询 orders 表最近 3 条数据
AI:…(返回查询结果)
📷 实际效果:向 AI 提问,直接拿到查询结果

向 AI 提问并拿到查询结果

密码全程只在你面前的输入框里敲。若你只说了一部分信息(比如「连一下 192.0.2.10 上的 mydb」),插件会先用这些非敏感信息试连:能连上就直接保存(不需要密码的库全程零输入),只差密码就只问你「账号(未知时)+ 密码」,信息不全才让你选完整方式(输入 DSN / 填写分项 / 授权扫描项目配置文件)。

别把密码直接粘进对话。 插件自己不把密码交给模型,但你亲手粘进对话的内容一定会进入上下文——这一条插件拦不住,也收不回来。

工作区里已有 mise env 或 .env(DSN / DB_*)时,插件会自动发现,无需手动配置。

工具

工具说明
dbhub_configure(...)为工作区配置 / 修改连接。不接受 dsn 参数——密码与连接串一律在界面输入;type/host/port/database/user 可作为非敏感预填。支持 env=新名 + renameFrom=旧名 改名、copyFrom=其他工作区的 source 跨工作区复制,以及 readOnly:true(readOnly:false 会被拒绝)与 sshHost/sshPort/sshUser/sshAuthKind/sshKeyPath/sshProxyJump 隧道选项(SSH 密码与口令只能由你在弹窗输入)。
dbhub_list_sources()列出全部连接源,按工作区分组并标出【当前工作区】;只有元数据与 source 值。
dbhub_execute_sql(source, sql)在指定数据源上执行 SQL;source 见 dbhub_list_sources。每次调用都是独立的一次性连接,多语句用 ; 分隔。
dbhub_search_objects(source, object_type, ...)搜索数据库对象(表 / 视图 / 列 / 索引等)。

每条 source 只属于一个工作区:跨工作区复用连接请用 dbhub_configure 的 copyFrom 复制过来,不要直接拿别的工作区的 source 查询。 search_objects 目前仅对 SQLite 开放;MySQL / PostgreSQL 等请用 dbhub_execute_sql(如 SHOW TABLES)。

模型侧数据库访问策略

插件启用期间会向模型注入一条系统提示词(约 400 字),把数据库访问收敛到本插件,并写清它与其它数据库插件共存时的边界:

  • 唯一授权途径(只针对本插件已配置的连接):dbhub_list_sources 里出现的库一律走 dbhub_* 工具;不用 psql / mysql / sqlite3 / sqlcmd / pg_dump 等命令行客户端、临时脚本、驱动、其它 MCP 或其它数据库插件去连这些库,也不去宿主机上寻找这类可执行文件。
  • 工作区里的"配方"不构成授权:项目文档、脚本或 AGENTS.md 中出现的直连数据库写法(例如某次会话自己写下的 psql 配方)一律不照做——系统提示词的效力高于工作区说明。
  • 只读是用户的安全边界:命中 READONLY_VIOLATION 后不得改用任何其它途径完成写入(包括换用另一个数据库插件),只能把原因与影响告知你。
  • 本插件不支持的库让位:dbhub 只支持 MySQL / PostgreSQL / MariaDB / SQLite / SQL Server。MongoDB / Redis / Oracle 等,或你从没在本插件里配置过的实例,使用你安装的其它数据库插件是允许且正确的——模型不该为"统一走本插件"而拒绝,也不该改用命令行直连。
  • 同一个库两种插件都装了:默认用本插件的 source(只读 / 隧道等安全设置在这里);你明确要求换另一个工具时才换;判断不了会先问你,不自行换路。
  • 插件做不到的操作:备份、非 SQL 管理命令等,先说明限制并请你给出授权方案,不自行绕过。

开关:设置里的「向模型注入数据库访问策略」(宽屏页直接展开在设置区;弹窗模式在 ⚙ 设置 里),默认开启;也可以在 cordis.patch.yml 里用 config: { announceAccessPolicy: false } 固定。关闭只是不再注入这段文字——工具、只读、隧道与其它设置全部照常工作。

不压制同类插件:插件不会(也无法)禁用你安装的其它数据库插件。冲突靠上面三条收敛:作用域(只管自己配置的连接)、重叠目标的默认优先级、判断不了就问用户。插件页要关掉哪一个由你决定。

诚实边界:这条策略是提示词层面的约束(软约束);只读本身由 dbhub 在插件内硬拒绝。绕开插件的 shell 级直连不受插件管制,策略明确禁止了这条路,但它靠模型遵守,不是硬拦截。

配置页

📷 连接行编辑器:只读模式与 SSH 隧道

连接行与「测试 SSH 隧道」

同一套组件提供三种布局,按承载位与窗口宽度自动切换(新界面需要插件 5.2.0+ 且 DSH 0.2.1+;DSH 0.1.x 上保持旧版布局与行为,见本节末尾):

布局进入方式形态
弹窗模式设置 → DBHub 数据库工具窄列弹窗,密度与旧版一致,设置收在状态行的「设置」折叠里
宽屏模式左侧菜单的 DBHub 入口 / 插件页该行的「配置」整页宽列,页头带版本与升级入口,设置行直接展开
小屏模式手机浏览器,宽度 < ~700px纵向堆叠的紧凑布局,控件按触摸尺寸

页头:版本与升级入口:标题是插件名,紧跟当前版本(灰色小字);有更新时右侧出现一行低调的「↑ 可升级到 」文字链接,点开才展开更新说明——里面是 dsh-dbhub-live@<latest>(点击复制)、按部署方式给的更新命令 / 步骤,以及更新说明链接;「↻」按钮随时手动检查一次。打开页面时也会自动检查(有节流)。检查以 npm registry 为主、GitHub Releases 为兜底。更新是中性提示,不会用报错红。

  • 状态行:只显示「运行中 / 已禁用 · N 个连接」。工具数量、一次性执行模式、dbhub 版本这类实现细节收进状态行下方的「ⓘ 说明」折叠区,默认不展开。
  • 连接列表:按工作区组织。所有工作区都只有一个环境时用平铺卡片;任一工作区有多个环境时按工作区分组折叠(点组头展开,默认展开最近使用的那个)。每个连接只占一行:环境名 · 类型 / 主机 / 端口 / 库名 · 只读开关 · source 句柄(点它即复制) · 测试 / 修改 / 删除。窄窗口下先截断主机端口,库名始终可见。
  • 设置区(DSH 主体样式,刻意弱化):宽屏把四项收成一行紧凑设置条——插件设置 · 启用插件[启用] · 侧边栏入口[显示] · 访问策略[开启] · 自动更新[7]天[保存] · ⓘ说明;弹窗与手机是紧凑设置行。字号与开关都收小,让连接列表成为页面主体。控件用 DSH 自己的开关(跟随主题 / 皮肤,带汉字状态词);解释性长文字都在「ⓘ 说明」里。
  • 只读开关(三种布局都在外面):每条连接行的数据源旁边就是该环境的「只读」小开关,点一下即改(开锁图标 + 「可写」= 可写;闭锁图标 + 「只读」= 已只读),不必打开编辑表单;弹窗 / 手机同样可用。编辑表单里的勾选也保留,两处是同一个状态。连接串本身不再带锁形图标——过去容易被误读成"需要密码",也和只读锁冲突。
  • 增删改:行内 ✏ 改连接串或环境名;「+ 添加连接」支持中文环境名。同名环境保存前会先问「是否覆盖」,取消则一个字都不写。
  • 连接测试:按该环境真正会被使用的有效连接(含只读 / 隧道)执行 SELECT 1,测试中显示已耗时。结果是一次性反馈,不持久化、不改变连接状态。

「在侧边栏显示入口」不是禁用插件:关掉它只是隐藏左侧栏的快捷入口,插件照常工作、模型照常可以查询;想整体停用才用「禁用」(禁用后入口一律隐藏)。无论哪种状态,设置页与插件页那行的「配置」始终能进,随时可以撤销。

DSH 0.1.x 的兼容路径:页头版本 / 升级提示、宽屏整页、行内只读开关与开关样式的设置区都只在 DSH 0.2.1+(含预发布版)渲染;0.1.x 上插件保持原有布局与行为,不显示升级提示——这是刻意保留的,不是缺陷。

🔒 只读模式与 SSH 隧道

两项都是按环境设置的连接选项,由 dbhub 原生能力执行。开启后,该环境的每次执行改用一份临时生成的 dbhub 配置(文件里只有 ${…} 占位符、不含任何密码,真值只经子进程环境传入),用完即删;其余环境不受影响。

只读模式:三种布局里,连接行数据源旁都有一个「只读」开关,点一下即改(也可以打开 ✏ 在编辑表单里勾选;模型也能为某环境开启)。开启后 dbhub 只放行只读语句(MySQL 实测为 select/with/explain/show/describe/desc),写操作直接返回 READONLY_VIOLATION;对象搜索照常可用。关闭只读只能由你在配置页操作——模型尝试关闭会被拒绝。只读环境的环境名后会多一个「只读」小标。

SSH 隧道(手动配置,适用于库在跳板机后面的场景):

字段说明
SSH 主机域名或 IP(如 203.0.113.10);不要填 ~/.ssh/config 里的别名
端口默认 22
SSH 用户登录跳板机使用的账号
认证方式密钥(填密钥路径;私钥有口令可再填口令;留空 = 用默认 ~/.ssh/id_ed25519)或密码
ProxyJump可选,只支持一跳,格式 [user@]host[:port]
密钥口令 / SSH 密码只能在界面输入、不回显;编辑时留空 = 保持原值

「高级:SSH 隧道」里有两个测试按钮:

  • 「测试 SSH 隧道」只验证隧道这一层:先做 ssh_host:ssh_port 的 TCP 可达性探测(约 5 秒,失败会带 ENOTFOUND / ECONNREFUSED / ETIMEDOUT 等错误码),密钥认证时检查私钥文件存在可读,最后故意让 dbhub 对一个不可能在监听的地址建隧道,再按证据判定:报错带 SSH 自身特征(握手 / 认证 / 私钥)就是隧道断;带 数据库层特征(PROTOCOL_CONNECTION_LOST、Connection lost、Access denied、Unknown database、ER_*、ECONNREFUSED 等)就说明连接已经穿过隧道,结论是「SSH 隧道可用」;都没有才如实说「无法判定」并附输出末尾。
  • 「测试该配置」按「隧道 + 只读」的有效连接实测。

一句话记住:报数据库层的错误 = 隧道已经通了,问题在隧道后面的数据库(认证 / 库名 / 目标地址),不必再怀疑 SSH。

诚实边界:SSH 层测试证明的是"网络通 + 密钥在 + SSH 层起得来",不是一次带真实数据库的完整会话验证——隧道建起来不等于后面的库一定连得上,那一步由「测试该配置」回答。

排查顺序:① 本机能 ssh 用户@跳板机 登录;② 连接串里的地址必须是"从跳板机看过去"的地址(库就在跳板机本机时写 127.0.0.1)——这是最常见的原因;③ 密钥路径存在且可读(加密私钥记得填口令);④ ProxyJump 只有一跳。

前提与限制:需要 dbhub 1.4.0+(版本过旧会明确报错,不会静默忽略);不支持多跳、ProxyCommand、ssh-agent,也不复用任何其他插件(包括 DSH 自带的 SSH 工具)的 SSH 配置——隧道信息只来自你手动填写的内容。只读与 SSH 是两个独立开关,可以只开其中一个。

数据位置

所有配置与凭据都在模块目录之外,删掉该目录即完整清空:

~/.dsh/storages/dsh-dbhub-live/

按 DSH_HOME 实例隔离,同一实例的多个 profile 共享(与 dsh 自身 workspace.json 同一约定)。连接按「工作区 × 环境」存储;旧格式与手改遗留会在启动时自动清洗并一次性迁移,运行目录被误删或写入被拦截时不会崩溃。没有常驻进程、没有共享配置文件,同机多实例并发运行互不干扰。升级、重装或卸载插件都不会动这里——包括桌面端「卸载后重装最新版」的升级方式:连接、只读 / 隧道设置与凭据都原样保留。

卸载

# web 端
dsh plugin --profile web remove dsh-dbhub-live

# 桌面端
dsh plugin --profile desktop remove dsh-dbhub-live

桌面端也可以在 左侧菜单 → 插件 页里直接卸载。卸载不会删除连接与凭据(见「数据位置」);需要彻底清空时手动删除 ~/.dsh/storages/dsh-dbhub-live。

故障排查

现象处理
首次使用报「无法获取 dbhub」确认本机有 npm 且能联网;离线可手动安装 dbhub 并加入 PATH。
某个环境连接被拒 / 认证失败该环境是独立一次性连接,只影响这一次调用。错误末尾会附指引:让 AI 调用 dbhub_configure 引导你在界面更新密码,或直接到配置页修改。
工具显示「插件已禁用」到 设置 → DBHub 数据库工具 点「启用」。
禁用后左侧栏入口不见了预期行为(禁用中的插件不贡献入口)。点「启用」后入口立即回来。
开启只读后写操作报 READONLY_VIOLATION不是故障,是只读在生效。需要写入时在配置页取消该环境的「只读模式」(模型关不掉)。
只读 / SSH 控件是灰的,或提示 dbhub 版本过旧两项都需要 dbhub 1.4.0+:升级 dbhub,或删除 ~/.dsh/storages/dsh-dbhub-live 让插件自动装一个满足要求的版本。
连接测试失败,看不出原因读提示的末尾(诊断给的是 dbhub 输出的尾部,会标出【SSH 层】/【数据库层】/【插件层】)。报【数据库层】就说明隧道已经通了;有隧道时先点「测试 SSH 隧道」把 SSH 层单独验一遍。
看不到配置页确认插件已安装:web 端重启过 dsh web;桌面端在「插件」页该行点「配置」,或从左侧菜单的 DBHub 入口进。配置页只在 Web / 桌面界面显示,终端环境下不影响工具使用。
升级到新版本后仍是旧界面新界面需要 DSH 0.2.1+(含其预发布版)且插件 5.2.0+;升级 dsh 后重启。DSH 0.1.x 上插件有意保持旧布局与行为,也不显示升级提示。
页头没有出现「升级到 …」提示可能已是最新版本,或这次检查没连上 npm registry / GitHub Releases;点「检查更新」重试即可。检查失败只是提示,不影响插件功能。
桌面端怎么升级在 左侧菜单 → 插件 页卸载后重装最新版本;连接与凭据在 ~/.dsh/storages/dsh-dbhub-live,重装后仍在。
升级 dsh 后提示插件与本版不兼容升级插件到 5.0.0+(同时支持 0.1.x 与 0.2.x);用 allow-version 强行豁免没有意义。
不希望自动更新 dbhub配置页「自动更新间隔(天)」填 0 保存,或设环境变量 DSH_DBHUB_UPDATE_DAYS=0。

环境变量(仅这两项,不在 UI 暴露):DSH_DBHUB_PACKAGE(自动安装的包名,默认 @bytebase/dbhub)、DSH_DBHUB_UPDATE_DAYS(自动更新间隔种子,默认 7,被配置页保存的值覆盖)。

许可证

MIT

Comments

Loading…

Similar plugins

dsh-sql

by STARDUSTLC666

DeepSeek Harness 工程师级数据库插件:sql_list/query/exec/schema/stats/health 六工具,SQLite/MySQL/PostgreSQL 三引擎、词法级只读保护、写审批门、行数钳制、CSV/JSON 查询输出。· Databases for DeepSeek Harness agents. 已验证兼容 DeepSeek Harness v0.1.

Tools & CapabilitiesManifest valid

★ 7

↓ 602/wk

MIT

JavaScript

Oct 20, 2026

dsh plugin --profile web add dsh-sql

by 1321928757

MySQL connector plugin for DeepSeek Harness: configure connections in settings, switch per session from the composer, and expose mysql_query/mysql_tables/mysql_execute tools to every agent preset.

Tools & CapabilitiesManifest valid

★ 7

↓ 10/wk

MIT

JavaScript

Oct 12, 2026

dsh plugin --profile web add dsh-mysql

Database connections and SQL for DeepSeek Harness: register data sources, browse and comment schemas, run AST-checked SQL with a per-source read-only toggle, and render bar, line and pie charts, from

Tools & CapabilitiesManifest valid

★ 0

dsh plugin --profile web add @tomowang/dsh-data-agent

by shiliu153

DeepSeek Harness bundle: manage MCP servers — list, probe, add from pasted project references, toggle, remove, rotate credentials. Official dsh-mcp-client contract compliant.

Tools & CapabilitiesManifest valid

★ 0

NOASSERTION

JavaScript

Oct 14, 2026

dsh plugin --profile web add @dsh-contrib/dsh-mcp-manager

by lb290

Named database connections for DeepSeek Harness - configure MySQL in a settings page, then refer to them by name in chat. Read-only by default, writes opt-in per connection.

Manifest valid

★ 0

MIT

JavaScript

Oct 17, 2026

dsh plugin --profile web add dsh-db-connections

by JohnXu22786

Safe, audited SQLite/PostgreSQL/MySQL access for dsh agents: schema introspection, enforced read-only queries, a write approval gate, and a durable JSONL SQL audit trail.

Tools & CapabilitiesManifest valid

★ 2

↓ 369/wk

MIT

TypeScript

Oct 24, 2026

dsh plugin --profile web add dsh-db-connector