关于 Git Prompts MCP Server
Git Prompts MCP Server 从 Git 仓库生成差异、提交历史、PR 描述和提交信息的提示词及工具,适用于通过 MCP 客户端或 Gemini CLI 处理仓库变更的开发者。
主要功能
- 01比较提交和分支
- 02读取已暂存与未暂存差异
- 03获取提交信息
- 04生成 PR 和提交描述
- 05排除指定差异路径
适用场景
- 01根据变更起草 PR 描述
- 02根据暂存文件生成提交信息
- 03对照分支检查变更
- 04查看近期仓库历史
MCP 相关
该 MCP 服务提供 Git 差异和提交历史工具,以及生成 PR 和提交描述的提示词。它可供兼容 MCP 的客户端使用,也可作为 Gemini CLI 扩展安装。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Git Prompts MCP 服务
此仓库提供了一个模型上下文协议(MCP)服务,其中包含多个命令,可根据 Git 仓库的内容生成提示词。
致谢
- 此仓库深受 MarkItDown MCP server 和示例 Git MCP server 的启发。
- AGENTS.md 改编自这篇博客文章中的示例:Getting Good Results from Claude Code。
用法
前置条件:Python 3.12+ 和 uv
作为 Zed Editor 的 MCP 服务
将以下内容添加到你的 settings.json 中:
"context_servers": {
"git_prompt_mcp": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/ceshine/git-prompts-mcp-server.git",
"git-prompts-mcp-server",
"/path/to/repo/", // parent folder of the .git directory
"--excludes", // Exclude files and directories from diff results (the server uses pathlib.PurePath behind the scenes)
"**/uv.lock",
"--format", // format for diff results
"json" // options: json, text
],
"env": {}
}
}
作为 Gemini CLI 扩展
若要在 Gemini CLI 中启用此服务提供的命令和工具:
- 安装扩展:
此命令会将gemini extension install https://github.com/ceshine/git-prompts-mcp-server.git --auto-updategit-prompts-mcp-server安装为 Gemini CLI 扩展,使其提示词和工具可供使用。 - 用法:
安装后,在 Git 仓库中运行 Gemini CLI 时,提示词(例如
/git-diff、/generate-pr-desc)和工具(例如git_diff、git_cached_diff)会自动在 Gemini CLI 会话中可用。
重要注意事项: 此扩展要求当前工作目录属于 Git 仓库(即包含 .git 子文件夹)。如果 Gemini CLI 不是从 Git 项目的根目录运行,扩展的命令和工具可能无法按预期工作。
命令
此服务响应以下命令:
/git-diff <ancestor_branch_or_commit>:填充 HEAD 与指定祖先分支或提交之间的差异结果。/generate-pr-desc <ancestor_branch_or_commit>:根据 HEAD 与指定祖先分支或提交之间的差异结果和提交历史,生成拉取请求描述。/git-cached-diff:填充暂存的更改与 HEAD 之间的差异结果。/git-commit-messages <ancestor_branch_or_commit>:获取祖先与 HEAD 之间的提交消息。/generate-commit-message [num_commits]:根据暂存区(索引)中的文件与 HEAD 之间的差异生成提交消息。此外,还会在输出末尾指出更改中可能存在的问题。num_commits默认为 5。设为 0 可排除提交历史。
示例:
/generate-pr-desc main/git-diff dev/git-cached-diff/git-commit-messages main/generate-commit-message或/generate-commit-message 3
工具
此服务还为兼容 MCP 的客户端提供以下工具:
git-diff:获取 HEAD 与祖先分支或提交之间的差异。git-cached-diff:获取暂存区(索引)中的文件与 HEAD 之间的差异。git-unstaged-diff:获取工作树与暂存区之间的差异(等同于git diff)。git-commit-messages:获取祖先与 HEAD 之间的提交消息。
环境变量
服务器可通过以下环境变量进行配置,这些变量可以在 Zed 的 settings.json 的 env 部分设置:
GIT_REPOSITORY:Git 仓库的路径。Zed 会自动传入此变量。GIT_EXCLUDES:要从差异结果中排除的文件模式列表,以逗号分隔(例如,"*/uv.lock,*.log")。GIT_OUTPUT_FORMAT:差异结果的输出格式。可以是json(默认)或text。
开发
- 克隆此仓库
- 安装依赖:
uv sync --frozen
发布说明
0.3.4(2026-03-24)
- 添加了
git-unstaged-diffMCP 工具,用于展示工作树更改(相当于git diff),并添加了对应的tool-git-unstaged-diffCLI 命令。 - 在
pyproject.toml中添加了git-prompts-mcp-cli安装脚本入口,安装后可直接调用 CLI,无需通过uv run python -m运行。
0.3.3(2026-01-18)
- 将排除逻辑从
fnmatch改为pathlib.PurePath,以实现更稳健、更符合惯例的路径匹配,并解决旧版 Python 中根目录级文件匹配的问题。 - 为提示词添加了对
$1占位符的支持,以适配基于模板的工作流(例如,OpenCode),并为这些情况提供默认值。 - 增强了提示词和工具封装器的日志记录与可观测性,添加了更详细的调试级和信息级日志。
- 添加了新的测试套件,专门用于验证路径排除模式。
0.3.2(2026-01-02)
- 更新 FastMCP 提示词参数类型提示,改用
Annotated[..., Field(...)],使 FastMCP 能在客户端未提供可选参数值时正确应用默认值。 - 添加了新的 CLI 命令
prompt-generate-commit-message,通过/generate-commit-message提示词生成提交消息,并支持可选参数--num-commits。 - 修正拼写错误,将
GIT_METHOD_COLLETION重命名为GIT_METHOD_COLLECTION,并添加日志记录和校验,以拒绝负数num_commits。
0.3.1(2025-12-10)
- 添加了新提示词
/generate-commit-message,用于根据暂存的更改和近期提交历史生成提交消息,并指出更改中可能存在的问题。 - 添加了
gemini-extension.json,以支持作为 Gemini CLI 扩展直接安装。 - 为开发添加了对
.pre-commit-config.yaml的支持。
0.3.0(2025-09-05)
- 实现了三个 MCP 提示词
git-diff、generate-pr-desc和git-cached-diff的 MCP 工具版本,让 MCP 兼容客户端能够获得更集成的体验。 - 添加了新命令
/git-commit-messages,用于获取指定祖先提交与 HEAD 之间的提交消息。
许可证
MIT 许可证。详情请参阅 LICENSE。
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。