Skyll MCP 服务器

使用说明(Markdown 格式)

  • 项目简介 Skyll 的 MCP 服务器组件将现有的技能搜索服务暴露为 MCP(Model Context Protocol)工具集,供 Claude Desktop、Cursor 等 MCP 客户端通过 JSON-RPC 风格的请求进行技能搜索、获取技能内容及相关元数据的查询与操作。

  • 主要功能点

    • 暴露 MCP 工具:搜索技能(search_skills)与获取技能(get_skill),以及获取缓存统计(get_cache_stats)。
    • 与后端服务复用:对接 Skyll 的 SkillSearchService,复用 REST/API 的核心业务逻辑。
    • 生命周期与会话管理:提供独立的 Lifespan 管理,确保服务在 MCP 服务器启动时初始化,在关闭时清理资源。
    • 兼容多传输协议:支持 stdio、SSE 和 HTTP 传输方式,便于本地桌面客户端和网页客户端使用。
    • 输入校验与错误处理:对请求参数进行校验,返回清晰的错误信息,便于调试和集成。
    • 结果封装:将技能信息、引用文件等以 MCP 友好的结构返回,便于 LLM 进行上下文注入。
  • 安装步骤

    • 克隆仓库并进入项目目录。
    • 安装依赖(开发/服务场景推荐):
      • 通过 pip 安装本仓库的服务器组件,例如:pip install -e ".[server]"。
    • 运行 MCP 服务器(standalone 模式):
      • 在命令行执行:python -m src.mcp_server
    • 运行不同传输模式(若需要):
      • HTTP 传输:python -m src.mcp_server --transport http --port 8080
      • SSE 传输(旧版/兼容):python -m src.mcp_server --transport sse --port 8080
    • 集成部署时,可以在 Skyll 的 FastAPI 应用中挂载 MCP 端点,作为后端服务的一部分使用。
  • 服务器配置(MCP 客户端连接所需信息,描述性文本而非代码) MCP 客户端至少需要提供启动服务器的命令与参数,以便建立连接。常见的配置字段包括:

    • server name: skll(示例名称,实际可自定义)
    • command: 执行 MCP 服务器的可执行程序(如 Python 解释器)
    • args: 启动参数,例如 -m src.mcp_server,用于以模块方式启动 MCP 服务器
    • cwd: 工作目录,指向 Skyll 项目根目录 典型配置示例(描述形式,不含代码块): { "mcpServers": { "skyll": { "command": "python", "args": ["-m", "src.mcp_server"], "cwd": "/path/to/skyll" } } } 注释说明:
    • command 字段指定运行 MCP 服务器的执行程序(如 Python)。
    • args 字段指定传给执行程序的参数,这里使用 -m src.mcp_server 来启动模块。
    • cwd 字段设置工作目录,确保模块路径和依赖能够正确加载。
    • 这类配置用于 MCP 客户端在本地启动并连接到 MCP 服务器(若使用 hosted 服务器,则可直接提供 url)。
  • 基本使用方法

    1. 启动 MCP 服务器(standalone 或集成模式)。
    2. 在 MCP 客户端配置中提供服务器信息(如上述 JSON 描述),确保客户端可以启动并连接。
    3. 使用 search_skills 工具进行技能搜索,传入查询字符串与可选参数(如 limit、include_references)。
    4. 使用 get_skill 工具按源/技能 ID 获取具体技能信息及可选的引用文件。
    5. 使用 get_cache_stats 观察缓存命中情况与性能指标。
    6. 如遇到问题,检查服务器日志以了解请求处理过程和错误信息。

服务器信息