git file forensics
Provides deep git file-level forensics tools to analyze detailed file histories, changes, and patterns within git repositories, focusing on individual file analysis rather than repository-wide operations.
Provides deep git file-level forensics tools to analyze detailed file histories, changes, and patterns within git repositories, focusing on individual file analysis rather than repository-wide operations.
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.
Clone and build the server:
git clone [repository-url]
cd git-file-forensics
npm install
npm run build
Add to your MCP settings (~/Library/Application Support/Code/User/globalStorage/david-dafu-dev.dafu/settings/cline_mcp_settings.json
):
{
"mcpServers": {
"git-file-forensics": {
"command": "/opt/homebrew/bin/node",
"args": ["/path/to/git-file-forensics/build/index.js"],
"alwaysAllow": []
}
}
}
Tracks complete version history of a specific file, including renames and moves.
{
"method": "tools/call",
"params": {
"name": "track_file_versions",
"arguments": {
"repoPath": "/path/to/repo",
"file": "path/to/file",
"outputPath": "output.json"
}
}
}
Analyzes specific changes between any two versions of a file.
{
"method": "tools/call",
"params": {
"name": "analyze_file_diff",
"arguments": {
"repoPath": "/path/to/repo",
"file": "path/to/file",
"versions": {
"from": "commit-hash-1",
"to": "commit-hash-2"
},
"outputPath": "output.json"
}
}
}
Analyzes broader context of file changes in a specific commit.
{
"method": "tools/call",
"params": {
"name": "analyze_file_context",
"arguments": {
"repoPath": "/path/to/repo",
"file": "path/to/file",
"commit": "commit-hash",
"outputPath": "output.json"
}
}
}
Analyzes semantic changes and patterns in file history.
{
"method": "tools/call",
"params": {
"name": "analyze_file_semantics",
"arguments": {
"repoPath": "/path/to/repo",
"file": "path/to/file",
"outputPath": "output.json"
}
}
}
All tools output JSON files containing: - Detailed analysis results - Summary statistics - Change patterns and relationships - Risk assessments (where applicable)
This project is licensed under the Apache License, Version 2.0 - see the LICENSE.txt file for details.
Copyright davidorex.ai. Licensed under the Apache License, Version 2.0; you may not use this project except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
[
{
"description": "Track complete version history of a specific file, including renames and moves",
"inputSchema": {
"properties": {
"file": {
"description": "File to analyze",
"type": "string"
},
"outputPath": {
"description": "Path to write analysis output",
"type": "string"
},
"repoPath": {
"description": "Path to git repository",
"type": "string"
}
},
"required": [
"repoPath",
"file",
"outputPath"
],
"type": "object"
},
"name": "track_file_versions"
},
{
"description": "Analyze specific changes between any two versions of a file",
"inputSchema": {
"properties": {
"file": {
"description": "File to analyze",
"type": "string"
},
"outputPath": {
"description": "Path to write analysis output",
"type": "string"
},
"repoPath": {
"description": "Path to git repository",
"type": "string"
},
"versions": {
"properties": {
"from": {
"type": "string"
},
"to": {
"type": "string"
}
},
"required": [
"from",
"to"
],
"type": "object"
}
},
"required": [
"repoPath",
"file",
"versions",
"outputPath"
],
"type": "object"
},
"name": "analyze_file_diff"
},
{
"description": "Analyze broader context of file changes in a specific commit",
"inputSchema": {
"properties": {
"commit": {
"description": "Commit hash to analyze",
"type": "string"
},
"file": {
"description": "File to analyze",
"type": "string"
},
"outputPath": {
"description": "Path to write analysis output",
"type": "string"
},
"repoPath": {
"description": "Path to git repository",
"type": "string"
}
},
"required": [
"repoPath",
"file",
"commit",
"outputPath"
],
"type": "object"
},
"name": "analyze_file_context"
},
{
"description": "Analyze semantic changes and patterns in file history",
"inputSchema": {
"properties": {
"file": {
"description": "File to analyze",
"type": "string"
},
"outputPath": {
"description": "Path to write analysis output",
"type": "string"
},
"repoPath": {
"description": "Path to git repository",
"type": "string"
}
},
"required": [
"repoPath",
"file",
"outputPath"
],
"type": "object"
},
"name": "analyze_file_semantics"
}
]