dsh-mcp-connector 0.2.77 → 0.2.78
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 +12 -0
- package/README.en.md +1 -1
- package/README.md +1 -1
- package/docs/USER-GUIDE.md +12 -0
- package/lib/client.js +20 -5
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
本项目遵循 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/);首个公开版本从 `0.1.0` 开始。
|
|
4
4
|
|
|
5
|
+
## [0.2.78] - 2026-10-22
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
- 将版本检查 API 的 401、403、404、5xx 和异常 JSON 响应区分为可操作的提示,避免把所有失败笼统显示为插件 API 不可用;不向界面回显代理正文或敏感响应信息。
|
|
10
|
+
- 补充 NAS / 反向代理诊断指引和回归测试,保留 Host/Origin 安全边界。
|
|
11
|
+
|
|
12
|
+
### Scope
|
|
13
|
+
|
|
14
|
+
- 本版本改进 #172 的诊断,不宣称已修复或实机验证飞牛 NAS 的部署路由问题;该 Issue 保持开放。
|
|
15
|
+
- 不包含暂缓的国际化 PR #174 或待验收的启动加固 PR #168。
|
|
16
|
+
|
|
5
17
|
## [0.2.77] - 2026-10-22
|
|
6
18
|
|
|
7
19
|
### Security
|
package/README.en.md
CHANGED
|
@@ -225,7 +225,7 @@ npm run dev:ui
|
|
|
225
225
|
|
|
226
226
|
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.
|
|
227
227
|
|
|
228
|
-
The current public version is [`dsh-mcp-connector@0.2.
|
|
228
|
+
The current public version is [`dsh-mcp-connector@0.2.78`](https://www.npmjs.com/package/dsh-mcp-connector), with [GitHub Release v0.2.78](https://github.com/duhu2000/dsh-mcp-connector/releases/tag/v0.2.78).
|
|
229
229
|
|
|
230
230
|
See [CHANGELOG.md](CHANGELOG.md) for version history and [docs/DESKTOP-E2E.md](docs/DESKTOP-E2E.md) for the Desktop release checklist.
|
|
231
231
|
|
package/README.md
CHANGED
|
@@ -220,7 +220,7 @@ npm run dev:ui
|
|
|
220
220
|
|
|
221
221
|
公共 Registry 每次合并后会生成 `catalog-stats.json`;本仓库的定时工作流每小时同步中英文介绍和统计快照。npm 页面中的静态正文随版本发布更新,上方动态统计徽标则直接读取 Registry,可在不发布新 npm 版本时保持实时数量一致。
|
|
222
222
|
|
|
223
|
-
当前公开版本为 [`dsh-mcp-connector@0.2.
|
|
223
|
+
当前公开版本为 [`dsh-mcp-connector@0.2.78`](https://www.npmjs.com/package/dsh-mcp-connector),对应 [GitHub Release v0.2.78](https://github.com/duhu2000/dsh-mcp-connector/releases/tag/v0.2.78)。
|
|
224
224
|
|
|
225
225
|
版本能力与变更记录见 [CHANGELOG.md](CHANGELOG.md)。
|
|
226
226
|
Desktop 发版回归见 [docs/DESKTOP-E2E.md](docs/DESKTOP-E2E.md)。
|
package/docs/USER-GUIDE.md
CHANGED
|
@@ -384,6 +384,18 @@ Windows 下 `.cmd` / `.bat` 是脚本包装器,不等同于可直接启动的
|
|
|
384
384
|
|
|
385
385
|
修正后重新启动 DSH(如变更了进程环境),在连接详情点击“重新检查”,确认工具发现结果。反馈时只提交版本、脱敏后的诊断代码、退出码和必要日志;不要上传 Token、API Key、完整环境变量或个人路径。
|
|
386
386
|
|
|
387
|
+
### NAS / 反向代理下版本检查 API 不可用
|
|
388
|
+
|
|
389
|
+
顶部版本检查失败不等于全部连接器失效,也不等于 npm 故障。先检查浏览器开发者工具中同源 `POST /mcp-connector/api`(`method: versionStatus`)的 HTTP 状态:
|
|
390
|
+
|
|
391
|
+
- **401**:确认 DSH 登录会话有效,重新登录后重试。
|
|
392
|
+
- **403**:核对宿主声明的可信访问地址(含端口)及代理转发的 Host/Origin;不要关闭校验、信任任意来源或自动放行整个局域网。
|
|
393
|
+
- **404**:检查插件路由是否挂载,反向代理是否正确转发 `/mcp-connector/api`。
|
|
394
|
+
- **5xx**:查看 DSH 和代理服务日志。
|
|
395
|
+
- **200 但不是正确 JSON**:可能返回了登录页或代理兜底页面,检查路由和登录状态。
|
|
396
|
+
|
|
397
|
+
上述状态只能缩小排查范围,不能单独证明根因。反馈时提供 DSH/插件版本、Docker 或原生部署、IP/域名/反向代理访问方式、HTTP 状态和响应内容类型;保持脱敏后 Host/Origin 的协议与端口关系。不要公开 Token、Cookie、完整 HAR、完整响应正文或个人网络地址。
|
|
398
|
+
|
|
387
399
|
### 为什么显示“状态未知”
|
|
388
400
|
|
|
389
401
|
这表示插件没有足够证据确认健康或失败,常见于 DSH 刚重启、尚未执行健康检查,或当前 Host 无法读取 stdio 工具注册状态。先点击“刷新连接器目录”;若仍为未知,在该连接(或详情页)点“重新连接”重建 Host 侧条目——Host 的 mcp-client 在连续重连失败后会注销工具且不再自发重试,只有重建条目才能恢复。若重建后依旧未知,再根据诊断的 `code` 和建议查看 Host 日志或升级 Host。不要把“状态未知”理解为“已连接”。
|
package/lib/client.js
CHANGED
|
@@ -463,15 +463,28 @@ window.__ModuleLoader__.load({
|
|
|
463
463
|
return mount;
|
|
464
464
|
}
|
|
465
465
|
|
|
466
|
+
function versionApiFailureMessage(status) {
|
|
467
|
+
const prefix = "插件版本检查 API 不可用";
|
|
468
|
+
if (status === 401) return `${prefix}(HTTP 401):请重新登录 DSH 后重试`;
|
|
469
|
+
if (status === 403) return `${prefix}(HTTP 403):请检查 DSH 可信访问地址及反向代理 Host/Origin 配置,不要关闭安全校验`;
|
|
470
|
+
if (status === 404) return `${prefix}(HTTP 404):请检查插件路由是否加载,以及反向代理是否转发 /mcp-connector/api`;
|
|
471
|
+
if (Number.isInteger(status) && status >= 400 && status <= 599) return `${prefix}(HTTP ${status}):请检查 DSH 服务和反向代理日志`;
|
|
472
|
+
return `${prefix}:响应格式不正确,请检查登录状态、反向代理和插件版本兼容性`;
|
|
473
|
+
}
|
|
474
|
+
|
|
466
475
|
async function fetchVersionStatus(force = false) {
|
|
467
476
|
const response = await window.fetch("/mcp-connector/api", {
|
|
468
477
|
method: "POST",
|
|
469
478
|
headers: { "content-type": "application/json" },
|
|
470
479
|
body: JSON.stringify({ method: "versionStatus", params: { force } })
|
|
471
480
|
});
|
|
472
|
-
|
|
473
|
-
if (!response.ok
|
|
474
|
-
|
|
481
|
+
// Classify HTTP errors before parsing: a proxy may return an HTML login/error page.
|
|
482
|
+
if (!response.ok) throw new Error(versionApiFailureMessage(response.status));
|
|
483
|
+
let result;
|
|
484
|
+
try { result = await response.json(); }
|
|
485
|
+
catch { throw new Error(versionApiFailureMessage()); }
|
|
486
|
+
if (result?.ok !== true || !result.detail || typeof result.detail !== "object" || Array.isArray(result.detail)) {
|
|
487
|
+
throw new Error(versionApiFailureMessage());
|
|
475
488
|
}
|
|
476
489
|
return result.detail;
|
|
477
490
|
}
|
|
@@ -1207,7 +1220,9 @@ window.__ModuleLoader__.load({
|
|
|
1207
1220
|
console.warn("[mcp-connector] plugin update check failed:", error);
|
|
1208
1221
|
if (!disposed) {
|
|
1209
1222
|
setVersionCheckBusy(false);
|
|
1210
|
-
|
|
1223
|
+
// Only expose our fixed diagnostic text; never echo proxy bodies or URLs/tokens.
|
|
1224
|
+
setVersionCheckFailed(error instanceof Error && error.message.startsWith("插件版本检查 API 不可用")
|
|
1225
|
+
? error.message : "插件版本检查 API 请求失败:请检查网络、DSH 服务和反向代理连接");
|
|
1211
1226
|
schedule(VERSION_CHECK_RETRY_MS);
|
|
1212
1227
|
}
|
|
1213
1228
|
});
|
|
@@ -1668,7 +1683,7 @@ window.__ModuleLoader__.load({
|
|
|
1668
1683
|
versionCheckFailed && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
1669
1684
|
className: "mcpConnectorUpdateStatus",
|
|
1670
1685
|
"data-tone": "error",
|
|
1671
|
-
children: versionCheckFailed === "
|
|
1686
|
+
children: typeof versionCheckFailed === "string" && versionCheckFailed !== "npm" ? versionCheckFailed : "暂时无法确认 npm 最新版本,请重试"
|
|
1672
1687
|
}),
|
|
1673
1688
|
versionStatus?.releasePending && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
1674
1689
|
className: "mcpConnectorVersion",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-mcp-connector",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.78",
|
|
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",
|