# Git MCP Server A Model Context Protocol (MCP) server for Git operations that provides comprehensive Git functionality to MCP clients like Claude Desktop. ## Features - **Context-aware**: Automatically detects the current project based on working directory - **Comprehensive Git operations**: status, branches, diffs, logs, file contents, commits, and more - **Multi-project support**: Works seamlessly across different project directories - **Error handling**: Proper MCP error responses - **Branch management**: Create, switch, and manage branches - **Remote operations**: Push, pull, and fetch from remote repositories ## Installation ### Option 1: Global Installation (Recommended) ```bash npm install -g git-mcp-server ``` ### Option 2: Local Development Setup 1. **Clone and install:** ```bash git clone https://github.com/yourusername/git-mcp-server.git cd git-mcp-server npm install ``` 2. **Build the project:** ```bash npm run build ``` ## Configuration ### Claude Desktop Add this server to your Claude Desktop configuration file: **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json` **Windows**: `%APPDATA%\Claude\claude_desktop_config.json` ```json { "mcpServers": { "git": { "command": "git-mcp-server", "args": [] } } } ``` ### Other MCP Clients For other MCP clients, use the server binary directly: ```bash git-mcp-server ``` The server will automatically use the current working directory as the Git repository context. ## Usage Once configured, you can use Git operations through your MCP client. The server automatically detects the Git repository in your current working directory. ### Example Commands Ask your MCP client (like Claude) to perform Git operations: - "What's the current git status?" - "Show me the diff with the main branch" - "Create a new branch called feature/new-feature" - "Commit these changes with message 'Fix bug in parser'" - "Push the current branch to origin" ### Testing the Server You can test the server manually from any Git repository: ```bash cd /path/to/your/git/repo git-mcp-server ``` ### Available Tools #### Repository Information - `git_status` - Get current git status - `git_current_branch` - Get current branch name - `git_staged_changes` - Get staged changes - `git_working_directory` - Get current working directory info #### File and History Operations - `git_diff` - Show diff between branches/commits - `git_log` - Get commit history - `git_show_file` - Show file contents at specific commit #### Branch Operations - `git_branches` - List all branches - `git_checkout` - Switch to different branch or create new branch #### Staging and Commit Operations - `git_add` - Add files to staging area - `git_commit` - Create commits with message and files #### Remote Operations - `git_pull` - Pull changes from remote repository - `git_fetch` - Fetch changes from remote without merging #### Repository Management - `git_init` - Initialize a new git repository ## Prerequisites - Node.js 18+ - npm or yarn - Git installed on your system ## Contributing 1. Fork the repository 2. Create a feature branch 3. Make your changes 4. Add tests if applicable 5. Submit a pull request ## License MIT License - see [LICENSE](LICENSE) file for details. ## Project Structure ``` git-mcp-server/ ├── package.json # Project dependencies and scripts ├── tsconfig.json # TypeScript configuration ├── src/ │ └── index.ts # Main server implementation ├── build/ │ └── index.js # Compiled JavaScript (generated) └── README.md # This file ``` ## Development - `npm run build` - Build the TypeScript code - `npm run dev` - Watch mode for development - `npm start` - Run the built server