mcp-git

mcp-git

A complete Git CLI wrapper for the Model Context Protocol (MCP), enabling AI assistants to perform all git operations through MCP tools.

Category
Visit Server

README

🔧 MCP Git Server

npm version License: MIT MCP

A complete Git CLI wrapper for the Model Context Protocol (MCP). Provides 100% of git functionality through MCP tools for AI assistants like Claude.

✨ Features

  • 🎯 Complete Git CLI wrapper - All git commands available as MCP tools
  • 📝 Repository information - Status, logs, diffs, and commit details
  • 🌿 Branch management - Create, delete, switch, and merge branches
  • 📦 Staging & commits - Add files, commit changes, reset, and stash
  • 🌐 Remote operations - Clone, fetch, pull, push, and remote management
  • 🔒 Secure - No credential storage, uses your existing git configuration

📋 Prerequisites

  • Git CLI must be installed and accessible in PATH
  • Node.js 16+ for running the MCP server
  • Existing git configuration (git config --global user.name and user.email)

🚀 Quick Start

Using with npx (recommended)

npx @artik0din/mcp-git

Install globally

npm install -g @artik0din/mcp-git
mcp-git

🔧 MCP Client Setup

Add this server to your MCP client configuration:

Claude Desktop Configuration

{
  "mcpServers": {
    "git": {
      "command": "npx",
      "args": ["@artik0din/mcp-git"]
    }
  }
}

Other MCP Clients

{
  "name": "git",
  "command": "npx",
  "args": ["@artik0din/mcp-git"]
}

📚 Available Tools

Repository Information

  • git_status - Show working tree status

    • path (string, required) - Repository path
    • short (boolean) - Give output in short format
  • git_log - Show commit logs

    • path (string, required) - Repository path
    • limit (number) - Number of commits (default: 10)
    • oneline (boolean) - One line per commit
    • branch (string) - Branch name
    • author (string) - Filter by author
    • since (string) - Show commits since date
    • until (string) - Show commits until date
    • grep (string) - Filter by commit message
  • git_diff - Show changes between commits/working tree

    • path (string, required) - Repository path
    • staged (boolean) - Show staged changes
    • commit (string) - Compare with commit
    • file (string) - Specific file to diff
    • stat (boolean) - Show diffstat only
  • git_show - Show commit details and diff

    • path (string, required) - Repository path
    • commit (string) - Commit SHA (default: HEAD)
    • stat (boolean) - Show diffstat only

Branch Management

  • git_branch - List, create, or delete branches

    • path (string, required) - Repository path
    • action (string) - Action: list, create, delete, rename
    • name (string) - Branch name
    • new_name (string) - New name for rename
    • all (boolean) - List all branches including remote
    • force (boolean) - Force delete
  • git_checkout - Switch branches or restore files

    • path (string, required) - Repository path
    • branch (string) - Branch to checkout
    • create (boolean) - Create new branch (-b)
    • file (string) - File to restore
  • git_merge - Merge branches

    • path (string, required) - Repository path
    • branch (string) - Branch to merge
    • no_ff (boolean) - Create merge commit even if fast-forward possible
    • squash (boolean) - Squash commits
    • message (string) - Merge commit message
    • abort (boolean) - Abort current merge

Staging & Commits

  • git_add - Add file contents to staging area

    • path (string, required) - Repository path
    • files (array) - Files to add (use ['.'] for all)
    • all (boolean) - Add all changes (-A)
    • update (boolean) - Update tracked files only (-u)
  • git_commit - Record changes to repository

    • path (string, required) - Repository path
    • message (string, required) - Commit message
    • all (boolean) - Automatically stage modified files (-a)
    • amend (boolean) - Amend previous commit
    • allow_empty (boolean) - Allow empty commit
  • git_reset - Reset current HEAD to specified state

    • path (string, required) - Repository path
    • commit (string) - Commit to reset to (default: HEAD)
    • mode (string) - Reset mode: soft, mixed, hard (default: mixed)
    • files (array) - Unstage specific files
  • git_stash - Stash changes in working directory

    • path (string, required) - Repository path
    • action (string) - Action: push, pop, apply, list, drop, clear
    • message (string) - Stash message (for push)
    • index (number) - Stash index (for pop/apply/drop)
    • include_untracked (boolean) - Include untracked files

Remote Operations

  • git_remote - Manage remote repositories

    • path (string, required) - Repository path
    • action (string) - Action: list, add, remove, show, set-url
    • name (string) - Remote name
    • url (string) - Remote URL
  • git_fetch - Download objects and refs from remote

    • path (string, required) - Repository path
    • remote (string) - Remote name (default: origin)
    • all (boolean) - Fetch all remotes
    • prune (boolean) - Prune deleted remote branches
    • tags (boolean) - Fetch tags
  • git_pull - Fetch and integrate with remote branch

    • path (string, required) - Repository path
    • remote (string) - Remote name (default: origin)
    • branch (string) - Branch name
    • rebase (boolean) - Rebase instead of merge
    • ff_only (boolean) - Fast-forward only
  • git_push - Update remote refs and objects

    • path (string, required) - Repository path
    • remote (string) - Remote name (default: origin)
    • branch (string) - Branch name
    • force (boolean) - Force push
    • force_with_lease (boolean) - Force push with lease (safer)
    • set_upstream (boolean) - Set upstream for branch (-u)
    • tags (boolean) - Push tags
    • delete (boolean) - Delete remote branch
  • git_clone - Clone a repository

    • url (string, required) - Repository URL
    • destination (string) - Destination directory
    • branch (string) - Branch to checkout
    • depth (number) - Shallow clone depth
    • recursive (boolean) - Clone submodules recursively

🔒 Security

This server uses your existing git configuration and credentials. It does not store or manage any sensitive information:

  • Uses system-installed git CLI
  • Respects your existing SSH keys and credentials
  • No network requests outside of git operations
  • All operations performed in specified directories only

📝 License

MIT License - see LICENSE file for details.

🤝 Contributing

Contributions welcome! Please feel free to submit a Pull Request.

Recommended Servers

playwright-mcp

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured