项目简介
Claude Skills MCP 服务器是一个强大的后端应用,专门设计用于管理和提供AI代理(如Claude Agent)所需的技能。它采用Model Context Protocol (MCP) 标准,使LLM客户端能够通过标准化的JSON-RPC请求来搜索、调用和访问预定义好的“技能”。该项目包含一个轻量级的前端代理(MCP Server over Stdio),它负责启动并连接到一个功能丰富的后端服务器(MCP Server over HTTP),后者处理技能的加载、向量搜索、文档管理和自动更新。这意味着LLM可以获得一个持续更新、可扩展的外部知识和工具库。
主要功能点
- 技能搜索: 使用先进的向量搜索技术,根据任务描述快速查找最相关的Claude Agent技能。
- 技能管理: 从GitHub仓库或本地文件系统加载和管理技能,每个技能都包含描述、内容及附加文档。
- 文档访问: 支持按需读取技能的关联文档(如Python脚本、参考资料、图片),并支持文件路径模式匹配。
- 模块化架构: 前端作为轻量级代理处理LLM通信,后端专注于技能逻辑和数据管理,两者独立运行。
- 背景加载与更新: 技能数据在后台异步加载,确保服务器快速启动。支持配置自动定时更新技能,保持知识库的最新。
- 可配置性: 允许通过配置文件定制技能来源、嵌入模型、搜索结果数量、文档加载策略等。
安装步骤
该项目打包为Python包,推荐使用'uvx'工具进行安装和运行,它会自动处理依赖项。
- 安装 'uv' (可选,但推荐): 'uv' 是一个快速的Python包管理器和安装器。如果尚未安装,可以通过以下命令安装:
或者,如果已经有'pipx':pip install uvpipx install uv - 运行应用程序: 'uvx' 会自动下载并运行最新的 'claude-skills-mcp' 包。在命令行中执行以下命令:
首次运行会自动下载后端服务及其依赖的模型和技能,这可能需要一些时间(通常30-120秒,取决于网络速度)。后续启动将非常迅速。uvx claude-skills-mcp
服务器配置 (供MCP客户端使用)
MCP客户端(如Cursor)需要配置如何连接到此MCP服务器。'claude-skills-mcp' 默认在本地启动,并通过标准I/O (stdio) 与客户端通信。
{ "server_name": "Claude Skills MCP", "command": "uvx", "args": ["claude-skills-mcp", "--verbose"] }
参数注释:
- 'server_name': 这是一个人类可读的名称,用于在MCP客户端中识别此服务器。
- 'command': 启动MCP服务器的可执行文件或命令。这里是 'uvx',它会负责运行 'claude-skills-mcp' Python 包。
- 'args': 传递给 'uvx claude-skills-mcp' 命令的参数列表。
- '"--verbose"': 启用详细日志输出,方便调试。
- '"--port <PORT_NUMBER>"': 可选,指定后端HTTP服务器监听的端口(例如 '--port 8765')。默认是 '8765'。此参数会被前端代理转发给后端。
- '"--host <IP_ADDRESS>"': 可选,指定后端HTTP服务器监听的IP地址(例如 '--host 127.0.0.1')。默认是 '127.0.0.1'。此参数会被前端代理转发给后端。
- '"--config <PATH_TO_CONFIG_FILE>"': 可选,指定一个自定义的JSON配置文件路径,用于覆盖默认的技能源、嵌入模型、自动更新设置等。此参数会被前端代理转发给后端。
- '"--example-config"': 可选,打印默认的配置示例并退出。此参数会被前端代理转发给后端。
- '"--remote <URL>"': 注意:目前版本不支持连接远程后端。
基本使用方法 (LLM客户端调用)
一旦MCP服务器启动并与LLM客户端连接,LLM客户端可以通过以下工具与服务器互动:
-
查找相关技能 ('find_helpful_skills'): LLM可以调用此工具来搜索与特定任务相关的技能。
- 输入:
- 'task_description' (字符串, 必填): 描述您想完成的任务(例如:"debug Python API errors", "process genomic data")。
- 'top_k' (整数, 可选, 默认: 3): 返回的技能数量。
- 'list_documents' (布尔值, 可选, 默认: true): 是否包含每个技能的可用文档列表。
- LLM示例请求:
{ "tool_name": "find_helpful_skills", "arguments": { "task_description": "分析RNA测序数据并识别差异表达基因", "top_k": 5 } } - LLM接收: 相关的技能列表,包含名称、描述、来源、关联度分数和可选的文档列表。
- 输入:
-
读取技能文档 ('read_skill_document'): LLM可以调用此工具来获取特定技能的文档内容。
- 输入:
- 'skill_name' (字符串, 必填): 技能的名称(由 'find_helpful_skills' 返回)。
- 'document_path' (字符串, 可选): 文档路径或模式匹配(例如:"scripts/example.py", "assets/*.png")。如果未提供,则列出所有文档。
- 'include_base64' (布尔值, 可选, 默认: false): 对于图片,是否返回Base64编码内容,否则只返回URL。
- LLM示例请求:
{ "tool_name": "read_skill_document", "arguments": { "skill_name": "Bioinformatics Analysis", "document_path": "scripts/*.py" } } - LLM接收: 匹配文档的内容(文本或Base64编码的图片)或文档URL。
- 输入:
-
列出所有技能 ('list_skills'): LLM可以调用此工具来获取当前加载的所有技能的完整列表。
- 输入: (无参数)
- LLM示例请求:
{ "tool_name": "list_skills", "arguments": {} } - LLM接收: 所有技能的名称、描述、来源和文档数量的列表。
信息
分类
开发者工具