yoyo

使用说明(Markdown 格式)

  • 项目简介

    • yoyo 是一个用 Rust 实现的 MCP 服务器,旨在为 LLM 客户端提供标准化的代码上下文服务。它托管大量的代码资源、可调用的工具(用于读取、修改、分析代码等)以及可渲染的 Prompt 模板,所有交互通过 JSON-RPC 进行,支持会话管理和能力声明。
  • 主要功能点

    • MCP 核心能力:以标准化的方式向客户端提供资源读取、工具调用、提示模板获取等能力,并通过 JSON-RPC 与客户端通信。
    • 资源、工具与提示管控:后端托管并管理 Resources(代码资源/文件信息)、Tools(可执行工具集合,覆盖读取、理解、写入等多种操作)以及 Prompts(可定制的对话模板)。
    • 会话与能力声明:后端管理会话、能力声明以及对客户端的能力自述。
    • 传输协议支持:实现 MCP 服务器端的通信,当前以标准输入输出(stdio)为核心通信方式,理论上也适配其他传输层(如 SSE、WebSocket 等的概念实现)。
    • 代码核心组件:包含 bake/index、符号查询、片段读取、补丁/重构等工具链,以及完整的服务入口用于 MCP 客户端对接。
  • 安装步骤

    • 需要在有 Rust 环境的机器上构建:
      1. 安装 Rust 工具链(如 rustup + cargo)。
      2. 进入仓库根目录,执行构建命令:
        • cargo build --release
      3. 构建成功后,在可执行文件目录中获得 yoyo 二进制,可以直接运行。
    • 说明:仓库还提供了 Bake 与 Embedding 等功能用于丰富的工具集合,后续可以按需安装和运行。
  • 服务器配置(用于 MCP 客户端连接,给出一个准确的客户端示例配置)

    • MCP 客户端需要知道服务器启动命令及参数,以便通过标准输入/输出与 MCP 服务器建立连接。下面给出一个准确的配置模板(请将占位符替换为实际环境信息): { "name": "yoyo", "type": "stdio", "command": "/path/to/yoyo", "args": ["--mcp-server"] }
    • 注释说明:
      • name:服务器在客户端配置中的名称,应与服务器实际标识一致(如 “yoyo”)。
      • type:通信方式,在 MCP 场景下以 stdio 模式为主。
      • command:可执行的 yoyo 二进制路径,建议使用绝对路径以避免 PATH 解析问题,若已将二进制放入系统 PATH,也可直接使用 "yoyo"。
      • args:启动参数,需包含 --mcp-server 以开启 MCP 服务模式。
    • 客户端配置要点:MCP 客户端在初始化时应读取服务器的 name、command 与 args,并通过指定命令启动服务器进程,然后与其形成 JSON-RPC 的通信通道。
  • 基本使用方法

    • 启动服务器:将 yoyo 二进制以 MCP 服务器模式启动。
    • bake 索引:首次使用前对目标代码库执行 bake,生成 bake 索引以供工具调用与查询。
    • 通过 MCP 客户端连接:在 Claude Code、Cursor、Codex CLI、 Gemini CLI、OpenCode 等支持 MCP 的客户端中,配置上述服务器信息并连接。
    • 使用工具链:连接后,客户端可按需要请求资源读取、工具执行、以及提示模板获取等能力,由服务器统一响应 JSON-RPC。

服务器信息