git提交消息mcp
使用模型上下文协议(MCP)的AI驱动的git提交消息生成器。
特性
- 🤖 使用AI生成提交消息
- 🔀 支持分支比较
- 📝 可定制的提示模板
- 🌍 多语言支持(中文/英文)
- ⚙️ 灵活配置(项目级和全局)
内置提示
该套餐包括 4个内置提示模板 您可以直接使用:
| 提示名称 | 描述 | 语言 | 用例 |
|---|---|---|---|
| 默认 | 默认常规承诺风格 | 中文 | 通用,中国队 |
| 常规的 | 标准常规承诺 | 英语 | 开源,英语项目 |
| 简单 | 简洁的单行消息 | 任意 | 快速提交,简单更改 |
| 详细的 | 全面的What/Why/How格式 | 任意 | 复杂的功能,详细的文档 |
位置:这些提示位于 prompts/ npm包的目录。
如何使用内置提示
对话中:
- “生成提交消息”→ Uses
default - “使用常规提示”→ Uses
conventional - “使用简单提示”→ Uses
simple - “使用详细提示”→ Uses
detailed
通过MCP配置设置为默认值:
{
"mcpServers": {
"git-commit-message-mcp": {
"command": "npx",
"args": ["-y", "git-commit-message-mcp"],
"env": {
"DEFAULT_PROMPT_FILE": "conventional"
}
}
}
}现在“生成提交消息”使用 conventional 而不是 default!
通过配置文件设置为默认值:
{
"defaultPromptFile": "simple"
}安装
npm install
npm run build快速开始
1.配置MCP服务器
添加到您的克劳德桌面或克劳德代码MCP配置中:
{
"mcpServers": {
"git-commit-message-mcp": {
"command": "node",
"args": ["/absolute/path/to/git-commit-message-mcp/dist/index.js"]
}
}
}对于Claude Desktop,配置文件位于:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 窗户:
%APPDATA%\Claude\claude_desktop_config.json
克劳德代码:
- 使用IDE中的MCP设置
2.在对话中使用
场景1:为工作目录生成提交消息
User: "Generate commit message"
AI: [Calls git_diff() → generate_commit_message_prompt() → Returns suggested commit message]场景2:与分支机构进行比较
User: "Compare with development branch and generate commit message"
AI: [Calls git_diff({compare: "development"}) → Returns commit message]场景3:比较两个分支
User: "Compare featureA with development branch, generate commit message"
AI: [Calls git_diff({base: "development", compare: "featureA"}) → Returns commit message]配置
MCP配置(推荐)
通过MCP服务器配置中的环境变量进行配置:
{
"mcpServers": {
"git-commit-message-mcp": {
"command": "npx",
"args": ["-y", "git-commit-message-mcp"],
"env": {
"PROMPTS_DIR": "./.cursor/mcp/git-commit-message-mcp-prompts",
"DEFAULT_PROMPT_FILE": "conventional",
"MAX_DIFF_LENGTH": "3000"
}
}
}
}支持的环境变量:
| 变量 | 描述 | 示例 | 默认值 |
|---|---|---|---|
PROMPTS_DIR | 用户提示目录 | ./.cursor/mcp/git-commit-message-mcp-prompts | 没有 |
DEFAULT_PROMPT_FILE | 使用的默认提示 | conventional, simple, detailed | default |
MAX_DIFF_LENGTH | 最大差异长度 | 5000 | 3000 |
备注:您也可以使用 GCM_* 前缀(例如。, GCM_PROMPTS_DIR)以避免冲突。
项目级配置
创建 .git-commit-msg.json 在项目根目录中:
{
"promptsDir": "./.cursor/mcp/git-commit-message-mcp-prompts",
"defaultPromptFile": "conventional",
"maxDiffLength": 3000
}此文件可以提交给版本控制,以便在整个团队范围内共享。
全局配置
创建 ~/.config/git-commit-msg/config.json:
{
"promptsDir": "~/.config/git-commit-msg/prompts",
"defaultPromptFile": "simple"
}配置优先
- 环境变量(MCP配置)-最高
- 项目配置文件(
.git-commit-msg.json) - 全局配置文件(
~/.config/git-commit-msg/config.json) - 内置默认值-最低
自定义提示模板
创建自定义提示
- 设置提示目录:
mkdir -p .cursor/mcp/git-commit-message-mcp-prompts- 创建自定义提示 (例如。,
a.md,b.md):
# My Custom Prompt
Generate a commit message with Jira ticket.
Format: [PROJ-123] type: description
## Code Changes
Stats: {stats}
Files: {files}
Diff: {diff}
Generate commit message:- 配置 (通过MCP环境或配置文件):
MCP配置:
{
"env": {
"PROMPTS_DIR": "./.cursor/mcp/git-commit-message-mcp-prompts"
}
}或 .git-commit-msg.json:
{
"promptsDir": "./.cursor/mcp/git-commit-message-mcp-prompts"
}在AI聊天中使用提示
"Generate commit message" → Uses default.md
"Use conventional prompt for this commit" → Uses conventional.md
"Use prompt a to compare featureA with main" → Uses a.md
"What prompts are available?" → Lists all prompts支持的占位符
{diff}-完整的git diff输出{stats}-更改统计数据(例如,“更改3个文件,插入45次(+)”){files}-已更改文件列表{summary}-变更摘要
有关详细文档,请参阅 PROMPT_SYSTEM.md.
MCP工具
使用 git_diff
获取显示代码更改的git diff。
参数:
base(可选):基础分支或提交compare(可选):分支或承诺进行比较
示例:
// Working directory vs HEAD
git_diff()
// development vs HEAD
git_diff({ compare: "development" })
// featureA vs development
git_diff({ base: "development", compare: "featureA" })list_prompts
列出所有可用的提交消息提示(包括内置和用户定义的)。
参数: 无
退货:
{
"prompts": [
{ "name": "default", "source": "builtin" },
{ "name": "conventional", "source": "builtin" },
{ "name": "a", "source": "user" },
{ "name": "b", "source": "user" }
]
}generate_commit_message_prompt
为提交消息生成AI提示。
参数:
diff(必填):Git差异内容stats(可选):Git差异统计files(可选):已更改文件列表promptName(可选):提示名称(例如“常规”、“a”)或文件路径
示例:
// Use default prompt
generate_commit_message_prompt({ diff: "..." })
// Use specific prompt by name
generate_commit_message_prompt({ diff: "...", promptName: "conventional" })
// Use custom prompt
generate_commit_message_prompt({ diff: "...", promptName: "a" })示例
请参阅 prompts/ 例如提示模板的目录:
default.md-常规提交格式的默认提示conventional.md-常规承诺风格(英文)simple.md-简洁的单线风格detailed.md-详细的What/Why/How风格
您可以将这些用作创建自己的自定义提示的模板。
有关提示系统的全面文档,请参阅 PROMPT_SYSTEM.md.
发展
# Install dependencies
npm install
# Build
npm run build
# Watch mode
npm run watch许可证
麻省理工学院
