乐于分享
好东西不私藏

AI Agent 技能管理大爆发:一个 MCP 服务器,让成千上万个技能井井有条

AI Agent 技能管理大爆发:一个 MCP 服务器,让成千上万个技能井井有条

当你的 Agent 拥有 100 个技能时,你是怎么管理的?当它需要同时调用 5 个技能完成一个任务时,谁来编排?


一、一个被忽视的痛点

过去半年,AI Agent 的技能生态经历了爆炸式增长。Hermes 社区有 1000+ 技能,SenseNova-Skills 有 24+ 专业工作流技能,wondelai 有 380 个跨平台技能……

听起来很美好,对吧?

但当你真正开始使用这些技能时,一个残酷的现实浮出水面:

技能越多,越乱。

想象一下这个场景:

你想让 Agent 完成一个"代码审查 + 安全扫描 + 生成报告"的复合任务。

你告诉 Agent:"帮我审查这个 PR,扫描安全问题,然后写一份报告。"

Agent 开始调用 github-pr-reader 读取 PR → 调用 security-scanner 扫描 → 调用 report-writer 写报告。

但问题来了:

第一个工具返回了 5000 行的 PR 内容
第二个工具需要把整段内容塞进上下文里再调用
第三个工具又需要把前两个的结果全部读一遍

Token 爆炸了。上下文溢出了。Agent 开始胡言乱语。

这就是当前 AI Agent 技能生态的"阿喀琉斯之踵":技能是孤岛,没有编排,没有版本控制,没有权限管理,更没有安全边界。


二、skill-mcp:把技能变成"可管理的资产"

今天我要介绍的 skill-mcp,正是为了解决这个问题而生的。

它的定位非常清晰:一个 Model Context Protocol (MCP) 服务器,提供"技能文件系统 + 权限网关 + 编排引擎"三位一体的技能管理平台。

听起来很复杂?让我用一个比喻来解释:

如果把 AI Agent 比作一个"超级员工",那么技能就是它的"工具箱"。

以前,你的工具箱是散落在地上的——每个工具放在不同的抽屉里,没有标签,不知道哪个版本最新,也不知道谁能用哪个工具。

skill-mcp 就是把整个工具箱变成了一个智能仓库:

📦 技能文件系统 — 所有技能集中存储,有版本、有标签、有目录
🔐 权限网关 — 谁可以用哪个技能,一清二楚
⚙️ 编排引擎 — 多个技能如何协作,自动规划执行顺序

三、它到底解决了什么问题?

问题 1️⃣:技能散乱,找不到

场景:你安装了 50 个技能,想找一个"数据清洗"相关的,但不知道具体叫什么名字。

skill-mcp 的解法

# 搜索技能npx skill-mcp search --name "data"# 按标签过滤npx skill-mcp list --tags "data,processing"

技能被统一存储在 ~/.skill-mcp/data/skills/,每个技能都有 manifest.json 元数据(名称、版本、标签、入口文件),支持全文搜索和标签过滤。

问题 2️⃣:技能没有版本控制

场景:你更新了一个技能,结果新版本的输出格式变了,依赖它的其他技能全部报错。

skill-mcp 的解法

# 回滚到指定版本npx skill-mcp rollback <skill-name> --to 0.0.1# 查看版本历史npx skill-mcp info <skill-name>

每个技能都有语义化版本号(SemVer),支持内容哈希追踪和一键回滚。

问题 3️⃣:多技能协作,不知道谁先谁后

场景:你要完成一个"读取 PR → 安全扫描 → 生成报告"的三步任务,需要手动告诉 Agent 每一步的顺序。

skill-mcp 的解法:用 YAML 定义一个 DAG(有向无环图)编排:

namecode-review-pipelinestages:  - nameread-pr    skillgithub-pr-reader    inputs: { url"${inputs.pr_url}" }  - namesecurity-scan    skillsecurity-scanner    depends_on: [read-pr]  - namegenerate-report    skillreport-writer    depends_on: [read-prsecurity-scan]

关键点depends_on 字段自动处理依赖关系,没有依赖的阶段可以并行执行,大幅提升效率。

问题 4️⃣:不知道谁能用什么技能

场景:公司有 10 个 Agent,有些只能看代码,有些可以修改数据,有些可以生成报告。

skill-mcp 的解法:基于标签的 RBAC(角色访问控制):

# 创建一个角色,只能访问带 "data" 标签的技能npx skill-mcp role create --name "data-team" --tags "data"# 给用户分配角色npx skill-mcp user assign-roles <user-id> --role-ids "uuid-1"

规则很简单:skill.tags ∩ user.tags ≠ ∅,即技能的标签与用户的标签有交集时,才能访问。

问题 5️⃣:技能不安全,可能有注入攻击

场景:一个恶意的 SKILL.md 里藏了一段 prompt 注入代码,Agent 执行时可能被劫持。

skill-mcp 的解法:内置 prompt 注入检测 + 技能验证:

# 在导入时自动扫描npx skill-mcp import ./my-skill# 手动 lint 检查npx skill-mcp lint ./path/to/skill

四、技术架构:它是怎么做到的?

skill-mcp 的架构设计非常工程化,我把它拆解为 5 个核心模块:

src/├── mcp/          # MCP 服务器 & 工具注册├── services/     # 技能管理服务(核心业务逻辑)├── pipeline/     # DAG 编排引擎├── permission/   # RBAC 权限系统└── storage/      # 数据持久化(SQLite + Drizzle ORM)

核心亮点 1:DAG 调度器

Pipeline 引擎的核心是一个 DAGScheduler,它负责:

1
拓扑排序 — 根据 depends_on 计算执行顺序
2
批处理 — 将没有依赖关系的阶段分组,并行执行
3
错误传播 — 某个阶段失败,后续依赖它的阶段自动停止
// 伪代码:DAG 执行流程for (const batch of dag.getBatches()) {  // 同一批次内的阶段并行执行  await Promise.allSettled(    batch.map(stage => executeStage(stage))  );  // 任何失败则停止  if (hasFailures) break;}

核心亮点 2:MCP 工具注册

skill-mcp 通过 MCP 协议暴露 5 个工具,任何 MCP 客户端(Claude Desktop、Cline、Windsurf 等)都可以直接使用:

工具
作用
skill_list
列出技能(支持标签过滤)
skill_view
查看技能完整内容
skill_file
读取技能中的单个文件
skill_pipeline
执行 DAG 编排
skill_feedback
提交技能效果反馈

核心亮点 3:多传输协议支持

skill-mcp 支持三种传输方式,适应不同场景:

场景
传输方式
存储
用途
本地开发
stdio
本地
单机调试
混合部署
stdio
远程
本地 MCP + 共享存储
生产环境
HTTP/SSE
本地/远程
多客户端并发

五、三分钟上手

Step 1:安装

npm install -g skill-mcp@latest

Step 2:启动服务器

# 本地模式(推荐开发用)skill-mcp serve# HTTP 模式(生产用)TRANSPORT_TYPE=http skill-mcp serve

Step 3:导入技能

# 从本地路径导入npx skill-mcp import ./my-skill# 从 GitHub 导入npx skill-mcp import https://github.com/org/repo --branch main# 带标签导入npx skill-mcp import ./skill --category "writing" --tags "prompt"

Step 4:在 MCP 客户端中使用

以 Claude Desktop 为例,在 claude_desktop_config.json 中添加:

{  "mcpServers": {    "skill-mcp": {      "command""npx",      "args": ["-y""skill-mcp""serve"]    }  }}

重启 Claude Desktop 后,你就可以在工具列表里看到 skill_listskill_viewskill_pipeline 等工具了。

Step 5:执行编排

npx skill-mcp pipeline run ./pipeline.yaml --input pr_url="GitHub · Change is constant. GitHub keeps you ahead...."

六、为什么值得关注?

skill-mcp 的意义,不止于"一个 MCP 服务器"。它代表了 AI Agent 技能生态发展的下一个阶段

阶段
特征
代表
1.0 手工时代
每个技能一个 SKILL.md,散落在各处
早期 Hermes 技能
2.0 平台时代
技能中心化管理,有搜索和分类
skill-mcp、OpenClaw Skills Hub
3.0 编排时代
技能可以组合成工作流,自动执行
skill-mcp Pipeline
4.0 生态时代
技能市场、版本管理、权限控制、反馈闭环
skill-mcp 正在走向

skill-mcp 正在同时推进第 2、3、4 阶段。

更重要的是,它完全开源(MIT 协议),基于标准的 MCP 协议,任何 MCP 客户端都可以接入。这意味着:

你可以把它当作技能仓库,集中管理所有技能
你可以把它当作编排引擎,定义复杂的工作流
你可以把它当作权限网关,控制谁可以用什么技能
你可以把它当作安全边界,防止恶意技能注入

七、结语

AI Agent 的能力上限,不在于模型有多强,而在于它能调用的技能有多少、有多好、有多可靠

skill-mcp 正在做的事情,就是让技能从"散兵游勇"变成"正规军"——有编制、有纪律、有协作、有安全。

如果你正在构建多技能协作的 Agent 系统,或者正在管理成百上千个技能,强烈建议试试 skill-mcp

🔗 项目地址:GitHub - BeCrafter/skill-mcp: A Model Context Protocol (MCP) server that provides a managed skill fi


:本文基于 skill-mcp v0.1.0 编写。项目仍在快速迭代中,功能可能有所更新。欢迎 Star 和贡献!