mcp-git
A complete Git CLI wrapper for the Model Context Protocol (MCP), enabling AI assistants to perform all git operations through MCP tools.
README
🔧 MCP Git Server
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.nameanduser.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 pathshort(boolean) - Give output in short format
-
git_log - Show commit logs
path(string, required) - Repository pathlimit(number) - Number of commits (default: 10)oneline(boolean) - One line per commitbranch(string) - Branch nameauthor(string) - Filter by authorsince(string) - Show commits since dateuntil(string) - Show commits until dategrep(string) - Filter by commit message
-
git_diff - Show changes between commits/working tree
path(string, required) - Repository pathstaged(boolean) - Show staged changescommit(string) - Compare with commitfile(string) - Specific file to diffstat(boolean) - Show diffstat only
-
git_show - Show commit details and diff
path(string, required) - Repository pathcommit(string) - Commit SHA (default: HEAD)stat(boolean) - Show diffstat only
Branch Management
-
git_branch - List, create, or delete branches
path(string, required) - Repository pathaction(string) - Action: list, create, delete, renamename(string) - Branch namenew_name(string) - New name for renameall(boolean) - List all branches including remoteforce(boolean) - Force delete
-
git_checkout - Switch branches or restore files
path(string, required) - Repository pathbranch(string) - Branch to checkoutcreate(boolean) - Create new branch (-b)file(string) - File to restore
-
git_merge - Merge branches
path(string, required) - Repository pathbranch(string) - Branch to mergeno_ff(boolean) - Create merge commit even if fast-forward possiblesquash(boolean) - Squash commitsmessage(string) - Merge commit messageabort(boolean) - Abort current merge
Staging & Commits
-
git_add - Add file contents to staging area
path(string, required) - Repository pathfiles(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 pathmessage(string, required) - Commit messageall(boolean) - Automatically stage modified files (-a)amend(boolean) - Amend previous commitallow_empty(boolean) - Allow empty commit
-
git_reset - Reset current HEAD to specified state
path(string, required) - Repository pathcommit(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 pathaction(string) - Action: push, pop, apply, list, drop, clearmessage(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 pathaction(string) - Action: list, add, remove, show, set-urlname(string) - Remote nameurl(string) - Remote URL
-
git_fetch - Download objects and refs from remote
path(string, required) - Repository pathremote(string) - Remote name (default: origin)all(boolean) - Fetch all remotesprune(boolean) - Prune deleted remote branchestags(boolean) - Fetch tags
-
git_pull - Fetch and integrate with remote branch
path(string, required) - Repository pathremote(string) - Remote name (default: origin)branch(string) - Branch namerebase(boolean) - Rebase instead of mergeff_only(boolean) - Fast-forward only
-
git_push - Update remote refs and objects
path(string, required) - Repository pathremote(string) - Remote name (default: origin)branch(string) - Branch nameforce(boolean) - Force pushforce_with_lease(boolean) - Force push with lease (safer)set_upstream(boolean) - Set upstream for branch (-u)tags(boolean) - Push tagsdelete(boolean) - Delete remote branch
-
git_clone - Clone a repository
url(string, required) - Repository URLdestination(string) - Destination directorybranch(string) - Branch to checkoutdepth(number) - Shallow clone depthrecursive(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
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.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
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.
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.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.