MCP Git Enhanced
🦞 MCP Git Enhanced
Un servidor MCP (Model Context Protocol) de Git mejorado que proporciona a los asistentes de IA capacidades potentes de revisión de código, análisis de commits y gestión de ramas.
Características
🔍 Análisis de diferencias de código - Compara commits, ramas o cambios en el directorio de trabajo
📊 Análisis del historial de commits - Perspectivas profundas sobre patrones de commits y colaboradores
🌿 Gestión de ramas - Listado, comparación y sugerencias de limpieza
📈 Estado del repositorio - Resumen completo del directorio de trabajo
🔎 Análisis de commits - Inspección detallada de un commit individual
Related MCP server: pr-mcp-server
Instalación
Desde npm (cuando se publique)
npm install -g @bountyclaw/mcp-git-enhancedDesde el código fuente
git clone https://github.com/bountyclaw/mcp-git-enhanced.git
cd mcp-git-enhanced
npm install
npm run buildUso con Claude Code
Añádelo a tu configuración de Claude Code (~/.claude/settings.json):
{
"mcpServers": {
"git-enhanced": {
"command": "npx",
"args": ["@bountyclaw/mcp-git-enhanced"]
}
}
}O para desarrollo local:
{
"mcpServers": {
"git-enhanced": {
"command": "node",
"args": ["/path/to/mcp-git-enhanced/dist/index.js"]
}
}
}Herramientas disponibles
git_diff
Analiza los cambios de código entre commits, ramas o el directorio de trabajo.
{
"repoPath": "/absolute/path/to/repo",
"target": "HEAD~5",
"source": "HEAD~10",
"filePath": "src/",
"staged": false
}git_log
Analiza el historial de commits con filtrado y estadísticas.
{
"repoPath": "/absolute/path/to/repo",
"maxCount": 20,
"author": "John Doe",
"since": "1 week ago",
"stat": true
}git_branch
Gestiona y analiza ramas de git.
{
"repoPath": "/absolute/path/to/repo",
"action": "list|compare|suggest_cleanup",
"includeRemote": true
}git_status
Obtén un estado completo del repositorio.
{
"repoPath": "/absolute/path/to/repo",
"short": false
}git_commit_analyze
Analiza un commit específico en detalle.
{
"repoPath": "/absolute/path/to/repo",
"commitHash": "abc123"
}Casos de uso de ejemplo
Revisión de código
"Show me the diff between main and the feature branch"
"What files changed in the last 5 commits?"
"Analyze the impact of commit abc123"Salud del repositorio
"List all branches that can be safely deleted"
"Show me commits from the last week"
"Who are the top contributors to this project?"Directorio de trabajo
"What's the current status of my repo?"
"Show me the staged changes"
"What files have uncommitted changes?"Desarrollo
# Install dependencies
npm install
# Build
npm run build
# Watch mode
npm run dev
# Test locally
node dist/index.jsPruebas
Este proyecto utiliza Jest para las pruebas con una cobertura completa para todos los manejadores de herramientas de Git.
# Run all tests
npm test
# Run tests with coverage report
npm run test:coverage
# Run tests in watch mode
npm run test:watchInforme de cobertura
Archivo | Sentencias | Ramas | Funciones | Líneas |
tools.ts | 98%+ | 95%+ | 100% | 98%+ |
Estructura de pruebas
src/__tests__/tools.test.ts- Pruebas unitarias para los 5 manejadores de herramientas de Gitgit_diff- 7 casos de pruebagit_log- 13 casos de pruebagit_branch- 10 casos de prueba (listar, comparar, sugerir_limpieza)git_status- 5 casos de pruebagit_commit_analyze- 4 casos de prueba
Calidad del código
# Run ESLint
npm run lint
# Fix ESLint issues
npm run lint:fix
# Format with Prettier
npm run format
# Check formatting
npm run format:checkRequisitos
Node.js >= 18.0.0
Git instalado y disponible en el PATH
Licencia
MIT
Contribuciones
¡Las contribuciones son bienvenidas! Por favor, lee CONTRIBUTING.md para más detalles.
Construido con 🦞 por BountyClaw
Available Tools
5 toolsgit_branchB
Manage and analyze git branches. Provides branch listing, comparison, and management suggestions.
| Name | Required | Description | Default |
|---|---|---|---|
| repoPath | Yes | Absolute path to the git repository | |
| action | Yes | Action to perform: list branches, compare branches, or suggest cleanup | |
| branchName | No | Branch name for specific operations | |
| baseBranch | No | Base branch for comparison (default: main or master) | |
| includeRemote | No | Include remote branches in listing |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description does not disclose behavioral traits (e.g., read vs write, side effects of 'suggest cleanup'). Only high-level actions are mentioned without deeper context.
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?
One sentence, but it is generic and not packed with information. Could be more concise while including key details.
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?
No output schema and description does not explain return values or usage context for the three actions. For a tool with 5 parameters, the description is too brief.
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 coverage is 100% with adequate field descriptions. Description adds no extra parameter information beyond schema, meeting the baseline.
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?
Description clearly states 'Manage and analyze git branches' with specific actions 'branch listing, comparison, and management suggestions'. It distinguishes from siblings like git_commit_analyze and git_status which cover 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 explicit guidance on when to use this tool versus alternatives. Sibling tool names provide some context but the description lacks when-to-use or when-not-to-use instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
git_commit_analyzeB
Analyze a specific commit in detail including changed files, statistics, and impact.
| Name | Required | Description | Default |
|---|---|---|---|
| repoPath | Yes | Absolute path to the git repository | |
| commitHash | No | Commit hash to analyze (default: HEAD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It mentions 'changed files, statistics, and impact' but does not disclose what 'impact' means, potential error states, or performance implications for large commits.
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, well-structured sentence that front-loads the verb and object, containing no redundant information. It earns its place with precise wording.
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?
Without an output schema, the description should elaborate on return values (e.g., format, key fields). It only vaguely mentions 'changed files, statistics, and impact,' leaving the agent guessing about the tool's full output.
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?
Both parameters are well-documented in the schema (repoPath and commitHash with default). The description adds no further detail for individual parameters, so it meets the baseline for high schema coverage but does not enhance meaning.
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 tool analyzes a specific commit in detail, including changed files, statistics, and impact. It effectively distinguishes from sibling tools like git_diff (diff analysis) and git_log (history) by focusing on a single commit's comprehensive breakdown.
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 implies usage when a detailed analysis of a specific commit is needed, but lacks explicit guidance on when not to use it or comparisons with alternatives like git_diff for detailed file changes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
git_diffB
Analyze code changes between commits, branches, or working directory. Provides detailed diff analysis with statistics and file categorization.
| Name | Required | Description | Default |
|---|---|---|---|
| repoPath | Yes | Absolute path to the git repository | |
| target | No | Target to diff against (commit hash, branch name, or 'HEAD'). If omitted, shows uncommitted changes. | |
| source | No | Source to diff from (commit hash, branch name). If omitted with target, diffs target against working directory. | |
| filePath | No | Specific file or directory path to diff (relative to repo root) | |
| staged | No | Show staged changes only (git diff --cached) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It describes the output as 'detailed diff analysis' but does not explicitly state that the tool is read-only or mention any side effects, auth needs, or rate limits.
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 two sentences long, front-loaded with the primary purpose, and contains no unnecessary words. Every sentence adds value.
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?
The description provides a high-level overview but lacks details about return format, limits, or how statistics and categorization are presented. With no output schema, this leaves gaps for an AI agent.
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 parameters. The description adds no parameter-specific details beyond the schema, justifying the 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 tool analyzes code changes between commits, branches, or the working directory. It distinguishes itself from sibling tools like git_log (history) and git_status (working tree status) by focusing specifically on diff analysis with statistics and categorization.
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 git_log or git_commit_analyze. It only implies usage for diffing but lacks explicit context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
git_logC
Analyze commit history with filtering and statistics. Provides insights into commit patterns, contributors, and code evolution.
| Name | Required | Description | Default |
|---|---|---|---|
| repoPath | Yes | Absolute path to the git repository | |
| maxCount | No | Maximum number of commits to show (default: 20) | |
| author | No | Filter commits by author name or email | |
| since | No | Show commits more recent than date (e.g., '2024-01-01', '1 week ago') | |
| until | No | Show commits older than date | |
| filePath | No | Show commits affecting specific file or directory | |
| branch | No | Branch to log (default: current branch) | |
| oneline | No | Show commits in one-line format | |
| stat | No | Include file change statistics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does not state that the operation is read-only, what permissions are needed, or any side effects. Merely mentioning 'analyze' does not disclose safety constraints.
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?
Two sentences, front-loaded with purpose. No redundant words. Could be slightly more structured, but it's efficient and easy to parse.
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?
The tool has 9 parameters, no output schema. The description does not explain return format, pagination, or how results are structured. For example, it doesn't say whether it returns plain list or statistical summary.
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?
Input schema covers all 9 parameters with descriptions (100% coverage). The description adds no additional meaning beyond the schema, so baseline 3 is appropriate.
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 it 'analyze commit history' with filtering and statistics, which is a specific verb and resource. It distinguishes from sibling tools like git_branch or git_diff, but could be more precise about what kind of analysis (e.g., 'list commits' vs. 'analyze patterns').
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 on when to use this tool versus alternatives like git_commit_analyze or git_diff. The description implies general history analysis but does not specify scenarios or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
git_statusC
Get comprehensive repository status including staged, unstaged, and untracked files.
| Name | Required | Description | Default |
|---|---|---|---|
| repoPath | Yes | Absolute path to the git repository | |
| short | No | Show short format output |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It states the tool retrieves status (implied read-only) but does not disclose any other behavioral traits, side effects, or constraints beyond the basic function.
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?
Description is a single concise sentence that front-loads the action. Its brevity is appropriate, though it could benefit from slightly more structure.
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?
No output schema exists, so description should explain return values. It mentions types of files included but lacks detail on output format. Adequate for a simple tool but not comprehensive.
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 coverage is 100% with both parameters described. Description does not add meaning beyond what the schema provides; it only mentions 'comprehensive status' without linking to parameters.
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?
Clearly states the tool gets repository status and specifies it includes staged, unstaged, and untracked files. This distinguishes it from siblings like git_diff or git_log, but does not explicitly compare to them.
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 on when to use this tool vs alternatives like git_diff or git_log. Description implies usage for status but does not provide context or exclusions.
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.
5 tool updates
v1.0.2- First observed
git_branch - First observed
git_commit_analyze - First observed
git_diff - First observed
git_log - First observed
git_status
TDQS
Scored across 5 tools
Each tool targets a distinct aspect of git: branches, commits, diffs, log history, and repository status. No functional overlap exists.
All tools follow 'git_' prefix with descriptive nouns, but 'git_commit_analyze' deviates slightly from the single-noun pattern of the others.
Five tools cover essential analysis operations without being excessive or insufficient for the server's stated analytical focus.
Tools provide broad analysis coverage but lack creation or modification operations (e.g., no commit creation, branch creation beyond suggestions), leaving notable gaps for full git workflows.
Maintenance
Related MCP Connectors
AI-native git hosting — repos, PRs, issues, CI gates, and AI code review over MCP (60 tools).
A MCP server built for developers enabling Git based project management with project and personal…
Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Related MCP Servers
- FlicenseBqualityDmaintenanceThe Git MCP Server allows AI assistants to perform enhanced Git operations via the Model Context Protocol, supporting core Git functions, branch and tag management, GitHub integration, and more.2199 npm6-
- AlicenseAqualityDmaintenanceMCP server to automate Pull Request creation with AI. Analyzes Git branches, generates descriptions, titles, suggests reviewers, and performs code reviews.84MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that provides tools for interacting with Git repositories, enabling AI assistants to manage repositories, branches, commits, and files through a standardized interface.3,381 npm1Apache 2.0
- AlicenseDqualityDmaintenanceMCP server for managing Git reference repositories, enabling AI assistants to add, load, and sync reference code from any Git repository.122 npmMIT