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: Git MCP

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.

A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sndworldgh/git-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server