技能加载MCP服务器

一个用于从skills.sh市场和GitHub仓库发现、获取、验证和转换Claude技能的MCP服务器。

  • by goldzulu
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 goldzulu/skill-loader-mcp-server

使用说明

技能加载器MCP服务器

MCP(模型上下文协议)服务器,用于发现、获取、验证和转换Claude技能 技能s.sh 市场和GitHub存储库。

v1.1.0的新增功能

  • skills.sh API集成:搜索使用 /api/search?q=<query> 端点--无需身份验证
  • 经过身份验证的端点: list_skills 和 get_leaderboard 使用 /api/v1/skills 端点(必需 SKILLS_SH_API_KEY)
  • 更智能的电源转换: convert_to_power 现在生成 mcp.json 当技能具有依赖关系或工具引用,并创建 steering/ 当一项技能有3个以上复杂部分时,可以使用目录
  • MCP SDK升级:更新至 @modelcontextprotocol/sdk v1.29

特性

  • 发现技能 -通过其公共搜索API浏览和搜索skills.sh市场
  • 获取技能 --直接从GitHub下载原始技能内容
  • 安全验证 --危险命令、可疑模式和代码注入的扫描技能
  • 格式转换 --将技能转换为Kiro指导文件或电源格式(可选 mcp.json 和 steering/ 目录)
  • 完成工作流程 --使用单个命令(获取+验证+转换)端到端导入技能

安装

全球安装

npm install -g @goldzulu/skill-loader-mcp-server

本地安装

npm install @goldzulu/skill-loader-mcp-server

配置

环境变量

变量 必填 描述
SKILLS_SH_API_KEY For list_skills 和 get_leaderboard 仅 skills.sh的API密钥经过身份验证 /api/v1/skills 终点。如有需要,请联系Vercel。不需要 search_skills.

与Kiro

添加到您的 mcp.json:

{
  "mcpServers": {
    "skill-loader": {
      "command": "npx",
      "args": ["-y", "@goldzulu/skill-loader-mcp-server"],
      "env": {
        "SKILLS_SH_API_KEY": "your-api-key-here"
      },
      "description": "Skill Loader MCP Server for managing Claude skills"
    }
  }
}

使用克劳德桌面

添加到您的Claude Desktop配置中:

{
  "mcpServers": {
    "skill-loader": {
      "command": "skill-loader-mcp-server",
      "env": {
        "SKILLS_SH_API_KEY": "your-api-key-here"
      }
    }
  }
}

这 env block是可选的——只有当你想使用时才需要 list_skills 或 get_leaderboard.

独立

skill-loader-mcp-server

可用工具

1.搜索技能

使用skills.sh搜索API按关键字搜索技能。 无需身份验证。

参数:

  • query (必填):搜索查询
  • limit (可选):最大结果(默认值:20,最大值:50)

例子:

{
  "tool": "search_skills",
  "arguments": { "query": "pdf", "limit": 5 }
}

2.技能列表

列出skills.sh中所有可用的技能,并分页。 需要 SKILLS_SH_API_KEY.

参数:

  • page (可选):页码(默认:1)
  • pageSize (可选):每页结果(默认值:50,最大值:100)

例子:

{
  "tool": "list_skills",
  "arguments": { "page": 1, "pageSize": 10 }
}

3.get_leaderboard

掌握热门或热门技能。 需要 SKILLS_SH_API_KEY.

参数:

  • timeframe (可选): 'all' 或 '24h' (默认值: 'all')
  • limit (可选):最大结果(默认值:20,最大值:50)

例子:

{
  "tool": "get_leaderboard",
  "arguments": { "timeframe": "24h", "limit": 10 }
}

4.获取技能

从GitHub获取原始技能内容。

参数:

  • identifier (必填):技能名称或 owner/repo 格式

例子:

{
  "tool": "fetch_skill",
  "arguments": { "identifier": "anthropics/pdf-extractor" }
}

5.验证_技能

验证技能内容是否存在安全问题。

参数:

  • content (必填):要验证的技能内容
  • url (可选):用于验证的源URL

例子:

{
  "tool": "validate_skill",
  "arguments": {
    "content": "---\nname: Test\n---\n\n# Test",
    "url": "https://example.com/skill.md"
  }
}

6.转换转向

将技能转换为Kiro指导文件格式。

参数:

  • content (必填):技能内容
  • sourceUrl (可选):原始源URL

例子:

{
  "tool": "convert_to_steering",
  "arguments": {
    "content": "---\nname: Test\ndescription: A test skill\n---\n\n# Test",
    "sourceUrl": "https://example.com/skill.md"
  }
}

7.转换为电源

将技能转换为基洛能量格式。生成 mcp.json 当技能具有依赖性或工具时,以及 steering/ 当技能有3个以上复杂部分时,可以使用目录。

参数:

  • content (必填):技能内容
  • sourceUrl (可选):原始源URL

例子:

{
  "tool": "convert_to_power",
  "arguments": {
    "content": "---\nname: Test\ndescription: A test skill\n---\n\n# Test",
    "sourceUrl": "https://example.com/skill.md"
  }
}

8.输入技能

完成导入工作流程(获取+验证+转换)。

参数:

  • identifier (必填):技能标识符
  • outputFormat (必填): 'steering' 或 'power'
  • skipValidation (可选):跳过安全验证(默认值:false)

例子:

{
  "tool": "import_skill",
  "arguments": {
    "identifier": "anthropics/pdf-extractor",
    "outputFormat": "steering"
  }
}

安全

服务器包括安全验证,扫描以下内容:

  • 危险指令(rm -rf, sudo, eval, exec)
  • 可疑的文件操作(/etc/, /usr/, /bin/)
  • 代码注入模式(${...}, $(...))
  • 不受信任的来源(非GitHub URL)

未通过安全验证的技能将被阻止导入,除非明确跳过。

缓存

服务器将skills.sh搜索结果缓存在内存中1小时,以减少API调用并提高性能。缓存过期时会自动刷新。

错误处理

所有工具都以一致的JSON格式返回错误,并附带描述性消息。常见错误类型:

  • 网络错误:连接问题、超时、HTTP错误
  • 验证错误:安全问题、格式问题
  • 解析错误:YAML语法错误,无效的markdown
  • 分辨率错误:未找到技能,标识符不明确

发展

构建

npm run build

测试

npm test

观看模式

npm run test:watch

需求

  • Node.js 18或更高版本
  • npm或纱线

许可证

麻省理工学院

贡献

欢迎投稿!请看 贡献.md 作为指导方针。

支持

有关问题和疑问,请在 GitHub.