Git Forensics MCP
Git 포렌식 MCP
심층적인 Git 저장소 조사 및 분석을 위한 특수 모델 컨텍스트 프로토콜(MCP) 서버입니다. 이 포렌식 도구는 저장소 이력, 브랜치 관계 및 개발 패턴에 대한 상세한 통찰력을 제공하며, 일반적인 GitHub 또는 Git 작업이 아닌 Git 저장소 분석에만 집중합니다.
특징
서버는 4가지 주요 분석 도구를 제공합니다.
지점 개요 (
get_branch_overview)지점 상태 및 관계에 대한 높은 수준의 개요를 제공합니다.
마지막 커밋, 커밋 수 및 병합 기반을 분석합니다.
지점 활동에 대한 통계 요약을 생성합니다.
기간 분석 (
analyze_time_period)특정 기간 동안의 자세한 개발 활동을 분석합니다.
커밋을 분류합니다(기능, 수정, 리팩토링, 문서, 기타)
커밋 패턴을 사용하여 활동 요약을 제공합니다.
파일 변경 분석 (
analyze_file_changes)여러 지점에서 특정 파일의 변경 사항을 추적합니다.
잠재적인 갈등 영역을 식별합니다
파일 수정에 대한 위험 평가를 제공합니다.
위험 수준에 따라 권장 검토 순서를 생성합니다.
병합 권장 사항 (
get_merge_recommendations)최적의 병합 전략을 결정합니다
갈등 위험을 평가합니다
코드 핫스팟을 식별합니다
단계별 병합 지침을 제공합니다.
Related MCP server: git-intel
입력 매개변수
각 도구에는 특정 매개변수가 필요합니다.
repoPath: git 저장소 경로branches: 분석할 브랜치 이름 배열outputPath: 분석 결과가 기록될 경로추가 도구별 매개변수:
timeRange: 기간 분석을 위한 시작 및 종료 날짜files: 파일 변경 분석을 위한 파일 경로 배열
출력 형식
모든 도구는 다음을 포함하는 JSON 파일을 출력합니다.
상세 분석 결과
요약 통계
위험 평가(해당되는 경우)
분석에 따른 권장 사항
기술적 세부 사항
TypeScript로 구축됨
서버 구현을 위해 MCP SDK를 사용합니다.
자식 프로세스를 통해 git 명령을 실행합니다.
오류 처리 및 검증을 제공합니다
stdio 전송에서 실행됩니다
종속성
@modelcontextprotocol/sdk
노드.js
Git(설치 및 접근 가능해야 함)
용법
서버는 MCP 서비스로 실행되며 모든 MCP 호환 클라이언트와 통합될 수 있습니다. 모든 분석 결과는 JSON 형식으로 지정된 출력 파일에 기록됩니다.
기여 및 라이센스
이 프로젝트는 Apache 라이선스 버전 2.0에 따라 라이선스가 부여되었습니다. 자세한 내용은 LICENSE.txt 파일을 참조하세요.
협업 환영
포크와 기여를 환영합니다.
모든 기여는 Apache 라이선스 2.0에 따라 이루어집니다. 이 라이선스는 다음과 같은 권한을 부여합니다.
코드를 상업적으로 사용하세요
코드 수정 및 배포
파생 작품 만들기
다른 프로젝트에 포함
저작권 2025. Apache 라이선스 버전 2.0에 따라 라이선스가 부여되었습니다. 라이선스를 준수하지 않는 한 이 프로젝트를 사용할 수 없습니다. 라이선스 사본은 http://www.apache.org/licenses/LICENSE-2.0 에서 확인하실 수 있습니다.
Available Tools
4 toolsanalyze_file_changesC
Analyze changes to specific files across branches
| Name | Required | Description | Default |
|---|---|---|---|
| repoPath | Yes | Path to git repository | |
| branches | Yes | Branches to analyze | |
| files | Yes | Files to analyze | |
| outputPath | Yes | Path to write analysis output |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure but only states what the tool does at a high level. It doesn't explain what 'analyze' entails (e.g., type of analysis, output format, whether it writes to disk, performance implications, or error handling), leaving significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of analyzing file changes across branches (a non-trivial operation), no annotations, and no output schema, the description is insufficient. It lacks details on what the analysis produces, how results are formatted, or any behavioral traits, making it incomplete for effective agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 4 parameters thoroughly. The description doesn't add any additional meaning or context about the parameters beyond what's in the schema, resulting in a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('analyze changes') and target ('specific files across branches'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'analyze_time_period' or 'get_branch_overview', which might also involve analysis operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'analyze_time_period' or 'get_branch_overview'. There's no mention of prerequisites, exclusions, or comparative contexts, leaving the agent without usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_time_periodC
Analyze detailed development activity in a specific time period
| Name | Required | Description | Default |
|---|---|---|---|
| repoPath | Yes | Path to git repository | |
| branches | Yes | Branches to analyze | |
| timeRange | Yes | ||
| outputPath | Yes | Path to write analysis output |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool 'analyzes' activity, implying a read-only operation, but doesn't clarify if it writes output (as suggested by the 'outputPath' parameter), requires specific permissions, has rate limits, or what the analysis entails. This is inadequate for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that efficiently conveys the core purpose without unnecessary words. It's front-loaded with the main action and resource, making it easy to parse and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and a tool with 4 parameters (including a nested object), the description is incomplete. It doesn't explain what 'analyze' means in practice, what the output contains, or how it differs from siblings, leaving significant gaps for an agent to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 75% (3 out of 4 parameters have descriptions), so the baseline is 3. The description adds no additional parameter semantics beyond what the schema provides, such as explaining the format of 'timeRange' or the nature of 'outputPath'. It doesn't compensate for the 25% gap in coverage for the nested 'timeRange' object.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'analyze' and the resource 'detailed development activity in a specific time period', which is specific enough to understand the tool's function. However, it doesn't explicitly differentiate from sibling tools like 'analyze_file_changes' or 'get_branch_overview', which might also analyze development activity but with different scopes or methods.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'analyze_file_changes' or 'get_branch_overview'. It mentions analyzing 'detailed development activity' but doesn't specify what that entails or when this tool is preferred over others, leaving the agent to guess based on tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_branch_overviewC
Get high-level overview of branch states and relationships
| Name | Required | Description | Default |
|---|---|---|---|
| repoPath | Yes | Path to git repository | |
| branches | Yes | Branches to analyze | |
| outputPath | Yes | Path to write analysis output |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'Get' and 'write analysis output' (via outputPath), implying read and write operations, but doesn't specify if this is safe, requires permissions, or has side effects like file creation. Critical details like error handling or output format are missing, leaving gaps in understanding the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded and appropriately sized, making it easy to grasp quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a git analysis tool with three parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what 'high-level overview' entails, how output is formatted, or any behavioral traits like file writing implications. This leaves significant gaps for an AI agent to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters (repoPath, branches, outputPath) with clear descriptions. The description adds no additional meaning beyond the schema, such as explaining relationships between parameters or usage nuances. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('high-level overview of branch states and relationships'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'analyze_file_changes' or 'get_merge_recommendations', which also seem to analyze git repositories but focus on different aspects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description lacks context about prerequisites, such as needing a valid git repository, or exclusions, like not handling specific branch states. It doesn't reference sibling tools or suggest scenarios where this tool is preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_merge_recommendationsC
Get detailed merge strategy recommendations
| Name | Required | Description | Default |
|---|---|---|---|
| repoPath | Yes | Path to git repository | |
| branches | Yes | Branches to analyze | |
| outputPath | Yes | Path to write analysis output |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'Get detailed merge strategy recommendations' but doesn't specify what 'detailed' entails, whether it's read-only or has side effects, if it requires specific permissions, or how it handles errors. For a tool with 3 parameters and no annotations, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's front-loaded and appropriately sized for its purpose, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what 'merge strategy recommendations' include, how results are returned or written to outputPath, or any behavioral traits. For a tool that likely involves analysis and output generation, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema fully documents the parameters (repoPath, branches, outputPath). The description doesn't add any meaning beyond the schema, such as explaining how branches are analyzed or what format the output uses. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'detailed merge strategy recommendations', making the purpose understandable. However, it doesn't differentiate from sibling tools like 'analyze_file_changes' or 'get_branch_overview', which might also involve repository analysis. The purpose is specific but lacks sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'analyze_file_changes' or 'analyze_time_period'. There's no mention of prerequisites, context, or exclusions. It's a basic statement of function without usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- First observed
analyze_file_changes - First observed
analyze_time_period - First observed
get_branch_overview - First observed
get_merge_recommendations
TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose with no overlap: analyze_file_changes focuses on file-level changes, analyze_time_period covers time-based activity, get_branch_overview provides branch states, and get_merge_recommendations handles merge strategies. The descriptions make it easy to differentiate between them.
All tools follow a consistent verb_noun pattern (analyze_file_changes, analyze_time_period, get_branch_overview, get_merge_recommendations) with clear, descriptive names. There are no deviations in naming conventions.
With 4 tools, the count is reasonable for a Git forensics server, though it feels slightly minimal. Each tool appears to serve a distinct function, but the scope might benefit from a few more tools for broader coverage without being excessive.
The tools cover analysis and recommendations well, but there are notable gaps for a Git forensics domain, such as missing CRUD operations (e.g., no tools for creating or modifying data) and limited coverage of common forensic tasks like commit history analysis or user activity tracking. Agents might need workarounds for some scenarios.
Maintenance
Related MCP Connectors
A MCP server built for developers enabling Git based project management with project and personal…
Repository knowledge graph MCP server for codebase understanding and debugging.
Create, deploy, and operate MCP servers directly from your GitHub repositories.
Related MCP Servers
- AlicenseAqualityCmaintenanceA local Git intelligence MCP server that provides deep repository analytics including hotspots, temporal coupling, knowledge maps, churn analysis, and risk scoring for AI agents.1212MIT
- AlicenseAqualityDmaintenanceA local Git intelligence MCP server that provides deep repository analytics including hotspots, churn, knowledge maps, and risk scoring, all computed from commit history without data leaving your machine.12MIT
- AlicenseNot gradedqualityDmaintenanceA production-grade MCP server for local git repositories that provides tools for code search, git history analysis, complexity metrics, test discovery, and dependency management.MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that gives AI assistants deep understanding of your local Git repositories, providing instant repo overviews, change summaries, blame analysis, changelogs, branch health checks, and history search.41 npmMIT