项目简介

MCP技能中心服务器是一个生产就绪的后端应用,遵循Model Context Protocol (MCP) 规范,旨在为大语言模型(LLM)客户端(如Claude Desktop)提供结构化的上下文信息和功能。它能够从指定目录动态发现、加载和管理一系列“技能”,这些技能以Markdown文件('SKILL.md')的形式定义,并支持热重载,即在不重启服务器的情况下更新技能。

主要功能点

  • 动态技能加载与管理: 自动从指定目录发现并加载技能,每个技能需在独立文件夹中。
  • 热重载支持: 实时监测技能文件('SKILL.md')的变更,自动更新技能而无需手动重启服务器。
  • MCP协议兼容: 完全实现MCP协议定义的资源(Resources)和工具(Tools)接口,通过JSON-RPC与客户端通信。
  • 技能作为资源: 将技能目录作为可查询的资源 ('skill://catalog'),每个技能内容 ('skill://{name}') 也作为独立资源对外提供。
  • 技能操作工具: 提供'search_skills'(搜索技能)、'reload_skills'(手动重载)、'get_skill_info'(获取技能元数据)和'list_skill_folders'(列出技能文件夹)等工具供LLM客户端调用。
  • 严格目录结构验证: 强制要求每个技能必须位于其专属文件夹内,并提供清晰的错误提示和日志。
  • 生产环境就绪: 包含全面的错误处理、日志记录和配置校验,支持Docker部署。

安装步骤

推荐使用Docker: 无需安装Python或Poetry,直接拉取镜像即可。

  1. 创建技能目录:
    mkdir -p ~/claude-skills/my-first-skill
  2. 创建技能文件('~/claude-skills/my-first-skill/SKILL.md'):
    ---
    name: "my-first-skill"
    description: "我的第一个Claude技能"
    ---
    
    # 我的第一个技能
    
    这里是我的第一个Claude技能!
    
    ## 使用方法
    
    在这里描述你的技能如何使用。
  3. 运行服务器:
    docker run -i --rm \
      -v ~/claude-skills:/skills:ro \
      mcp-skills-server

开发环境使用Poetry:

  1. 克隆仓库:
    git clone https://github.com/srprasanna/mcp-skill-hub.git
    cd mcp-skill-hub
  2. 安装依赖:
    poetry install
  3. 运行服务器:
    export MCP_SKILLS_DIR=~/claude-skills # 请替换为你的技能目录路径
    poetry run mcp-skills

服务器配置 (供MCP客户端连接)

MCP客户端(如Claude Desktop)需要通过JSON格式的配置连接到该MCP服务器。以下是一个示例配置,展示了如何配置服务器的启动命令及其参数:

{
  "mcpServers": {
    "skills": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-v",
        "${HOME}/claude-skills:/skills:ro",
        "mcp-skills-server"
      ],
      "description": "用于动态加载和管理Claude技能的MCP服务器,支持从 ~/claude-skills 目录读取技能。",
      "name": "MCP技能服务器"
    }
  }
}

参数注释:

  • 'mcpServers': 客户端配置中用于定义MCP服务器的顶级键。
  • 'skills': 你为该MCP服务器定义的唯一名称(可自定义,例如 'my_skills_server')。
  • 'command': 启动MCP服务器的命令,这里是 'docker'。
  • 'args': 传递给 'command' 的参数列表。
    • '-i', '--rm': Docker参数,表示交互式运行并在退出时自动删除容器。
    • '-v ${HOME}/claude-skills:/skills:ro': 将本地 '~/claude-skills' 目录挂载到Docker容器内的 '/skills' 目录,并设为只读。这是服务器读取技能的来源,请将 '~/claude-skills' 替换为你的实际技能目录路径。
    • 'mcp-skills-server': 要运行的Docker镜像名称。
  • 'description': 服务器的简要说明,方便客户端用户理解其功能。
  • 'name': 服务器的显示名称,会呈现在客户端的用户界面中。

基本使用方法

  1. 准备技能文件: 按照“安装步骤”中的格式,在配置的技能目录下创建或放置你的Markdown技能文件 ('SKILL.md')。每个技能必须有自己的文件夹。
  2. 启动服务器: 通过Docker或Poetry启动MCP技能中心服务器。
  3. 连接客户端: 在你的MCP客户端(如Claude Desktop)中添加上述配置,客户端将自动连接并发现服务器提供的技能资源和工具。
  4. 与LLM交互: LLM客户端会通过MCP协议调用服务器上的工具,例如'search_skills'来查找相关技能,或通过读取'skill://{name}'资源来获取技能的Markdown内容,并将其整合到与用户的交互中。当'SKILL.md'文件内容发生变化时,服务器将自动热重载,客户端无需重新连接即可获取最新技能。

信息

分类

AI与计算