dsh-mcp-connector 0.2.10 → 0.2.12

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,46 @@
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [0.2.12] - 2026-08-23
8
+
9
+ ### Added
10
+
11
+ - 新增 stdio 本地进程传输:支持手工配置与 `mcpServers` JSON 导入中的 `command`、`args`、`env`、`cwd`,由现有 `@deepseek-ai/dsh-mcp-client` 原生启动并注册工具。
12
+ - 市场 ConnectorDescriptor 与 Registry Schema 支持 stdio Server;公开目录探针只校验描述,绝不执行第三方目录中的本地命令。
13
+ - 市场新增“推荐”与 9 类业务分类筛选,可与搜索、服务商和接入方式组合使用;未知及历史分类在 UI 端安全归一化。
14
+
15
+ ### Changed
16
+
17
+ - 历史 `sse` 与 `type: "http"` 配置统一归一为 `streamable-http`,最终向底层只透传 `stdio` 或 `streamable-http`。
18
+ - 状态、健康检查和详情页识别 stdio 托管连接;目录审计禁止 stdio `env` 携带 token、secret、API Key、password 等密钥类变量。
19
+ - 同一连接切换 HTTP/stdio 传输时会清除上一种传输的 URL、Header、命令与环境变量,避免旧配置或凭据残留。
20
+ - 随包目录统一使用“法律合规”“金融投资”等标准分类,并将北大法宝与 Wind 标记为推荐连接器。
21
+
22
+ ### Security
23
+
24
+ - stdio 仅允许用户主动配置或安装维护者审核过的市场描述;界面明确提示本地命令执行风险,凭据型环境变量只允许保存在本机连接记录中。
25
+
26
+ ### Verification
27
+
28
+ - 84 项自动测试、lint 与 45 个 npm 发布文件白名单/敏感内容扫描通过。
29
+ - 使用 DSH Desktop 自带的 `@deepseek-ai/dsh-mcp-client@0.1.1-rc.2` 完成真实 stdio 运行时冒烟:受控本地 MCP 进程成功启动、注册并调用工具,`args`、`env` 与 `cwd` 透传符合预期。
30
+
31
+ ## [0.2.11] - 2026-08-23
32
+
33
+ ### Added
34
+
35
+ - 新增八爪鱼云采集第三方市场卡片:通过标准 OAuth 2.1 Authorization Code + PKCE 和动态客户端注册完成一键授权,无需复制 API Key;精选 Prompt 覆盖模板搜索、任务进度、数据预览/导出,并在启动或停止云任务前要求用户确认。
36
+
37
+ ### Changed
38
+
39
+ - OAuth 发现按 RFC 8414 元数据优先、OIDC Discovery 补充的方式合并端点,兼容动态客户端注册与撤销端点分散发布的服务。
40
+ - 将 OAuth 撤销端点视为可选能力:服务未发布该端点时仍可授权、刷新和断开,断开时删除 DSH 本机授权记录。
41
+
42
+ ### Verification
43
+
44
+ - 75 项自动测试与 lint 通过;新增 OAuth/OIDC 元数据合并及无撤销端点兼容回归。
45
+ - 八爪鱼公开 MCP 端点、Protected Resource Metadata、Authorization Server Metadata、OIDC Discovery、PKCE S256 与动态客户端注册端点探针通过;Desktop 真实账户 OAuth 授权成功,枚举 1 个服务 / 12 个工具,`list_platforms` 只读调用返回成功且未创建或修改任务。
46
+
7
47
  ## [0.2.10] - 2026-08-22
8
48
 
9
49
  ### Fixed
@@ -200,7 +240,8 @@
200
240
  - 外部 URL 与导入 Header 执行安全校验。
201
241
  - iframe 消息校验同源和消息来源。
202
242
 
203
- [Unreleased]: https://github.com/duhu2000/dsh-mcp-connector/compare/v0.2.10...HEAD
243
+ [Unreleased]: https://github.com/duhu2000/dsh-mcp-connector/compare/v0.2.11...HEAD
244
+ [0.2.11]: https://github.com/duhu2000/dsh-mcp-connector/compare/v0.2.10...v0.2.11
204
245
  [0.2.10]: https://github.com/duhu2000/dsh-mcp-connector/compare/v0.2.9...v0.2.10
205
246
  [0.2.9]: https://github.com/duhu2000/dsh-mcp-connector/compare/v0.2.8...v0.2.9
206
247
  [0.2.8]: https://github.com/duhu2000/dsh-mcp-connector/compare/v0.2.7...v0.2.8
package/README.en.md CHANGED
@@ -15,8 +15,8 @@ Browse and install MCP connectors from different providers in DeepSeek Harness D
15
15
  ## Features
16
16
 
17
17
  - A primary sidebar entry below New Conversation and above workspaces/conversations, with a public footer-slot fallback for incompatible DSH DOM versions.
18
- - Searchable Marketplace and Installed views, provider and connection-method filters, catalog refresh, and active health checks that distinguish Configured, Connected, Reauthorization Required, Partially Unavailable, and Connection Error states.
19
- - OAuth 2.0 Authorization Code with PKCE, API key/Bearer/unauthenticated URL configuration, and `mcpServers` JSON import.
18
+ - Searchable Marketplace and Installed views, featured and nine-category filters, provider and connection-method filters, catalog refresh, and active health checks that distinguish Configured, Connected, Reauthorization Required, Partially Unavailable, and Connection Error states.
19
+ - OAuth 2.0 Authorization Code with PKCE, API key/Bearer/unauthenticated HTTP configuration, stdio local-process configuration, and `mcpServers` JSON import.
20
20
  - Installation from a credential-free connector descriptor URL.
21
21
  - Credential and MCP initialize validation before API-key connectors are saved as installed.
22
22
  - Dynamic tool discovery grouped by MCP server, including descriptions, search, batched rendering, and an independent scroll region.
@@ -26,7 +26,7 @@ Browse and install MCP connectors from different providers in DeepSeek Harness D
26
26
  - A standalone remote Registry, allowing new marketplace cards to appear after refresh without publishing a new npm version.
27
27
  - Explicit, non-destructive migration of authorization from the two earlier Qichacha OAuth plugins.
28
28
 
29
- The first four bundled cards are Qichacha connectors, followed by PKULaw and Wind. After a remote Registry refresh, Yingmi and QVeris are also available, for eight published marketplace cards in total; the architecture is provider-neutral.
29
+ The first four bundled cards are Qichacha connectors, followed by PKULaw and Wind. After a remote Registry refresh, Yingmi, QVeris, and Bazhuayu Cloud Collection are also available, for nine published marketplace cards in total. Bazhuayu is the first third-party example to exercise the complete OAuth 2.1 + PKCE dynamic-registration flow; the architecture remains provider-neutral.
30
30
 
31
31
  ## Interface and demo
32
32
 
@@ -70,6 +70,7 @@ Connected tools are exposed to the model with the `mcp__<serverName>__*` prefix.
70
70
  The package contains a bundled fallback catalog. By default, it refreshes from the public [dsh-mcp-connector-registry](https://github.com/duhu2000/dsh-mcp-connector-registry); cached or bundled data remains available if the remote registry cannot be reached.
71
71
 
72
72
  The public connector registration process and descriptor requirements are documented in [docs/MARKET-REGISTRATION.md](docs/MARKET-REGISTRATION.md).
73
+ The stdio architecture, passthrough boundary, and security constraints are documented in [docs/STDIO-SUPPORT.md](docs/STDIO-SUPPORT.md).
73
74
 
74
75
  ## Configuration
75
76
 
@@ -100,7 +101,7 @@ npm run dev:ui
100
101
 
101
102
  `npm run check` performs syntax checks, automated tests, and an npm package allowlist/sensitive-content audit. `npm run market:check` tracks the external DSH marketplace PR and live directory. Tags matching `v*` trigger GitHub Actions; the tag must match `package.json`. npm releases use Trusted Publishing through GitHub OIDC and do not require a long-lived `NPM_TOKEN`.
102
103
 
103
- The current public version is [`dsh-mcp-connector@0.2.7`](https://www.npmjs.com/package/dsh-mcp-connector), with [GitHub Release v0.2.7](https://github.com/duhu2000/dsh-mcp-connector/releases/tag/v0.2.7).
104
+ The current public version is [`dsh-mcp-connector@0.2.11`](https://www.npmjs.com/package/dsh-mcp-connector), with [GitHub Release v0.2.11](https://github.com/duhu2000/dsh-mcp-connector/releases/tag/v0.2.11).
104
105
 
105
106
  See [CHANGELOG.md](CHANGELOG.md) for version history and [docs/DESKTOP-E2E.md](docs/DESKTOP-E2E.md) for the Desktop release checklist.
106
107
 
@@ -110,7 +111,8 @@ See [CHANGELOG.md](CHANGELOG.md) for version history and [docs/DESKTOP-E2E.md](d
110
111
  - Failed API key/token validation is not persisted; authentication, timeout, DNS, and TLS/network errors are reported separately.
111
112
  - External URLs must use HTTPS; HTTP is allowed only for loopback development.
112
113
  - Remote descriptors and catalogs are limited to 2 MiB, Web API requests to 1 MiB, and imported JSON is scanned for credential fields before normalization.
113
- - Streamable HTTP is the primary transport. Legacy SSE entries can still be provisioned to the DSH Host, while live health checks, tool discovery, and pagination in the connector UI target Streamable HTTP. stdio entries are explicitly skipped.
114
+ - Streamable HTTP and stdio are supported end to end. Legacy `sse` entries are normalized to Streamable HTTP. The connector passes stdio `command/args/env/cwd` to `@deepseek-ai/dsh-mcp-client` instead of reimplementing process transport.
115
+ - stdio starts a local process. Import or connect only trusted commands and packages; catalog descriptors may not contain token/secret-shaped environment variables.
114
116
  - The primary sidebar placement uses the stable DSH `data-slot` marker and falls back to the footer if that marker is removed.
115
117
 
116
118
  ## License
package/README.md CHANGED
@@ -15,11 +15,11 @@
15
15
  ## 功能
16
16
 
17
17
  - 左侧主导航入口:目标位置为“新会话”下方、“工作区/会话列表”上方;若 DSH DOM 结构不兼容,自动回退到底部公开插槽。
18
- - 图形化市场:市场/已安装、全文搜索、服务商/接入方式组合筛选、刷新与主动健康检查;区分“已配置”、“已连接”、“需重新授权”、“部分异常”和“连接异常”。
19
- - 图形化添加:手动 URL/鉴权、`mcpServers` JSON、连接器描述 URL 三种入口,失败时保留表单并给出修复建议。
18
+ - 图形化市场:市场/已安装、推荐与 9 类业务分类、全文搜索、服务商/接入方式组合筛选、刷新与主动健康检查;区分“已配置”、“已连接”、“需重新授权”、“部分异常”和“连接异常”。
19
+ - 图形化添加:手动 HTTP/stdio、`mcpServers` JSON、连接器描述 URL 三种入口,失败时保留表单并给出修复建议。
20
20
  - 连接器详情:精选 Prompt 优先展示,点击可带入 DSH 新会话;工具按 Server 分组,支持描述、搜索和独立滚动。
21
21
  - Prompt 模板:使用 `{{company}}` 等变量,发送前填写真实查询主体。
22
- - 三种接入:OAuth 2.0 PKCE、自定义 URL/鉴权、导入 `mcpServers` JSON;也支持从连接器描述 URL 安装。
22
+ - 三种接入:OAuth 2.0 PKCE、自定义 HTTP/stdio、导入 `mcpServers` JSON;也支持从连接器描述 URL 安装。
23
23
  - 市场 Bearer/API Key 连接器先执行 MCP initialize 连通性与凭据校验,全部 Server 通过后才持久化凭据并进入“已安装”。
24
24
  - 生命周期管理:连接持久化、重启恢复、启停、断开、OAuth 刷新与撤销。
25
25
  - 目录运营:内置目录、远程 registry、本地覆盖,支持 `published` 上下架与 `featured` 精选。
@@ -28,7 +28,7 @@
28
28
  - 平滑迁移:显式扫描并复制两个旧企查查 OAuth 插件授权;不删除原插件或原凭据。
29
29
  - 对话工具:`mcp_connector_catalog`、`connect`、`configure`、`import_json`、`install_from_url`、`status`、`health_check`、`set_enabled`、`disconnect`、`refresh_catalog`、`publish`、`tools_list`。
30
30
 
31
- 随包目录前 4 张为企查查连接器,另含“北大法宝·法律检索”和“Wind·股票数据”。远程 Registry 刷新后还会加入“盈米·基金投顾”和“QVerisMCP”,当前共 8 张已发布市场卡片;插件架构不限定厂商。
31
+ 随包目录前 4 张为企查查连接器,另含“北大法宝·法律检索”和“Wind·股票数据”。远程 Registry 刷新后还会加入“盈米·基金投顾”、“QVerisMCP”和“八爪鱼·云采集”,当前共 9 张已发布市场卡片;其中八爪鱼是首个完整跑通标准 OAuth 2.1 + PKCE 动态注册链路的第三方示例,插件架构不限定厂商。
32
32
 
33
33
  ## 界面与演示
34
34
 
@@ -96,11 +96,12 @@ npm run dev:ui
96
96
 
97
97
  `check` 执行语法检查、自动测试和 npm 发布包白名单校验;`market:check` 检查外部 DSH 市场 PR 与线上目录;`dev:ui` 启动不含真实凭据的本地 mock 市场。CI 使用 `--legacy-peer-deps` 安装显式测试依赖,DSH 运行期 peer 仍由 Host 提供。`v*` Tag 会触发 GitHub Actions;Tag 必须与 `package.json` 版本一致。Release 通过 npm Trusted Publishing (GitHub OIDC) 发布,不依赖长期 `NPM_TOKEN`。
98
98
 
99
- 当前公开版本为 [`dsh-mcp-connector@0.2.7`](https://www.npmjs.com/package/dsh-mcp-connector),对应 [GitHub Release v0.2.7](https://github.com/duhu2000/dsh-mcp-connector/releases/tag/v0.2.7)。
99
+ 当前公开版本为 [`dsh-mcp-connector@0.2.11`](https://www.npmjs.com/package/dsh-mcp-connector),对应 [GitHub Release v0.2.11](https://github.com/duhu2000/dsh-mcp-connector/releases/tag/v0.2.11)。
100
100
 
101
101
  版本能力与变更记录见 [CHANGELOG.md](CHANGELOG.md)。
102
102
  Desktop 发版回归见 [docs/DESKTOP-E2E.md](docs/DESKTOP-E2E.md)。
103
103
  市场卡片、公共 registry 与 OAuth 一键授权要求见 [docs/MARKET-REGISTRATION.md](docs/MARKET-REGISTRATION.md)。
104
+ stdio 传输的架构、透传边界与安全约束见 [docs/STDIO-SUPPORT.md](docs/STDIO-SUPPORT.md)。
104
105
 
105
106
  ## 安全与限制
106
107
 
@@ -108,7 +109,8 @@ Desktop 发版回归见 [docs/DESKTOP-E2E.md](docs/DESKTOP-E2E.md)。
108
109
  - 市场 Key/Token 校验失败时不写入 storage domain;鉴权、超时、DNS、TLS/网络错误会分类提示。
109
110
  - 外部 URL 仅允许 HTTPS,HTTP 仅允许回环地址;导入配置会校验 URL 与 Header。
110
111
  - 远程目录/描述响应限制 2 MiB,Web API 请求限制 1 MiB;原始 JSON 在归一化前扫描凭据字段。
111
- - 当前以 Streamable HTTP 为主;可把旧 SSE 条目交给 DSH Host 兼容运行,但详情页的实时健康检查、工具枚举和分页仅面向 Streamable HTTP。stdio 配置会被明确跳过。
112
+ - 完整覆盖 Streamable HTTP 与 stdio;旧 `sse` 配置在导入/恢复时归一为 Streamable HTTP。stdio 的 `command/args/env/cwd` 原样交给 `@deepseek-ai/dsh-mcp-client`,插件本身不重复实现进程传输。
113
+ - stdio 会启动本机进程:仅导入或连接可信命令/软件包。市场目录不得携带 token/secret 类环境变量;用户凭据只允许在本机配置。
112
114
  - 顶部入口通过 DSH 稳定 `data-slot` 定位并使用 React Portal;DSH 若移除该标记,入口会回退到底部,不影响连接器功能。
113
115
  - 旧授权迁移必须显式确认,只复制不删除;确认新连接可用后再手动停用旧插件。
114
116
 
@@ -166,12 +166,12 @@
166
166
  "name": "北大法宝·法律检索",
167
167
  "vendor": "北大法宝 PKULaw",
168
168
  "icon": "/mcp-connector/ui/assets/pkulaw-logo.png",
169
- "category": "法律数据",
169
+ "category": "法律合规",
170
170
  "summary": "法规 / 法条 / 司法案例检索与引用核验",
171
171
  "description": "接入北大法宝法律法规、司法案例、法条识别与引用核验能力。需使用北大法宝 Access Token,相关服务可能需要单独开通或购买。",
172
172
  "tags": ["法律", "法规", "案例", "法条", "第三方收录"],
173
173
  "published": true,
174
- "featured": false,
174
+ "featured": true,
175
175
  "homepage": "https://mcp.pkulaw.com/",
176
176
  "promptVariables": [
177
177
  { "name": "topic", "label": "法律主题", "default": "劳动合同解除", "placeholder": "例如:劳动合同解除", "required": true },
@@ -208,12 +208,12 @@
208
208
  "name": "Wind·股票数据",
209
209
  "vendor": "Wind 万得",
210
210
  "icon": "/mcp-connector/ui/assets/wind-logo.png",
211
- "category": "金融数据",
211
+ "category": "金融投资",
212
212
  "summary": "全球股票档案 / 行情 / 技术指标 / 财务与公司事件",
213
213
  "description": "接入万得股票数据服务,覆盖公司档案、股本与股东、行情报价、技术指标、基本面财务、公司事件及风险波动性数据。需使用 Wind Key,服务权限以万得账户实际开通范围为准。",
214
214
  "tags": ["股票", "行情", "财务", "技术指标", "第三方收录"],
215
215
  "published": true,
216
- "featured": false,
216
+ "featured": true,
217
217
  "homepage": "https://aifinmarket.wind.com.cn/#/market?tab=mcps&detailType=mcp&detailId=wind_stock_data-0",
218
218
  "promptVariables": [
219
219
  { "name": "stock", "label": "股票名称或代码", "default": "贵州茅台(600519.SH)", "placeholder": "例如:贵州茅台(600519.SH)", "required": true }
@@ -45,9 +45,11 @@ Bearer/API Key 型连接器可在卡片上点「配置」,一次填写凭据
45
45
  - OAuth Authorization Code + PKCE S256;
46
46
  - MCP Protected Resource Metadata(RFC 9728);
47
47
  - Authorization Server Metadata(RFC 8414);
48
- - `authorization_endpoint`、`token_endpoint`、`registration_endpoint`、`revocation_endpoint`;
48
+ - `authorization_endpoint`、`token_endpoint`、`registration_endpoint`;`revocation_endpoint` 建议提供,但按标准属于可选能力;
49
49
  - Dynamic Client Registration,且支持 loopback callback URI;
50
- - Refresh Token 和撤销。
50
+ - Refresh Token;如提供撤销端点,插件会在断开/清理授权时撤销 Refresh Token,否则只删除 DSH 本机授权记录。
51
+
52
+ 插件优先读取 RFC 8414 Authorization Server Metadata;若动态注册或撤销端点缺失,会再读取 OIDC Discovery 并仅补齐缺失字段。OAuth 元数据中的授权、Token 等标准端点始终优先。
51
53
 
52
54
  符合上述条件的最小描述:
53
55
 
@@ -153,3 +155,25 @@ QVeris Hosted MCP 提供单一 Streamable HTTP 端点 `https://mcp.qveris.ai/mcp
153
155
  - https://qveris.ai/pricing
154
156
  - https://qveris.ai/privacy
155
157
  - https://qveris.ai/terms
158
+
159
+ ## 9. 八爪鱼云采集 OAuth 适配结论
160
+
161
+ 八爪鱼公开 MCP 服务 `https://mcp.bazhuayu.com/` 已验证支持标准远程 MCP OAuth 发现链路:
162
+
163
+ - Protected Resource Metadata 指向 `https://identity.bazhuayu.com`;
164
+ - Authorization Code + PKCE S256;
165
+ - Dynamic Client Registration,公共客户端使用 `token_endpoint_auth_method: none`;
166
+ - Scope:`openid profile offline_access`;
167
+ - OAuth Metadata 发布授权与 Token 端点,OIDC Discovery 补充动态注册和撤销端点。
168
+
169
+ 因此可以作为本市场首个完整的第三方 OAuth 一键授权示例。连接器不复用 WorkBuddy 的 `client_id` 或私有回调协议,而是由 DSH 插件为本机 loopback callback 动态注册独立公共客户端;授权结果只保存在 DSH storage domain。
170
+
171
+ 市场卡片使用八爪鱼官网 favicon 的像素副本并由 Registry 自托管。官方文档基线列出 10 个工具;2026-08-23 Desktop 真实授权后服务端实际返回 12 个工具,新增 `get_task_status` 与 `describe_ecommerce_dataset`,Registry 快照已按运行时结果校正。`list_platforms` 只读调用成功并返回 902 个平台。涉及启动/停止云任务的 Prompt 必须先征求用户确认,实际云采集配额、费用、平台范围与数据使用责任以用户账户和八爪鱼官方规则为准。
172
+
173
+ 参考:
174
+
175
+ - https://www.bazhuayu.com/ai-open-platform
176
+ - https://www.bazhuayu.com/docs/zh/mcp
177
+ - https://mcp.bazhuayu.com/.well-known/oauth-protected-resource
178
+ - https://identity.bazhuayu.com/.well-known/oauth-authorization-server
179
+ - https://identity.bazhuayu.com/.well-known/openid-configuration