JUHE API Marketplace
markheramis avatar
MCP Server

GIT MCP Server

Node.js server implementing Model Context Protocol for git operations, enabling AI assistants to manage git repositories through natural language commands.

0
GitHub Stars
8/22/2025
Last Updated
No Configuration
Please check the documentation below.

README Documentation

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

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

Quick Actions

Key Features

Model Context Protocol
Secure Communication
Real-time Updates
Open Source