duhu2000/dsh-mcp-connector ↗★ 53
dsh-mcp-connector
连接MCP服务器、跨连接检索工具并提供故障排查诊断。 适合需要接入、管理和调试各类MCP标准工具服务的用户。
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:duhu2000/dsh-mcp-connector说明文档
阅读完整 README ↗使用
- 点击左侧“MCP连接器”,或从“设置 → 插件 → 插件配置 → MCP连接器”点击“打开 MCP连接器”。
- 在市场中选择连接器,确认“当前项目”或“所有项目(全局)”,再完成授权或配置。
- 打开卡片详情,可点击示例 Prompt 的发送按钮,在当前工作区创建/复用空白会话并写入草稿。
- 在“已安装”或对话工具中查看、停用、恢复或断开连接。
- 连接后打开“工具”页,按工具名或描述查找能力,使用连接/服务筛选定位来源;授权、费用及正式调用仍由相应服务与 DSH Host 管理。
连接成功后,工具按 mcp____* 前缀提供给模型。
分类浏览、鉴权与连接状态、自定义 HTTP/stdio、JSON 导入、脱敏备份、可解释诊断、兼容矩阵、责任边界与故障排查见完整的用户手册。
配置
Bundle 默认配置位于 cordis.patch.yml:
- id: mcp-connector
name: dsh-mcp-connector
config:
catalogUrl: 'https://cdn.jsdelivr.net/gh/duhu2000/dsh-mcp-connector-registry@main/catalog.json'
persistSecrets: true
entryPrefix: mcp
refreshSkewMs: 300000
openBrowser: true
showSidebarEntry: true
compactManagementTools: false
frameAncestors: ['self']
catalogUrl 默认通过 jsDelivr CDN 读取公共 dsh-mcp-connector-registry,支持 ETag/TTL 缓存;主源失败时自动尝试 GitHub raw 备用源,再回退到上次缓存或随包内置目录。jsDelivr 的分支 URL 可能存在缓存延迟,因此 Registry 合并后的新卡片不保证秒级出现。需要离线/私有模式时可将 catalogUrl 显式设为空字符串;显式配置其他目录 URL 时不会自动切换到公共备用源。
远程目录请求(包括备用源)支持 HTTP_PROXY、HTTPS_PROXY、NO_PROXY 及其小写形式;同时存在时小写变量优先,未设置 HTTPS_PROXY 时 HTTPS 请求使用 HTTP_PROXY。代理地址须为 HTTP(S) URL;需要直连的目标可加入 NO_PROXY(例如 localhost,127.0.0.1)。Node.js 20+ 无需添加 --use-env-proxy;此行为不会修改 Host 的全局 fetch dispatcher 或 MCP 传输配置。
代理变量必须存在于正在运行的 DSH 进程中。修改后请完全退出并重启 DSH Desktop,或从已设置变量的终端启动 dsh web;修改 Windows 用户环境变量不会更新已有进程。连接器不会读取系统代理设置,也不会猜测本机代理地址。
showSidebarEntry 默认为 true。用户可在 DSH 插件配置页覆盖该值;关闭后只隐藏侧边栏快捷入口,不停用连接器、已连接 MCP Server 或工具。
compactManagementTools 默认为 false,兼容原有对话管理工具。希望降低管理工具上下文开销时,可在插件配置中设为 true 并重载插件(必要时重启 DSH),下一次推理使用新工具集:
- 只注册
mcp_connector_discover(市场、连接状态、缓存工具搜索/详情)和mcp_connector_session_tools(原有会话工具可见性管理)两个入口。 - 连接、授权、编辑、导入、快照、迁移等管理操作使用 MCP连接器界面;精简模式没有任意工具执行代理,也不自动加载全部管理工具。纯对话部署或依赖旧工具名的自动化应保持
false。 - 此开关不减少已连接服务的业务工具数量,不停用连接、不迁移凭据、不修改作用域/治理规则。业务工具需要按需可见时,仍使用原有“按会话启用”。会话确认、TTL 与 Host 审批保持不变。
- 例如发现入口可用
{"action":"search","query":"天气","limit":5};查询连接状态可用{"action":"status"}。详情使用action=detail和必填toolName,市场搜索使用action=catalog与可选keyword。 - 设回
false并重载插件可恢复旧管理工具名;不要同时运行两份插件。工具数量和 schema 大小的减少不等于实测 token 或费用节省。
frameAncestors 默认为 ['self'],即面板页面(/mcp-connector/ui/)的 CSP 只允许同源页面内嵌,是既有行为,不做任何放宽。在桌面壳(Tauri/Electron)里把面板嵌进壳窗口时,祖先源与面板自身不同源,浏览器会以 Framing '...' violates the following Content Security Policy directive: "frame-ancestors 'self'" 拦截并导致面板白屏;此时需要由部署方/用户显式追加外壳源:
frameAncestors: ['self', 'http://tauri.localhost', 'tauri://localhost']
这是有意的安全取舍,不是遗漏:frame-ancestors 无法验证嵌入方到底是谁,所以插件不会默认把 Tauri 之类的外壳源硬编码进去——写进白名单就等于允许任何跑在该源上的页面内嵌本机面板。取值只接受 CSP 关键字(self / none / *)与 host-source(https://*.example.com、127.0.0.1:3080、tauri://localhost、http://tauri.localhost:1420 等,可带 scheme、端口与路径);含 ;、逗号、空格或 'unsafe-inline' 一类非 host-source 关键字的值会被整条丢弃(避免 CSP 头注入),过滤后为空则回退 ['self'],而不是放行任意源。请只填自己信任的源。