---
title: "Git MCP Server for ToolPiper · ModelPiper"
description: "Read, search, and manipulate Git repositories on disk. Read and write a local working tree from chat. The server shells out to `git` directly, so behavior matches the CLI you already know: status, diff, log, show, branch"
canonical: "https://modelpiper.com/mcp-tools/git"
---

# Git MCP Server for ToolPiper · ModelPiper

> Read, search, and manipulate Git repositories on disk. Read and write a local working tree from chat. The server shells out to `git` directly, so behavior matches the CLI you already know: status, diff, log, show, branch

G

# Git MCP Server

✓ verified

Read, search, and manipulate Git repositories on disk.

Install Git in ToolPiper

Don't have ToolPiper? We'll take you to the download.

[Open repository →](https://github.com/modelcontextprotocol/servers/tree/main/src/git)

Publisher

[Anthropic](https://github.com/modelcontextprotocol/servers)

License

MIT

Transport

Local subprocess

Tools

5

## What this server does

Read and write a local working tree from chat. The server shells out to \`git\` directly, so behavior matches the CLI you already know: status, diff, log, show, branch, add, commit, reset, create-branch, checkout, plus diff-staged and diff-unstaged for the two flavors of working-tree diff. Twelve tools total, pointed at one repo path you pass at startup. \`git\_log\` accepts ISO 8601 timestamps, absolute dates ('Jan 15 2024'), or relative dates ('2 weeks ago') for filtering. \`git\_diff\` takes any revision target and produces a unified diff with configurable context lines. \`git\_branch\` filters by type (local, remote, all) and supports \`contains\`/\`not\_contains\` to find branches that touched a specific commit. What it does not do: talk to remotes. No push, no pull, no fetch, no clone. Pair it with the GitHub or GitLab server for that. It also does not run hooks, sign commits, or stage interactively. The point is deterministic read and write access to a local working tree, so you can ask 'what changed since yesterday?' and trust the answer instead of squinting at chat-generated descriptions of what might be there. Worth knowing: write tools are real. \`git\_commit\` makes commits. \`git\_reset\` unstages everything in one call. \`git\_create\_branch\` and \`git\_checkout\` will move you off your current branch. Point it at one project, not at a parent directory holding several. The README notes the implementation is in early development, so expect the tool list to grow.

## Tools included

-   git\_status
    
    Show the working tree status.
    
-   git\_log
    
    Show commit logs.
    
-   git\_diff
    
    Show changes between commits, branches, or the working tree.
    
-   git\_show
    
    Show various types of git objects.
    
-   git\_search
    
    Search file contents in the repo's history.
    

The authoritative list comes from the server's tools/list at runtime. This catalog entry may lag the upstream until the next ToolPiper release.

## Install in ToolPiper

ToolPiper handles the JSON configuration. Click Install, fill in any required tokens, and the server is ready in your chat.

Install Git in ToolPiper

Don't have ToolPiper? We'll take you to the download.

## Install in another client

Install in another MCP client (Claude Desktop, Cursor, Continue, Cline)

Claude Desktop Cursor Continue Cline

Add this to ~/Library/Application Support/Claude/claude\_desktop\_config.json.

```
{
  "mcpServers": {
    "git": {
      "command": "uvx",
      "args": [
        "mcp-server-git",
        "--repository",
        "${GIT_REPOSITORY_PATH}"
      ]
    }
  }
}
```

Copy

## Example prompts

-   "Show what's staged vs unstaged, then commit the staged changes with message 'wip: auth rewrite'."
    
    Copy
-   "List commits on this branch from last week that touched files under src/auth/."
    
    Copy
-   "Diff origin/main against HEAD and tell me which files have the largest changes."
    
    Copy
-   "Create a branch fix/login-redirect from main and switch to it."
    
    Copy

## Security notes

The server has write access to the repository you pass via \`--repository\`. \`git\_commit\`, \`git\_add\`, \`git\_reset\`, \`git\_create\_branch\`, and \`git\_checkout\` all modify state. Scope it to one repo, not a parent directory. The server does not authenticate to any remote, so it cannot push commits or fetch from origin. Local-only damage. A bad commit is recoverable (git keeps history) but \`git\_reset\` unstages everything at once with no preview. If the running process can read \`~/.gitconfig\`, commits will use those identity defaults, which is usually what you want.

## Related tools

-   [
    
    G
    
    ### GitHub
    
    ✓ verified
    
    Create issues, manage pull requests, and search repositories from your AI assistant.
    
    Developer ToolsLocal subprocess5 tools
    
    
    
    
    
    ](/mcp-tools/github)
-   [
    
    G
    
    ### GitHub (Remote)
    
    ✓ verified MAX
    
    OAuth-protected GitHub MCP. Manage repos, issues, and pull requests with no token to copy.
    
    Developer ToolsRemote HTTP5 tools
    
    
    
    
    
    ](/mcp-tools/github-remote)
-   [
    
    E
    
    ### Everything
    
    ✓ verified
    
    Reference test server exercising every MCP feature.
    
    Developer ToolsLocal subprocess5 tools
    
    
    
    
    
    ](/mcp-tools/everything)
-   [
    
    G
    
    ### GitLab
    
    ✓ verified
    
    Manage GitLab projects, issues, and merge requests.
    
    Developer ToolsLocal subprocess5 tools
    
    
    
    
    
    ](/mcp-tools/gitlab)

[← Back to all MCP tools](/mcp-tools)
