A Model Context Protocol (MCP) server that provides git repository tools for Claude.
This MCP provides the following tools:
- get_status - Get current repository status (staged, unstaged, untracked files)
- list_branches - List all branches with current branch highlighted
- get_commit_history - View recent commits with messages and authors
- get_branch_info - Get detailed info about current or specific branch
- get_diff - Show changes (staged or unstaged)
-
Create a virtual environment and install dependencies:
python3 -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate pip install -r requirements.txt
-
Test the server:
python server.py
Add this to your Claude Desktop MCP settings file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"git-helper": {
"command": "/Users/prateek/Code/claude/git-helper-mcp/venv/bin/python",
"args": ["/Users/prateek/Code/claude/git-helper-mcp/server.py"]
}
}
}
After adding, restart Claude Desktop.
Once configured, you can ask Claude things like:
- "What's the status of my git repository?"
- "Show me the recent commit history"
- "List all branches"
- "What branch am I on?"
- "Show me the unstaged changes"
- "What's in my staging area?"
The MCP server runs as a separate process and communicates with Claude via stdio. When you ask git-related questions, Claude can call these tools to get real-time information from your git repository.
- Python 3.10+
- Git installed and in PATH
- MCP Python SDK
This project demonstrates:
- Building an MCP server
- Subprocess execution
- Async Python
- Tool definition with JSON schemas
- Error handling
Built as a learning project with Claude Code