代理技能MCP工具

一个将Agent Skills转换为MCP工具的服务,支持团队共享配置和声明式管理。

  • by mrsimpson
  • TypeScript
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 mrsimpson/agentskills-mcp

使用说明

代理技能MCP

将代理技能转化为具有团队共享配置的MCP工具

MCP服务器 代理技能 通过基于package.json的声明性配置,任何MCP兼容代理都可以使用。

为什么存在

Agent Skills是强大的上下文工程工具:

  • 将长系统提示分解为可重用的参数化组件
  • 遵循一个 开放标准 实现跨代理的可移植性
  • 与工具和工作流捆绑在一起时,比单独的提示更强大

但目前的实现有痛点:

  • ❌ 基于文件系统的发现:每个代理使用不同的目录(.claude/skills等等)
  • ❌ 无配置控制:所有技能始终加载,无筛选或组织
  • ❌ 安全模型不明确:如果没有适当的沙盒,动态工具调用和脚本是重大威胁
  • ❌ 没有团队共享:难以在团队之间共享技能配置

MCP网关解决方案:

MCP已经解决了这些工具的问题。通过提供MCP服务器作为代理技能的“网关”:

  • ✅ 解决所有痛点 独立客户 通过标准化接口
  • ✅ 通过声明式配置 package.json 团队可以版本和共享
  • ✅ 明确的安全模型:服务器不执行代码,代理保持控制
  • ✅ 技能+MCP工具=所有代理都能理解的强大组合

它的作用

该项目提供:

  1. 命令行界面 用于从多个来源(GitHub、本地、tarball URL)安装和管理Agent Skills
  2. MCP服务器 将已安装的技能作为MCP工具暴露给任何兼容的代理
  3. 核心库 用于解析、验证和使用代理技能

快速开始

1.安装

或者

如果你更喜欢总是键入npx而不是全局安装(我喜欢)

npx @codemcp/skills

2.配置技能

使用CLI添加技能(在将技能添加到之前验证技能 package.json):

npx @codemcp/skills add git-workflow github:anthropics/agent-skills/skills/git-workflow
npx @codemcp/skills add local-skill file:./my-skills/custom-skill

或编辑 package.json 直接:

{
  "agentskills": {
    "git-workflow": "github:anthropics/agent-skills/skills/git-workflow",
    "local-skill": "file:./my-skills/custom-skill",
    "shared-skill": "git+https://github.com/org/skills.git#v1.0.0"
  }
}

3.安装技能

npx @codemcp/skills install

这会将所有配置的技能下载到 .agentskills/skills/.

MCP服务器依赖关系

技能可以声明为您的代理自动配置的MCP服务器依赖关系。

SKILL.md封面示例:

---
name: my-skill
requires-mcp-servers:
  - name: filesystem
    package: "@modelcontextprotocol/server-filesystem"
    description: "For file operations"
    command: npx
    args:
      ["-y", "@modelcontextprotocol/server-filesystem", "{{WORKSPACE_PATH}}"]
    parameters:
      WORKSPACE_PATH:
        description: "Root directory"
        required: true
        default: "."
---

安装并验证:

npx @codemcp/skills install --agent claude

自动安装缺失的服务器:

npx @codemcp/skills install --with-mcp --agent cline

支持的代理: claude, cline, continue, cursor, junie, kiro, opencode, zed

配置是在项目目录中创建的(.claude/, .kiro/, opencode.json等等)用于版本控制。

5.配置MCP客户端

将您的MCP客户端(Claude Desktop、Cline、Continue、Cursor、Junie、Kiro、OpenCode、Zed等)指向服务器:

{
  "mcpServers": {
    "agentskills": {
      "command": "npx",
      "args": ["-y", "@codemcp/skills-server"]
    }
  }
}

6.使用技能

您的代理人现在可以:

  • 打电话给 use_skill 执行技能指令的工具
  • 通过浏览可用技能 skill:// 资源

这 use_skill 工具返回一个包含两个字段的JSON响应:

{
  "instructions": "# Skill Instructions\n\nThe full skill body content...",
  "basePath": "/absolute/path/to/.agentskills/skills/skill-name"
}

这 basePath 指向技能目录,并允许代理解析相对引用(根据 代理技能规范):

  • 脚本: <basePath>/scripts/extract.py
  • 参考文献 <basePath>/references/REFERENCE.md
  • 资产: <basePath>/assets/template.json

示例:如果技能涉及 scripts/setup.sh,代理可以从以下位置读取:

<basePath>/scripts/setup.sh

运作原理

package.json (config) → npx @codemcp/skills install → .agentskills/skills/
                                                        ↓
Agent ← MCP Protocol ← npx @codemcp/skills-server ← skill registry
  1. 配置:声明技能 package.json 像npm依赖
  2. 安装:CLI使用npm的Pacote从GitHub、本地路径或URL下载技能
  3. 服务器:MCP服务器读取已安装的技能并将其作为工具公开
  4. 执行:代理电话 use_skill 工具,在上下文中接收技能指令

特性

  • 🔌 MCP协议支持 -适用于Claude Desktop、Cline、Continue、Cursor、Junie、Kiro、OpenCode、Zed和其他MCP客户端
  • 📦 包管理器集成 -申报技能 package.json,版本控制您的配置
  • 🚀 多种来源 -从GitHub仓库、本地路径或tarball URL安装
  • 🔧 MCP服务器依赖关系 -技能声明所需的MCP服务器,为您的代理自动配置
  • ✅ 验证 -Agent Skills格式的内置解析和验证
  • 🔍 发现 -通过MCP资源和工具自动展示的技能
  • 🔒 安全 -服务器只提供技能内容;代理控制执行
  • 🧩 模块化 -针对不同用例的三个独立包

配置

技能在 agentskills 领域 package.json:

{
  "agentskills": {
    "skill-name": "source-specifier"
  }
}

源指定符

源类型 示例 描述
GitHub简写 github:user/repo/path/to/skill 带子目录的GitHub仓库(方便形式)
GitHub简写为ref github:user/repo/path/to/skill#v1.0.0 带有子目录和标签/分支的GitHub仓库
GitHub与 path: 收件人 github:user/repo#v1.0.0::path:skills/my-skill 带子目录的标准npm格式
Git URL git+https://github.com/org/repo.git#v1.0.0 带版本标签的完整git URL
Git URL path: 收件人 git+https://github.com/org/repo.git#v1.0.0::path:skills/skill 带子目录的Git URL(npm标准)
npm包 @org/my-skill 或 my-skill@1.2.0 已发布的npm包
本地路径 file:./skills/custom-skill 相对或绝对局部路径
焦油球URL https://example.com/skill.tgz 远程tarball

这 path: 属性语法(#ref::path:subdir)遵循 npm/pacote标准 用于git子目录规范。GitHub简写形式(github:user/repo/subdir)是一个方便的别名 github:user/repo#path:subdir.

团队配置示例

{
  "name": "my-project",
  "agentskills": {
    "git-workflow": "github:anthropics/agent-skills/skills/git-workflow",
    "code-review": "github:anthropics/agent-skills/skills/code-review",
    "custom-api-docs": "file:./team-skills/api-documentation",
    "shared-workflow": "git+https://github.com/myorg/skills.git#v2.1.0"
  }
}

将此提交给您的仓库,您的整个团队将使用相同的技能配置。

命令行命令

安装所有配置的技能

npx @codemcp/skills install

选项:

  • --agent <name> -验证指定代理(claude、cline、continue、cursor、junie、kiro、zed)的MCP服务器依赖关系
  • --with-mcp -自动安装缺失的MCP服务器并更新代理配置

添加新技能

npx @codemcp/skills add my-skill github:user/repo/path/to/skill

这 add 命令验证技能配置(规范格式、是否存在 SKILL.md, 以及技能元数据)。技能被添加到 package.json 只有当 验证成功。跑 npx @codemcp/skills install 之后下载并安装所有 配置技能。

列出配置的技能

npx @codemcp/skills list

验证技能档案

npx @codemcp/skills validate path/to/SKILL.md

创造技能

技能是 SKILL.md 带有YAML frontmatter的文件:

---
name: example-skill
description: Does something useful
arguments:
  - name: target
    description: What to do it to
    required: true
---

# Example Skill

This is the skill body with instructions for the agent.

Use arguments like this: $ARGUMENTS or $1 (first argument).

请参阅 代理技能标准 完整规格。

用例

何时使用代理技能MCP:

  • 语境工程 -将复杂的系统提示分解为模块化、可重复使用的部分
  • 团队协作 -通过版本控制在团队中共享技能配置
  • 多代理工作流 -在不同的MCP兼容代理中使用相同的技能
  • 安全控制 -集中技能管理,不授予代理文件系统访问权限
  • 技能库 -构建和共享特定领域技能库(DevOps、测试、文档等)

项目结构

这是一个包含三个包的monorepo:

架构与集成

了解更多关于这些部分如何组合在一起的信息:

  • Vercel CLI集成指南 -我们为什么使用Vercel的CLI,MCP Server模式如何扩展它,以及路径分离策略
  • 升级CLI -提取上游更新和处理合并冲突的分步过程

发展

# Install dependencies
pnpm install

# Build all packages
pnpm build

# Run tests (302 tests)
pnpm test

# Run linting and formatting
pnpm run lint:all
pnpm run format:check:all

贡献

欢迎投稿!发现错误或有功能请求? 打开一个问题.

对于bug修复、新功能或文档改进的拉取请求,我们深表感谢。

许可证

麻省理工学院 Oliver Jägle

链接