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

MCP 会话开关 ZhaoHanshao/dsh-plugin-mcp-toggles

DeepSeek Harness
ZhaoHanshao10 天前有提交已提供中文文档扫描:含敏感能力

按会话单独开关已安装的 MCP 服务器

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

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

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add ZhaoHanshao/dsh-plugin-mcp-toggles
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
dsh 原生插件 · market
暂无时间戳·判据 →
装得上吗[实装验证]—
本站尚未做安装检查
暂无时间戳·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/05·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 10 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

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

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

读写/删除本地文件发起外部网络请求
查看扫描证据(共 5 处,展示前 5 条)
  • 读取本地文件
    lib/index.js:103
    const parsed = JSON.parse(readFileSync(stateFile(), 'utf8'))
  • 写入本地文件
    lib/index.js:125
    mkdirSync(dirname(stateFile()), { recursive: true })
  • 写入本地文件
    lib/index.js:126
    writeFileSync(stateFile(), JSON.stringify(state, null, 2), 'utf8')
  • 发起网络请求
    lib/client.js:87
    const response = await fetch(`${API}/token`, { credentials: 'same-origin' })
  • 发起网络请求
    lib/client.js:97
    const response = await fetch(`${API}${path}`, {
扫描于 2026/11/5(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

在会话头部用选择器,按会话逐个开关已安装的 MCP 服务。

README

由 DeepSeek 最新模型翻译生成
dsh-plugin-mcp-toggles 为每个会话单独开关已安装的 MCP 服务器。 它解决什么 MCP 服务器在 DSH profile 里是进程级的:@deepseek-ai/dsh-mcp-client 每行连一个服务器,把 mcp__<serverName>__<tool> 注册进全局工具层。于是每个会话都看到同一批 MCP 工具 —— 想让 A 会话只用 REA、B 会话只用别的服务器,原生做不到。 装上本插件后:会话标题栏右侧出现一个 MCP 按钮,点开列出已安装的 MCP 服务器,每行一个开关,只影响当前会话。新会话默认全部开启(装上插件不会悄悄改变任何人现有的能力)。 安装 这是一个标准的 DSH bundle 包:package.json 里用 dsh.bundle.patch 声明要插入的插件行,用 dsh.client 声明 Web 端入口,没有依赖、没有构建步骤,装上即可用。
展开完整文档(README 剩余 1 节)
dsh-plugin-mcp-toggles

为每个会话单独开关已安装的 MCP 服务器。

它解决什么

MCP 服务器在 DSH profile 里是进程级的:@deepseek-ai/dsh-mcp-client 每行连一个服务器,把 mcp__<serverName>__<tool> 注册进全局工具层。于是每个会话都看到同一批 MCP 工具 —— 想让 A 会话只用 REA、B 会话只用别的服务器,原生做不到。

装上本插件后:会话标题栏右侧出现一个 MCP 按钮,点开列出已安装的 MCP 服务器,每行一个开关,只影响当前会话。新会话默认全部开启(装上插件不会悄悄改变任何人现有的能力)。

安装

这是一个标准的 DSH bundle 包:package.json 里用 dsh.bundle.patch 声明要插入的插件行,用 dsh.client 声明 Web 端入口,没有依赖、没有构建步骤,装上即可用。

在 DSH 里装进当前 profile:

plugin_manager action=install_bundle target=dsh-plugin-mcp-toggles

target 接受安装 spec,也可以写成带版本或指向仓库的形式:

plugin_manager action=install_bundle target=dsh-plugin-mcp-toggles@0.1.0
plugin_manager action=install_bundle target=github:ZhaoHanshao/dsh-plugin-mcp-toggles

装好后重启 DSH,打开任意会话即可看到按钮。若想先在本地看代码:

npm install dsh-plugin-mcp-toggles # 或 npm pack 后检查导出的文件清单

它需要宿主提供 webServer 服务与 conversation.session.header.utilities / conversation.hero.options 两个槽位,因此要求 DSH 版本不低于它开发时的 @deepseek-ai/dsh-client-ui-conversation(运行时 0.2.1-rc.3)。

用法

1. 打开任意会话 —— 或直接停在新会话页。
2. 点标题栏(新会话页则是输入卡片上方那一行)的 MCP 按钮。
3. 逐行开关,或点 全部开启 / 全部关闭。

按钮上的徽标显示当前状态:全部开启、n/m、全部关闭;部分关闭时按钮转为警示色。

两个入口,同一个开关集合

| 槽位 | 出现位置 |
| conversation.session.header.utilities | 已有会话的标题栏右侧 |
| conversation.hero.options | 新会话落地页,紧跟 workspace 与模式控件之后 |

两处必须都有:新会话页的会话页头带 hideChrome
(blank && composerPhase === 'blank',见 ConversationSession.tsx),此时整个
header 都不渲染,只挂标题栏会让按钮在新会话页上完全消失。两个槽都提供同一个 sessionId,所以在哪一处切换都是同一个会话的开关 —— 在新会话页关掉的服务器,进入对话后依然关着。

它怎么工作

agent.ctx.tools.restrict({ deny }) 是作用域内生效的全局工具掩码
(packages/core/tools/src/index.ts)。可见性、schema 投影与派发都走同一个解析器,因此被关掉的工具模型既看不到也调不到,其他会话不受影响。

- 关闭某服务器 → 把它的 mcp__<server>__ 工具加进该会话的 deny 集。
- 全部服务器都关闭时,共享的 list_mcp_resources 等资源工具一并隐藏(sharedResourceTools: false 可关掉这个联动)。
- 开关立即生效,无需重启会话或重开服务器。

开关存在哪

$DSH_HOME/mcp-toggles-state.json:

{ "bySession": { "<sessionId>": { "rea": false } } }

键是 sessionId。没有记录即视为开启 —— 只会记录「关掉」,所以新会话、以及删掉状态文件之后的会话,都回到全部开启。

配置

cordis.patch.yml 的行配置:

| 字段 | 默认 | 含义 |
| sharedResourceTools | true | 关闭全部 MCP 时是否连共享资源工具一起隐藏。 |
| extraServers | [] | 额外要认作 MCP 服务器的名字;用于服务器暂时没有注册任何工具时也能列出来。 |

已知限制

- 只管理 MCP 工具(mcp__ 前缀与共享资源工具),不动其他工具。
- 服务器列表来自 configEditor.entries() 里的 @deepseek-ai/dsh-mcp-client 行; configEditor 不可用时退回当前工具名前缀,此时没有工具的服务器不会出现在列表里。
- 开关按会话 id 保存;会话被删除后对应记录会保留(无害,不会影响其他会话)。
预览分享卡片长什么样 ↓ZhaoHanshao/dsh-plugin-mcp-toggles
分享 · DeepSeek Harness Hub
ZhaoHanshao/dsh-plugin-mcp-toggles

按会话单独开关已安装的 MCP 服务器

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部