
MCP Git Tools

2025.03.09
2
RustGit 工具集成代码仓库管理开发效率
mcp-git-tools 是一个为 Model Context Protocol (MCP) 提供的 Git 工具集成库。它提供了一系列 Git 操作,可以通过 MCP 协议调用,包括获取仓库状态、分支信息、提交历史、创建提交、拉取和推送更改、查看文件差异等。该工具适用于需要集成 Git 功能的 MCP 客户端或服务器,帮助开发者更高效地管理代码仓库。
View on GitHub
Overview
基本能力
产品定位
mcp-git-tools 是一个为 Model Context Protocol (MCP) 提供的 Git 工具集成库,旨在通过 MCP 协议提供一系列 Git 操作功能。
核心功能
git_status
- 获取仓库状态git_branches
- 列出分支信息git_log
- 获取提交历史git_time_filtered_log
- 获取指定时间范围内的提交git_commit
- 创建新提交git_pull
- 从远程拉取更改git_push
- 推送更改到远程git_diff
- 查看文件差异git_add
- 将文件内容添加到暂存区git_reset
- 将暂存区或工作树重置到指定状态
适用场景
- 需要集成 Git 功能的 MCP 客户端或服务器
- 自动化代码仓库管理
- 代码审查和版本控制
工具列表
- git_status:获取仓库状态,返回当前修改和未跟踪的文件列表。
- git_branches:列出所有分支信息,包括当前分支。
- git_log:获取提交历史,可指定最大返回数量和分支。
- git_time_filtered_log:获取指定时间范围内的提交,可过滤作者和分支。
- git_commit:创建新提交,可自动暂存修改的文件。
- git_pull:从远程拉取更改,可指定远程和分支。
- git_push:推送更改到远程,可指定远程和分支,支持强制推送。
- git_diff:查看文件差异,可指定文件路径、暂存状态或提交。
- git_add:将文件内容添加到暂存区,支持通配符和全部添加。
- git_reset:重置暂存区或工作树到指定状态,支持硬重置。
常见问题解答
无
使用教程
使用依赖
确保已安装 Git 和 Rust 工具链。
安装教程
# 克隆仓库
git clone https://github.com/lileeei/mcp-git-tools.git
# 进入目录
cd mcp-git-tools
# 构建
cargo build
调试方式
- 作为独立服务器运行:
cargo run --bin mcp-git-server
- 在 MCP 客户端中使用:
use mcp_client::{
client::{ClientCapabilities, ClientInfo, McpClient},
StdioTransport, Transport, McpService,
};
use std::collections::HashMap;
use std::time::Duration;
// 创建连接到 Git 工具服务器
let transport = StdioTransport::new(
"path/to/mcp-git-server",
vec![],
HashMap::new()
);
// 启动传输
let handle = transport.start().await?;
let service = McpService::with_timeout(handle, Duration::from_secs(10));
let mut client = McpClient::new(service);
// 初始化客户端
client.initialize(
ClientInfo {
name: "my-client".into(),
version: "1.0.0".into(),
},
ClientCapabilities::default(),
).await?;
// 调用 git_status 工具
let status = client
.call_tool("git_status", serde_json::json!({ "repo_path": "/path/to/repo" }))
.await?;
println!("Git status: {:?}", status);
- 集成到自己的 MCP 服务器中:
use mcp_git_tools::register_git_tools;
use mcp_server::McpServerBuilder;
// 创建服务器
let mut builder = McpServerBuilder::new("my-server", "1.0.0");
// 注册 Git 工具
register_git_tools(&mut builder);
// 添加其他工具...
// 构建服务器
let server = builder.build();