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.
- 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
- Clone the repository:
git clone https://github.com/yourusername/git-mcp-v2.git
cd git-mcp-v2- Install dependencies:
npm install- Build the project:
npm run buildAdd to your MCP settings file:
{
"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"
}
}
}
}GIT_DEFAULT_PATH: (Optional) Default path for Git operationsGITHUB_PERSONAL_ACCESS_TOKEN: (Optional) GitHub Personal Access Token for GitHub operations
init: Initialize a new Git repositoryclone: Clone a repositorystatus: Get repository statusadd: Stage filescommit: Create a commitpush: Push commits to remotepull: Pull changes from remote
branch_list: List all branchesbranch_create: Create a new branchbranch_delete: Delete a branchcheckout: Switch branches or restore working tree files
tag_list: List tagstag_create: Create a tagtag_delete: Delete a tag
remote_list: List remotesremote_add: Add a remoteremote_remove: Remove a remote
stash_list: List stashesstash_save: Save changes to stashstash_pop: Apply and remove a stash
bulk_action: Execute multiple Git operations in sequence
# Run tests
npm test
# Run tests with coverage
npm run test:coverage
# Run linter
npm run lint
# Format code
npm run formatMIT
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request