前言¶
在 DeepSeek Harness(DSH)里让模型查业务库,常见做法是再挂一层 MCP 或自己写桥接脚本:多一跳进程、多一套部署,连接信息和结果集还要自己管好别灌爆上下文。若你手里本来就是 SQL Server、PostgreSQL、MySQL 混合环境,更希望「配好连接 → 模型直接调工具读结构、跑只读 SQL」,同时能在界面里手动试语句,dsh-tool-database(维护者 SouleyMoni1,GitHub:SouleyMoni1/dsh-tool-database)走的就是这条路径:一套 db_* 工具、原生驱动、内置左侧栏「数据库」面板,分类上属于客户端插件。
下面按定位、能力、安装、用法与注意事项说明怎么用。
这是什么¶
dsh-tool-database 是 DSH 的数据库插件:用 mssql(tedious)、pg、mysql2 连库,不经过 MCP、不为每次查询起子进程;模型通过宿主注册的工具读(可选写)你在宿主侧配置的源。同一插件里可按源分别选引擎,例如 SQL Server 生产、PostgreSQL 报表、MySQL 业务库并存。
npm 包名 dsh-tool-database,源码与说明见 GitHub 仓库;社区目录页:SkillHub 插件页(社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系)。
支持的引擎¶
每个连接独立指定 engine,默认引擎为 SQL Server(兼容自旧版 dsh-tool-mssql 的清单)。
| 引擎 | engine |
驱动 | 默认端口 | DSN 前缀 |
|---|---|---|---|---|
| SQL Server | sqlserver |
mssql(tedious) |
1433 | sqlserver:// / mssql:// / tds:// |
| PostgreSQL | postgres |
pg |
5432 | postgres:// / postgresql:// / pg:// |
| MySQL / MariaDB | mysql |
mysql2 |
3306 | mysql:// |
核心功能:模型侧 db_* 工具¶
安装并重启 DSH 后,宿主侧会出现 6 个工具(与 README 工具表一致):
| 工具 | 功能 |
|---|---|
db_sources |
列出已配置源(id、引擎、主机、端口、库、账号、是否可写);可 probe: true 实测连通性 |
db_databases |
列出实例上的数据库 |
db_tables |
列出表与视图(schema、类型、行数估算),支持 schema / filter |
db_schema |
单表列结构:类型、可空、自增、主键、默认值等 |
db_query |
只读查询;支持多条语句逐条执行;page + limit 翻页 |
db_execute |
写通道:源须 writable: true 且调用显式 allowWrite: true;DDL 另需 allowDdl |
省 token 的推荐顺序:db_sources → db_tables(带 filter)→ db_schema → db_query,先看清结构再取数,避免 SELECT * 把整表打进上下文。
参数占位按引擎区分:SQL Server 用 @p0, @p1 …;PostgreSQL 用 $1, $2 …;MySQL 用 ?,值统一放在 params 数组。
左侧栏「数据库」面板¶
从 0.2.1 起,面板在左侧栏全局区(挨着「插件 / 自动化任务」)。主要能力包括:
- 连接列表:搜索、引擎徽标、可写标记;选中后在右侧打开查询或编辑表单。
- 查询区:多页签 SQL 编辑器(语法高亮、关键字与字段补全)、
Ctrl / Cmd + Enter执行;结果表格显示列名、行数、耗时,超限标「已截断」,可复制整表(TSV,便于粘到 Excel)。 - 连接表单:引擎、类型、主机、端口、库、账号、密码、TLS、可写、允许 DDL;「测试连接」;密码可显示/隐藏;「高级」里可贴连接字符串(填了则忽略上方主机表单)。
0.3.0 起每条连接有类型三档:开发 / 测试 / 正式(stage: dev | test | prod),列表可按类型分组,选择记在浏览器本地。老清单无 stage 时按别名、描述、库名推断,保存连接时写回清单。
0.3.4 起查询页签与 SQL 自动保存在本机 $DSH_HOME/database-tool/queries.json(与 sources.json 同目录);支持历史页签、重命名、编辑器与结果区高度拖拽记忆等。控制台支持多语句、结果分页、执行选中片段、列宽调整等(详见仓库 README)。
设置页保留「数据库连接」一节,用于控制台写策略与默认行数;sources.json 改动由宿主按 mtime 热加载,一般不用重启(增删插件本身仍需重启后才出现工具与侧栏)。
安装与启用¶
包已发布到 npm。Web profile 建议带显式版本号安装,避免解析到 npm 上损坏的占位版本 0.0.0-stage:
dsh plugin --profile web add dsh-tool-database@0.3.5
README 中安装示例为 0.3.5;package.json 在资料中记录的最新版本为 0.3.6,可按需在 add 时改用对应版本号。
装完后重启 DSH,6 个工具、侧栏面板、设置项才会出现。
桌面端(desktop profile)¶
dsh plugin --profile desktop ... 会被 CLI 拒绝(由 Electron 应用独占管理)。可选做法:在 ~/.dsh/profiles/desktop/package.json 的 dependencies 增加 "dsh-tool-database": "^0.3.5",并在 dsh.profile.bundles 加入 "dsh-tool-database",再用与该 profile 同大版本的 pnpm 安装后重启。资料给出的稳妥命令示例:
cd ~/.dsh/profiles/desktop && npx --yes pnpm@11.28.5 add dsh-tool-database@0.3.5
从 dsh-tool-mssql 升级¶
勿与旧插件同时安装(会同时出现 mssql_* 与 db_* 两套工具):
dsh plugin --profile web remove dsh-tool-mssql
dsh plugin --profile web add dsh-tool-database
首次启动会把 $DSH_HOME/mssql-tool/sources.json 复制到 $DSH_HOME/database-tool/sources.json(只复制不删除);老字段 server 仍认,缺省引擎按 sqlserver 处理。
配置连接¶
源清单两种写法,config.sources 非空时优先于独立 JSON。
方式一:在 profile 的 cordis.patch.yml 里插入插件项,例如:
- insert:
- id: tool-database
name: 'dsh-tool-database'
config:
defaultSource: erp_prod
sources:
- id: erp_prod
engine: sqlserver
stage: prod
description: 【正式·只读】db.example.com/demo_erp
host: db.example.com
port: 1433
database: demo_erp
user: reader
passwordEnv: MSSQL_PROD_PW
writable: false
- id: pg_report
engine: postgres
stage: test
description: 【报表】pg.internal/report
host: pg.internal
database: report
user: readonly
passwordEnv: PG_REPORT_PW
ssl: true
方式二(推荐):编辑 $DSH_HOME/database-tool/sources.json,改完即时生效。完整字段说明见仓库 README(资料中该段有截断,以 GitHub 为准)。
密码宜通过 passwordEnv 等宿主侧环境变量引用,避免明文写进可提交的清单。
典型用法¶
- 在 DSH 对话中让模型先调用
db_sources,确认可用的id与是否可写。 - 对目标源调用
db_tables,必要时加filter缩小表名范围。 - 对单表调用
db_schema,再写带条件的db_query;大结果集用page/limit。 - 需要变更数据时:仅在源配置
writable: true的前提下,由模型调用db_execute并显式allowWrite: true;DDL 还需allowDdl。 - 调试 SQL 时打开左侧栏「数据库」面板,在对应连接下新建页签,用控制台执行并翻页看结果。
适用场景与注意¶
适合:已在 DSH 里做数据分析、排障、报表核对,需要模型与人在同一套连接上读库;多引擎、多源只装一个客户端插件即可。
务必注意:
- 插件以当前 DSH 进程权限连库、读配置;安装前请查看 源码 与许可证(资料中为 MIT)。
- 默认只读;写与 DDL 需配置 + 工具参数双重开关。
- Node 引擎要求(
package.json):^22.19.0 || >=24.0.0。 - 0.1.1 起入口为
lib/boot.js,带 shim 以规避旧版 profile 解析器对部分 CJS 依赖require('process/')的 import 失败问题;正常使用 npm 安装即可。
本地 link: 调试时,联接须相对 profile 目录解析;装前需 npm run build 生成 lib/(详见 README「本地目录安装」)。
结尾¶
dsh-tool-database 把 SQL Server、PostgreSQL、MySQL 收成一套 db_* 工具和左侧栏控制台:模型侧按结构再查数,人侧也能同一连接跑 SQL。进一步了解能力细节与截图说明,见 GitHub README 与 SkillHub 目录页。