Git提示MCP服务器
此存储库提供了一个模型上下文协议(MCP)服务器,该服务器提供了几个命令,可以根据Git存储库的内容生成提示。

致谢
- 这 代理商.md 改编自这篇博客文章中的示例: 从Claude Code获得良好结果.
用法
先决条件:Python 3.12+和 紫外线
作为Zed编辑器的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-update此命令将安装 git-prompts-mcp-server 作为Gemini CLI扩展,使其提示和工具可供使用。
- 用途:
一旦安装。, /git-diff, /generate-pr-desc)以及工具(例如。, git_diff, git_cached_diff)在Git存储库中运行时,Gemini CLI会话将自动可用。
重要警告: 此扩展依赖于当前工作目录是Git存储库的一部分(即,包含 .git 子文件夹)。如果Gemini CLI不是从Git项目的根目录运行的,则扩展的命令和工具可能无法按预期运行。
命令
服务器响应以下命令:
/git-diff:填充HEAD和指定的祖先分支或提交之间的差异结果。/generate-pr-desc:根据HEAD和指定的祖先分支或提交之间的差异结果和提交历史生成拉取请求描述。/git-cached-diff:填充分阶段更改和HEAD的差异结果。/git-commit-messages:获取祖先和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之间的提交消息。
环境变量
服务器可以配置以下环境变量,这些变量可以在 env Zed的一部分 settings.json:
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命令。 - 添加
git-prompts-mcp-cli已安装脚本入口点 在pyproject.toml,使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提示的MCP工具版本:
git-diff,generate-pr-desc,以及git-cached-diff这允许与MCP兼容的客户端进行更集成的体验。 - 添加了一个新命令
/git-commit-messages获取指定祖先和HEAD之间的提交消息。
许可证
MIT许可证。看 许可证 了解详情。
