MCP Git Tools
@lileeei
Git tool integration library for the Model Context Protocol (MCP).
Overview
What is MCP Git Tools?
MCP Git Tools is a Git tool integration library for the Model Context Protocol (MCP). It provides a set of Git operations that can be called through MCP, enabling AI assistants and MCP clients to interact with Git repositories. It is for developers who want to add Git capabilities to MCP-based applications.
How to use MCP Git Tools?
You can run it as a standalone server using cargo run --bin mcp-git-server, which communicates via standard input/output. Alternatively, integrate it into your own MCP client or server using the provided Rust library, calling specific tools like git_status with parameters such as repo_path.
Key features of MCP Git Tools
- Get repository status with
git_status - List branches and current branch with
git_branches - Retrieve commit history with
git_log(optional max_count, branch) - Filter commits by time range with
git_time_filtered_log - Create commits, pull, and push changes to remotes
- View diffs, stage files, and reset the staging area
Use cases of MCP Git Tools
- An AI assistant checking the current status of a repository before making changes.
- Automated generation of commit logs for a release report.
- A CI/CD pipeline integrating Git branch information into MCP-based workflows.
- Staging and committing changes via natural language commands through an MCP client.
- Resetting the staging area or working tree after a failed operation.
FAQ from MCP Git Tools
What dependencies are required to use MCP Git Tools?
The README states you need to clone the repository, navigate, and run cargo build, implying Rust and Cargo are required.
How does MCP Git Tools communicate with clients?
It runs as a standalone MCP server that interacts through standard input/output (stdio).
Can I integrate MCP Git Tools into my own MCP server?
Yes, the README provides an example using register_git_tools with a McpServerBuilder to add all Git tools.
What parameters does the git_commit tool accept?
It requires repo_path and message; optionally all to automatically stage modified files.