dsh-mcp-connector 0.2.61 → 0.2.63

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,29 @@
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [0.2.63] - 2026-09-30
8
+
9
+ ### Fixed
10
+
11
+ - 检查可选 Settings 服务的实际 API 能力,避免宿主缺少 `register()` 时阻断启动;客户端遇到缺失或不完整的 settings scope 时保留连接器入口并跳过设置卡片。不吞掉已提供 API 的内部异常,也不宣称降级宿主支持设置持久化。
12
+
13
+ ## [0.2.62] - 2026-09-29
14
+
15
+ ### Documentation
16
+
17
+ - 新增可信状态文案规范,严格区分授权、发现缓存、Host 注册和真实调用证据;Draft PR #105 的 Schema 变化提示明确保持为未发布候选能力。
18
+ - 新增企业信息、本地智能文档解析、授权办公文档/日程三个只读首次成功场景包,并附权限、费用、数据去向、失败恢复和待验收边界。
19
+ - 增加未发布的场景推广草稿与固定 7/14 天复盘日期;未指定平台、账号和审批人前不得公开投放。
20
+ - 刷新带日期的 `0.2.59` 外部分发审计快照,不用后续版本改写历史观测。
21
+
22
+ ### Fixed
23
+
24
+ - 外部目录页面缺少规范 npm 包链接时,分发检查现在返回可操作的诊断说明,而不是笼统标记为未发布。
25
+
26
+ ### Verification
27
+
28
+ - 首次使用、README、营销元数据、发布包白名单、Node.js 20/22/24 和 Windows CI 全部通过。
29
+
7
30
  ## [0.2.61] - 2026-09-29
8
31
 
9
32
  ### Fixed
package/README.en.md CHANGED
@@ -40,7 +40,7 @@ Fully restart DeepSeek Harness Desktop or `dsh web` after installation or upgrad
40
40
 
41
41
  For a first successful use, confirm the connection and scope in Installed, find the expected tool and source in Tools, then complete one provider-permitted read-only call through the normal DSH Host approval flow. Cached visibility alone does not prove that a service is currently callable.
42
42
 
43
- First-success guide (Chinese): [install → connect → find a tool → make the first read-only call](docs/tutorials/README.md). Task details: [migrate `mcpServers` JSON](docs/tutorials/JSON-MIGRATION.md) · [diagnose OAuth](docs/tutorials/OAUTH-DIAGNOSTICS.md) · [find and recover tools](docs/tutorials/TOOL-SEARCH-RECOVERY.md).
43
+ First-success guide (Chinese): [install → connect → find a tool → make the first read-only call](docs/tutorials/README.md). Task details: [three acceptance-ready scenarios](docs/tutorials/FIRST-SUCCESS-SCENARIOS.md) · [migrate `mcpServers` JSON](docs/tutorials/JSON-MIGRATION.md) · [diagnose OAuth](docs/tutorials/OAUTH-DIAGNOSTICS.md) · [find and recover tools](docs/tutorials/TOOL-SEARCH-RECOVERY.md) · [trusted status copy](docs/tutorials/TRUSTED-STATUS-COPY.md).
44
44
 
45
45
  ![43-second MCP Connector walkthrough](https://raw.githubusercontent.com/duhu2000/dsh-mcp-connector/main/docs/demo.gif)
46
46
 
@@ -83,7 +83,7 @@ If the plugin helps you connect an MCP server faster, consider [starring the rep
83
83
  - Explicit, non-destructive migration from the two earlier Qichacha OAuth plugins, plus active-plugin conflict detection that blocks duplicate server management and credential overwrites.
84
84
 
85
85
  <!-- catalog-stats:start -->
86
- As of 2026-09-20, the public Registry publishes 107 connector descriptors. After merging and deduplicating them with the 4 bundled Qichacha cards, the Marketplace exposes 111 cards across 9 business categories. Recommendations remain limited to the four Qichacha cards, PKULaw, and Wind, for 6 featured cards in total. The Registry evolves independently; the badge shown after a client refresh and the live badges above are the authoritative current counts.
86
+ As of 2026-09-29, the public Registry publishes 106 connector descriptors. After merging and deduplicating them with the 4 bundled Qichacha cards, the Marketplace exposes 110 cards across 9 business categories. Recommendations remain limited to the four Qichacha cards, PKULaw, and Wind, for 6 featured cards in total. The Registry evolves independently; the badge shown after a client refresh and the live badges above are the authoritative current counts.
87
87
  <!-- catalog-stats:end -->
88
88
 
89
89
  ## Interface and demo
@@ -198,7 +198,7 @@ npm run dev:ui
198
198
 
199
199
  Every Registry merge regenerates `catalog-stats.json`; an hourly workflow in this repository synchronizes the Chinese and English product copy plus a local stats snapshot. The static npm README updates with package releases, while the live badges above read the Registry directly and therefore stay current without another npm release.
200
200
 
201
- The current public version is [`dsh-mcp-connector@0.2.61`](https://www.npmjs.com/package/dsh-mcp-connector), with [GitHub Release v0.2.61](https://github.com/duhu2000/dsh-mcp-connector/releases/tag/v0.2.61).
201
+ The current public version is [`dsh-mcp-connector@0.2.63`](https://www.npmjs.com/package/dsh-mcp-connector), with [GitHub Release v0.2.63](https://github.com/duhu2000/dsh-mcp-connector/releases/tag/v0.2.63).
202
202
 
203
203
  See [CHANGELOG.md](CHANGELOG.md) for version history and [docs/DESKTOP-E2E.md](docs/DESKTOP-E2E.md) for the Desktop release checklist.
204
204
 
package/README.md CHANGED
@@ -40,7 +40,7 @@ dsh plugin --profile web add dsh-mcp-connector
40
40
 
41
41
  首次使用建议依次确认:连接已保存且范围正确 → “工具”页能找到预期工具与来源 → 在正常 DSH 会话中通过 Host 审批链完成一次服务商许可的只读调用。缓存可见不等于当前服务可调用。
42
42
 
43
- [首次成功入口:安装 → 连接 → 找到工具 → 首次只读调用](docs/tutorials/README.md)。按任务深入:[迁移现有 `mcpServers` JSON](docs/tutorials/JSON-MIGRATION.md) · [OAuth 授权诊断](docs/tutorials/OAUTH-DIAGNOSTICS.md) · [跨连接找工具与恢复](docs/tutorials/TOOL-SEARCH-RECOVERY.md)。
43
+ [首次成功入口:安装 → 连接 → 找到工具 → 首次只读调用](docs/tutorials/README.md)。按任务深入:[三个可验收场景包](docs/tutorials/FIRST-SUCCESS-SCENARIOS.md) · [迁移现有 `mcpServers` JSON](docs/tutorials/JSON-MIGRATION.md) · [OAuth 授权诊断](docs/tutorials/OAUTH-DIAGNOSTICS.md) · [跨连接找工具与恢复](docs/tutorials/TOOL-SEARCH-RECOVERY.md) · [可信状态文案](docs/tutorials/TRUSTED-STATUS-COPY.md)。
44
44
 
45
45
  ![MCP 连接器 43 秒演示](https://raw.githubusercontent.com/duhu2000/dsh-mcp-connector/main/docs/demo.gif)
46
46
 
@@ -84,7 +84,7 @@ dsh plugin --profile web add dsh-mcp-connector
84
84
  - 对话工具:`mcp_connector_catalog`、`connect`、`configure`、`import_json`、`export_config`、`snapshot`、`install_from_url`、`status`、`scope`、`health_check`、`policy`、`set_enabled`、`disconnect`、`refresh_catalog`、`publish`、`tools_list`、`tool_search`、`tool_detail`。搜索/详情只做渐进式能力发现,不执行目标 MCP 工具。
85
85
 
86
86
  <!-- catalog-stats:start -->
87
- 截至 2026-09-20,公共 Registry 已发布 107 条连接器描述;与随包的 4 张企查查卡片合并去重后,市场页可浏览 111 张卡片,覆盖企业数据、金融投资、法律合规、开发工具、办公协作、调研分析、设计创意、效率工具、其他 9 类。推荐位严格保留 4 张企查查卡片、北大法宝和 Wind,共 6 张;其他连接器按业务分类展示。Registry 可独立持续更新,实际数量以客户端刷新后的市场页签徽标和上方实时统计徽标为准。
87
+ 截至 2026-09-29,公共 Registry 已发布 106 条连接器描述;与随包的 4 张企查查卡片合并去重后,市场页可浏览 110 张卡片,覆盖企业数据、金融投资、法律合规、开发工具、办公协作、调研分析、设计创意、效率工具、其他 9 类。推荐位严格保留 4 张企查查卡片、北大法宝和 Wind,共 6 张;其他连接器按业务分类展示。Registry 可独立持续更新,实际数量以客户端刷新后的市场页签徽标和上方实时统计徽标为准。
88
88
  <!-- catalog-stats:end -->
89
89
 
90
90
  ## 界面与演示
@@ -193,7 +193,7 @@ npm run dev:ui
193
193
 
194
194
  公共 Registry 每次合并后会生成 `catalog-stats.json`;本仓库的定时工作流每小时同步中英文介绍和统计快照。npm 页面中的静态正文随版本发布更新,上方动态统计徽标则直接读取 Registry,可在不发布新 npm 版本时保持实时数量一致。
195
195
 
196
- 当前公开版本为 [`dsh-mcp-connector@0.2.61`](https://www.npmjs.com/package/dsh-mcp-connector),对应 [GitHub Release v0.2.61](https://github.com/duhu2000/dsh-mcp-connector/releases/tag/v0.2.61)。
196
+ 当前公开版本为 [`dsh-mcp-connector@0.2.63`](https://www.npmjs.com/package/dsh-mcp-connector),对应 [GitHub Release v0.2.63](https://github.com/duhu2000/dsh-mcp-connector/releases/tag/v0.2.63)。
197
197
 
198
198
  版本能力与变更记录见 [CHANGELOG.md](CHANGELOG.md)。
199
199
  Desktop 发版回归见 [docs/DESKTOP-E2E.md](docs/DESKTOP-E2E.md)。
@@ -9,8 +9,9 @@
9
9
  - 已有其他客户端配置:从[迁移 `mcpServers` JSON](tutorials/JSON-MIGRATION.md)开始,逐项验证配置保存、工具发现/注册和只读调用。
10
10
  - OAuth 卡在注册、授权或刷新:看[OAuth 连接诊断](tutorials/OAUTH-DIAGNOSTICS.md),先按阶段与稳定代码排查,不反复提交未获授权的账号。
11
11
  - 已连接多个服务却找不到工具:看[跨连接找工具与发现失败恢复](tutorials/TOOL-SEARCH-RECOVERY.md)。缓存可查不等于当前可调用。
12
+ - 需要一条可复核任务:从[三个首次成功场景包](tutorials/FIRST-SUCCESS-SCENARIOS.md)选择企业信息、本地文档或授权办公数据的只读场景,并按[可信状态文案](tutorials/TRUSTED-STATUS-COPY.md)记录未知项和证据。
12
13
 
13
- 这三篇是操作教程,不代表对所有服务商完成了真实业务调用验收;正式调用仍受服务商权限、费用与 DSH Host 审批约束。
14
+ 这些操作教程和场景包不代表对所有服务商完成了真实业务调用验收;正式调用仍受服务商权限、费用与 DSH Host 审批约束。
14
15
 
15
16
  ## 1. 安装、升级与重启
16
17
 
@@ -0,0 +1,102 @@
1
+ # 三个首次成功场景包
2
+
3
+ 这三包把[统一首次成功路径](README.md)落到可复核任务。它们是验收步骤,不是“全部账号均已成功”的宣传证明。每次只选择一个服务商许可的只读任务;账号、组织、套餐、管理员批准或脱敏样例不可得时,保留“无证据/待验收”。状态记录遵循[可信状态文案规范](TRUSTED-STATUS-COPY.md)。
4
+
5
+ ## 场景一:企业信息只读查询
6
+
7
+ **目标**:使用“企查查·企业工商”(`qcc-company`)查询一个公开、非敏感测试主体的基本工商信息,并在结果中核对主体名称和更新时间/数据日期(若服务返回)。
8
+
9
+ | 项目 | 验收要求 |
10
+ |---|---|
11
+ | 前提 | 正式 `dsh-mcp-connector@0.2.59+`;当前 Workspace;企查查 OAuth 可用;测试账号具有目标企业数据权限 |
12
+ | 权限/管理员 | 账号权限、组织授权和可见字段由服务商控制;企业组织可能需要管理员开通,当前文档不能替代审批 |
13
+ | 费用 | 可能受套餐、次数或字段权限影响;MCP连接器无法确认本次费用,调用前在服务商侧核对 |
14
+ | 运行/数据去向 | 远程 MCP Server;企业名称、查询参数和调用结果经 DSH Host 发送到/返回自 `agent.qcc.com` |
15
+ | 安全输入 | 使用公开测试主体名称;不要把客户名单、内部标签或未公开调查对象用于公开验收 |
16
+ | 预期输出 | 可辨认的主体基本信息;字段、页数和数据日期以真实工具返回为准,不预设一定包含某字段 |
17
+
18
+ 验收步骤:
19
+
20
+ 1. 在市场连接“企查查·企业工商”,在“已安装”记录范围、启停、授权状态和检查时间。
21
+ 2. 在“工具”搜索“工商/企业基本信息”,核对来源为 `qcc-company`;记录实际工具名和必填参数,不从 Prompt 标题猜工具名。
22
+ 3. 在正常 DSH 会话发送:
23
+
24
+ ```text
25
+ 请只使用刚确认的企查查企业工商只读工具,查询“<公开测试企业名称>”的基本工商信息。
26
+ 调用前列出工具来源、实际工具名、关键参数,以及账号权限和费用是否仍需在服务商侧确认。
27
+ 不扩展到关联人、风险扫描或批量名单;若需要额外权限、付费或写操作,请停止。
28
+ ```
29
+
30
+ 4. 通过 Host 审批后,核对结果主体与输入一致;只保存脱敏字段清单、调用时间和成功/失败结论,不上传完整业务结果。
31
+
32
+ 失败恢复:主体歧义时增加服务商允许的标识字段;403/无字段先核对账号套餐与组织权限;工具未出现按[工具发现恢复教程](TOOL-SEARCH-RECOVERY.md)处理;OAuth 失败按[授权诊断](OAUTH-DIAGNOSTICS.md)处理。不得反复请求未获授权的数据。
33
+
34
+ **验证状态(2026-09-29)**:正式包、目录描述、远程 Server 配置和教程路径已核对;没有在本轮使用获授权账号执行真实业务调用,因此调用层为**无证据/待用户验收**。
35
+
36
+ ## 场景二:本地智能文档解析
37
+
38
+ **目标**:使用“企查查·智能文档解析”(`qcc-document`)的本机入口 `qcc-document-mcp`,解析一份专门制作、无个人信息和客户数据的测试 PDF/图片,返回 Markdown 或结构化摘要。
39
+
40
+ | 项目 | 验收要求 |
41
+ |---|---|
42
+ | 前提 | Node.js 20+;可信 npm 网络;企查查 OAuth;本机可运行 `npx -y qcc-document-mcp`;准备脱敏测试文件 |
43
+ | 权限/管理员 | OAuth 账号需有文档解析权限;企业环境可能限制本地进程、npm 下载或文件上传,需要管理员批准 |
44
+ | 费用 | 解析次数、页数、OCR 或结构化能力可能受套餐/配额影响;调用前在服务商侧核对 |
45
+ | 运行/数据去向 | **本机进程 + 远程处理**:本机 Agent 读取指定文件后自动上传到企查查服务处理;“本地入口”不表示文件只在设备内处理 |
46
+ | 安全输入 | 只用合成/公开测试文档;不得上传合同原件、身份证、客户材料、密钥或受限文件 |
47
+ | 预期输出 | Markdown、正文/表格或关键字段;以实际工具 schema 和返回为准,不保证所有版式都能完整恢复 |
48
+
49
+ 验收步骤:
50
+
51
+ 1. 连接“企查查·智能文档解析”,确认远程 `qcc-document` 与本机 `qcc-document-mcp` 均完成发现/Host 注册;只出现一个入口时不记为双入口通过。
52
+ 2. 在“工具”找到本机文件解析工具,查看实际参数;确认文件路径指向专用测试文件。
53
+ 3. 在正常 DSH 会话发送:
54
+
55
+ ```text
56
+ 请仅使用已确认的 qcc-document-mcp 本机文件只读解析工具处理“<脱敏测试文件路径>”。
57
+ 调用前说明文件将由本机 Agent 读取并上传到企查查远程服务、将发送的路径/文件类型,以及费用或配额是否未知。
58
+ 只返回 Markdown 与关键字段;如果文件包含个人信息、客户数据、密钥,或需要额外付费/权限,请停止。
59
+ ```
60
+
61
+ 4. 通过 Host 审批后,核对输出可辨认且不含未提供的数据;验收记录只保留测试文件哈希/类型、工具名、时间和结论,不保存真实本机路径或完整正文。
62
+
63
+ 失败恢复:本机进程未启动时检查 Node/npm、代理、命令和 Host 日志;仅远程入口成功时不要宣称本地解析成功;上传/授权失败按稳定 stage/code 排查;格式不支持时换服务商明确支持的合成样例,不上传真实材料试错。
64
+
65
+ **验证状态(2026-09-29)**:正式目录已核对双入口、OAuth 资源和本机 `npx` 配置;本轮没有用户授权账号与获准测试文件,因此真实上传和调用层为**无证据/待用户验收**。
66
+
67
+ ## 场景三:授权办公文档或日程查询
68
+
69
+ **目标**:从当前用户已获授权的办公服务连接中二选一,读取一份专用测试文档的标题/更新时间,或读取测试日历未来三条事件的时间/标题。只验证读取,不创建、修改、评论、邀请或删除。
70
+
71
+ | 项目 | 验收要求 |
72
+ |---|---|
73
+ | 前提 | 已安装并启用明确支持办公文档或日历读取的 MCP/受控 CLI Provider;使用隔离测试工作区/日历和测试数据 |
74
+ | 权限/管理员 | OAuth scope/CLI 登录必须覆盖目标资源;组织可能禁用第三方应用、要求管理员批准或仅允许特定工作区 |
75
+ | 费用 | 服务商套餐、API 配额、高级搜索或跨数据源能力可能收费;连接器不把“已授权”解释为“免费” |
76
+ | 运行/数据去向 | 远程 MCP 时参数/结果发送到办公服务;受控本机 CLI 时命令在本机执行,但仍访问办公服务 API;结果随后进入 DSH/模型上下文 |
77
+ | 安全输入 | 只使用专用测试文档/日历;不要读取真实会议主题、参会人、客户文件或组织敏感内容用于公开验收 |
78
+ | 预期输出 | 文档标题与更新时间,或最多三条测试事件的标题与时间;不返回正文、参会人或附件,除非测试范围明确允许 |
79
+
80
+ 验收步骤:
81
+
82
+ 1. 在“已安装”确认连接名称、项目/全局范围、授权状态和可能的管理员前提;账号/组织不可见时记录“当前连接无法确认”。
83
+ 2. 在“工具”搜索“文档读取/搜索”或“日历查询”,核对服务来源、只读语义、实际参数和工具名;若只看到写入工具则停止。
84
+ 3. 在正常 DSH 会话按所选分支发送:
85
+
86
+ ```text
87
+ 请只使用刚确认的办公服务只读工具,在已授权的测试范围内完成以下二选一任务:
88
+ A. 查找标题为“<测试文档标题>”的文档,只返回标题和更新时间;或
89
+ B. 查询测试日历未来三条事件,只返回标题和起止时间。
90
+ 调用前列出服务来源、工具名、授权范围、管理员前提、数据去向和可能费用。
91
+ 不读取正文/附件/参会人,不创建、修改、评论、邀请或删除;范围不明确时停止。
92
+ ```
93
+
94
+ 4. 通过 Host 审批后,只把测试数据与预置答案对照;记录脱敏结果摘要、工具名、时间和所用测试租户,不记录真实账号或组织名称。
95
+
96
+ 失败恢复:授权但工具缺失时先确认 scope/管理员政策和 Host 注册;403 不通过重复登录绕过;限流按 Retry-After/诊断等待;没有隔离测试租户时保持待验收,不以个人生产账号替代。
97
+
98
+ **验证状态(2026-09-29)**:统一连接、发现、Host 审批路径已经核对;未提供获授权的办公测试工作区/日历和管理员批准证据,因此连接器选择与真实调用均为**无证据/待用户验收**。
99
+
100
+ ## 统一验收记录
101
+
102
+ 每个场景只记录以下脱敏字段:插件版本、DSH Host/Market 版本、连接器与 Server、项目/全局范围、账号/组织是否可确认、授权/发现/调用三层结论、权限/管理员前提、运行位置、数据去向、费用依据、实际工具名、带时区检查时间、失败 stage/code 和恢复动作。不要记录 Token、Cookie、授权码、完整业务输入输出、本机绝对路径或真实组织身份。
@@ -2,6 +2,8 @@
2
2
 
3
3
  这是一条统一的最短路径。它把已有教程串成“安装 → 连接 → 找到工具 → 首次只读调用”,不替代各服务商文档。首次调用只选你已获准使用、费用与权限边界明确的只读任务;截图、GIF、连接成功或工具缓存都不等于真实业务调用通过。
4
4
 
5
+ 需要可直接执行的验收任务时,选择[企业信息只读查询、本地智能文档解析、授权办公文档或日程查询](FIRST-SUCCESS-SCENARIOS.md)中的一个场景;记录状态时使用[可信状态文案规范](TRUSTED-STATUS-COPY.md),缺少账号、组织、费用或调用证据就明确写“未知/待验收”。
6
+
5
7
  ## 1. 安装并重启正确的 profile
6
8
 
7
9
  当前默认安装布局中,DSH Desktop 和 `dsh web` 都从本机 `web` profile 加载插件,因此两种宿主都使用同一条安装命令;不要因为使用 Desktop 就把命令改成 `--profile desktop`。
@@ -0,0 +1,77 @@
1
+ # 可信状态文案规范
2
+
3
+ 本规范用于 MCP连接器的页面、教程、验收记录和问题反馈。目标不是把状态写得更乐观,而是让用户分清“服务商声明”“插件观察”“Host 观察”和“真实调用证据”。没有证据时显示“未知/待验收”,不能用连接保存、工具缓存、下载量或演示截图代替。
4
+
5
+ ## 一条状态必须回答什么
6
+
7
+ 按以下顺序展示;字段不可得时保留“未知”,不要隐藏整项:
8
+
9
+ | 维度 | 可采用的文案 | 证据要求 |
10
+ |---|---|---|
11
+ | 账号/组织 | `账号:已确认(脱敏)`、`组织:已确认(脱敏)`、`账号/组织:当前连接无法确认` | 仅使用服务商或 Host 明确返回且允许展示的脱敏身份;不得从 Token、邮箱片段或连接名猜测 |
12
+ | 授权 | `已授权`、`需重新授权`、`自动重试中`、`授权状态未知` | OAuth/凭据校验的当前观察;授权回调成功不等于工具已注册 |
13
+ | 发现/注册 | `发现成功`、`发现失败(仍显示最后成功缓存)`、`尚未发现`、`Host 注册状态未知` | 最近一次 `tools/list`/Host 注册观察及时间;缓存只能证明过去成功发现 |
14
+ | 调用 | `只读调用已验收`、`调用失败`、`调用:无证据/待验收` | 正常 DSH 会话经 Host 审批的具体调用证据;MCP连接器当前不应自行推断或新增隐性调用遥测 |
15
+ | 权限/管理员前提 | `需要当前账号具备…权限`、`可能需要组织管理员批准`、`管理员前提:待服务商确认` | 服务商公开说明或真实租户返回;不能把个人账号成功外推到企业组织 |
16
+ | 运行位置 | `远程 MCP Server`、`本机 stdio 进程`、`本机进程 + 远程处理` | 来自连接配置;“本机进程”不自动等于“数据不离开本机” |
17
+ | 数据去向 | `参数发送到 <服务商/域名>`、`本机文件由本机 Agent 读取后上传到 <服务商>`、`数据去向:待服务商确认` | 配置与服务商资料;不得只写“本地”而省略随后上传或远程处理 |
18
+ | 费用 | `可能计费,以服务商套餐/配额为准`、`本次费用:无法由插件确认`、`公开资料明确免费(附来源和日期)` | 只有服务商明确、带日期的依据才能写免费;免密不等于免费 |
19
+ | 时间/证据 | `检查时间:YYYY-MM-DD HH:mm:ss ±HH:mm`、`证据:插件观察 / Host 观察 / 人工只读验收` | 时间需含时区;历史成功时间与当前检查时间分别显示 |
20
+
21
+ ## 分层状态模板
22
+
23
+ ```text
24
+ 连接:<已保存 / 未保存 / 状态未知>;范围:<项目 / 全局 / 未知>
25
+ 账号/组织:<脱敏确认值 / 当前连接无法确认>
26
+ 授权:<已授权 / 需重新授权 / 自动重试中 / 未知>
27
+ 发现/注册:<成功 / 失败,显示最后成功缓存 / 尚未发现 / Host 状态未知>
28
+ 调用:<只读调用已验收 / 调用失败 / 无证据,待验收>
29
+ 权限/管理员前提:<已知要求 / 待服务商确认>
30
+ 运行与数据去向:<远程 / 本机 stdio / 本机读取后上传到远程>
31
+ 费用:<已知依据 / 无法由插件确认>
32
+ 检查时间:<带时区时间>;证据:<插件 / Host / 人工验收>
33
+ ```
34
+
35
+ “整体可用”只有在配置、发现/注册、调用三层都有当前证据时才能使用,并且必须限定到本次账号、组织、工具和验证时间。部分 Server 成功时写“部分异常”,不能把连接器整体写成“已连接且可用”。
36
+
37
+ ## 状态变化时的固定表达
38
+
39
+ - 配置已保存但尚未发现:`连接已保存;尚无工具发现/Host 注册证据,暂不能判断可调用。`
40
+ - 最近发现失败但存在缓存:`最近发现失败;正在显示 <时间> 的最后成功缓存。缓存不代表服务当前可调用。`
41
+ - OAuth 临时刷新失败:`授权刷新暂时失败,正在按退避重试;尚无永久失效证据,不需要立即重复授权。`
42
+ - 明确永久授权失败:`服务商已拒绝或 Grant 已失效,需要重新授权;原有工具缓存不能作为当前授权证据。`
43
+ - 未完成真实调用:`配置和工具发现已通过;真实只读调用无证据/待验收。`
44
+ - 缺少账号、组织或费用信息:`当前连接无法确认账号/组织/本次费用,请在服务商侧核对。`
45
+
46
+ ## Schema 变化警示
47
+
48
+ Schema 比较必须写明比较对象,不能只显示“已更新”。Draft PR #105 的候选最小实现只比较**同一连接签名下前后两份安全裁剪的发现缓存**;在该 PR 完成实际 Host UI 验收、合并并随正式版本发布前,本节只作为设计与验收口径,不得宣传为已上线能力。即使实现上线,它也不证明当前 Host 执行 Schema 一致,更不会自动触发或通过审批。只有目录声明时写“目录声明”,不得冒充运行时结果。
49
+
50
+ Draft PR #105 候选页面文案如下;未合并发布时不得写成“当前页面已显示”:
51
+
52
+ - `缓存参数结构已变化,可能影响既有调用;使用前请核对参数,并按 Host 要求重新确认。`
53
+ - `Schema 不完整或缺少历史记录,无法判断兼容性。`
54
+ - `仅为发现缓存;调用:无证据/待验收。`
55
+
56
+ 当前发现检查时间与最后成功缓存时间应在邻近字段分别展示,不塞入上述固定句。以下更细分类是后续设计口径;没有已发布实现与实际 Host UI 验收证据时,不得宣称已经完成 Schema 变化提示、完整破坏性判定或审批绑定。
57
+
58
+ | 状态 | 推荐文案 | 后续动作 |
59
+ |---|---|---|
60
+ | 无历史基线 | `Schema:首次观察,暂无可比较基线。` | 查看当前必填项、类型和约束后再审批调用 |
61
+ | 未检测到变化 | `Schema:与 <时间> 的最后成功缓存相比未检测到变化。` | 仍按当前 Host 审批执行;不等于服务业务语义永不变化 |
62
+ | 仅新增可选项 | `Schema:检测到新增可选参数/工具;现有必填参数未检测到破坏性变化。` | 展示差异;新工具或新参数不自动扩大 allow 规则或授权 |
63
+ | 可能破坏兼容 | `Schema 变化:检测到工具移除、必填参数新增、类型/枚举收窄或其他不兼容差异;调用前请重新查看参数并确认审批。` | 暂停自动复用旧参数;由 Host/用户重新确认,不自动重试写入或付费调用 |
64
+ | 当前 Schema 不可得 | `当前 Schema 无法确认;正在显示 <时间> 的最后成功安全缓存,不能据此判断当前可调用。` | 检查连接/重新发现;保留未知,不把缓存标绿 |
65
+ | 副作用不明确 | `工具副作用:服务未提供或 Host 未传递可靠标记;不能据此认定只读。` | 结合工具说明和服务商文档人工确认;不从名称猜测 |
66
+
67
+ 判定“可能破坏兼容”至少包括:工具被移除/重命名、原可选字段变必填、输入类型改变、枚举值删除、允许范围收窄,或明确的副作用/权限要求变化。MCP annotations 缺失不能证明工具只读;描述文本变化只能提示人工复核,不能单独判定安全性。比较失败时写“无法确认”,不得写“无变化”。
68
+
69
+ ## 交给 P0 的实现边界
70
+
71
+ 1. 优先复用现有诊断的 `stage`、稳定 `code`、`checkedAt`、最近成功时间和 Host 状态;不为文案新增隐性用户跟踪。
72
+ 2. 将“当前检查”与“最后成功缓存”分开,不用同一个绿色状态覆盖两者。
73
+ 3. 账号/组织、费用和管理员要求没有可靠接口时保持未知;不要解析 Token 或自动调用付费/有副作用工具来补齐。
74
+ 4. 调用证据应来自 Host 已有执行/审批契约或用户明确提供的脱敏验收记录。本轮不在连接器页面增加旁路试运行。
75
+ 5. Schema 差异只对实际可观察的同一连接签名/Server/工具缓存生效;大范围调用前刷新、完整破坏性判定、Schema 变化审批绑定和受控写操作属于后续设计,文案不能暗示它们已经实现。
76
+
77
+ 场景记录格式见[三个首次成功场景包](FIRST-SUCCESS-SCENARIOS.md)。
package/lib/client.js CHANGED
@@ -966,6 +966,7 @@ window.__ModuleLoader__.load({
966
966
  function installClientSettings(ctx, marketView) {
967
967
  if (typeof ctx.inject !== "function") return;
968
968
  ctx.inject(["settingsScope"], (settingsCtx) => {
969
+ if (typeof settingsCtx?.settingsScope?.bind !== "function") return;
969
970
  const settingsScope = settingsCtx.settingsScope.bind({
970
971
  namespace: CONNECTOR_SETTINGS_NAMESPACE,
971
972
  decode(value) {
@@ -975,6 +976,8 @@ window.__ModuleLoader__.load({
975
976
  : void 0;
976
977
  }
977
978
  });
979
+ if (typeof settingsScope?.getSnapshot !== "function"
980
+ || typeof settingsScope?.subscribe !== "function") return;
978
981
  settingsCtx.effect(() => {
979
982
  const sync = () => { marketView.syncSidebarVisible(resolveSidebarVisible(settingsScope.getSnapshot())); };
980
983
  sync();
package/lib/settings.js CHANGED
@@ -15,6 +15,8 @@ export const ConnectorSettings = z.object({
15
15
  export function installConnectorSettings(ctx, config = {}) {
16
16
  if (typeof ctx.inject !== 'function') return;
17
17
  ctx.inject(['settings'], (settingsCtx) => {
18
+ if (typeof settingsCtx?.settings?.register !== 'function') return;
19
+
18
20
  settingsCtx.settings.register(CONNECTOR_SETTINGS_NAMESPACE, ConnectorSettings, {
19
21
  base: {
20
22
  [SHOW_SIDEBAR_ENTRY_FIELD]: config[SHOW_SIDEBAR_ENTRY_FIELD] !== false,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-mcp-connector",
3
- "version": "0.2.61",
3
+ "version": "0.2.63",
4
4
  "description": "DeepSeek Harness MCP Connector: connect servers, search tools across active connections, and troubleshoot discovery. Includes a continuously updated catalog; supports OAuth 2.0 PKCE, API keys, Streamable HTTP/stdio, and mcpServers JSON import.",
5
5
  "type": "module",
6
6
  "main": "lib/index.js",