tome MCP 服务器
<注释>使用说明(Markdown 格式,便于理解与操作)</注释>
-
项目简介
- Tome 内置的 MCP 服务器实现,名称为 tome-mcp,提供两个工具接口:list_skills(列出可用技能)与 read_skill(读取指定技能的 SKILL.md 内容)。
- 服务器通过 JSON-RPC 形式在 STDIO 通道与 MCP 客户端通信,供 LLM 客户端查询上下文信息和技能数据。
- 服务器启动与运行与 Tome 的命令空间集成,能够在配置加载后自动发现技能并暴露给客户端。
-
主要功能点
- 加载配置并发现技能:在启动时扫描配置源,解析并汇总可用技能列表(包括技能名称、来源、路径等元数据)。
- 列出技能:list_skills 返回库中所有技能的简要信息,便于客户端了解可用技能数量与来源。
- 读取技能内容:read_skill 接受技能名称,返回该技能目录下 SKILL.md 的全文内容,且在读取前进行边界检查,防止越界读取。
- 安全性与边界控制:在读取 SKILL.md 时进行路径解析和边界判定,确保不会读取技能目录外的内容。
- 与 Tome 集成:与 Tome 的发现、存储、分发等模块协同工作,复用现有的技能目录和库结构。
- 启动方式灵活:可以独立二进制运行(tome-mcp),也可通过 Tome CLI 的 serve 命令启动同一实现。
-
安装步骤
- 安装 Rust 开发环境(版本要求请参照项目要求)。
- 构建整个工作区或独立构建 mcp 服务器二进制:
- 使用 cargo 构建 tome-mcp 二进制(或通过发行版获取已构建的二进制)。
- 确保依赖库已正确拉取并编译通过。
-
服务器配置(MCP 客户端需要的 JSON 配置注释)
- MCP 客户端在连接时需要知道服务器的启动命令与参数,以及服务器的名称。以下为标准字段示例(请在 MCP 客户端配置中使用,不是客户端代码的一部分): { "server": "tome-mcp", "command": "tome-mcp", "args": [] }
- 说明:
- server: MCP 服务器在客户端端待连接的服务器名称,等同于 tod 的实现中定义的服务器标识(此处为 tome-mcp)。
- command: 启动 MCP 服务器的可执行命令名。
- args: 启动命令的参数列表,如需要可添加其他运行参数(此处为空数组,表示默认启动)。
- 注:MCP 客户端不需要了解服务器内部实现细节,只需通过上述 JSON 描述正确启动并建立 JSON-RPC 连接即可。
-
基本使用方法
- 启动方式
- 直接运行独立二进制 tome-mcp,或通过 Tome 提供的“serve”命令启动同一实现的服务器。
- 使用流程(对 MCP 客户端友好)
- 客户端通过 JSON-RPC 请求调用 list_skills,获得技能列表及元数据。
- 客户端通过 JSON-RPC 请求调用 read_skill,传入目标技能名称,获取 SKILL.md 的文本内容。
- 注意事项
- 启动时应确保配置中已经正确发现技能目录并且权限可访问。
- 读取技能内容时会验证读取路径在技能目录范围内,确保安全边界。
- 若技能列表为空,list_skills 将返回相应无技能信息的提示文本。
- 启动方式
-
运行与测试
- 服务器实现包含自述的测试用例与集成测试,确保技能发现、读取、路径边界等行为符合预期。
-
运行产物与命名
- 服务器二进制名称通常为 tome-mcp,或通过 tome serve 启动同一实现的 MCP 服务。
- 该实现已经内嵌在 Tome 的代码库中,作为一个可独立运行的 MCP 服务提供技能查询能力。
-
额外说明
- 该实现以现有的发现和库管理模块作为底层数据来源,确保技能的一致性、可追踪性以及与日后扩展的兼容性。
- MCP 服务端具备对技能集合的只读查询能力,不对外部写入库,确保安全性。