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