关于 Git Mcp
Git Mcp 是用于管理本地 Git 仓库的 MCP 服务,可列出仓库、查看标签和提交,并创建或推送标签及刷新仓库。
主要功能
- 01列出指定目录中的仓库
- 02查看最新标签及其日期
- 03列出最新标签后的提交
- 04创建并推送 Git 标签
- 05切换分支并拉取仓库
适用场景
- 01检查某个发布标签后的提交
- 02创建发布标签并推送到远程端
- 03从远程端刷新本地仓库
MCP 相关
它向 MCP 客户端提供 Git 仓库操作工具,并通过 `GIT_REPOS_PATH` 定位仓库。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Git MCP
安装
通过 Smithery 安装
通过 Smithery 自动为 Claude Desktop 安装 Git MCP:
npx -y @smithery/cli install @kjozsa/git-mcp --client claude
手动安装
uvx install git-mcp
配置
使用以下 JSON 配置片段添加 MCP 服务:
{
"mcpServers": {
"git-mcp": {
"command": "uvx",
"args": ["git-mcp"],
"env": {
"GIT_REPOS_PATH": "/path/to/your/git/repositories"
}
}
}
}
功能与用法
环境变量
GIT_REPOS_PATH:包含 Git 仓库的目录路径(必填)
你可以在环境中设置此变量,也可以在运行服务的目录中创建 .env 文件。
可用方法
list_repositories
列出配置路径中的所有 Git 仓库。
- 参数:无
- 返回:仓库名称列表
get_last_git_tag
查找指定仓库中的最新 Git 标签。
- 参数:
repo_name(Git 仓库名称) - 返回:包含
version(标签名称)和date(标签创建日期)的字典
list_commits_since_last_tag
列出最新 Git 标签与 HEAD 之间的提交消息。
- 参数:
repo_name:Git 仓库名称max_count(可选):要返回的最大提交数
- 返回:包含
hash、author、date和message的字典列表
create_git_tag
在指定仓库中创建新的 git 标签。
- 参数:
repo_name:git 仓库名称tag_name:要创建的标签名称message(可选):附注标签的消息(若未提供,则创建轻量标签)
- 返回:包含
status、version(标签名称)、date(标签创建日期)和type(附注或轻量)的字典
push_git_tag
将现有 git 标签推送到默认远程仓库。
- 参数:
repo_name:git 仓库名称tag_name:要推送的标签名称
- 返回:包含
status、remote(远程名称)、tag(标签名称)和message(成功消息)的字典
refresh_repository
通过检出 main 分支(若不存在则使用 master)并从所有远程拉取内容来刷新仓库。
- 参数:
repo_name:Git 仓库名称
- 返回:包含
status、repository、branch和pull_results(每个远程的拉取结果)的字典
故障排除
- 未找到仓库:确保
GIT_REPOS_PATH设置正确,并且仓库存在 - 未找到标签:仓库目前还没有任何标签
开发
# Install dependencies
uv pip install -r requirements.txt
# Run in dev mode with Inspector
mcp dev git_mcp/server.py
测试
项目包含两个测试脚本:
test_git_mcp.py- 直接测试底层 Git 命令功能,不使用 MCP 服务。test_mcp_server.py- 通过启动服务实例并调用服务来测试 MCP 服务功能。
运行测试:
# Test the Git command functionality
python test_git_mcp.py
# Test the MCP server (requires the git-mcp package to be installed)
python test_mcp_server.py
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。