Skip to main content
Glama

git-mcp-server

A secure, git-aware MCP server for working with local repositories inside LM Studio (or any MCP host).

Features

  • Full file access — read, write, edit, create, delete, move, search

  • Shell execution — run commands in allowed directories with blocked dangerous patterns

  • Complete git workflow — status, diff, log, branch, checkout, add, commit, push, pull, stash

  • Path sandboxing — every operation is validated against your allowed directories; path traversal is blocked

  • No network calls — inference stays local, this server never phones home

Related MCP server: mcp-gitea

Prerequisites

  • Node.js 18+

  • npm

  • git

Installation

# 1. Clone or copy this folder somewhere permanent
cd ~/tools
git clone <this-repo> git-mcp-server  # or just copy the folder

# 2. Install dependencies
cd git-mcp-server
npm install

# 3. Build
npm run build

After build, the server binary is at dist/index.js.

Configure LM Studio

Open Developer tab → Install → Edit mcp.json in LM Studio and add:

{
  "mcpServers": {
    "git-mcp": {
      "command": "node",
      "args": [
        "/absolute/path/to/git-mcp-server/dist/index.js",
        "--allow-dir", "/path/to/your/repo"
      ]
    }
  }
}

Multiple repos

{
  "mcpServers": {
    "git-mcp": {
      "command": "node",
      "args": [
        "/absolute/path/to/git-mcp-server/dist/index.js",
        "--allow-dir", "/home/user/projects/repo-one",
        "--allow-dir", "/home/user/projects/repo-two"
      ]
    }
  }
}

Using environment variable instead

{
  "mcpServers": {
    "git-mcp": {
      "command": "node",
      "args": ["/absolute/path/to/git-mcp-server/dist/index.js"],
      "env": {
        "ALLOWED_DIRS": "/home/user/projects/repo-one:/home/user/projects/repo-two"
      }
    }
  }
}

On Windows use ; as the separator in ALLOWED_DIRS.

Security model

Layer

What it does

Path sandboxing

Every file/shell operation resolves the absolute path and checks it starts with an allowed dir. Path traversal (../) is blocked.

Shell blocklist

rm -rf, sudo, mkfs, dd of=, curl | sh, eval, and similar patterns are rejected before execution.

No root directories

You must explicitly list allowed dirs — there is no "allow everything" mode.

Delete is file-only

delete_file refuses to delete directories; use run_command for that explicitly.

LM Studio confirmation

LM Studio shows a confirmation dialog for every tool call, so you review before anything executes.

Available tools

File tools

Tool

Description

read_file

Read a single file

read_multiple_files

Read several files in one call

list_directory

List entries in a directory

directory_tree

Recursive tree view (depth-limited)

write_file

Write / overwrite a file

edit_file

Targeted search-and-replace (returns diff)

create_directory

Create directory with parents

delete_file

Delete a file (not directories)

move_file

Move or rename within allowed dirs

search_files

Regex search across a directory

Shell

Tool

Description

run_command

Run a shell command in an allowed directory

Git

Tool

Description

git_status

Working tree status

git_diff

Diff working tree, index, or refs

git_log

Commit history

git_branch

List, create, delete, rename branches

git_checkout

Switch branches / create new ones

git_add

Stage files

git_commit

Commit staged changes

git_push

Push to remote

git_pull

Pull from remote (merge or rebase)

git_stash

Save, pop, list, or drop stashes

Example prompts

Once connected in LM Studio:

  • "Show me the status of the repo at ~/projects/myapp"

  • "List all branches and tell me which has the most recent commit"

  • "Read src/index.ts and refactor the error handling"

  • "Stage all modified files and commit with the message 'fix: handle null case'"

  • "Search for all usages of fetchUser across the repo"

  • "Create a new branch called feature/auth and switch to it"

Good tool-calling support is required. These work well locally:

  • Qwen3 8B / 14B — excellent function calling, strong at code

  • Llama 4 Scout — solid tool use, good multilingual support

  • Mistral 7B Instruct — fast, reliable for single-tool workflows

Q4_K_M quantization is the recommended starting point.

Related MCP Connectors

Related MCP Servers