Skip to main content
Glama

Git Stuff Server

This repository contains a Node.js application that acts as an MCP (Model Context Protocol) server to provide Git-related functionalities. Currently, it offers a tool to generate the diff for a Git merge commit against its first parent.

Features

  • MCP Server: Runs as a standard MCP server using stdio for communication.

  • get_git_merge_diff

    • Accepts a Git merge commit hash.

    • Executes the GenerateMergeDiff.ps1 PowerShell script.

    • Returns the textual diff content generated by git show -m --first-parent <commitHash>.

Related MCP server: Git Forensics MCP

Prerequisites

  • Node.js (Version supporting ES Modules, check engines in package.json if specified, otherwise check tsconfig.json target - ES2022)

  • npm (usually comes with Node.js)

  • Git installed and accessible in the system's PATH.

  • PowerShell (Windows) or pwsh (Linux/macOS) installed and accessible in the system's PATH.

Installation

  1. Clone the repository:

    git clone <your-repo-url> cd GitStuffServer
  2. Install dependencies:

    npm install

Usage

  1. Build the TypeScript code:

    npm run build

    This compiles the TypeScript code from src/ to JavaScript in build/.

  2. Run the server:

    • To run the compiled code:

      npm start
    • To build and run in development mode:

      npm run dev

The server will start and listen for MCP requests on standard input/output.

Using the get_git_merge_diff Tool

When connected via an MCP client, you can call the get_git_merge_diff tool with the following input:

  • commitHash (string): The Git commit hash (SHA) of the merge commit you want to diff.

The tool will return the diff content as text.

How it Works

  1. The MCP server (src/index.ts) receives a request for the get_git_merge_diff tool.

  2. It validates the commitHash input.

  3. It executes the GenerateMergeDiff.ps1 PowerShell script, passing the commitHash.

  4. The PowerShell script runs git show -m --first-parent <commitHash> and saves the output (including any errors) to a temporary file named merge_changes.diff in the server's current working directory.

  5. The Node.js server reads the content of merge_changes.diff.

  6. The server deletes the temporary merge_changes.diff file.

  7. The server returns the diff content (or an error message) to the MCP client.

Configuration

Key configuration points are defined as constants within src/index.ts:

  • SERVER_NAME: The name registered by the MCP server.

  • SCRIPT_NAME: The filename of the PowerShell script to execute.

  • OUTPUT_DIFF_FILE: The name of the temporary diff file created by the script.

License

This project is licensed under the MIT License - see the package.json file for details.

One-click Deploy
A
security – no known vulnerabilities
F
license - not found
A
quality - confirmed to work

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/skurekjakub/GitStuffServer'

If you have feedback or need assistance with the MCP directory API, please join our Discord server