dsh-netcatty
用于连接 Netcatty 官方 External MCP 服务的 DeepSeek Harness 插件。SSH 凭据、连接会话、操作审批、终端执行、SFTP、Vault 数据和端口转发仍全部由 Netcatty 管理;本插件只负责发现 Netcatty 自带的 launcher,并把 Netcatty 暴露的工具注册到 DSH。
环境要求
- DeepSeek Harness 已提供
@deepseek-ai/dsh-mcp-client0.1.0-rc.7 或更高版本。 - Netcatty 1.1.80 或更高版本。
- 在 Netcatty 的 设置 > AI > 对外 MCP 中启用 External MCP。
- DSH 调用工具期间保持 Netcatty 运行,推荐选择常开模式。
安装
dsh plugin --profile web add https://github.com/qq739844663/dsh-netcatty安装后重启 DSH Web Host。Netcatty 工具会以 mcp__netcatty__ 前缀注册。
安装到 headless profile:
dsh plugin --profile headless add https://github.com/qq739844663/dsh-netcatty工作方式
1. 插件在标准安装目录中自动查找 Netcatty 自带的 netcatty-external-mcp launcher。 2. 插件内置的小型 stdio supervisor 负责转发 MCP 流量,并在插件卸载时终止完整子进程树;Windows 按官方 launcher 约定直接使用 Netcatty 自带 runtime,避免 shell 解析自定义路径,macOS 和 Linux 直接执行 launcher。 3. DSH 官方 MCP 客户端发现 Netcatty 当前提供的工具,并把它们注册到 netcatty namespace。 4. 受保护操作仍由 Netcatty 的 External MCP 权限模式控制,审批请求继续在 Netcatty 中显示。
本插件不会解析 Netcatty Vault,不会读取已保存的 SSH 密码或私钥,也不会复制 discovery token。短期 discovery 文件只由 Netcatty 官方 launcher 自行读取。
自定义安装路径
Netcatty 不在标准位置时,请在启动 DSH 前设置 NETCATTY_MCP_LAUNCHER:
$env:NETCATTY_MCP_LAUNCHER = 'D:\Apps\Netcatty\resources\app.asar.unpacked\electron\cli\netcatty-external-mcp.cmd'
dsh web使用非默认 Netcatty profile 时,还可以把 NETCATTY_EXTERNAL_MCP_DISCOVERY_FILE 指向对应 profile 的 external-mcp/discovery.json。显式 launcher 路径属于受信任的可执行输入,只能配置为你已安装并确认可信的文件。
也可以在 DSH profile 的 override patch 中逐 profile 配置:
- id: netcatty-external-mcp
config:
launcherPath: D:\\Apps\\Netcatty\\resources\\app.asar.unpacked\\electron\\cli\\netcatty-external-mcp.cmd
discoveryFile: C:\\Users\\me\\AppData\\Roaming\\Netcatty\\external-mcp\\discovery.json
toolCallTimeoutMs: 120000
failOnStartupError: false
reconnect:
enabled: true
initialDelayMs: 1000
maxDelayMs: 30000
maxAttempts: 10failOnStartupError: false 是默认值;未安装 Netcatty 时,DSH profile 会继续运行,但不会提供 Netcatty 工具。安装或启用 Netcatty 后需要重启 DSH。
故障排查
- 找不到 launcher: 安装 Netcatty,或设置
NETCATTY_MCP_LAUNCHER。 - 找不到 discovery 文件: 在 Netcatty 中启用对外 MCP,并保持应用运行。
- 启用后 DSH 中仍没有工具: 重启 DSH Host,让 MCP 客户端重新执行初始工具发现。
- 写操作等待审批: 在 Netcatty 中审核请求;插件不会绕过 Netcatty 的权限策略。
开发验证
npm test
npm pack --dry-run许可证
MIT