git-mcp-server

DanyelKirsch/git-mcp-server

3.3

If you are the rightful owner of git-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

A Model Context Protocol (MCP) server for Git operations that provides comprehensive Git functionality to MCP clients like Claude Desktop.

Tools
  1. git_status

    Get current git status

  2. git_current_branch

    Get current branch name

  3. git_staged_changes

    Get staged changes

  4. git_working_directory

    Get current working directory info

  5. git_diff

    Show diff between branches/commits

  6. git_log

    Get commit history

  7. git_show_file

    Show file contents at specific commit

  8. git_branches

    List all branches

  9. git_checkout

    Switch to different branch or create new branch

  10. git_add

    Add files to staging area

  11. git_commit

    Create commits with message and files

  12. git_pull

    Pull changes from remote repository

  13. git_fetch

    Fetch changes from remote without merging

  14. git_init

    Initialize a new git repository

Git MCP Server

A Model Context Protocol (MCP) server for Git operations that provides comprehensive Git functionality to MCP clients like Claude Desktop.

Features

  • Context-aware: Automatically detects the current project based on working directory
  • Comprehensive Git operations: status, branches, diffs, logs, file contents, commits, and more
  • Multi-project support: Works seamlessly across different project directories
  • Error handling: Proper MCP error responses
  • Branch management: Create, switch, and manage branches
  • Remote operations: Push, pull, and fetch from remote repositories

Installation

Option 1: Global Installation (Recommended)

npm install -g git-mcp-server

Option 2: Local Development Setup

  1. Clone and install:

    git clone https://github.com/yourusername/git-mcp-server.git
    cd git-mcp-server
    npm install
    
  2. Build the project:

    npm run build
    

Configuration

Claude Desktop

Add this server to your Claude Desktop configuration file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "git": {
      "command": "git-mcp-server",
      "args": []
    }
  }
}

Other MCP Clients

For other MCP clients, use the server binary directly:

git-mcp-server

The server will automatically use the current working directory as the Git repository context.

Usage

Once configured, you can use Git operations through your MCP client. The server automatically detects the Git repository in your current working directory.

Example Commands

Ask your MCP client (like Claude) to perform Git operations:

  • "What's the current git status?"
  • "Show me the diff with the main branch"
  • "Create a new branch called feature/new-feature"
  • "Commit these changes with message 'Fix bug in parser'"
  • "Push the current branch to origin"

Testing the Server

You can test the server manually from any Git repository:

cd /path/to/your/git/repo
git-mcp-server

Available Tools

Repository Information
  • git_status - Get current git status
  • git_current_branch - Get current branch name
  • git_staged_changes - Get staged changes
  • git_working_directory - Get current working directory info
File and History Operations
  • git_diff - Show diff between branches/commits
  • git_log - Get commit history
  • git_show_file - Show file contents at specific commit
Branch Operations
  • git_branches - List all branches
  • git_checkout - Switch to different branch or create new branch
Staging and Commit Operations
  • git_add - Add files to staging area
  • git_commit - Create commits with message and files
Remote Operations
  • git_pull - Pull changes from remote repository
  • git_fetch - Fetch changes from remote without merging
Repository Management
  • git_init - Initialize a new git repository

Prerequisites

  • Node.js 18+
  • npm or yarn
  • Git installed on your system

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

License

MIT License - see file for details.

Project Structure

git-mcp-server/
ā”œā”€ā”€ package.json          # Project dependencies and scripts
ā”œā”€ā”€ tsconfig.json         # TypeScript configuration
ā”œā”€ā”€ src/
│   └── index.ts         # Main server implementation
ā”œā”€ā”€ build/
│   └── index.js         # Compiled JavaScript (generated)
└── README.md            # This file

Development

  • npm run build - Build the TypeScript code
  • npm run dev - Watch mode for development
  • npm start - Run the built server