home / mcp / git file forensics mcp server

Git File Forensics MCP Server

An MCP tool for deep git file-level forensics that helps get detailed insights into file histories, changes, and patterns, focusing on individual file analysis rather than repository-wide operations.

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "davidorex-git-file-forensics": {
      "command": "/opt/homebrew/bin/node",
      "args": [
        "/path/to/git-file-forensics/build/index.js"
      ]
    }
  }
}

You can run the Git File Forensics MCP server to gain deep, file-level insights into git histories. It focuses on individual file analysis—tracking complete version histories, diffs, context, and semantic changes—so you can surface patterns and risks for specific files rather than scanning an entire repository.

How to use

To use this MCP server, connect your MCP client to the local or remote stdio endpoint and invoke the available tools by name. You can run each tool against a target repository to gather targeted insights about a specific file. Start by selecting a tool, provide the repository path and the file you want to analyze, and specify any output paths if you want the results saved to a file. Use the results to identify when files changed, how changes evolved, and any potential semantic shifts across commits.

Practically, you will perform file-specific analyses such as tracking the full history of a file, comparing two versions to understand exact changes, examining the surrounding commit context for a given file, and evaluating semantic patterns across its history. You then review the JSON output to extract detailed analyses, summary statistics, and risk indicators.

How to install

Prerequisites: you need Node.js, Git, and the MCP SDK installed on your system.

Step 1. Clone and build the server.

git clone [repository-url]
cd git-file-forensics
npm install
npm run build

Step 2. Register the MCP server in your MCP settings to enable local execution.

{
  "mcpServers": {
    "git_file_forensics": {
      "command": "/opt/homebrew/bin/node",
      "args": ["/path/to/git-file-forensics/build/index.js"],
      "alwaysAllow": []
    }
  }
}

Step 3. Restart your MCP client or IDE to pick up the new server configuration. Then you can start issuing tool requests against this server from your MCP client.

Configuration, security, and notes

The server exposes a stdio interface that runs as a local Node process. When you start the server, it is typically invoked via the Node runtime with the built index. Ensure the path to the built index matches your environment and that your MCP client has the correct permissions to execute the process.

Environment and usage notes: keep sensitive repository data local to your machine or appropriate network scope. If you run on a shared system, consider restricting access to the MCP port and the local stdio interface.

Example tool usage and outputs

The server provides the following tools to analyze git files: track_file_versions, analyze_file_diff, analyze_file_context, and analyze_file_semantics. Each tool outputs JSON files containing detailed results, summary statistics, change patterns, and risk assessments where applicable.

Note: you will specify a repository path, the target file, and output destinations when calling these tools. The resulting JSON can be reviewed to understand file history, diffs between versions, commit context, and semantic patterns.

MCP settings example (for reference)

{
  "mcpServers": {
    "git_file_forensics": {
      "command": "/opt/homebrew/bin/node",
      "args": ["/path/to/git-file-forensics/build/index.js"],
      "alwaysAllow": []
    }
  }
}

Available tools

track_file_versions

Tracks complete version history of a specific file, including renames and moves.

analyze_file_diff

Analyzes specific changes between any two versions of a file.

analyze_file_context

Analyzes broader context of file changes in a specific commit.

analyze_file_semantics

Analyzes semantic changes and patterns in file history.