接入外部 MCP 工具,并把原生工具反向暴露给 MCP 客户端
28/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add helibeiqi/dsh-cordis-universal-adapter该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:待复验
是什么
dsh 原生插件 · dev
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 67 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件发起外部网络请求
查看扫描证据(共 6 处,展示前 6 条)
- 发起网络请求lib/mcp-server.js:114
const webRes = await handler.fetch(webReq); - 读取本地文件lib/plugin-loader.js:99
const entries = await readdir(skillsDir, { withFileTypes: true }); - 读取本地文件lib/plugin-loader.js:116
const st = await stat(skillPath); - 读取本地文件lib/plugin-loader.js:123
const content = await readFile(skillPath, 'utf-8'); - 读取本地文件lib/plugin-loader.js:158
raw = await readFile(manifestPath, 'utf-8'); - 读取本地文件lib/plugin-loader.js:180
const mcpRaw = await readFile(mcpPath, 'utf-8');
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-tools给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 接入外部MCP服务
- 反向暴露原生工具
DeepSeek Harness 通用桥接适配器:接入外部 MCP 服务和 Agent Plugins 1.0 包,同时把 DSH 原生工具反向暴露为标准 MCP 服务。宿主编排层,双向(入站/出站)。
README
由 DeepSeek 最新模型翻译生成dsh-cordis-universal-adapter
面向 DeepSeek Harness 的双向桥接插件:消费外部 MCP 服务器与 Agent Plugins 1.0 包,并把 DSH 原生工具反向暴露为标准 MCP 服务器。
CI
npm version
License: MIT
一句话描述
在 DSH(DeepSeek Harness)的 Host 组合层 上,把 MCP 生态(服务器、Agent Plugins 1.0 包)接入 ctx.tools,同时把 ctx.tools 导出为 MCP 服务器,让同一批工具同时以 DSH 原生与 MCP 两种形态暴露。
外部 MCP 服务器 ──▶ McpClientBridge ──▶ ctx.tools(DSH 工具) Agent Plugins 1.0 ─▶ PluginLoader ─────┘ │ ▼ 外部 MCP 客户端 ◀── McpServerBridge ◀── ctx.tools.schemas()
安装
三条安装命令(按场景选择):
从 GitHub 仓库安装
dsh plugin --profile web add github:helibeiqi/dsh-cordis-universal-adapter
从 npm 安装
展开完整文档(README 剩余 1 节)
dsh-cordis-universal-adapter
面向 DeepSeek Harness 的双向桥接插件:消费外部 MCP 服务器与 Agent Plugins 1.0 包,并把 DSH 原生工具反向暴露为标准 MCP 服务器。
CI
npm version
License: MIT
一句话描述
在 DSH(DeepSeek Harness)的 Host 组合层 上,把 MCP 生态(服务器、Agent Plugins 1.0 包)接入 ctx.tools,同时把 ctx.tools 导出为 MCP 服务器,让同一批工具同时以 DSH 原生与 MCP 两种形态暴露。
外部 MCP 服务器 ──▶ McpClientBridge ──▶ ctx.tools(DSH 工具) Agent Plugins 1.0 ─▶ PluginLoader ─────┘ │ ▼ 外部 MCP 客户端 ◀── McpServerBridge ◀── ctx.tools.schemas()
安装
三条安装命令(按场景选择):
从 GitHub 仓库安装
dsh plugin --profile web add github:helibeiqi/dsh-cordis-universal-adapter
从 npm 安装
dsh plugin --profile web add dsh-cordis-universal-adapter
从本地目录安装(开发调试)
dsh plugin --profile web add "file:./dsh-cordis-universal-adapter"
平面说明:Host 组合层
本插件不是 Agent(不参与对话主循环),也不是工具本身——它是一个 Host 组合层的连接器:
- Inbound(正向):连接外部 MCP 服务器(stdio / Streamable HTTP),listTools() 后把每个 MCP 工具
注册为 ctx.tools 中的 DSH 工具(命名 mcp::);加载 Agent Plugins 1.0 包时,
解析 plugin.json + skills/*/SKILL.md + mcp.json,把 Skill 描述注入系统提示词扩展点。
- Outbound(反向):通过 ctx.tools.schemas() 枚举已注册工具,注册到 McpServer,经 serveStdio(或 HTTP)暴露给任意 MCP 客户端(命名 dsh:)。
- 路由(可选):语义路由通过 ctx.llm 的带 tools 参数的 chat 接口(function calling)为任务排序工具,失败退化为 prompt-based 选择;默认关闭,开启后每次路由产生一次 LLM 调用。
- 生命周期:所有连接由状态机(start / stop / update)管理,update 时"断开旧 → listTools → 注销旧 → 注册新",与 DSH HMR 协同;卸载时经 ctx.effect 全部回收。
支持的 DSH 版本区间
| 依赖 | 版本区间 |
| @deepseek-ai/cordis | >=0.1.0(peerDependency) |
| @deepseek-ai/dsh-tools | >=0.1.0(peerDependency) |
| Node.js | >=22.19 |
⚠️ Developer Preview 破坏性变更警告:@deepseek-ai/dsh-tools 与 MCP 均处于 Developer Preview 阶段,接口可能破坏性变更。本插件在 0.1.x 内锁定已验证的 API 形态(见 docs/DESIGN.md §14 真实 API 对齐修正与 §15 真实运行时验证发现);依赖升级导致签名变化时,请关注 CHANGELOG 中的迁移说明。
ℹ️ 已在 dsh 0.1.0-rc.6 实测通过:插件挂载进配置树、真实连接 filesystem MCP 服务器(注册 14 个工具)、 Agent 调用其工具返回真实结果、单服务器故障隔离。注意 dsh bundle 要求 package.json 中 dsh.bundle 为对象形式({ "patch": "./cordis.patch.yml" }),且 patch 文件为顶层 YAML 数组语法。
配置字段表
cordis.patch.yml 插件段(完整示例见仓库内 cordis.patch.yml):
| 字段 | 类型 | 默认值 | 必填 | 说明 |
| servers[] | array | [] | 否 | 外部 MCP 服务器列表 |
| servers[].id | string | — | 是 | 唯一标识([A-Za-z0-9_-]),用于工具命名空间与状态跟踪 |
| servers[].transport | 'stdio' \| 'http' | — | 是 | 传输类型 |
| servers[].command | string | — | stdio 时必填 | 子进程命令(如 npx) |
| servers[].args | string[] | [] | 否 | 子进程参数 |
| servers[].env | record | — | 否 | 附加环境变量(凭据不落日志) |
| servers[].url | string | — | http 时必填 | Streamable HTTP 端点 |
| servers[].headers | record | — | 否 | 静态请求头(支持 ${ENV_VAR} 插值) |
| servers[].requestTimeoutMs | number | 30000 | 否 | callTool/listTools 超时 |
| servers[].connectTimeoutMs | number | 10000 | 否 | 连接握手超时 |
| pluginDirs[] | array | [] | 否 | Agent Plugins 1.0 包目录 |
| export.enabled | boolean | false | 否 | 是否反向导出 DSH 工具 |
| export.transport | 'stdio' \| 'http' | 'stdio' | 否 | 导出传输 |
| export.name | string | 'dsh-export' | 否 | 导出服务器名 |
| export.namespace | string | 'dsh' | 否 | Outbound 工具前缀 |
| export.httpPort | number | 0 | 否 | HTTP 端口(0=随机) |
| export.tools | string[] | — | 否 | 显式导出清单(仅当 schemas() 为空时生效的退化选项) |
| router.enabled | boolean | false | 否 | 语义路由开关(开启产生 LLM 开销) |
| router.mode | 'auto' \| 'tools' \| 'prompt' | 'auto' | 否 | auto=优先 tools 失败退 prompt |
| router.maxTools | number | 10 | 否 | 返回工具数上限 |
| router.minScore | number | 0 | 否 | 分数下限过滤 |
| router.provider / router.model | string | env DSH_ROUTER_PROVIDER / DSH_ROUTER_MODEL | 否 | 路由 LLM 路由 |
| naming.conflictStrategy | 'error' \| 'prefix' | 'prefix' | 否 | 工具名冲突策略 |
| naming.prefixSeparator | string | ':' | 否 | 命名空间分隔符 |
| schema.strict | boolean | false | 否 | true=无法转换的 JSON Schema 拒绝注册;false=降级宽松校验 |
| logging.level | 'silent' \| 'error' \| 'warn' \| 'info' \| 'debug' | 'info' | 否 | 日志级别 |
端到端示例:加载社区 filesystem MCP 服务器
cordis.patch.yml
plugins:
dsh-cordis-universal-adapter:
servers:
- id: filesystem
transport: stdio
command: npx
args: ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"]
启动后,DSH 中将出现 mcp:filesystem:read_directory、mcp:filesystem:write_file 等工具, Agent 可以直接调用:
用户:读取 /tmp 目录下有哪些文件 Agent → 调用 mcp:filesystem:read_directory({ path: "/tmp" }) → 返回目录列表
dsh --profile web --dump-config # 确认插件正确挂载进配置树
反向导出示例:把 DSH 原生工具导出为 MCP 服务器
plugins:
dsh-cordis-universal-adapter:
export:
enabled: true
transport: stdio
namespace: dsh
DSH 中所有已注册工具(ctx.tools.schemas())将以 dsh: 暴露。任意 MCP 客户端(Claude Desktop、其他 Harness、@modelcontextprotocol/inspector)连接该 stdio 端点后即可调用:
在 DSH 进程内加载本插件(export.enabled=true),然后在外部:
npx @modelcontextprotocol/inspector # 选择 stdio 模式连接 DSH 进程
独立调试可用仓库自带脚本(不依赖 DSH 运行时,演示转换链路):
npx tsx scripts/export-mcp.ts # 启动 stdio 演示服务器(dsh:echo / dsh:add / dsh:fail)
开发调试
npm install
npm run typecheck # tsc --noEmit(含 tests/scripts)
npm run lint # ESLint(零警告)
npm run test # Vitest(核心模块覆盖率 ≥ 80%)
npm run build # 产出 lib/
npm pack --dry-run # 检查 tarball 只含 lib/ + README + LICENSE
调试要点:
- 日志脱敏:env / headers / URL 凭据永不写入日志;Authorization 用 ${ENV_VAR} 插值。
- 状态查看:监听 universal-adapter/status 事件(ctx.on)可跟踪每个 server 的连接状态机。
- 单服务器故障隔离:一个外部 MCP 服务器连接失败只影响自身(状态 error),不阻断其他服务器与导出。
- HMR:插件 apply 重跑时旧 ctx.effect cleanup 自动执行;配置热更优先走 update()。
已知限制
1. JSON Schema → DSH DSL 仅支持常用子集:$ref / 循环引用 / 复杂 oneOf 降级为宽松校验(schema.strict: false 时工具仍注册,入参不校验)。
2. Streamable HTTP 认证:仅支持静态头(Bearer token),OAuth 动态流程不在 0.1 范围。
3. 反向导出返回值:DSH 工具返回值必须是 JSON 可序列化值;二进制 / 流式输出不支持。
4. 路由开销:router.enabled: false 时零 LLM 开销;开启后每次路由一次 LLM 调用,且不缓存。
5. 跨 server 工具名唯一性:依赖 serverId 前缀保证;serverId 冲突会导致注册报错(按 naming.conflictStrategy 处理)。
6. 不实现沙箱:外部 MCP 服务器的隔离依赖其宿主进程边界(stdio 子进程 / 远程 HTTP 服务)。
GitHub 仓库发布步骤
1. 推送公开 GitHub 仓库(helibeiqi/dsh-cordis-universal-adapter)
2. 添加 topic:dsh-plugin、deepseek-harness、agent-plugin、mcp、cordis
3. npm login && npm publish
4. 在 DSH 社区 Discussions 宣布发布
License
MIT © dsh-cordis-universal-adapter contributors预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
helibeiqi/dsh-cordis-universal-adapter
接入外部 MCP 工具,并把原生工具反向暴露给 MCP 客户端
相关插件 · 开发 / 工程
隐私简历生成器reactive-resume/reactive-resume
Reactive Resume 已迁至 GitHub 上的…
★ 45,288已汉化MCP
71.7
长时任务执行闭环AMAP-ML/LongHorizon-Harness
面向 Computer-Use Agent 的 Loop Engineering
★ 1,764已汉化DSH
70.5
多代理编排运行时Enderfga/claw-orchestrator
面向编程智能体的运行时。把 Claude Code、Codex、Antigravity、Grok…
★ 586已汉化MCP
69.4
记忆进化插件csyangwen/dsh-memory-evolve
dsh-memory-evolve 使用场景指南
★ 461已汉化DSH
67.9
原生编程智能体paean-ai/deeptide
由 DeepSeek 打造,为 DeepSeek 而生。
★ 1,107已汉化DSH
67.7
多引擎接力台emo-xiaoyu/harness-mix
macOS/Linux 已加入源码构建与启动适配;目标系统的完整桌面验收仍需在对应机器执行。安装方式、Linux…
★ 419已汉化DSH
66.8
这是你的仓库?认领条目