SkillNote MCP 服务器
使用说明(Markdown格式):
-
项目简介 SkillNote MCP 服务器是 SkillNote 面向 MCP 客户端的后端组件。它从数据库读取技能,将每个技能映射为一个 MCP 工具,允许 LLM 客户端通过 JSON-RPC 的方式查询、调用并获取技能内容(SKILL.md)。服务器实现了会话管理、能力声明、 collections 过滤,以及对技能变更的实时推送通知,支持多种传输方式(Http Transport、SSE 等),为 AI 应用提供可扩展的上下文服务。
-
主要功能点
- 将每个技能作为 MCP 工具暴露:工具名称采用技能的 slug,描述来自技能的描述字段,调用工具返回完整的 SKILL.md 内容。
- 实时通知与同步:技能创建/更新/删除时,向所有连接的 MCP 客户端推送 notifications/tools/list_changed,客户端无需重连即可获取最新工具列表。
- 会话与连接管理:跟踪并维护 MCP 会话,支持短期与长连接(包括 SSE),并对空闲会话进行超时处理。
- 数据源与日志:通过 PostgreSQL LISTEN/NOTIFY 实现技能变更的即时广播,同时记录技能调用等分析事件。
- 资源过滤:可通过集合过滤暴露给不同客户端的技能集合,确保权限和分组管理。
- 多传输协议支持:提供基于 HTTP 的传输以及 SSE 的开放连接流,兼容主流支持 MCP 的代理与工具。
-
安装步骤
- 准备环境:需要安装 Docker 与 Docker Compose v2+,并确保可访问的数据库(PostgreSQL)与应用服务所在环境。
- 获取源码并运行:在仓库根目录执行 docker compose up --build -d,即可启动前端、API、MCP、数据库等服务。
- 访问与验证:MCP 服务默认暴露在 http://localhost:8083/mcp 供 MCP 客户端连接;Web/UI、API、数据库等服务在相应端口对外暴露。
- 变更过滤(可选):通过设置环境变量 SKILLNOTE_MCP_FILTER_COLLECTIONS 可以限定 MCP 服务暴露的技能集合。
- 与客户端对接:根据你使用的 MCP 客户端( Claude Code、OpenClaw、OpenHands、Cursor、Codex 等),使用其 MCP 连接方式来注册与调用技能。README 中提供了各客户端的示例用法。
-
服务器配置(示例,JSON 格式,供 MCP 客户端配置使用;实际客户端通常通过命令行或嵌入设置来接入 MCP 服务) { "serverName": "SkillNote", "transport": "http", "url": "http://localhost:8083/mcp", "scope": "user", "collectionsFilter": [] // 为空表示暴露全部技能集合;可根据需要设置为 ["frontend","security"] 等 } 说明:
- serverName: MCP 服务器在客户端侧的标识名称,便于区分多服务器。
- transport/url: MCP 传输协议与服务端入口地址,HTTP 传输需要指向 /mcp 路径。
- scope: 客户端的可见范围,示例中为 user;某些客户端可通过该字段实现多会话或多租户的控制。
- collectionsFilter: 指定暴露的技能集合,若留空则默认暴露全部技能,便于团队分工。
-
基本使用方法
- 连接与发现:通过客户端(如 Claude Code、OpenClaw、Cursor、OpenHands、Codex 等)的 MCP 集成选项,使用 http 协议连接 SkillNote 的 MCP 服务器,例如指定服务器地址与传输类型即可。
- 发现与调用技能:客户端通过 tools/list 获取技能列表,认知到与技能描述后可通过 tools/call 调用某个技能,服务器返回该技能的完整 SKILL.md 内容。
- 实时变更:SkillNote 在技能新增、修改或删除时,MCP 客户端会收到 notifications/tools/list_changed 通知,随后可重新请求 tools/list 获取最新工具清单。
- 安全与会话:MCP 服务实现了会话与请求处理逻辑,具备会话超时、会话迁移和初始握手等能力,确保多客户端并发使用的稳定性。
- 维护与扩展:技能数据库变更(添加/更新/删除)会触发工具列表的实时更新,便于持续集成与运维。
-
其他注意事项
- 若你使用的是 SkillNote 的本地部署,请确保数据库连接字符串和存储路径等环境变量正确配置,避免运行时错误。
- 如需更细粒度的权限控制,可以通过 SKILLNOTE_MCP_FILTER_COLLECTIONS 控制 MCP 服务暴露的技能集合。