D

dsh-mcp-connector

github.com/duhu2000/dsh-mcp-connector

v0.2.70 市场与管理 可执行外部程序以 shell 执行命令发起网络请求

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.

该插件尚未翻译,显示作者原文。

deepseek-harnessdeepseekharnessdshdsh-plugincordismcpmcp-client
分类
market
发布
2026-10-08
版本
v0.2.70

检测报告

关注度高。命中了不少能力模式,其中可能有需要留意的。逐条看下面的清单。
2高关注3需留意4一般15未命中
高关注需留意一般

能力清单

  • 可执行外部程序spawns-processes高关注3 处命中
    • lib/cli-providers.js:1import { spawn } from 'node:child_process';
    • lib/stdio-startup-guard.js:4import { spawn } from 'node:child_process';
    • lib/util.js:4import { spawn } from 'node:child_process';
    • 看它调用哪些程序。调用本机已有的工具是常见做法。
  • 以 shell 执行命令shell-exec高关注1 处命中
    • docs/USER-GUIDE.md:371Windows 下 `.cmd` / `.bat` 是脚本包装器,不等同于可直接启动的 `.exe`;PowerShell 中能运行包装器,不代表无 shell 的进程启动也能运行它。若诊断指向包装器,按该服务文档选择原生可执行文件,或用 …
    • 看命令字符串是拼出来的还是写死的。拼接用户输入才是真正的风险。
  • 发起网络请求network需留意11 处命中
    • lib/catalog.js:151const response = await fetch(catalogUrl, { headers, signal: controller.signal });
    • lib/client.js:467const response = await window.fetch("/mcp-connector/api", {
    • lib/client.js:518return readResponse(await window.fetch(path, {
    • lib/client.js:529const response = await window.fetch(capabilitiesUrl, { headers: { accept: "application/json" } });
    • 看请求发往哪些域名。发往作者自己的后端是常见做法。
  • 写入文件writes-files需留意6 处命中
    • lib/grant-journal.js:40await handle.writeFile(`${JSON.stringify(document, null, 2)}\n`, 'utf8');
    • lib/grant-journal.js:45await rename(temp, path);
    • lib/grant-journal.js:82await mkdir(this.rootDir, { recursive: true, mode: 0o700 });
    • lib/grant-journal.js:158await handle.writeFile(JSON.stringify({ owner, pid: process.pid, createdAt: Date.now() }), 'utf8');
    • 看写入位置。写自己的配置目录是正常的,写系统目录不是。
  • 可终止进程kills-processes需留意1 处命中
    • lib/stdio-startup-guard.js:43try { process.kill(-child.pid, 'SIGKILL'); } catch { child.kill('SIGKILL'); }
    • 看它终止的是自己启动的进程,还是按名字匹配到的任意进程。
  • 接触凭据或密钥credentials一般495 处命中
    • lib/catalog.js:11const SECRET_KEY_RE = /^(?:access[-_]?token|refresh[-_]?token|token|api[-_]?key|secret|client[-_]?secret|password|author…
    • lib/catalog.js:12const SECRET_ENV_RE = /(?:token|secret|api[_-]?key|password|authorization|credential)/i;
    • lib/catalog.js:19// credentialBindings 的 key 是待注入的环境变量名,value 只能是凭据字段引用;
    • lib/catalog.js:21if (key === 'credentialBindings') continue;
    • 看它读取哪些凭据、发往哪里。用于登录自己的服务是正常的。
  • 读取文件reads-files一般20 处命中
    • lib/catalog.js:35const raw = readFileSync(new URL('../catalog/catalog.json', import.meta.url), 'utf8');
    • lib/cli-providers.js:308if (existsSync(native) && statSync(native).isFile()) return native;
    • lib/cli-providers.js:309if (existsSync(path.join(dir, 'dws.cmd'))) sawShim = true;
    • lib/cli-providers.js:314if (!existsSync(path.join(root, 'package.json'))) continue;
    • 读文件是绝大多数插件的正常工作方式,本身不构成顾虑。
  • 读取环境变量reads-env一般10 处命中
    • lib/cli-providers.js:267command: assertSafeExecutable(options.executable ?? process.env.DSH_MCP_DINGTALK_DWS_BIN ?? provider.executable),
    • lib/cli-providers.js:282command: assertSafeExecutable(options.executable ?? process.env.DSH_MCP_DINGTALK_DWS_BIN ?? provider.executable),
    • lib/cli-providers.js:298const env = options.env ?? process.env;
    • lib/cli-providers.js:340env: options.env ?? process.env,
    • 环境变量里常混有密钥。看它是否把整个 env 都读走。
  • 文中出现远程脚本地址remote-url-reference一般3 处命中
    • README.en.md:116bash <(curl -fsSL https://raw.githubusercontent.com/duhu2000/dsh-mcp-connector/main/install.sh)
    • README.md:117bash <(curl -fsSL https://raw.githubusercontent.com/duhu2000/dsh-mcp-connector/main/install.sh)
    • docs/USER-GUIDE.md:27bash <(curl -fsSL https://raw.githubusercontent.com/duhu2000/dsh-mcp-connector/main/install.sh)
    • 只是文本里出现了远程脚本地址,没有看到加载它的调用。多半是文档或注释;若确实可疑,搜一下这个地址在包里的其他出现位置。
逐条扫描明细
能力标识关注度命中次数
可执行外部程序spawns-processes高关注3
以 shell 执行命令shell-exec高关注1
发起网络请求network需留意11
写入文件writes-files需留意6
可终止进程kills-processes需留意1
接触凭据或密钥credentials一般495
读取文件reads-files一般20
读取环境变量reads-env一般10
文中出现远程脚本地址remote-url-reference一般3

这份报告的口径

扫描读的是包里的源码,全程不执行第三方代码。 本次读了 75 个文件,扫描于 2026-10-15。 命中次数只说明源码里出现过这类调用,不说明行为好坏——一个插件读写文件 500 次和 1 次 都会被记为「读取文件」。这是能力清单,不是信任评分,也不是安全结论: 没扫出来的能力可能只是写法没被规则覆盖。

依赖安全公告

这个插件声明的依赖中,有 1 条已公开的安全公告 (最高等级:低):

等级依赖包编号摘要
低zodCVE-2023-4316Zod denial of service vulnerability
修复版本:3.22.3 详情 →

查询的是依赖声明范围的下界(如 ^4.2.0 查 4.2.0), 不是实际安装到的版本。真正装的时候如果解析到了修复版本,就不受影响—— 所以这是「可能受影响」,不是「这个插件有漏洞」。数据来自 OSV.dev。

← 返回全部插件