项目简介

HappyRefact 是一个实现了 Model Context Protocol (MCP) 的后端服务,专门提供代码影响分析的能力。它通过 JSON-RPC 协议与支持 MCP 的 LLM 客户端(如某些 IDE 插件或 AI 编码助手)通信,接收指令并返回代码受影响的范围信息。

主要功能点

主要功能是提供一个名为 'show_impacted_code' 的工具。当您打算修改某个代码元素(如函数、方法、类)的签名时,LLM 客户端可以调用此工具,指定仓库路径、文件路径和元素名称,服务器将分析代码库,找出可能引用了该元素的地方,并返回受影响的文件列表及引用位置。

  • 核心工具: 'show_impacted_code' - 识别对代码元素(函数、方法、类等)签名进行修改时可能影响到的文件和代码位置。
  • 支持语言: 目前主要支持 C#、Python 和 Typescript 项目的代码分析。
  • 通信协议: 使用标准 MCP JSON-RPC 协议,通过标准输入/输出来进行通信(Stdio Transport)。

安装步骤

HappyRefact 是一个 Node.js 包。要运行它,您需要安装 Node.js 和 npm (或 npx)。

  1. 安装 Node.js: 如果您的系统上没有安装 Node.js,请从 Node.js 官方网站 下载并安装适合您操作系统的版本。Node.js 安装包通常会包含 npm。
  2. 使用 npx 运行 (推荐): HappyRefact 通常设计为由 MCP 客户端通过 'npx' 按需启动。'npx' 是 npm 附带的一个工具,可以直接运行网络上的 Node.js 包而无需预先全局安装。您通常不需要手动执行安装或启动命令,兼容的 MCP 客户端会自动处理。

服务器配置

要将 HappyRefact 集成到支持 MCP 的 LLM 客户端(如某些 IDE 插件或 AI 编码助手),您需要在客户端的 MCP 服务器配置中添加一项。配置方式通常是一个 JSON 对象,指定如何启动 HappyRefact 服务器进程。以下是一些示例配置(具体格式和参数注释可能因客户端而异):

示例配置 (Windows):

// 这是一个示例配置,您需要将它添加到您的MCP客户端的设置中
// 具体的设置界面和格式请参考您的客户端文档
{
    // 服务器的唯一标识符
    "name": "happy_refact",
    // 启动服务器的命令,Windows下通常需要cmd /c来执行npx
    "command": "cmd",
    // 传递给命令的参数
    "args": [
        "/c", // cmd在执行完后面的命令后关闭自身
        "npx", // Node.js 包执行器
        "-y", // 自动确认安装happy_refact包
        "happy_refact" // 要执行的npm包名称
    ]
}

示例配置 (macOS/Linux 或 npx 已在PATH中):

// 这是一个示例配置,您需要将它添加到您的MCP客户端的设置中
// 具体的设置界面和格式请参考您的客户端文档
{
    // 服务器的唯一标识符
    "name": "happy_refact",
    // 启动服务器的命令
    "command": "npx",
    // 传递给命令的参数
    "args": [
        "-y", // 自动确认安装happy_refact包
        "happy_refact" // 要执行的npm包名称
    ]
}

在这些配置中,'command' 指定了用于启动服务器进程的可执行文件 ('cmd' 或 'npx'),而 'args' 数组包含了传递给该命令的参数。客户端会使用这些信息启动 HappyRefact 服务器,并通过标准输入和标准输出来发送 MCP 请求和接收响应。

基本使用方法

作为最终用户,您无需直接与 HappyRefact 服务器进程交互。在将 HappyRefact 配置到您的 LLM 客户端(如兼容 MCP 的 IDE 插件)后,您可以像使用其他 AI 功能一样间接使用其提供的工具。

例如,当您准备对代码中的某个函数进行修改时,您可以向集成到 IDE 中的 AI Agent 发送指令,例如“分析修改这个函数会影响到哪些代码”,或者使用特定的命令格式,提供要修改的函数所在的文件路径函数名称。AI Agent 收到您的指令后,会识别出需要调用 HappyRefact 的 'show_impact_code' 工具,并根据您提供的文件和元素信息构造 MCP 请求发送给服务器。

HappyRefact 服务器执行分析后,会将结果(即受影响的文件和位置列表)返回给 AI Agent。AI Agent 可以利用这些信息来:

  • 在进行代码修改前向您展示可能的影响范围。
  • 自动将受影响的文件加载到上下文窗口中,以便进行更全面的代码修改。
  • 帮助规划重构步骤。

总而言之,HappyRefact 作为一个后台服务,其功能通过兼容的 AI Agent 或 LLM 客户端暴露给用户。

信息

分类

开发者工具