MCP ExplorerExplorer

Git Mcp Server

@LokiMCPUniverseon 10 months ago
1 MIT
FreeCommunity
AI Systems
#ai-agents#automation#devops#genai#git#mcp#model-context-protocol#repository-management#version-control
A Git MCP Server for AI assistants to manage Git repositories using natural language.

Overview

What is Git Mcp Server

Git MCP Server is a Model Context Protocol (MCP) server that integrates Git operations into AI workflows, allowing AI assistants to manage Git repositories using natural language.

Use cases

Use cases include enabling AI assistants to answer questions about repository status, view commit history, show changes made to files, create commits, list branches, and switch between branches, all through natural language commands.

How to use

To use git-mcp-server, simply clone the repository and follow the installation instructions. Once set up, you can interact with your Git repository through an AI assistant using commands like ‘What files have I changed?’ or ‘Commit my bug fix with a descriptive message.’

Key features

Key features include AI-native Git integration, a full Git toolkit (status, commits, branches, diffs), zero configuration setup, universal compatibility with various AI APIs, async performance for optimal speed, and a high code coverage of 93% ensuring reliability.

Where to use

Git MCP Server can be used in various fields where AI and Git integration is beneficial, such as software development, project management, and AI-driven applications that require version control.

Content

Git MCP Server

Tests
Python 3.10+
License: MIT
MCP
Code Coverage

A Model Context Protocol (MCP) server that provides Git operations as tools for AI assistants. This server enables seamless integration of Git functionality into AI workflows.

Why Git MCP Server?

  • AI-Native Git Integration - Enable AI assistants to manage Git repositories with natural language
  • Full Git Toolkit - Status, commits, branches, diffs, and more - all accessible to AI
  • Zero Configuration - Works out of the box with any Git repository
  • Universal Compatibility - Integrates with Claude Desktop, OpenAI, Anthropic APIs, and any MCP-compatible client
  • Async Performance - Built on Python’s asyncio for optimal performance
  • Battle-Tested - 93% code coverage with comprehensive test suite

Features

Transform your AI assistant into a Git power user with these tools:

Tool Description Use Case
git_status Get repository status “What files have I changed?”
git_log View commit history “Show me the last 5 commits”
git_diff Show changes “What did I modify in auth.py?”
git_commit Create commits “Commit my bug fix with a descriptive message”
git_branch List branches “What branches exist?”
git_checkout Switch branches “Switch to the feature branch”

Quick Start

Installation

# Clone the repository
git clone https://github.com/asklokesh/git-mcp-server.git
cd git-mcp-server

# Install dependencies
pip install -r requirements.txt

# Or install as a package
pip install -e .

See It In Action

# Ask your AI assistant:
"What's the status of my project?"
"Show me what changed in the authentication module"
"Create a commit for the bug fix I just made"
"Switch to the development branch"

Usage

Option 1: With Claude Desktop (Recommended)

  1. Edit Claude Desktop config:

    # macOS
    nano ~/Library/Application\ Support/Claude/claude_desktop_config.json
    
    # Windows
    notepad %APPDATA%\Claude\claude_desktop_config.json
    
  2. Add configuration:

    {
      "mcpServers": {
        "git-mcp": {
          "command": "python",
          "args": [
            "/path/to/git-mcp-server/git_mcp.py"
          ]
        }
      }
    }
  3. Restart Claude Desktop

Option 2: As Standalone MCP Server

python git_mcp.py

Option 3: With GenAI APIs (OpenAI, Anthropic, etc.)

See the examples directory for integration examples:

Quick example:

from examples.genai_integration_example import GitMCPToolkit

toolkit = GitMCPToolkit()
result = toolkit.execute_tool("git_status", {"path": "/path/to/repo"})
print(result)

Real-World Examples

Example 1: AI-Powered Code Review

# Ask your AI assistant:
"Check the git status and tell me what files need to be committed"
"Show me the diff for the changes in the API module"
"Create a descriptive commit message based on the changes"

Example 2: Branch Management

# Ask your AI assistant:
"List all branches and tell me which one is active"
"Create a new feature branch for the authentication update"
"Switch to the main branch and show me the latest commits"

Example 3: Project Health Check

# Ask your AI assistant:
"Analyze the last 10 commits and summarize the recent changes"
"Check if there are any uncommitted changes"
"Show me who contributed to this project recently"

Tool Reference

git_status

Get the status of a git repository.

Parameters:

  • path (string, required): Path to the git repository

Example:

{
  "tool": "git_status",
  "arguments": {
    "path": "/Users/john/my-project"
  }
}

git_log

View commit history of a repository.

Parameters:

  • path (string, required): Path to the git repository
  • limit (integer, optional): Number of commits to show (default: 10)

Example:

{
  "tool": "git_log",
  "arguments": {
    "path": "/Users/john/my-project",
    "limit": 5
  }
}

git_diff

Show changes in a repository.

Parameters:

  • path (string, required): Path to the git repository
  • staged (boolean, optional): Show staged changes (default: false)

Example:

{
  "tool": "git_diff",
  "arguments": {
    "path": "/Users/john/my-project",
    "staged": true
  }
}

git_commit

Create a git commit.

Parameters:

  • path (string, required): Path to the git repository
  • message (string, required): Commit message
  • files (array[string], optional): Specific files to commit

Example:

{
  "tool": "git_commit",
  "arguments": {
    "path": "/Users/john/my-project",
    "message": "Fix bug in authentication",
    "files": [
      "auth.py",
      "tests/test_auth.py"
    ]
  }
}

git_branch

List branches in a repository.

Parameters:

  • path (string, required): Path to the git repository

Example:

{
  "tool": "git_branch",
  "arguments": {
    "path": "/Users/john/my-project"
  }
}

git_checkout

Switch to a different branch.

Parameters:

  • path (string, required): Path to the git repository
  • branch (string, required): Branch name to checkout
  • create (boolean, optional): Create new branch (default: false)

Example:

{
  "tool": "git_checkout",
  "arguments": {
    "path": "/Users/john/my-project",
    "branch": "feature/new-feature",
    "create": true
  }
}

Development

Running Tests

# Install test dependencies
pip install pytest pytest-asyncio pytest-cov

# Run tests
python -m pytest tests/ -v

# Run with coverage
python -m pytest tests/ -v --cov=git_mcp --cov-report=html

Project Structure

git-mcp-server/
├── git_mcp.py              # Main MCP server
├── requirements.txt        # Python dependencies
├── pyproject.toml         # Package configuration
├── tests/                 # Unit tests
│   ├── __init__.py
│   └── test_git_mcp.py
├── examples/              # Integration examples
│   ├── example_client.py
│   ├── api_integration.py
│   ├── genai_integration_example.py
│   └── ...
└── .github/
    └── workflows/
        └── test.yml       # CI/CD pipeline

Contributing

We love contributions! Here’s how you can help:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Write or update tests
  5. Commit your changes (git commit -m 'Add amazing feature')
  6. Push to the branch (git push origin feature/amazing-feature)
  7. Open a Pull Request

Ways to Contribute

  • Report bugs - Help us identify issues
  • Suggest features - Share your ideas
  • Improve documentation - Help others understand the project
  • Add tests - Increase code coverage
  • Translate - Make the project accessible globally

Roadmap

  • [ ] Add support for more Git operations (merge, rebase, stash)
  • [ ] Implement Git LFS support
  • [ ] Add authentication for private repositories
  • [ ] Create a web-based dashboard
  • [ ] Support for Git hooks integration
  • [ ] Multi-repository management
  • [ ] Git workflow automation templates

License

MIT License - see LICENSE file for details

Support & Community


Made with care by developers, for developers
Star us on GitHub

Tools

No tools

Comments

Recommend MCP Servers

View All MCP Servers