内容
# Git 提示 MCP 服务器
本仓库提供一个模型上下文协议(MCP)服务器,该服务器根据 Git 仓库的内容提供多个生成提示的命令。
[](https://github.com/ceshine/git-prompts-mcp-server/actions/workflows/run_tests.yml)
<p>
<a href="https://glama.ai/mcp/servers/@ceshine/git-prompts-mcp-server">
<img width="380" height="200" src="https://glama.ai/mcp/servers/@ceshine/git-prompts-mcp-server/badge" alt="Git 提示服务器 MCP 服务器" />
</a>
</p>
<p>
<a href="https://mseep.ai/app/ceshine-git-prompts-mcp-server">
<img width="380" height="132" src="https://mseep.net/pr/ceshine-git-prompts-mcp-server-badge.png" alt="MseeP.ai 安全评估徽章" />
</a>
</p>
## 致谢
- 本仓库大量借鉴了 [MarkItDown MCP 服务器](https://github.com/KorigamiK/markitdown_mcp_server) 和示例 [Git MCP 服务器](https://github.com/modelcontextprotocol/servers/tree/main/src/git)。
- [AGENTS.md](./AGENTS.md) 改编自此博客文章:[从 Claude 代码中获取良好结果](https://www.dzombak.com/blog/2025/08/getting-good-results-from-claude-code/)。
## 用法
前提条件:Python 3.12+ 和 [uv](https://github.com/astral-sh/uv)
### 作为 Zed 编辑器的 MCP 服务器
将以下内容添加到您的 `settings.json` 中:
```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/", // .git 目录的父文件夹
"--excludes", // 从差异结果中排除文件和目录(服务器在幕后使用 pathlib.PurePath)
"**/uv.lock",
"--format", // 差异结果的格式
"json" // 选项:json,text
],
"env": {}
}
}
```
### 作为 Gemini CLI 扩展
要在 Gemini CLI 中启用此服务器提供的命令和工具:
1. **安装扩展:**
```bash
gemini extension install https://github.com/ceshine/git-prompts-mcp-server.git --auto-update
```
此命令将安装 `git-prompts-mcp-server` 作为 Gemini CLI 扩展,使其提示和工具可供使用。
2. **用法:**
安装后,提示(例如 `/git-diff`,`/generate-pr-desc`)和工具(例如 `git_diff`,`git_cached_diff`)将自动在 Git 仓库中适用于您的 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 工具版本的三个 MCP 提示:`git-diff`、`generate-pr-desc` 和 `git-cached-diff`。这允许与 MCP 兼容的客户端体验更集成。
- 添加了新的命令 `/git-commit-messages`,以获取指定祖先和 HEAD 之间的提交消息。
## 许可证
MIT 许可证。有关详细信息,请参见 [LICENSE](LICENSE)。
连接信息
猜你喜欢
everything-claude-code
完整的 Claude Code 配置集合 - agents、skills、hooks、commands、rules、MCPs。来自 Anthropic...
Firecrawl
Firecrawl MCP Server 实现了网页抓取、爬虫和内容提取功能。
MarkItDown MCP
MarkItDown-MCP是一个轻量级服务器,用于将URI转换为Markdown。
cc-switch
跨平台的Claude Code、Codex和Gemini CLI一体化助手。
Agent-Reach
赋予你的AI Agent观察整个互联网的眼睛。读取并搜索...
servers
# 模型上下文协议服务器