Local repository surgery — status, diffs, commits, branches and history for any repo on disk.
Where the GitHub server talks to the cloud, the Git MCP server works the repositories on your own disk. It wraps everyday git plumbing — status, log, diff, show, add, commit, branch operations — so an assistant can understand and manipulate local repo state directly rather than inferring it from whatever files happen to be in context.
The most valuable tools are the read ones. git_diff and git_log give an assistant real awareness of what's changed and why: "what have I modified since main, and what did the last five commits to this file actually do?" is answerable precisely instead of approximately. For code review before you push, having the assistant read the staged diff and critique it is a genuinely good habit — a second pair of eyes that's already in your terminal.
Write operations (staging, committing, branch creation) are there too, which enables the pleasant workflow of finishing a change and saying "stage the relevant files and write a sensible commit message." The commit messages it writes from an actual diff tend to be better than the ones humans write from memory.
It's a Python server, run via uvx mcp-server-git, and lives in the archived reference repository — stable, minimal, unlikely to grow features. Note that agentic coding tools like Claude Code already run git through their shell access, so this server matters most for chat-style clients (Claude Desktop) that lack a shell, or when you want git operations exposed as structured, auditable tools rather than arbitrary commands.
git_reset here means unstage. It clears the index rather than doing anything resembling --hard, so no tool in the set can throw away uncommitted work.uvx isn't your style, pip install mcp-server-git and python -m mcp_server_git give you the same server from an ordinary virtualenv.Have the assistant read your staged diff and point out problems before anyone else sees them.
"When did this function change and why?" answered from actual log and show output.
Generated commit messages that describe the real diff instead of 'fix stuff'.
| Tool | What it does |
|---|---|
| git_status | Working tree status: modified, staged, untracked files |
| git_diff / git_diff_staged | Diffs of unstaged or staged changes |
| git_log | Commit history with messages and authors |
| git_show | Inspect a specific commit's contents |
| git_add | Stage files for commit |
| git_commit | Commit staged changes with a message |
| git_create_branch / git_checkout | Create and switch branches |
{
"mcpServers": {
"git": {
"command": "uvx",
"args": ["mcp-server-git", "--repository", "/path/to/your/repo"]
}
}
}Omit --repository to let tools take a repo path per call.
Python 3.10+ with uv, and git on PATH. Point it at repos you trust the assistant to touch.
Kill hallucinated APIs — version-accurate, up-to-date library documentation injected straight into context.
Microsoft's official browser automation server — drive a real browser through the accessibility tree, no screenshots needed.
GitHub's official server — repos, issues, pull requests, Actions and code security, straight from your assistant.
Issue tracking at the speed of conversation — Linear's official hosted server with OAuth and zero install.
Timezone sanity for AI — current time anywhere and correct conversions, without the model doing date math.
Give your coding agent the full DevTools toolbox: traces, network, console, heap snapshots and Lighthouse.