Git MCP Server
Provides tools for local git operations including creating branches, committing with conventional commit format, pushing and pulling from remotes, checking status, and syncing with main branch.
Integrates with GitHub for authenticated remote operations such as push and pull, and supports branch naming conventions based on GitHub issues.
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., "@Git MCP Servercreate branch for issue #42"
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.
Git MCP Server
Python MCP (Model Context Protocol) server for local git operations, providing native tool integration with Claude Code and other MCP clients.
Features
6 Git Tools: Commit, branch, push, pull, status, and sync operations
Native MCP Integration: Works seamlessly with Claude Code
Conventional Commits: Enforced commit message format with type prefixes
Branch Naming: Enforced conventions (issue-N-description, feature-*, etc.)
Token Authentication: Automatic GitHub token injection for remote operations
Related MCP server: Git MCP
Installation
From PyPI
pip install git-mcp-server
# or with uv
uvx git-mcp-serverFrom Source
git clone https://github.com/rriesco/git-mcp-server.git
cd git-mcp-server
uv syncConfiguration
Environment Variables
Variable | Required | Description |
| For push/pull | GitHub Personal Access Token for authenticated git operations |
Claude Code Configuration
Add to your MCP configuration (~/.config/claude-code/mcp-config.json):
{
"mcpServers": {
"git-manager": {
"type": "stdio",
"command": "uvx",
"args": ["git-mcp-server"],
"env": {
"GITHUB_TOKEN": "${GITHUB_TOKEN}"
}
}
}
}Available Tools
Tool | Description |
| Create and checkout a new branch with naming conventions |
| Create conventional commit with Claude attribution |
| Push commits to remote with upstream tracking |
| Pull commits from remote |
| Get current branch, tracking info, and file changes |
| Sync current branch with main (merge or rebase) |
Usage Examples
Create a Branch
result = git_create_branch(
issue_number=42,
description="add-feature-x"
)
# Creates: issue-42-add-feature-xCommit Changes
result = git_commit(
type="feat",
message="implement user authentication"
)
# Creates: feat: implement user authentication
#
# Co-Authored-By: Claude <noreply@anthropic.com>Check Status
result = git_status()
# Returns: {branch, tracking, ahead, behind, staged, modified, untracked, clean}Sync with Main
result = git_sync_with_main(
main_branch="main",
strategy="merge" # or "rebase"
)Commit Types
The git_commit tool enforces conventional commit types:
Type | Description |
| New feature |
| Bug fix |
| Documentation only |
| Code style (formatting, semicolons, etc.) |
| Code refactoring |
| Performance improvement |
| Adding or fixing tests |
| Build system or dependencies |
| CI/CD configuration |
| Maintenance tasks |
| Revert previous commit |
Branch Naming
The git_create_branch tool enforces naming conventions:
issue-<N>-<description>- For GitHub issuesfeature-<description>- For features without issuesfix-<description>- For bug fixesrefactor-<description>- For refactoring
Development
Prerequisites
Python >= 3.10
uv (recommended) or pip
Git
Setup
git clone https://github.com/rriesco/git-mcp-server.git
cd git-mcp-server
uv syncRunning Tests
# Unit tests only (fast)
uv run pytest -m "not integration" -v
# Integration tests (creates real git repos in temp directories)
uv run pytest -m integration -v
# All tests with coverage
uv run pytest --cov=git_mcp_server --cov-report=term-missingType Checking
uv run mypy src/git_mcp_server --strictArchitecture
Claude Code / MCP Client
|
| MCP Protocol (stdio)
v
┌─────────────────────────────┐
│ Python FastMCP Server │
│ - Tool Registry │
│ - GitPython Client │
│ - Error Handling │
│ - Type Validation │
└─────────────┬───────────────┘
|
| GitPython
v
Local Git RepoProject Structure
git-mcp-server/
├── src/git_mcp_server/
│ ├── server.py # Server entry point
│ ├── tools/
│ │ ├── branch.py # Branch operations
│ │ ├── commit.py # Commit operations
│ │ ├── remote.py # Push/pull operations
│ │ ├── status.py # Status queries
│ │ └── sync.py # Sync with main
│ └── utils/
│ ├── git_client.py # Singleton Repo instance
│ └── errors.py # Structured error handling
└── tests/
├── test_*.py # Unit tests
└── integration/ # Integration testsLicense
MIT License - see LICENSE for details.
Contributing
Contributions are welcome! Please read the contributing guidelines before submitting PRs.
Fork the repository
Create a feature branch
Make your changes with tests
Submit a pull request
Links
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
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/rriesco/git-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server