Git MCP
MCP server for managing Git operations on local repositories, allowing users to list repositories, get and create tags, list commits, push tags, and refresh repositories through a standardized interface.
kjozsa
Tools
get_last_git_tag
Find the last git tag in the repository Args: repo_name: Name of the git repository Returns: Dictionary containing tag version and date
list_commits_since_last_tag
List commit messages since main HEAD and the last git tag Args: repo_name: Name of the git repository max_count: Maximum number of commits to return Returns: List of dictionaries containing commit hash, author, date, and message
list_repositories
List all git repositories in the configured path Returns: List of repository names
create_git_tag
Create a new git tag in the repository Args: repo_name: Name of the git repository tag_name: Name of the tag to create message: Optional message for annotated tag Returns: Dictionary containing status and tag information
push_git_tag
Push a git tag to the default remote Args: repo_name: Name of the git repository tag_name: Name of the tag to push Returns: Dictionary containing status and information about the operation
refresh_repository
Refresh repository by checking out main branch and pulling all remotes Args: repo_name: Name of the git repository Returns: Dictionary containing status and information about the operation
README
Git 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_PATH
is 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
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
Excel MCP Server
A Model Context Protocol server that enables AI assistants to read from and write to Microsoft Excel files, supporting formats like xlsx, xlsm, xltx, and xltm.
Playwright MCP Server
Provides a server utilizing Model Context Protocol to enable human-like browser automation with Playwright, allowing control over browser actions such as navigation, element interaction, and scrolling.
MCP Package Docs Server
Facilitates LLMs to efficiently access and fetch structured documentation for packages in Go, Python, and NPM, enhancing software development with multi-language support and performance optimization.
Claude Code MCP
An implementation of Claude Code as a Model Context Protocol server that enables using Claude's software engineering capabilities (code generation, editing, reviewing, and file operations) through the standardized MCP interface.
@kazuph/mcp-taskmanager
Model Context Protocol server for Task Management. This allows Claude Desktop (or any MCP client) to manage and execute tasks in a queue-based system.
Apple MCP Server
Enables interaction with Apple apps like Messages, Notes, and Contacts through the MCP protocol to send messages, search, and open app content using natural language.
Gitingest-MCP
An MCP server for gitingest. It allows MCP clients like Claude Desktop, Cursor, Cline etc to quickly extract information about Github repositories including repository summaries, project directory structure, file contents, etc