🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

MCP 引擎管理器 danhcng3822f/dsh-mcp-kimicodeandmgr

MCP
danhcng3822f74 天前有提交已提供中文文档扫描:含敏感能力兼容 / 相关生态

自管 MCP 连接与配置,可视化设置页管理服务

28/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/18 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/danhcng3822f/dsh-mcp-kimicodeandmgr.git

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
装得上吗
本站已真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 74 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 32 处,展示前 27 条)
  • 写入本地文件
    gen.mjs:16
    mkdirSync(output, { recursive: true })
  • 写入本地文件
    gen.mjs:17
    writeFileSync(join(output, `typert.${artifact.face}.js`), artifact.js)
  • 写入本地文件
    gen.mjs:18
    writeFileSync(join(output, `typert.${artifact.face}.d.ts`), artifact.dts)
  • 写入本地文件
    gen.mjs:20
    writeFileSync(join(output, 'typert.remote-client.js'), artifact.remote.js)
  • 写入本地文件
    gen.mjs:21
    writeFileSync(join(output, 'typert.remote-client.d.ts'), artifact.remote.dts)
  • 写入本地文件
    gen.mjs:22
    writeFileSync(join(output, 'typert.remote-client.d.ts.map'), artifact.remote.dtsMap)
  • 读取本地文件
    harness-root.mjs:23
    return MARKERS.every(marker => existsSync(join(candidate, marker)))
  • 读取本地文件
    packages/dsh-mcp-mgr/src/index.ts:465
    exists: existsSync(path),
  • 读取本地文件
    packages/dsh-mcp-mgr/src/index.ts:480
    states.push({ layer: layerOf(path), path, exists: existsSync(path), writable: false })
  • 读取本地文件
    packages/dsh-mcp-mgr/src/version.ts:54
    const pkg = JSON.parse(readFileSync(new URL(relative, import.meta.url), 'utf8')) as { version?: unknown }
  • 发起网络请求
    packages/dsh-mcp-mgr/src/version.ts:71
    const response = await fetch(
  • 读取本地文件
    packages/tsdown.client.ts:238
    const source = await readFile(fileId)
  • 读取本地文件
    packages/tsdown.client.ts:279
    if (existsSync(emitted)) return emitted
  • 执行外部命令来自配置/变量
    verify.mjs:44
    const child = spawn(process.execPath, [join(root, script), ...args], {
  • 写入本地文件
    verify.mjs:148
    mkdirSync(join(workspace, '.dsh'), { recursive: true })
  • 写入本地文件
    verify.mjs:150
    writeFileSync(userMcpJsonPath(), JSON.stringify({
  • 写入本地文件
    verify.mjs:157
    writeFileSync(join(projectRoot, '.mcp.json'), JSON.stringify({
  • 写入本地文件
    verify.mjs:163
    writeFileSync(join(workspace, '.dsh/mcp.json'), JSON.stringify({
  • 删除本地文件递归
    verify.mjs:214
    rmSync(projectRoot, { recursive: true, force: true })
  • 写入本地文件
    verify.mjs:228
    writeFileSync(userMcpJsonPath(), JSON.stringify({ keepMe: 1, mcpServers: {} }), 'utf8')
  • 读取本地文件
    verify.mjs:237
    const doc = JSON.parse(readFileSync(userMcpJsonPath(), 'utf8'))
  • 写入本地文件
    verify.mjs:239
    writeFileSync(userMcpJsonPath(), JSON.stringify({ mcpServers: {} }), 'utf8')
  • 发起网络请求
    verify.mjs:525
    const { code } = await (await fetch(authorizeUrl)).json()
  • 发起网络请求
    verify.mjs:531
    await fetch(forged)
  • 发起网络请求
    verify.mjs:541
    const issued = await (await fetch(goodUrl)).json()
  • 发起网络请求
    verify.mjs:545
    const page = await fetch(callback)
  • 删除本地文件递归
    verify.mjs:798
    rmSync(home, { recursive: true, force: true })
扫描于 2026/11/3(0 天前) · 范围 全包扫描 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 自管MCP连接与配置
  • 可视化设置页管理服务
  • 三层配置

DeepSeek Harness 的 MCP 引擎与管理器。fork 自 yangfch3/dsh-mcp-mgr,MCP 层按 kimi-code 架构重写:自包含引擎、三层配置、传输驱动的状态。

README

由 DeepSeek 最新模型翻译生成
dsh-mcp-kimicodeandmgr DeepSeek Harness 的 MCP 引擎与管理器。插件自己掌管整条 MCP 链路——配置解析、传输、连接生命周期、OAuth、工具注册——并提供设置页界面。 关于本 fork 本项目 fork 自 yangfch3/dsh-mcp-mgr,原插件提供了工作区 mcp.json 发现、热同步与设置页界面。 其后 MCP 层被重写为 Kimi Code(Moonshot AI)的架构,并有两处刻意的偏离: - 自主 MCP 引擎:上游插件委托给 @deepseek-ai/dsh-mcp-client,本 fork 直接基于 @modelcontextprotocol/sdk,自己掌管传输、连接生命周期与 OAuth。这是「按服务真实状态」得以成立的前提。 - 项目级配置(如 Kimi Code):三层配置而非一层,后两层以显式工作区信任为闸。 此处不再分发 Kimi Code 源码——它仅作参考。MCP 分层、状态模型与工具命名方案的功劳归该项目。
展开完整文档(README 剩余 1 节)
dsh-mcp-kimicodeandmgr

DeepSeek Harness 的 MCP 引擎与管理器。插件自己掌管整条 MCP 链路——配置解析、传输、连接生命周期、OAuth、工具注册——并提供设置页界面。

关于本 fork

本项目 fork 自 yangfch3/dsh-mcp-mgr,原插件提供了工作区 mcp.json 发现、热同步与设置页界面。

其后 MCP 层被重写为 Kimi Code(Moonshot AI)的架构,并有两处刻意的偏离:

- 自主 MCP 引擎:上游插件委托给 @deepseek-ai/dsh-mcp-client,本 fork 直接基于 @modelcontextprotocol/sdk,自己掌管传输、连接生命周期与 OAuth。这是「按服务真实状态」得以成立的前提。
- 项目级配置(如 Kimi Code):三层配置而非一层,后两层以显式工作区信任为闸。

此处不再分发 Kimi Code 源码——它仅作参考。MCP 分层、状态模型与工具命名方案的功劳归该项目。

功能

- 三种传输:stdio、Streamable HTTP(http)、旧式 sse
- 三层配置:~/.dsh/mcp.json /.mcp.json /.dsh/mcp.json,后两层需信任工作区
- 真实状态:pending / connected / failed / disabled / needs-auth / removed,由传输事件驱动,不再从工具注册表反推
- OAuth:动态客户端注册、PKCE、本地回调服务、CSRF state 校验;令牌存于 ~/.dsh/credentials/mcp.json
- 调用级恢复:工具调用撞上断开的连接时先探活、重试一次,再重连并重发
- 热重载:文件监听发布 { upsert, remove } 差分,改一个 server 不会牵动其他连接
- 工具注册为 mcp____

MCP 服务列表

适用范围

插件由两个包组成,覆盖面不同:

| 包 | 角色 | 平台 |
| dsh-mcp-mgr | MCP 引擎:配置、传输、连接、OAuth、工具注册 | 未声明平台 |
| dsh-mcp-mgr-ui | 设置页标签 | 仅 web |

因此设置页标签仅存在于 web profile。引擎未声明平台且只注入 tools,按代码推断它在 non-web profile 也能运行(注册 mcp__ 工具,配置手改 mcp.json),但这一点未经测试——本项目的全部验证都只在 web profile 下进行。

安装

本 fork 未发布到 npm。npm 上的 dsh-mcp-mgr / dsh-mcp-mgr-ui 属于上游项目,仍指向其 0.1.x,因此 plugin add dsh-mcp-mgr@latest 装到的是上游而非本项目。请从源码安装:

git clone https://github.com/danhcng3822f/dsh-mcp-kimicodeandmgr
cd dsh-mcp-kimicodeandmgr
pnpm install
DSH_REPO= pnpm build
node scripts/install.mjs # --profile ,默认 web
npx @deepseek-ai/dsh web

scripts/install.mjs 把两个包链接进 $DSH_HOME/profiles/node_modules,并向该 profile 的 cordis.patch.yml 追加 loader 行;要求 profile 已存在,可重复执行。若装过上游插件,先卸载以免同名冲突。

卸载:

node scripts/uninstall.mjs

完整说明见 USAGE.md(英文)。

配置

优先级从低到高,后面的层会覆盖同名条目:

| 层级 | 界面显示 | 路径 | 界面可写 |
| user | 全局 | ~/.dsh/mcp.json(或 $DSH_HOME/mcp.json) | 是 |
| projectRoot | 项目 | /.mcp.json | 否 |
| project | 本地 | /.dsh/mcp.json | 否 |

项目层仅在工作区处于 git 仓库内时存在;不在仓库内则整层跳过。两个项目层 必须在设置页显式「信任此工作区」后才会加载(在此之前既不加载也不监听):项目层的 stdio 条目会执行仓库提供的命令。信任决策存于 ~/.dsh/trusted-workspaces.json。

{
"mcpServers": {
"unity": { "url": "http://localhost:8090/mcp" },
"filesystem": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "/data"] },
"legacy": { "transport": "sse", "url": "https://example.com/sse" },
"paid": { "url": "https://api.example.com/mcp", "auth": "oauth" },
"token": { "url": "https://api.example.com/mcp", "bearerTokenEnvVar": "MY_MCP_TOKEN" }
}
}

- transport 缺省时自动推断:有 command 视为 stdio,有 url 视为 http。旧式 SSE 端点因此必须显式写 "transport": "sse"
- 每条支持 enabled、startupTimeoutMs、toolTimeoutMs、enabledTools、disabledTools
- 远程条目支持 headers、bearerTokenEnvVar(只存变量名,不存令牌)、auth: "oauth"
- 不填 cwd 则 stdio 子进程在工作区目录运行。项目层的相对 cwd 相对声明它的文件解析(仓库因此无需知道自己被克隆到哪);user 层按原样传递,相对工作区解析
- 密钥不会进入浏览器:Remote 表面把 env 投影为 envKeys、headers 投影为 headerKeys
- 启动 stdio 子进程前清洗父环境(匹配 KEY|PASSWORD|SECRET|TOKEN 的变量与 DSH_);条目自己的 env 再合并到上层,故显式配置的凭据不会被清掉

开发

pnpm install
DSH_REPO= pnpm build # tsc host → gen.mjs → tsc ui → tsdown
DSH_REPO= pnpm verify

verify.mjs 全程使用真实服务器,不用 mock:

| fixture | 覆盖范围 |
| fixture-mcp-server.mjs | stdio:工具发现、env 透传、结构化结果、isError、子进程崩溃(真实断线) |
| fixture-mcp-http-server.mjs | streamable-http:bearer 注入、401 分流 |
| fixture-mcp-sse-server.mjs | 旧式 sse:双端点握手,以及传输层从不上报的「静默死亡」 |
| fixture-oauth-server.mjs | 动态注册、PKCE、state 校验、token 交换、授权后重连 |

工具桥同时在手写 registry 与真实 harness ToolRuntime 上验证,并走完整的 ctx.tools.execute() 派发;最后几节把已构建的插件包挂进真实 Cordis context,覆盖插件装配、mcpMgr 服务键、卸载回收与重载语义。

改 src/types.ts(wire 字段)后必须重跑 gen.mjs 并重打 UI bundle——严格 codec 会静默剥离未知字段。

node scripts/install.mjs
node scripts/uninstall.mjs

许可

MIT。

packages/vendor-typert-protocol 是 DeepSeek Harness 中 Typert protocol 源码的内联副本,同为 MIT。
预览分享卡片长什么样 ↓danhcng3822f/dsh-mcp-kimicodeandmgr
分享 · DeepSeek Harness Hub
danhcng3822f/dsh-mcp-kimicodeandmgr

自管 MCP 连接与配置,可视化设置页管理服务

回到顶部