MCP Git Enhanced
Enables comprehensive Git repository operations including code diff analysis between commits or branches, commit history analysis with filtering, branch management with cleanup suggestions, repository status overview, and detailed commit inspection.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Git Enhancedshow me the diff between main and the feature branch"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Git Enhanced
MCP Git Enhanced is a Model Context Protocol server that helps AI coding assistants inspect repository state for day-to-day open-source maintenance.
It gives maintainers structured Git context for code review, commit analysis, branch comparison, and release preparation without asking the assistant to run broad shell commands.
Why Maintainers Use It
Open-source maintainers spend a lot of time answering the same repository questions before they can review or merge work:
What changed in this branch?
Which commits matter for the release notes?
Is this branch behind the base branch?
What is staged, unstaged, or untracked?
Which merged or stale branches need cleanup?
This server exposes those workflows as focused MCP tools so assistants can help with PR review, issue triage, release management, and repository hygiene.
Related MCP server: pr-mcp-server
Available Tools
Tool | Purpose |
| Analyze working tree, staged, branch, commit, or path-specific diffs. |
| Review commit history with filters for author, date range, branch, path, and stats. |
| List branches, compare a branch to its base, or suggest cleanup candidates. |
| Summarize staged, unstaged, and untracked repository state. |
| Inspect one commit with metadata, changed files, statistics, and diff output. |
Installation
From Source
git clone https://github.com/davidweb3-ctrl/mcp-git-enhanced.git
cd mcp-git-enhanced
npm install
npm run buildClaude Code Configuration
Use the built server from this repository:
{
"mcpServers": {
"git-enhanced": {
"command": "node",
"args": ["/absolute/path/to/mcp-git-enhanced/dist/index.js"]
}
}
}Future npm Install
The package is published as @davidweb3-ctrl/mcp-git-enhanced:
npm install -g @davidweb3-ctrl/mcp-git-enhancedAfter publication, clients can use:
{
"mcpServers": {
"git-enhanced": {
"command": "npx",
"args": ["@davidweb3-ctrl/mcp-git-enhanced"]
}
}
}Example Workflows
PR Review
Use git_diff to compare this branch with master and summarize the risky files.
Use git_log to list commits since the last release.
Use git_commit_analyze on the largest commit before I review it.Issue Triage
Use git_log to find recent commits touching src/tools.ts.
Use git_status to check whether the local reproduction has uncommitted changes.Release Management
Use git_branch compare against master to prepare release notes.
Use git_log with --stat style output to identify user-visible changes.
Use git_branch suggest_cleanup after the release branch is merged.Tool Examples
git_diff
{
"repoPath": "/absolute/path/to/repo",
"target": "HEAD~5",
"source": "HEAD~10",
"filePath": "src/",
"staged": false
}git_log
{
"repoPath": "/absolute/path/to/repo",
"maxCount": 20,
"author": "Maintainer Name",
"since": "1 week ago",
"stat": true
}git_branch
{
"repoPath": "/absolute/path/to/repo",
"action": "list",
"includeRemote": true
}{
"repoPath": "/absolute/path/to/repo",
"action": "compare",
"branchName": "feature/pr-review-summary",
"baseBranch": "master"
}git_status
{
"repoPath": "/absolute/path/to/repo",
"short": false
}git_commit_analyze
{
"repoPath": "/absolute/path/to/repo",
"commitHash": "abc123"
}Security Model
MCP Git Enhanced is designed as a read-oriented repository inspection server.
It runs fixed
gitsubcommands throughspawnSyncwithout shell interpolation.It does not expose destructive branch deletion, reset, checkout, rebase, push, or force-push tools.
It validates that
repoPathpoints to a Git repository before executing tool handlers.It is intended for local repositories controlled by the user or maintainer.
See SECURITY.md for reporting and supported-version details.
Development
npm install
npm run build
npm test
npm run lint
npm run format:checkProject Files
CONTRIBUTING.md: development setup and contribution process.
SECURITY.md: vulnerability reporting and trust boundaries.
ROADMAP.md: planned maintainer workflows and release direction.
CHANGELOG.md: release notes.
docs/CODEX_FOR_OSS.md: Codex for Open Source maintenance plan.
Requirements
Node.js >= 18.0.0
Git installed and available in
PATH
License
MIT
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.
TDQS
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
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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.216076
- 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.7,3891Apache 2.0
- AlicenseNot gradedqualityDmaintenanceMCP server for managing Git reference repositories, enabling AI assistants to add, load, and sync reference code from any Git repository.14MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/davidweb3-ctrl/mcp-git-enhanced'
If you have feedback or need assistance with the MCP directory API, please join our Discord server