About Git Mcp
Git Mcp is an MCP server for managing local Git repositories. It lists repositories, reports tags and commits, and supports tag creation, pushing, and repository refreshes.
Key features
- 01List repositories in a configured directory
- 02Read the latest tag and its date
- 03List commits since the latest tag
- 04Create and push Git tags
- 05Check out and pull repository branches
Use cases
- 01Review commits made since a release tag
- 02Create a release tag and push it to a remote
- 03Refresh a local repository from its remotes
MCP support
It exposes Git repository operations as tools for MCP clients, using `GIT_REPOS_PATH` to locate repositories.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEGit MCP
MCP server for managing Git operations on local repositories.
Installation
Installing via Smithery
To install Git MCP for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @kjozsa/git-mcp --client claude
Installing Manually
uvx install git-mcp
Configuration
Add the MCP server using the following JSON configuration snippet:
{
"mcpServers": {
"git-mcp": {
"command": "uvx",
"args": ["git-mcp"],
"env": {
"GIT_REPOS_PATH": "/path/to/your/git/repositories"
}
}
}
}
Features and Usage
Environment Variables
GIT_REPOS_PATH: Path to the directory containing your Git repositories (required)
You can set this in your environment or create a .env file in the directory where you run the server.
Available Methods
list_repositories
Lists all Git repositories in the configured path.
- Parameters: None
- Returns: List of repository names
get_last_git_tag
Finds the last Git tag in the specified repository.
- Parameters:
repo_name(Name of the Git repository) - Returns: Dictionary with
version(tag name) anddate(tag creation date)
list_commits_since_last_tag
Lists commit messages between the last Git tag and HEAD.
- Parameters:
repo_name: Name of the Git repositorymax_count(optional): Maximum number of commits to return
- Returns: List of dictionaries with
hash,author,date, andmessage
create_git_tag
Creates a new git tag in the specified repository.
- Parameters:
repo_name: Name of the git repositorytag_name: Name of the tag to createmessage(optional): Message for annotated tag (if not provided, creates a lightweight tag)
- Returns: Dictionary with
status,version(tag name),date(tag creation date), andtype(annotated or lightweight)
push_git_tag
Pushes an existing git tag to the default remote repository.
- Parameters:
repo_name: Name of the git repositorytag_name: Name of the tag to push
- Returns: Dictionary with
status,remote(name of the remote),tag(name of the tag), andmessage(success message)
refresh_repository
Refreshes a repository by checking out the main branch (or master as fallback) and pulling from all remotes.
- Parameters:
repo_name: Name of the git repository
- Returns: Dictionary with
status,repository,branch, andpull_results(results for each remote)
Troubleshooting
- Repository Not Found: Ensure
GIT_REPOS_PATHis set correctly and the repository exists - No Tags Found: The repository doesn't have any tags yet
Development
# Install dependencies
uv pip install -r requirements.txt
# Run in dev mode with Inspector
mcp dev git_mcp/server.py
Testing
The project includes two test scripts:
test_git_mcp.py- Tests the underlying Git command functionality directly, without using the MCP server.test_mcp_server.py- Tests the MCP server functionality by starting a server instance and making calls to it.
To run the tests:
# Test the Git command functionality
python test_git_mcp.py
# Test the MCP server (requires the git-mcp package to be installed)
python test_mcp_server.py
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.