Skill Shelf (Rust singleton daemon)

io.github.halflifezyf2680由 GitHub 账号 halflifezyf2680 发布v2.0.5更新于 Oct 28, 2026

Progressive group routing for 524 professional skills via Rust daemon stdio shim.

发布方自己的服务:rust.wiki

概览

AI 生成的概览

本地技能库:Rust 守护进程通过 7 个 MCP 工具按需提供 524 个专业技能,让上下文保持精简。

可以做什么
  • 浏览技能架:列出技能分组及组内技能,并返回状态信息
  • 按关键词搜索整个技能库,支持语言回退与中文分词
  • 读取技能摘要,或读取完整正文、参考文件与资源
  • 从本地目录安装技能包并校验完整性,可选择清理有问题的技能
  • 创建、更新或删除存储分组,并在分组之间移动技能
适用场景
适合希望助手调用大量专业技能或团队自有经验沉淀,又不想让数百条技能描述常驻上下文的场景。也适合多个 MCP 客户端共享同一份技能索引与同一个后台进程的配置。
运行要求
以 stdio 在本地运行,由 Node.js 转发层启动内置的 Rust 守护进程;发布包已含对应平台二进制,无需安装 Rust。可选环境变量:SKILL_SHELF_ROOT、SKILL_SHELF_SEARCH_LIMIT、SKILL_SHELF_MAX_RELATED_SKILLS、SKILL_SHELF_WATCH。仅支持桌面 MCP 客户端。
安装前请注意
写入类工具会改动本地数据:install_skills 会新增技能包,validate_skills 在 clean=true 时会删除有问题的技能,manage_group 可删除分组,reclassify_skill 会移动目录并改写 frontmatter。安装的技能可能包含脚本与参考文件,导入前应先行审查。未声明任何凭据或网络访问。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Skill Shelf (Rust singleton daemon),将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

Skill Shelf

上千个专业技能,只占 context 7 个工具定义。

给 AI agent 装 skill,最痛的问题是:skill 越多,context 越胖。每个 skill 的 description 常驻上下文,几百个 skill 就是几万 tokens 白白浪费,每次对话都背着跑。开多个客户端还各跑各的进程,内存翻倍。更烦的是,装了一堆 skill 自己都记不住哪个是干嘛的、哪些真的好用哪些是花架子,最后还是全靠人去翻文档。

Skill Shelf 连这个问题一起解决了:LLM 看见 MCP 工具就会自己去查、自己去用。你不需要记住每个 skill 的内容,也不需要判断什么时候该用——LLM 遇到合适的场景自己会去搜索和加载。

Skill Shelf 的解法:skill 全部存本地仓库,context 里只有 7 个工具定义。需要时搜索加载,不需要时零开销。Rust 单例 daemon,一个进程服务所有 MCP 客户端——Claude Code、Codex、Cursor、Windsurf 同时开也只有一个后台进程。

不只是用内置的几百个 skill 和 group。工作中积累的经验、踩过的坑、反复用的工作流,都可以整理成 skill 入库——一份 Markdown 文件就是一个 skill。内置的 18 个组不够用就自己建,manage_group 创建自定义分组,install_skills 批量入库。把自己团队的 know-how 变成可复用的 skill 库。

安装

从 GitHub Release 使用

下载与你的平台匹配的 release 包并解压:

text
skill-shelf-vX.Y.Z-windows-x64.zipskill-shelf-vX.Y.Z-windows-arm64.zipskill-shelf-vX.Y.Z-linux-x64.tar.gzskill-shelf-vX.Y.Z-linux-arm64.tar.gzskill-shelf-vX.Y.Z-macos-x64.tar.gzskill-shelf-vX.Y.Z-macos-arm64.tar.gz

MCP 客户端配置:

json
{  "mcpServers": {    "skill-shelf": {      "command": "node",      "args": ["D:/Tools/Skill-Shelf/bin/skill-shelf.js", "mcp"]    }  }}

release 包已经内置对应平台的 Rust daemon 二进制,不需要安装 Rust 或执行 cargo build。

从源码使用

bash
git clone https://github.com/halflifezyf2680/Skill-Shelf.gitcd Skill-Shelfnpm installnpm run rust:build

MCP 客户端配置:

json
{  "mcpServers": {    "skill-shelf": {      "command": "node",      "args": ["D:/AI_Project/Skill-Shelf/bin/skill-shelf.js", "mcp"]    }  }}

也可以先 npm link,再使用 npm bin:

bash
npm link
json
{  "mcpServers": {    "skill-shelf": {      "command": "skill-shelf",      "args": ["mcp"],      "cwd": "/your/path/to/Skill-Shelf"    }  }}

支持 Claude Code(~/.claude.json)、Claude Desktop(claude_desktop_config.json)、Cursor、Windsurf 等所有 MCP 兼容客户端。每个客户端各自启动一个 stdio shim,共享同一个 daemon 进程。

首次调用时 stdio shim 会自动拉起 Rust daemon。多个 MCP 客户端会共享同一个 daemon,不需要分别管理后台进程。

使用

配置完成后,在 MCP 客户端里先调用:

text
browse_shelf()

正常结果应包含:

json
{  "groupsCount": 18,  "totalSkills": 524,  "watcherStatus": {    "running": true  }}

常用流程:

text
browse_shelf()  → 看到 group catalog  → browse_shelf(group="marketing", limit=10)  → read_skill(skill="微信公众号运营")

如果不知道该进哪个组,直接搜索:

text
search_skills(query="运营 用户 增长 活动 社群 内容 数据", limit=10)

安装自己的 skill 包:

text
install_skills(sourcePath="/path/to/my-skills")validate_skills()

如果你希望把 skill 库放到包目录以外的位置,设置 SKILL_SHELF_ROOT。例如:

json
{  "mcpServers": {    "skill-shelf": {      "command": "node",      "args": ["D:/AI_Project/Skill-Shelf/bin/skill-shelf.js", "mcp"],      "env": {        "SKILL_SHELF_ROOT": "D:/SkillShelf/hub"      }    }  }}

架构

Claude Code (stdio shim) ─┐Claude Desktop (stdio)    ├─→ Rust daemon (单进程, 单端口) → 本地 skill 仓库Cursor / Windsurf / ...  ─┘
  • 单进程: 整个仓库只有一个 Rust daemon 在跑,不会因为开多个客户端就跑出几十个 Node 进程
  • stdio shim: 每个 MCP 客户端启动一个极轻量的 shim 进程(只做 stdin↔IPC 转发),真正的业务逻辑全在 daemon 里
  • 共享状态: 所有客户端共享同一个 skill 索引和缓存,热重载一次全局生效
  • workspace 隔离: 不同 SKILL_SHELF_ROOT 的配置各自独立,互不干扰

路由协议

browse_shelf()                ← Level 1: group catalog(name + description + count)  │  ├─ 选定 group → browse_shelf(group="engineering") → skill summaries  │  ├─ 选定 skill → read_skill(skill) → 默认返回 summary  │                  └─ 需要全文 → read_skill(skill, full=true)  │  └─ 组路由不足时 → search_skills(query) 作为兜底       │       ▼search_skills(query)          ← fallback: 直接按关键字兜底定位

先看组,再看组内 skill,最后才用 search_skills 兜底。

语言策略

搜索会先用用户语言尝试,没结果时再换英文重试。skill 作者无需为每个 skill 写多语言 description。

中文搜索

search_skills 支持两种输入方式:

  1. 空格分词(推荐):品牌 视觉 设计
  2. 连续输入(兜底):品牌设计视觉 — 自动切分为 CJK bigram,匹配精度略低于手动分词

工具清单(7 个)

只读

工具用途
browse_shelf不传参返回 group catalog + 状态信息;传 group 返回组内 skill summaries
search_skills兜底搜索全部 skill,返回 top N 匹配结果
read_skill默认读取 skill summary;full=true 时读取完整正文、资源、参考文件

写操作

工具用途
install_skills从目录安装 skill 包(支持新建和 LLM 辅助分组)
validate_skills校验完整性;clean=true 时自动删除有问题的 skill
manage_group创建/更新/删除存储组(mode: create/update/delete)
reclassify_skill将 skill 移至新的组(更新 frontmatter + 移动目录 + 重建索引)

组体系

18 个内置组:

engineering · design · product · project-management · marketing · paid-media · sales · finance · legal-compliance · hr-talent · support-operations · supply-chain · academic-research · testing-qa · spatial-gaming · specialized-domain · game-studios · creative-media

安装 skill 时,如果 SKILL.md frontmatter 未指定 group,工具会返回 skill 描述和可用组列表,由 LLM 选择最合适的组。

存储结构

data/hub/  config/groups.json              # 组定义(18 个内置组 + 自定义组)  packages/{group}/{skill-id}/    SKILL.md                      # skill 正文(必须)    meta.json                     # 自动生成的元数据    references/                   # 可选参考文件    scripts/                      # 可选辅助脚本    assets/                       # 可选资源文件  staging/imports/                # 待审查的导入候选  index/                          # 索引文件(运行时自动维护)

Skill 包格式

每个 skill 是一个包含 SKILL.md 的目录:

markdown
---name: my-skilldescription: 这个 skill 做什么group: engineering---
# My Skill
Skill 正文内容...

name 和 description 是必填 frontmatter 字段。group 可选,不填时由 LLM 在安装时分类。

热重载

daemon 启动时自动监听 packages/ 目录变更,新增、修改、删除 skill 后索引自动更新,无需重启。

CLI 命令

bash
skill-shelf mcp      # 启动 stdio shim(MCP 客户端调用)skill-shelf daemon    # 启动/连接 daemonskill-shelf status    # 查看 daemon 状态skill-shelf stop      # 停止 daemon

环境变量

变量默认值说明
SKILL_SHELF_ROOT<package>/data/hub数据根目录
SKILL_SHELF_SEARCH_LIMIT8search_skills 默认返回上限
SKILL_SHELF_MAX_RELATED_SKILLS5read_skill 返回的最大关联 skill 数
SKILL_SHELF_WATCH1是否启用文件监听

致谢

部分 Skill 内容来源于以下开源项目:

来源:README.md,提交 36f60a5

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v2.0.5最新Sep 16, 2026

评分

已满足适用检查项的 40%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

    请在仓库或注册中心条目中声明许可证。

其他 Rust 集成