git-commit-mcp
Version:
MCP server for standardizing Git commit messages
160 lines (120 loc) • 5.05 kB
Markdown
# Git Commit MCP
一个基于 Model Context Protocol (MCP) 的智能 Git 提交工具,能够自动分析代码变更并生成符合项目风格的提交信息。
## 功能特性
- 🔍 **智能代码变更分析** - 自动分析 Git 仓库的变更状态和差异内容
- 📝 **智能提交信息生成** - 基于历史提交风格生成符合项目规范的提交信息
- 🎯 **个性化风格适配** - 优先分析当前用户的提交历史,自动适配个人提交风格
- 📏 **长度智能控制** - 根据历史提交长度提供参考建议,不强制截断
- 🏷️ **多种提交格式支持** - 支持前缀格式 `[FEAT]` 和标准格式 `feat:` 的自动识别
- ⚡ **一键暂存提交** - 支持文件暂存和自动提交的完整工作流
## 安装使用
### 作为 MCP 服务器运行
```bash
npx git-commit-mcp
```
### 在 Claude Desktop 中配置
在 Claude Desktop 的配置文件中添加:
```json
{
"mcpServers": {
"git-commit-mcp": {
"command": "npx",
"args": ["git-commit-mcp"]
}
}
}
```
## 工具说明
### 1. analyze_git_changes
分析当前 Git 仓库的变更状态,包括:
- 文件变更状态(已暂存、已修改、新增、删除等)
- 代码差异内容
- 历史提交风格分析
**参数:**
- `projectPath` (可选): 项目路径,默认为当前目录
**返回信息:**
- 仓库状态和变更文件列表
- 代码差异详情
- 提交风格分析结果(平均长度、格式偏好等)
### 2. generate_commit_message
基于代码变更和历史风格生成智能提交信息。
**参数:**
- `projectPath` (可选): 项目路径,默认为当前目录
- `commitDescription` (必需): 基于代码变更的提交描述
- `commitType` (可选): 提交类型,支持 feat、fix、docs、style、refactor、perf、test、build、ci、chore、revert、update
**智能特性:**
- 自动识别用户偏好的提交格式(前缀格式 vs 标准格式)
- 根据历史平均长度提供长度参考
- 自动添加日期标识(如果历史中有此习惯)
- 提供长度对比分析但不强制截断
### 3. stage_and_commit
执行文件暂存和提交操作的完整工作流。
**参数:**
- `projectPath` (可选): 项目路径,默认为当前目录
- `files` (可选): 要暂存的特定文件列表,不指定则暂存所有修改文件
- `commitMessage` (可选): 完整的提交信息
- `commitType` (可选): 提交类型
- `customMessage` (可选): 自定义提交信息
- `autoCommit` (可选): 是否在暂存后自动提交,默认为 false
**智能特性:**
- 根据历史风格自动选择提交格式
- 为所有提交信息提供长度分析
- 支持灵活的文件暂存策略
## 提交类型支持
| 类型 | 前缀格式 | 说明 |
|------|----------|------|
| feat | FEAT | 新功能:添加新特性或功能 |
| fix | FIX | 修复:解决bug或问题 |
| docs | DOCS | 文档:更新文档或注释 |
| style | STYLE | 样式:代码格式调整,不影响功能 |
| refactor | REFACTOR | 重构:代码重构,不新增功能也不修复bug |
| perf | PERF | 性能:性能优化相关更改 |
| test | TEST | 测试:添加或修改测试用例 |
| build | BUILD | 构建:影响构建系统或外部依赖的更改 |
| ci | CI | 持续集成:CI配置文件和脚本的更改 |
| chore | CHORE | 杂务:不修改源代码或测试的其他更改 |
| revert | REVERT | 回滚:撤销之前的提交 |
| update | UPDATE | 更新:更新现有功能或依赖 |
## 智能风格分析
工具会自动分析您的提交历史,包括:
1. **用户偏好优先** - 优先分析当前用户的提交记录
2. **长度分析** - 计算历史提交的平均长度作为参考
3. **格式识别** - 自动识别是否使用前缀格式(如 `[FEAT]`)
4. **类型偏好** - 分析最常用的提交类型
5. **描述风格** - 识别简洁型还是详细型描述风格
## 使用示例
### 基本工作流
1. **分析变更**
```bash
# 通过 MCP 调用
analyze_git_changes()
```
2. **生成提交信息**
```bash
# 基于分析结果生成提交信息
generate_commit_message({
"commitDescription": "添加用户登录功能",
"commitType": "feat"
})
```
3. **暂存并提交**
```bash
# 暂存所有文件并提交
stage_and_commit({
"customMessage": "添加用户登录功能",
"commitType": "feat",
"autoCommit": true
})
```
## 技术特性
- 🚀 **零配置** - 开箱即用,自动适配项目风格
- 🧠 **智能分析** - 基于机器学习的提交风格识别
- 🔄 **增量优化** - 随着使用不断优化提交建议
- 📊 **详细反馈** - 提供完整的分析和建议信息
- 🛡️ **安全可靠** - 不会强制修改或截断用户内容
## 版本信息
当前版本:0.1.16
## 许可证
MIT License
## 贡献
欢迎提交 Issue 和 Pull Request 来改进这个工具!