mcpField
G
Git Prompts MCP Server

Git Prompts MCP Server

本地服务
github.com/ceshine版本控制230 周前更新

关于 Git Prompts MCP Server

Git Prompts MCP Server 从 Git 仓库生成差异、提交历史、PR 描述和提交信息的提示词及工具,适用于通过 MCP 客户端或 Gemini CLI 处理仓库变更的开发者。

主要功能

  1. 01比较提交和分支
  2. 02读取已暂存与未暂存差异
  3. 03获取提交信息
  4. 04生成 PR 和提交描述
  5. 05排除指定差异路径

适用场景

  1. 01根据变更起草 PR 描述
  2. 02根据暂存文件生成提交信息
  3. 03对照分支检查变更
  4. 04查看近期仓库历史

MCP 相关

该 MCP 服务提供 Git 差异和提交历史工具,以及生成 PR 和提交描述的提示词。它可供兼容 MCP 的客户端使用,也可作为 Gemini CLI 扩展安装。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"git-prompts": {
"command": "uvx",
"args": [
"git+https://github.com/ceshine/git-prompts-mcp-server.git"
]
}
}
}
启动命令uvx 'git+https://github.com/ceshine/git-prompts-mcp-server.git'

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypigit+https://github.com/ceshine/git-prompts-mcp-server.git

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Git Prompts MCP 服务

此仓库提供了一个模型上下文协议(MCP)服务,其中包含多个命令,可根据 Git 仓库的内容生成提示词。

Tests

Git Prompts Server MCP server

MseeP.ai Security Assessment Badge

致谢

用法

前置条件: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 中启用此服务提供的命令和工具:

  1. 安装扩展:
    gemini extension install https://github.com/ceshine/git-prompts-mcp-server.git --auto-update
    
    此命令会将 git-prompts-mcp-server 安装为 Gemini CLI 扩展,使其提示词和工具可供使用。
  2. 用法: 安装后,在 Git 仓库中运行 Gemini CLI 时,提示词(例如 /git-diff、/generate-pr-desc)和工具(例如 git_diff、git_cached_diff)会自动在 Gemini CLI 会话中可用。

重要注意事项: 此扩展要求当前工作目录属于 Git 仓库(即包含 .git 子文件夹)。如果 Gemini CLI 不是从 Git 项目的根目录运行,扩展的命令和工具可能无法按预期工作。

命令

此服务响应以下命令:

  1. /git-diff <ancestor_branch_or_commit>:填充 HEAD 与指定祖先分支或提交之间的差异结果。
  2. /generate-pr-desc <ancestor_branch_or_commit>:根据 HEAD 与指定祖先分支或提交之间的差异结果和提交历史,生成拉取请求描述。
  3. /git-cached-diff:填充暂存的更改与 HEAD 之间的差异结果。
  4. /git-commit-messages <ancestor_branch_or_commit>:获取祖先与 HEAD 之间的提交消息。
  5. /generate-commit-message [num_commits]:根据暂存区(索引)中的文件与 HEAD 之间的差异生成提交消息。此外,还会在输出末尾指出更改中可能存在的问题。num_commits 默认为 5。设为 0 可排除提交历史。

示例:

  1. /generate-pr-desc main
  2. /git-diff dev
  3. /git-cached-diff
  4. /git-commit-messages main
  5. /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。

开发

  1. 克隆此仓库
  2. 安装依赖:uv sync --frozen

发布说明

0.3.4(2026-03-24)
  • 添加了 git-unstaged-diff MCP 工具,用于展示工作树更改(相当于 git diff),并添加了对应的 tool-git-unstaged-diff CLI 命令。
  • 在 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

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。