Skip to main content
Glama
markheramis

GIT MCP Server

by markheramis

GIT MCP Server

Node.js server implementing Model Context Protocol (MCP) for git operations.

Features

  • Git repository management through MCP protocol

  • Support for common Git operations

  • Type-safe command execution with Zod schema validation

  • Robust error handling with detailed git error messages

  • Comprehensive test suite covering all operations

Related MCP server: git-mcp-server

API

The server provides the following Git operations:

git_clone

Clone a git repository to a local directory.

{
    repository: string;    // Git repository URL to clone
    directory?: string;    // Target directory for the repository
    branch?: string;       // Branch to checkout
}

git_status

Get the status of a git repository, showing changed files and branch information.

{
    repository_path: string;  // Path to the git repository
}

git_pull

Pull changes from a remote repository into your local repository.

{
    repository_path: string;  // Path to the git repository
    remote?: string;         // Remote name
    branch?: string;         // Branch name
}

git_push

Push local changes to a remote repository.

{
    repository_path: string;  // Path to the git repository
    remote?: string;         // Remote name
    branch?: string;         // Branch name
}

git_commit

Commit changes to the repository with a message.

{
    repository_path: string;  // Path to the git repository
    message: string;         // Commit message
    add_all?: boolean;       // Add all files before committing
}

git_checkout

Checkout a branch or specific commit.

{
    repository_path: string;  // Path to the git repository
    branch: string;          // Branch or commit to checkout
    create?: boolean;        // Create new branch if it does not exist
}

git_log

Show commit history.

{
    repository_path: string;  // Path to the git repository
    count?: number;          // Number of commits to show
}

git_branch

List all branches in the repository.

{
    repository_path: string;  // Path to the git repository
    show_remote?: boolean;   // Show remote branches as well
}

git_add

Add files to the staging area.

{
    repository_path: string;  // Path to the git repository
    files: string[];         // Files to add to the staging area
}

git_init

Initialize a new git repository.

{
    repository_path: string;  // Path for the new git repository
    bare?: boolean;          // Create a bare repository
}

git_remote

Manage remote repositories.

{
    repository_path: string;  // Path to the git repository
    action: 'add' | 'remove' | 'set-url' | 'list';  // Action to perform on remote
    name?: string;           // Name of the remote
    url?: string;            // URL of the remote repository
}

Error Handling

The server provides robust error handling for git operations:

  • All git commands are executed with proper error capturing

  • Error messages are cleaned and formatted for improved readability

  • Specific git error patterns are detected and extracted from command output

  • Each tool returns structured error responses with isError: true flag

  • Errors include descriptive messages that match standard git error formats

Installation

npm install
npm run build

Usage

The server can be run using:

npm start

Or directly using the built executable:

./dist/index.js

Testing

The project includes a comprehensive test suite that verifies all git operations work correctly. To run the tests:

npm test

The tests:

  • Create a temporary git repository

  • Test the full git workflow (clone, branch, add, commit, etc.)

  • Verify proper error handling for invalid operations

  • Clean up resources after test execution

For continuous test development, you can also use:

npm run test:watch

Docker

A Docker image is available for easy deployment:

docker build -t mcp-git .
docker run mcp-git

Development

npm run dev  # Start development mode with watch
npm run build  # Build the project

Using with Cursor AI Chat

For detailed instructions on using this Git MCP server with Cursor's AI assistant, please see using with cursor.

License

MIT

Install Server
A
license - permissive license
C
quality
C
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    A Model Context Protocol server that enables Large Language Models to interact with Git repositories through a robust API, supporting operations like repository initialization, cloning, file staging, committing, and branch management.
    Last updated
    28
    4,665
    229
    Apache 2.0
  • A
    license
    B
    quality
    D
    maintenance
    A Model Context Protocol server that enables LLMs to interact with Git repositories, providing tools to read, search, and manipulate Git repositories through commands like status, diff, commit, and branch management.
    Last updated
    12
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    A Model Context Protocol server that provides Git version control operations as structured tools for AI coding agents. It enables LLMs to programmatically manage repositories through actions like committing changes, rolling back code, and comparing diffs.
    Last updated
    10
    Apache 2.0

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

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/markheramis/mcp-git'

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