tooltest MCP 服务器实现

使用说明(Markdown 格式)

  • 项目简介
    • tooltest 提供一个可运行的 MCP 服务器实现,采用 Rust 实现,基于 rmcp 框架提供 MCP 的核心服务端能力,包括工具、资源、提示模板(Prompts)的管理,以及通过 JSON-RPC 与客户端通信。
  • 主要功能点
    • 处理 MCP 核心请求与响应:初始化、列出工具、调用工具、列出提示、获取提示、列出资源、读取资源等。
    • 注册并暴露 Tool/Resource/Prompt 等元数据,支持输入输出模式的模式化验证与渲染。
    • 会话管理与能力声明:实现服务器信息、协议版本、能力集合等初始化数据的返回,以及会话阶段的处理。
    • 传输协议支持:提供用于测试的 stdio 传输(以及在测试中使用的流式 HTTP 场景),以支持不同的 MCP 客户端接入方式。
    • 与测试框架的紧密结合:内部实现了大量测试工具和模拟传输,以验证 MCP 服务器在各种场景下的行为。
  • 安装步骤
    • 安装 Rust 工具链与 Cargo(请确保环境已安装 Rust)。
    • 克隆仓库并进入项目根目录。
    • 构建项目:使用 cargo 构建整个工作区,确保 tooltest 与 tooltest-core 等相关 crates 编译通过。
    • 运行 MCP 服务器(示例命令,具体请按你的环境调整路径):
      • 使用 stdio 传输启动 MCP 服务器:在终端执行 tooltest mcp --stdio
      • 你也可以将工具配置为通过 HTTP 端口对外暴露,结合 tooltest 的测试用例进行集成测试。
  • 服务器配置
    • MCP 客户端在连接 MCP 服务器前,通常需要一个配置信息来指明服务器启动方式(server name、command、args 等),以便工具测试框架能够启动并对 MCP 服务器进行探测与测试。示例配置要点如下(请按实际路径与需求替换);该信息属于配置描述,非代码实现,仅供理解如何接入服务器:
    • server: "tooltest-mcp-server"
    • command: "/path/to/your/mcp/server-binary"
    • args: ["--stdio"] 注释:server 名称用于区分不同 MCP 服务器实例;command 指向实际要启动的 MCP 服务端程序;args 为传给服务器的启动参数数组。MCP 客户端本身并不需要包含这些配置信息,它们仅用于测试框架或部署脚本来自动化启动与连接。
  • 基本使用方法
    • 启动和测试流程(简要示例,按你的环境执行):
        1. 构建工具链并启动 MCP 服务器(示例:tooltest mcp --stdio)。
        1. 使用 MCP 客户端通过 stdio 或 HTTP 方式对服务器进行“列出工具、调用工具”等测试序列,确保服务器能够正确响应 MCP 请求并遵循协议约束。
        1. 在 CI 场景中,将工具测试(tooltest)与服务器一起运行,检查输出中的“成功/失败”状态及潜在的协议、模式、运行时问题。
    • 主要操作步骤包括:初始化会话 → 列出工具 → 调用工具 → 获取 Prompt/资源 → 处理响应。服务器端负责维护会话状态、服务能力,并对不同传输协议进行适配。

服务器信息