Git MCP Server

# Git MCP Server A Model Context Protocol (MCP) server that provides enhanced Git operations through a standardized interface. This server integrates with the MCP ecosystem to provide Git functionality to AI assistants. ## Features - **Core Git Operations**: init, clone, status, add, commit, push, pull - **Branch Management**: list, create, delete, checkout - **Tag Operations**: list, create, delete - **Remote Management**: list, add, remove - **Stash Operations**: list, save, pop - **Bulk Actions**: Execute multiple Git operations in sequence - **GitHub Integration**: Built-in GitHub support via Personal Access Token - **Path Resolution**: Smart path handling with optional default path configuration - **Error Handling**: Comprehensive error handling with custom error types - **Repository Caching**: Efficient repository state management - **Performance Monitoring**: Built-in performance tracking ## Installation 1. Clone the repository: ```bash git clone https://github.com/yourusername/git-mcp-v2.git cd git-mcp-v2 ``` 2. Install dependencies: ```bash npm install ``` 3. Build the project: ```bash npm run build ``` ## Configuration Add to your MCP settings file: ```json { "mcpServers": { "git-v2": { "command": "node", "args": ["path/to/git-mcp-v2/build/index.js"], "env": { "GIT_DEFAULT_PATH": "/path/to/default/git/directory", "GITHUB_PERSONAL_ACCESS_TOKEN": "your-github-pat" } } } } ``` ## Environment Variables - `GIT_DEFAULT_PATH`: (Optional) Default path for Git operations - `GITHUB_PERSONAL_ACCESS_TOKEN`: (Optional) GitHub Personal Access Token for GitHub operations ## Available Tools ### Basic Operations - `init`: Initialize a new Git repository - `clone`: Clone a repository - `status`: Get repository status - `add`: Stage files - `commit`: Create a commit - `push`: Push commits to remote - `pull`: Pull changes from remote ### Branch Operations - `branch_list`: List all branches - `branch_create`: Create a new branch - `branch_delete`: Delete a branch - `checkout`: Switch branches or restore working tree files ### Tag Operations - `tag_list`: List tags - `tag_create`: Create a tag - `tag_delete`: Delete a tag ### Remote Operations - `remote_list`: List remotes - `remote_add`: Add a remote - `remote_remove`: Remove a remote ### Stash Operations - `stash_list`: List stashes - `stash_save`: Save changes to stash - `stash_pop`: Apply and remove a stash ### Bulk Operations - `bulk_action`: Execute multiple Git operations in sequence ## Development ```bash # Run tests npm test # Run tests with coverage npm run test:coverage # Run linter npm run lint # Format code npm run format ``` ## License MIT ## Contributing 1. Fork the repository 2. Create your feature branch (`git checkout -b feature/amazing-feature`) 3. Commit your changes (`git commit -m 'Add some amazing feature'`) 4. Push to the branch (`git push origin feature/amazing-feature`) 5. Open a Pull Request