rs-hack MCP 服务器端

使用说明内容(Markdown格式)

  1. 项目简介
  • 该仓库实现了一个 MCP 服务器端(rs-hack-mcp),用于通过 JSON-RPC 与 AI 客户端(如 Claude、GPT-类客户端等)进行交互。服务器接收请求、解析并执行工具(如对 Rust 代码进行分析、修改和查询的操作),并返回结构化的 JSON-RPC 响应信息。
  1. 主要功能点
  • 初始化协商:客户端发送 initialize 请求,服务器返回协议版本、能力(包含可用工具列表)以及服务器信息与使用说明。
  • 工具列表与调用:提供 tools/list 获取工具清单,tools/call 调用具体工具并返回结果。服务器内置一组工具,如 find、add、remove、update、rename、transform、batch、history、revert、clean 等,用于对代码进行 AST 级别的分析和修改。
  • JSON-RPC 通信:基于标准的 JSON-RPC 2.0 协议,服务端接收单行 JSON 请求并输出单行 JSON 响应,通信通过标准输入输出实现(stdio 模式)。
  • 工具执行封装:工具注册在 ToolRegistry,调用时会在本地通过 rs-hack 命令行工具执行对应操作,并将输出作为返回结果返回给客户端。
  • 安全与可扩展性要素:核心设计遵循幂等性、可追踪性与可审计性,支持通过 JSON 参数驱动工具执行。
  1. 安装与运行步骤
  • 环境准备
    • 需要已安装的 Rust 与 Cargo。
  • 构建与安装
    • 将仓库克隆到本地后,进入 rs-hack-mcp 目录,执行安装命令将生成可执行二进制(通常为 rs-hack-mcp)并放置在 Cargo 的本地二进制目录中。
    • 也可以直接从源码构建运行,命令类似:cargo install --path rs-hack-mcp
  • 启动服务器
    • 运行二进制后,服务器会监听标准输入输出进行 JSON-RPC 通信,LLM 客户端通过标准输入输出与之对接。
  • 运行效果与调试
    • 客户端发送 initialize,工具列表通过 tools/list 响应返回,随后可通过 tools/call 调用具体工具并获取返回内容。
  1. 服务器配置(MCP 客户端需要了解的参数) 以下 JSON 配置用于描述 MCP 服务端的必要连接信息(客户端通常使用此信息来对接服务器,实际连接需要在客户端实现中提供启动参数与连接方式;此处只给出配置信息以便理解服务器的部署目标): { "server_name": "rs-hack-mcp", "command": "rs-hack-mcp", "args": [] } 说明:
  • server_name: 服务器的名称标识,便于在多服务器环境中区分。
  • command: 启动服务器的可执行文件名,应与安装时生成的二进制名称一致(这里为 rs-hack-mcp)。
  • args: 启动时附带的命令行参数,当前实现通过 STDIO 通信,通常不需要额外参数,保持为空数组即可。
  1. 基本使用方法
  • 启动与连接
    • 安装并运行 rs-hack-mcp 二进制后,LLM 客户端通过标准输入输出与该 MCP 服务器建立 JSON-RPC 通信。
  • 典型工作流
      1. 客户端发送 initialize 请求,获取协议版本、服务器信息与可用工具。
      1. 客户端发送 tools/list 请求获取工具列表(名称、描述、输入 schema)。
      1. 客户端通过 tools/call 请求执行某个工具,并传入相应的参数,服务器返回执行结果。
      1. 客户端根据返回结果进行后续步进,如需要进一步的分析、重试、或组合多步调用。
  • 关键注意
    • MCP 服务器以“dry-run”为默认行为,只有在明确传入 apply 的情况下才真正应用变更;这是设计上的安全特性。
    • 工具执行使用本地 rs-hack CLI 实现,结果会以文本或结构化 JSON 的形式返回,便于下游 LLM 处理。
  1. 使用示例(概念性)
  • 客户端发送 initialize 请求,服务器返回包含 protocolVersion、capabilities、serverInfo 等字段的响应。
  • 客户端请求 tools/list,服务器返回工具集合的名称、描述与输入模式。
  • 客户端调用工具(如 find、add、transform 等),服务器执行相应命令并返回结果文本或 JSON,便于后续处理与展示。
  1. 关键词 AST-aware, Rust 工具链, JSON-RPC 服务端, 自动化重构, 代码变更编排

  2. 分类ID 6

服务器信息