SkillLite MCP 服务器
使用说明(Markdown 格式)
一、项目定位
- SkillLite MCP 服务器旨在为 LLM 客户端提供通用、标准化的上下文服务,包含资源管理、工具注册与执行,以及提示模板渲染,所有交互通过 MCP 协议进行。
二、主要功能点
- MCP 核心能力:
- 接收并处理 MCP 请求,返回标准化的 JSON-RPC 响应或通知;
- 资源/技能/工具的注册、查询与执行;
- Prompt 模板的渲染与上下文生成,支持多种交互模式;
- 会话管理与能力声明,维护客户端能力及权限信息;
- 支持多种传输协议(如 Stdio、SSE、WebSocket)的扩展能力。
- 服务器端实现细节:
- 集成技能管理与工具执行,具备沙箱化执行的能力;
- 对外暴露 list_skills、get_skill_info、run_skill、scan_code、execute_code 等 MCP 工具;
- 提供安全扫描与执行确认机制,确保高风险操作可控;
- 通过 mcp 库与客户端对接,完成 JSON-RPC 风格的请求与响应流程。
- 运行环境与依赖:
- 需要 SkillLite 的 MCP 相关依赖与 SkillBox 沙箱执行环境(Rust 实现的沙箱、或等效后端);
- 服务端实现可在本地或服务器上以进程方式运行,监听并响应 MCP 客户端请求。
三、安装与运行
- 前置条件
- 安装 SkillLite 的 MCP 组件依赖(如通过 pip 安装 skilllite[mcp])。
- 确保 SkillBox 沙箱二进制可用并在 PATH 或指定路径可访问。
- 运行方式
- 使用 Python 直接启动服务器模块:
- python3 -m skilllite.mcp.server
- 也可通过 CLI/其他运行方式启动(如 OpenCode 集成的 MCP 客户端连接配置)。
- 使用 Python 直接启动服务器模块:
- 运行后连接方式
- MCP 客户端需要提供服务器启动命令及参数信息,以便创建正确的连接配置(见下方配置示例)。
四、MCP 客户端连接配置(JSON 配置,需 MCP 客户端使用) 说明:以下配置用于描述 MCP 服务器启动命令及参数,便于 MCP 客户端匹配连接方式。客户端本身的实现可以据此建立连接,但此处仅给出配置项文本,非代码块。
{ "server_name": "skilllite-mcp-server", "command": ["python3", "-m", "skilllite.mcp.server"], "args": [] }
注释:
- server_name:MCP 服务器在客户端侧的标识名称,便于日志与管理。
- command:启动 MCP 服务器的命令(不包含具体运行时的实现依赖,直接给出启动入口)。
- args:启动命令的参数列表(如需要监听端口、指定工作目录等时可在此添加),当前实现以 stdio 形式通信为主,因此该字段可留空或依据实际部署调整。
五、基本使用方法(简要流程)
- 启动服务器
- 运行 spawn 出 MCP 服务进程,确保 SkillBox 沙箱与 MCP 相关依赖就绪。
- 客户端交互
- MCP 客户端通过 MCP 的 JSON-RPC 请求向服务器请求资源、工具执行、Prompt 信息等;
- 服务器返回标准的 JSON-RPC 响应,或在通知中传递执行结果。
- 安全与扩展
- 服务器实现包含安全扫描、执行确认、以及对不同语言/脚本的沙箱执行能力,确保对高风险行为具备可控机制;
- 支持后续扩展新的工具、资源类型与提示模板的渲染。
六、注意事项
- MCP 客户端需要与服务器端协议保持一致,确保请求格式、方法名与参数名称吻合;
- 服务器端对执行请求具备权限和沙箱策略控制,请根据实际环境配置沙箱等级与网络权限等;
- 服务器日志及错误信息请在部署环境下留意,以便排查连接与执行中的问题。
七、联系人与后续工作
- 如需进一步自定义工具、扩展资源类型或改进安全策略,可在 SkillLite 的核心模块中扩展技能与工具注册、以及 Prompt 模板渲染逻辑。
五、参考实现要点
- 服务器端核心提供 list_tools、call_tool 等接口,支持 MCP 的工具注册与执行;
- 支持多种工具类型与脚本执行方式,包含对安全评估与执行确认的流程设计;
- 提供对 MCP 客户端的通用性支持,尽量遵循 MCP 的核心语义与交互模式。
关键词 沙箱执行, 工具调用, 资源管理, 提示模板, 会话管理
分类ID 6