dsh-mcp-skill-list:把机器上的 MCP、技能和 Hook 清点出来

前言

DSH 的 profile 里一般只写「装了哪些插件」,不写「这台机器实际接了什么」。想知道本项目配置的 MCP 服务器有没有真正注册上,某个技能从哪里来的、声明了哪些 hook,一个会话到底调用了哪些工具,通常得自己翻配置文件、跑脚本、查事件日志。另一个更实际的困扰是:会话进行中看到一堆工具调用,很难判断是哪一个 MCP 服务器出了力,出错时只能猜。

下面介绍的插件 jiajinyuan/dsh-mcp-skill-list 就是回答这两个问题的。它把「机器接了什么」和「会话用了什么」做成两个界面,全部只读。

这是什么

一个 DSH 插件,作者是 jiajinyuan,分类 admin-security,许可证 MIT,版本 1.0.0,平台为 DSH web,无第三方运行时依赖。它提供两个界面:侧边栏的清点面板(MCP / SKILL / HOOK 三个标签页),以及对话顶栏的用量标签页。

它解决的问题很具体:profile 不会直观地告诉你这两件事情,而排查 MCP 注册、技能来源、hook 覆盖、会话调用链时恰好需要这两个信息。

核心功能

清点面板

侧边栏图标打开主面板,分三个标签页。

MCP 标签页列出每个已配置的服务器:名称、传输方式(stdio 或 streamable-http)、启动命令行或 endpoint URL、环境变量名(只有键名,没有值),以及该服务器的工具当前是否已注册。

SKILL 标签页列出磁盘上的技能:名称、描述、whenToUse、提供方、SKILL.md 路径、声明了多少个 hook。

HOOK 标签页汇总所有 hook 声明:包括技能 frontmatter 里声明的 hooks:,以及 ~/.claude/settings.json、<cwd>/.claude/settings.json、settings.local.json 里的内容,另附宿主可 hook 的八个事件。每个名称都带复制按钮。

用量标签页

对话顶栏在「轨迹」右侧多了「工具」标签,用分段控件切换两个层级:

会话汇总:本次会话调用过的所有工具,含调用次数、错误次数、出现在多少轮里。子标签页按 TOOL / SKILL / MCP / HOOK 拆分,hook 子页还会估算每个 hook 预计触发了多少次。

轮次详情:每轮一张可折叠卡片,包括开启该轮的 prompt、该轮调用次数,以及该轮用到的工具、技能和 MCP 服务器。

MCP 工具按 mcp__<server>__<tool> 命名规则识别并归并到所属服务器,所以看到的是「哪个 MCP 服务器干了活」,而不是一串不透明的工具名。

数据来源

两个界面都是读出来的,不写任何数据。

信息 来源
MCP 服务器 profile Loader 条目中模块为 @deepseek-ai/dsh-mcp-client 的项
MCP 连通性 tools.schemas() 按 mcp__ 前缀过滤
技能 skills 服务快照,底层扫描 ~/.agents/skills、~/.dsh/skills、<cwd>/.agents/skills、<cwd>/.dsh/skills
Hook SKILL.md 里的 hooks: frontmatter,加上 Claude Code 的 settings 文件
会话用量 会话事件日志,通过 sessionQuery(tool/call、tool/result、turn/start 等)读取

环境变量在离开宿主进程之前只保留键名:值不会被序列化,不会发给浏览器,也不会进日志。

安装与启用

插件市场里一键安装。或在 DSH 会话中执行:

plugin_manager install_bundle, target: dsh-mcp-skill-list

如果拿到的是一个 checkout,用绝对路径安装:

plugin_manager install_bundle, target: <该目录的绝对路径>

宿主侧注册了两条同源只读路由:

GET /api/dsh-mcp-skill-list/inventory            # MCP 服务器、技能、hook
GET /api/dsh-mcp-skill-list/usage?sessionId=…    # 按会话和轮次统计用量

两条路由都会拒绝非 loopback 来源和跨站请求。

典型用法

配置完 MCP 或装了新技能后,打开侧边栏清点面板确认注册状态:MCP 标签页里「工具是否已注册」这列就是排查的结果;SKILL 标签页看技能来源和路径是否符合预期。

会话结束后看顶栏「工具」标签页。某个任务失败时,打开轮次详情找到对应轮次,能直接看到该轮调用了哪些工具、来自哪个 MCP 服务器、出错几次,不必再回去翻事件日志。

界面语言跟随 DSH 设置,locale/zh/en.json 内置了简体中文和英文词典,无需额外配置。

适用场景与注意

适合自己维护 profile、经常调试 MCP 和技能、需要复盘会话调用链的开发者。由于它以当前 dsh 进程的权限运行,安装前应先查看源码与许可证(MIT),确认它读取的配置路径与项目中的实际用法一致。

它依赖 DSH 的 web 平台(面板是 web client 插件)。宿主半部分只 import node:fs/promises、node:os、node:path,客户端半部分只依赖浏览器模块表里的 react,没有其他第三方运行时依赖。

最后

这个插件的价值在于把「这台机器接了什么」和「这个会话用了什么」从配置文件和事件日志里搬到可点的界面上,且全程只读、不碰环境变量的值。

目录页:https://www.skillhub.cn/plugins/jiajinyuan/dsh-mcp-skill-list

源码:https://github.com/jiajinyuan/dsh-mcp-skill-list

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜