tilth MCP 服务器实现

使用说明(Markdown 格式)

  • 项目简介

    • tilth 提供一个完整的 MCP 服务器实现,采用 JSON-RPC 2.0 通过标准输入输出与客户端进行通信。服务器负责:
      • 托管和管理“资源/资源文件”(资源读取等)
      • 注册并执行“工具”(如 tilth_read、tilth_search、tilth_files、tilth_deps、tilth_session、tilth_edit 等)
      • 定义和渲染“Prompt 模板”(包括针对不同任务的交互提示与上下文呈现)
      • 会话管理与能力声明,便于 LLM 客户端灵活调用
    • 该实现以命令行驱动的 MCP 服务模式运行,方便在任何支持标准输入/输出的环境中对接如 Claude、Codex 等模型工作流。
  • 主要功能点

    • 通过 JSON-RPC 处理 MCP 请求与响应,形式包括:
      • initialize:服务器初始化并返回能力、服务器信息与指令
      • tools/list:暴露可用工具清单及描述
      • tools/call:按名称调用具体工具,返回工具执行结果
      • ping:心跳检查
    • 工具支持(可选编辑模式)
      • tilth_read:以智能大纲/分段的方式读取文件
      • tilth_search、tilth_files、tilth_deps:代码搜索、文件发现、依赖分析
      • tilth_session:会话状态查看与重置
      • tilth_edit:在 edit 模式下进行代码编辑并返回变更后上下文
    • 会话管理与状态跟踪,记录读取、搜索、符号等访问统计,便于分析和优化
    • 明确的服务器行为与指令文本,确保 MCP 客户端能够基于返回的 instructions 策略性地与服务器协作
  • 安装与运行步骤

    • 构建与安装
      • 使用 Rust 工具链构建 Tilth 源码。命令示例:cargo build --release
    • 以 MCP 服务器模式启动
      • 运行 tilth 程序并开启 MCP 服务模式:tilth --mcp
      • 如需开启编辑模式(使 tilth_edit 工具可用并在提示中显示编辑相关能力),在启动时加上 --edit
    • MCP 客户端对接(服务器配置示例)
      • MCP 客户端需要配置一个 MCP 服务器条目,以便启动并连接到 Tilth 的 MCP 服务。以下为示例配置信息(JSON 格式,描述字段含义以便初学者理解;实际客户端无需包含示例代码,仅需读取字段使用): { "serverName": "tilth", "command": "tilth", "args": ["--mcp"] } 注释说明:
      • serverName:服务器标识名称,用于区分不同 MCP 服务器
      • command:启动服务器的可执行程序名称或路径,此处为 tilth
      • args:传给服务器的启动参数,至少包含 --mcp,用于进入 MCP 服务模式 若需要开启编辑模式(以提供 tilth_edit 工具能力),配置中的 args 将变为 ["--mcp", "--edit"],客户端启动时会相应把编辑能力暴露给 MCP 客户端
    • 基本使用前提
      • 客户端需要通过上述配置能够启动并向 Tilth MCP 服务器发送 JSON-RPC 请求; Tilth 服务器在收到请求后按 MCP 约定返回 JSON-RPC 响应
      • MCP 的具体请求/响应格式在 Tilth 的实现中固定为 HTTP-like 的 JSON-RPC 2.0 对象,但通过标准输入输出通道传输
  • 基本使用方法(操作示例思路,非代码)

    • 启动 Tilth 的 MCP 服务器(确保已构建并在可执行路径可用的环境中执行)
    • 使用 MCP 客户端向服务器发送 initialize,获取服务器能力与使用指引
    • 调用工具列表(tools/list)查看可用工具,并通过 tools/call 逐一执行特定工具
    • 需要时,使用 tilth_edit 参与编辑相关任务(如代码变更)并观察服务器返回的上下文与变更结果
    • 使用完毕后,客户端可通过合适的会话管理方法结束 MCP 会话
  • 关键特征与注意点

    • 服务器端实现了 MCP 的核心流程:请求接收、指令解析、工具执行、结果返回、会话与能力声明
    • 传输采用 MCP 标准的 JSON-RPC 流(通过标准输入输出实现通信)
    • 提供编辑模式支持,便于演示对代码的改动与上下文回顾
    • 工具集合涵盖读取、搜索、依赖分析、文件发现、会话管理和简易编辑等,面向代码基的上下文服务
  • 可能的扩展与兼容性

    • 当前实现以 stdio 传输为主,若后续需要支持 SSE/WebSocket 等传输,可以在传输层做抽象以扩展
    • MCP 指令与工具集可在未来扩展,保持向后兼容性
  • 参考要点

    • 本仓库包含完整的 MCP 服务端实现模块(mcp.rs)及被 MCP 调用的各种工具与上下文处理逻辑,确保作为有效的 MCP 服务器工作

服务器信息