Git差异生成工具

一个基于Node.js的MCP服务器,提供Git合并提交差异生成功能。

  • by skurekjakub
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 skurekjakub/GitStuffServer

使用说明

Git内容服务器

此存储库包含一个Node.js应用程序,该应用程序充当MCP(模型上下文协议)服务器,提供Git相关功能。目前,它提供了一个工具来生成Git合并提交对其第一个父级的差异。

特性

  • MCP服务器: 作为标准MCP服务器运行,使用stdio进行通信。
  • get_git_merge_diff 工具:
    • 接受Git合并提交哈希。
    • 执行 GenerateMergeDiff.ps1 PowerShell脚本。
    • 返回由生成的文本差异内容 git show -m --first-parent <commitHash>.

先决条件

  • Node.js (支持ES模块的版本,请检查 engines 在……里面 package.json 如果指定,否则请检查 tsconfig.json 目标-ES2022)
  • npm (通常随Node.js一起提供)
  • Git 已安装并可在系统的PATH中访问。
  • PowerShell (Windows)或 pwsh (Linux/macOS)已安装并可在系统的PATH中访问。

安装

  1. 克隆存储库:
    git clone <your-repo-url>
    cd GitStuffServer
    
  2. 安装依赖项:
    npm install
    

用法

  1. 构建TypeScript代码:

    npm run build
    

    这将编译以下TypeScript代码 src/ JavaScript在 build/.

  2. 运行服务器:

    • 要运行编译后的代码:
      npm start
      
    • 要在开发模式下构建和运行:
      npm run dev
      

服务器将启动并监听标准输入/输出上的MCP请求。

使用 get_git_merge_diff 工具

当通过MCP客户端连接时,您可以调用 get_git_merge_diff 工具具有以下输入:

  • commitHash (string):您要区分的合并提交的Git提交哈希(SHA)。

该工具将以文本形式返回差异内容。

原理

  1. MCP服务器(src/index.ts)收到请求 get_git_merge_diff 工具。
  2. 它验证了 commitHash 输入。
  3. 它执行 GenerateMergeDiff.ps1 PowerShell脚本,传递 commitHash.
  4. PowerShell脚本正在运行 git show -m --first-parent <commitHash> 并将输出(包括任何错误)保存到名为的临时文件中 merge_changes.diff 在服务器的当前工作目录中。
  5. Node.js服务器读取以下内容 merge_changes.diff.
  6. 服务器删除临时 merge_changes.diff 文件。
  7. 服务器向MCP客户端返回差异内容(或错误消息)。

配置

关键配置点被定义为 src/index.ts:

  • SERVER_NAME:MCP服务器注册的名称。
  • SCRIPT_NAME:要执行的PowerShell脚本的文件名。
  • OUTPUT_DIFF_FILE:脚本创建的临时差异文件的名称。

许可证

此项目根据MIT许可证获得许可-请参阅 package.json 文件以获取详细信息。