dsh-mcp-connector 0.2.0 → 0.2.2
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 +26 -1
- package/README.en.md +103 -0
- package/README.md +12 -5
- package/cordis.patch.yml +1 -1
- package/docs/MARKET-REGISTRATION.md +4 -4
- package/lib/constants.js +2 -0
- package/lib/index.js +3 -2
- package/package.json +14 -3
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,29 @@
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [0.2.2] - 2026-08-21
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- 新增英文版 README,便于国际用户了解安装、连接方式、市场目录和发布流程。
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
|
|
15
|
+
- 产品名称和介绍统一为通用 MCP Connector Marketplace;企查查作为项目发起方、维护方和首批连接器提供方,不限定可接入厂商。
|
|
16
|
+
- 重构 npm 关键词,保留 DSH、Cordis、MCP、OAuth/PKCE 和企查查检索入口,并补充 `dsh-plugin`、`mcp-client`、`oauth2`、`enterprise-data`。
|
|
17
|
+
- 更新市场注册移交文档、测试数量和 awesome-dsh-plugin 注册描述,移除易过期的工具与 Prompt 数量。
|
|
18
|
+
|
|
19
|
+
## [0.2.1] - 2026-08-21
|
|
20
|
+
|
|
21
|
+
### Added
|
|
22
|
+
|
|
23
|
+
- 上线独立公共 `dsh-mcp-connector-registry`,新市场卡片合并后无需重发 npm 即可被客户端刷新获取。
|
|
24
|
+
- npm 发布流程切换为 GitHub Actions OIDC Trusted Publishing。
|
|
25
|
+
|
|
26
|
+
### Changed
|
|
27
|
+
|
|
28
|
+
- `catalogUrl` 默认指向公共 Registry,显式空字符串仍可关闭远程目录;拉取失败时保留缓存/内置目录回退。
|
|
29
|
+
|
|
7
30
|
## [0.2.0] - 2026-08-21
|
|
8
31
|
|
|
9
32
|
### Added
|
|
@@ -69,6 +92,8 @@
|
|
|
69
92
|
- 外部 URL 与导入 Header 执行安全校验。
|
|
70
93
|
- iframe 消息校验同源和消息来源。
|
|
71
94
|
|
|
72
|
-
[Unreleased]: https://github.com/duhu2000/dsh-mcp-connector/compare/v0.2.
|
|
95
|
+
[Unreleased]: https://github.com/duhu2000/dsh-mcp-connector/compare/v0.2.2...HEAD
|
|
96
|
+
[0.2.2]: https://github.com/duhu2000/dsh-mcp-connector/compare/v0.2.1...v0.2.2
|
|
97
|
+
[0.2.1]: https://github.com/duhu2000/dsh-mcp-connector/compare/v0.2.0...v0.2.1
|
|
73
98
|
[0.2.0]: https://github.com/duhu2000/dsh-mcp-connector/compare/v0.1.0...v0.2.0
|
|
74
99
|
[0.1.0]: https://github.com/duhu2000/dsh-mcp-connector/releases/tag/v0.1.0
|
package/README.en.md
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# MCP Connector Marketplace for DeepSeek Harness
|
|
2
|
+
|
|
3
|
+
> A general-purpose MCP connector marketplace initiated and maintained by the Qichacha team
|
|
4
|
+
|
|
5
|
+
Browse and install MCP connectors from different providers in DeepSeek Harness Desktop. Connect through OAuth, API key/URL configuration, JSON import, or a connector descriptor URL; discover tools, start a new conversation from an example prompt, and manage installed connections.
|
|
6
|
+
|
|
7
|
+
[简体中文](README.md)
|
|
8
|
+
|
|
9
|
+
[](https://github.com/duhu2000/dsh-mcp-connector/actions/workflows/ci.yml)
|
|
10
|
+
[](https://www.npmjs.com/package/dsh-mcp-connector)
|
|
11
|
+
[](LICENSE)
|
|
12
|
+
|
|
13
|
+
## Features
|
|
14
|
+
|
|
15
|
+
- A primary sidebar entry below New Conversation and above workspaces/conversations, with a public footer-slot fallback for incompatible DSH DOM versions.
|
|
16
|
+
- Searchable Marketplace and Installed views with connection status and catalog refresh.
|
|
17
|
+
- OAuth 2.0 Authorization Code with PKCE, API key/Bearer/unauthenticated URL configuration, and `mcpServers` JSON import.
|
|
18
|
+
- Installation from a credential-free connector descriptor URL.
|
|
19
|
+
- Credential and MCP initialize validation before API-key connectors are saved as installed.
|
|
20
|
+
- Dynamic tool discovery grouped by MCP server, including descriptions, search, batched rendering, and an independent scroll region.
|
|
21
|
+
- Curated prompt templates that can open a DSH conversation and prefill its draft; missing variables are requested before the prompt is sent.
|
|
22
|
+
- Persistent connection lifecycle management: restore on restart, enable/disable, disconnect, refresh OAuth tokens, and revoke authorization.
|
|
23
|
+
- Built-in, remote, and local catalogs with `published` and `featured` controls.
|
|
24
|
+
- A standalone remote Registry, allowing new marketplace cards to appear after refresh without publishing a new npm version.
|
|
25
|
+
- Explicit, non-destructive migration of authorization from the two earlier Qichacha OAuth plugins.
|
|
26
|
+
|
|
27
|
+
The first four bundled cards are Qichacha connectors. The public catalog also includes PKULaw and Wind connectors; the architecture is provider-neutral.
|
|
28
|
+
|
|
29
|
+
## Installation
|
|
30
|
+
|
|
31
|
+
Requirements: DeepSeek Harness Desktop or web profile, and Node.js 20 or later.
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
dsh plugin --profile web add dsh-mcp-connector
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Or use the installer:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
bash <(curl -fsSL https://raw.githubusercontent.com/duhu2000/dsh-mcp-connector/main/install.sh)
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Fully quit and restart DeepSeek Harness Desktop after installation or upgrade.
|
|
44
|
+
|
|
45
|
+
## Usage
|
|
46
|
+
|
|
47
|
+
1. Select **MCP Connector** in the primary sidebar.
|
|
48
|
+
2. Choose a connector in Marketplace and complete authorization or configuration.
|
|
49
|
+
3. Open its details to inspect tools or send an example prompt to a new conversation draft.
|
|
50
|
+
4. Use Installed or the conversation tools to enable, disable, inspect, or disconnect a connection.
|
|
51
|
+
|
|
52
|
+
Connected tools are exposed to the model with the `mcp__<serverName>__*` prefix.
|
|
53
|
+
|
|
54
|
+
## Connector catalog
|
|
55
|
+
|
|
56
|
+
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.
|
|
57
|
+
|
|
58
|
+
The public connector registration process and descriptor requirements are documented in [docs/MARKET-REGISTRATION.md](docs/MARKET-REGISTRATION.md).
|
|
59
|
+
|
|
60
|
+
## Configuration
|
|
61
|
+
|
|
62
|
+
The default bundle configuration is in `cordis.patch.yml`:
|
|
63
|
+
|
|
64
|
+
```yaml
|
|
65
|
+
- id: mcp-connector
|
|
66
|
+
name: dsh-mcp-connector
|
|
67
|
+
config:
|
|
68
|
+
catalogUrl: 'https://raw.githubusercontent.com/duhu2000/dsh-mcp-connector-registry/main/catalog.json'
|
|
69
|
+
persistSecrets: true
|
|
70
|
+
entryPrefix: mcp
|
|
71
|
+
refreshSkewMs: 300000
|
|
72
|
+
openBrowser: true
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Set `catalogUrl` to an empty string for an explicitly offline/private setup.
|
|
76
|
+
|
|
77
|
+
## Development and release checks
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
npm run check
|
|
81
|
+
npm run registry:build
|
|
82
|
+
npm run registry:validate
|
|
83
|
+
npm run dev:ui
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
`npm run check` performs syntax checks, automated tests, and an npm package allowlist/sensitive-content audit. 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`.
|
|
87
|
+
|
|
88
|
+
The current public version is [`dsh-mcp-connector@0.2.2`](https://www.npmjs.com/package/dsh-mcp-connector), with [GitHub Release v0.2.2](https://github.com/duhu2000/dsh-mcp-connector/releases/tag/v0.2.2).
|
|
89
|
+
|
|
90
|
+
See [CHANGELOG.md](CHANGELOG.md) for version history and [docs/DESKTOP-E2E.md](docs/DESKTOP-E2E.md) for the Desktop release checklist.
|
|
91
|
+
|
|
92
|
+
## Security and limitations
|
|
93
|
+
|
|
94
|
+
- Credentials are stored only in the DSH storage domain and are not written to the catalog, Git repository, or conversation history.
|
|
95
|
+
- Failed API key/token validation is not persisted; authentication, timeout, DNS, and TLS/network errors are reported separately.
|
|
96
|
+
- External URLs must use HTTPS; HTTP is allowed only for loopback development.
|
|
97
|
+
- 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.
|
|
98
|
+
- Streamable HTTP is the primary transport with SSE compatibility. stdio entries are explicitly skipped.
|
|
99
|
+
- The primary sidebar placement uses the stable DSH `data-slot` marker and falls back to the footer if that marker is removed.
|
|
100
|
+
|
|
101
|
+
## License
|
|
102
|
+
|
|
103
|
+
MIT
|
package/README.md
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
# MCP
|
|
1
|
+
# MCP 连接器市场(DeepSeek Harness 插件)
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
> 通用 MCP Connector Marketplace,由企查查团队发起并维护
|
|
4
|
+
|
|
5
|
+
在 DeepSeek Harness Desktop 中浏览和安装不同厂商的 MCP 连接器,通过 OAuth、API Key/URL 或 JSON 接入服务,发现工具、使用示例 Prompt 发起新会话,并管理已安装连接。
|
|
6
|
+
|
|
7
|
+
[English](README.en.md)
|
|
4
8
|
|
|
5
9
|
[](https://github.com/duhu2000/dsh-mcp-connector/actions/workflows/ci.yml)
|
|
6
10
|
[](https://www.npmjs.com/package/dsh-mcp-connector)
|
|
@@ -17,6 +21,7 @@
|
|
|
17
21
|
- 市场 Bearer/API Key 连接器先执行 MCP initialize 连通性与凭据校验,全部 Server 通过后才持久化凭据并进入“已安装”。
|
|
18
22
|
- 生命周期管理:连接持久化、重启恢复、启停、断开、OAuth 刷新与撤销。
|
|
19
23
|
- 目录运营:内置目录、远程 registry、本地覆盖,支持 `published` 上下架与 `featured` 精选。
|
|
24
|
+
- 独立远程 Registry:新市场卡片合并后客户端刷新即可见,无需重新发布 npm;远程不可用时自动回退内置目录。
|
|
20
25
|
- Registry 工具链:Schema/唯一性/密钥审计、MCP/OAuth 无凭据探针、每周健康巡检。
|
|
21
26
|
- 平滑迁移:显式扫描并复制两个旧企查查 OAuth 插件授权;不删除原插件或原凭据。
|
|
22
27
|
- 对话工具:`mcp_connector_catalog`、`connect`、`configure`、`import_json`、`install_from_url`、`status`、`set_enabled`、`disconnect`、`refresh_catalog`、`publish`、`tools_list`。
|
|
@@ -56,13 +61,15 @@ Bundle 默认配置位于 `cordis.patch.yml`:
|
|
|
56
61
|
- id: mcp-connector
|
|
57
62
|
name: dsh-mcp-connector
|
|
58
63
|
config:
|
|
59
|
-
catalogUrl: ''
|
|
64
|
+
catalogUrl: 'https://raw.githubusercontent.com/duhu2000/dsh-mcp-connector-registry/main/catalog.json'
|
|
60
65
|
persistSecrets: true
|
|
61
66
|
entryPrefix: mcp
|
|
62
67
|
refreshSkewMs: 300000
|
|
63
68
|
openBrowser: true
|
|
64
69
|
```
|
|
65
70
|
|
|
71
|
+
`catalogUrl` 默认指向公共 [dsh-mcp-connector-registry](https://github.com/duhu2000/dsh-mcp-connector-registry),支持 ETag/TTL 缓存;拉取失败时继续使用上次缓存或随包内置目录。需要离线/私有模式时可将其显式设为空字符串。
|
|
72
|
+
|
|
66
73
|
## 开发与发布门禁
|
|
67
74
|
|
|
68
75
|
```bash
|
|
@@ -72,9 +79,9 @@ npm run registry:validate
|
|
|
72
79
|
npm run dev:ui
|
|
73
80
|
```
|
|
74
81
|
|
|
75
|
-
`check` 执行语法检查、自动测试和 npm 发布包白名单校验;`dev:ui` 启动不含真实凭据的本地 mock 市场。CI 使用 `--legacy-peer-deps` 安装显式测试依赖,DSH 运行期 peer 仍由 Host 提供。`v*` Tag 会触发 GitHub Actions;Tag 必须与 `package.json`
|
|
82
|
+
`check` 执行语法检查、自动测试和 npm 发布包白名单校验;`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`。
|
|
76
83
|
|
|
77
|
-
当前公开版本为 [`dsh-mcp-connector@0.2.
|
|
84
|
+
当前公开版本为 [`dsh-mcp-connector@0.2.2`](https://www.npmjs.com/package/dsh-mcp-connector),对应 [GitHub Release v0.2.2](https://github.com/duhu2000/dsh-mcp-connector/releases/tag/v0.2.2)。
|
|
78
85
|
|
|
79
86
|
版本能力与变更记录见 [CHANGELOG.md](CHANGELOG.md)。
|
|
80
87
|
Desktop 发版回归见 [docs/DESKTOP-E2E.md](docs/DESKTOP-E2E.md)。
|
package/cordis.patch.yml
CHANGED
|
@@ -20,12 +20,12 @@ Bearer/API Key 型连接器可在卡片上点「配置」,一次填写凭据
|
|
|
20
20
|
|
|
21
21
|
## 3. 提交公共市场
|
|
22
22
|
|
|
23
|
-
1.
|
|
24
|
-
2. 运行 `npm
|
|
23
|
+
1. Fork 公开仓库 [`duhu2000/dsh-mcp-connector-registry`](https://github.com/duhu2000/dsh-mcp-connector-registry),在 `connectors/<id>.json` 新增一个描述文件,一个连接器一个文件。
|
|
24
|
+
2. 运行 `npm install --legacy-peer-deps` 和 `npm run check`。
|
|
25
25
|
3. 提交 PR。CI 会检查 Schema、重复 id/serverName、密钥、URL、MCP initialize、OAuth 元数据和图标。
|
|
26
|
-
4.
|
|
26
|
+
4. 合并后 CI 重建根目录 `catalog.json`;客户端点击“刷新”后可见,无需重新发布 `dsh-mcp-connector` npm 包。
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
插件默认读取 `https://raw.githubusercontent.com/duhu2000/dsh-mcp-connector-registry/main/catalog.json`;远程不可用时自动回退上次缓存或随包内置目录。
|
|
29
29
|
|
|
30
30
|
## 4. OAuth 一键授权要求
|
|
31
31
|
|
package/lib/constants.js
CHANGED
|
@@ -17,6 +17,8 @@ export const JSON_CONNECTOR_ID = '__json__';
|
|
|
17
17
|
export const RESERVED_ID_PREFIXES = ['qcc-', 'dsh-', 'mcp-connector-'];
|
|
18
18
|
|
|
19
19
|
/** 请求 / 刷新默认值 */
|
|
20
|
+
export const DEFAULT_CATALOG_URL =
|
|
21
|
+
'https://raw.githubusercontent.com/duhu2000/dsh-mcp-connector-registry/main/catalog.json';
|
|
20
22
|
export const DEFAULT_REQUEST_TIMEOUT_MS = 15_000;
|
|
21
23
|
export const DEFAULT_REFRESH_SKEW_MS = 300_000;
|
|
22
24
|
export const DEFAULT_CATALOG_TTL_MS = 3_600_000;
|
package/lib/index.js
CHANGED
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
import z from '@deepseek-ai/schemastery';
|
|
13
13
|
import {
|
|
14
14
|
DEFAULT_ACCOUNT,
|
|
15
|
+
DEFAULT_CATALOG_URL,
|
|
15
16
|
DEFAULT_REQUEST_TIMEOUT_MS,
|
|
16
17
|
DEFAULT_REFRESH_SKEW_MS,
|
|
17
18
|
DEFAULT_CATALOG_TTL_MS,
|
|
@@ -35,8 +36,8 @@ export const name = 'mcp-connector';
|
|
|
35
36
|
export const inject = ['tools', 'storageDomain', 'loader'];
|
|
36
37
|
|
|
37
38
|
export const Config = z.object({
|
|
38
|
-
/** 远程目录 URL
|
|
39
|
-
catalogUrl: z.string().default(
|
|
39
|
+
/** 远程目录 URL(默认公共 registry;显式空字符串 = 仅内置目录) */
|
|
40
|
+
catalogUrl: z.string().default(DEFAULT_CATALOG_URL),
|
|
40
41
|
/** 远程目录缓存 TTL(ms) */
|
|
41
42
|
catalogTtlMs: z.number().default(DEFAULT_CATALOG_TTL_MS),
|
|
42
43
|
/** 额外注入的连接器描述(ops/测试用,优先级高于远程 registry) */
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-mcp-connector",
|
|
3
|
-
"version": "0.2.
|
|
4
|
-
"description": "DeepSeek Harness
|
|
3
|
+
"version": "0.2.2",
|
|
4
|
+
"description": "General-purpose MCP Connector Marketplace for DeepSeek Harness with OAuth 2.0 PKCE, API key/URL, JSON import, tool discovery, prompt templates, and connection management.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"exports": {
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
"docs/MARKET-REGISTRATION.md",
|
|
22
22
|
"cordis.patch.yml",
|
|
23
23
|
"README.md",
|
|
24
|
+
"README.en.md",
|
|
24
25
|
"CHANGELOG.md",
|
|
25
26
|
"LICENSE",
|
|
26
27
|
"install.sh",
|
|
@@ -41,12 +42,22 @@
|
|
|
41
42
|
"keywords": [
|
|
42
43
|
"deepseek-harness",
|
|
43
44
|
"dsh",
|
|
45
|
+
"dsh-plugin",
|
|
44
46
|
"cordis",
|
|
45
47
|
"mcp",
|
|
48
|
+
"mcp-client",
|
|
49
|
+
"mcp-connector",
|
|
46
50
|
"connector",
|
|
51
|
+
"marketplace",
|
|
47
52
|
"oauth",
|
|
53
|
+
"oauth2",
|
|
48
54
|
"pkce",
|
|
49
|
-
"
|
|
55
|
+
"json-import",
|
|
56
|
+
"enterprise-data",
|
|
57
|
+
"qichacha",
|
|
58
|
+
"qcc",
|
|
59
|
+
"tools",
|
|
60
|
+
"prompts"
|
|
50
61
|
],
|
|
51
62
|
"license": "MIT",
|
|
52
63
|
"publishConfig": {
|