Skip to content

gavin-ali/gitCommitMCP

Repository files navigation

Git Commit MCP

一个基于 Model Context Protocol (MCP) 的智能 Git 提交工具,能够自动分析代码变更并生成符合项目风格的提交信息。

功能特性

  • 🔍 智能代码变更分析 - 自动分析 Git 仓库的变更状态和差异内容
  • 📝 智能提交信息生成 - 基于历史提交风格生成符合项目规范的提交信息
  • 🎯 个性化风格适配 - 优先分析当前用户的提交历史,自动适配个人提交风格
  • 📏 长度智能控制 - 根据历史提交长度提供参考建议,不强制截断
  • 🏷️ 多种提交格式支持 - 支持前缀格式 [FEAT] 和标准格式 feat: 的自动识别
  • 一键暂存提交 - 支持文件暂存和自动提交的完整工作流

安装使用

作为 MCP 服务器运行

npx git-commit-mcp

在 Claude Desktop 中配置

在 Claude Desktop 的配置文件中添加:

{
  "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. 分析变更
# 通过 MCP 调用
analyze_git_changes()
  1. 生成提交信息
# 基于分析结果生成提交信息
generate_commit_message({
  "commitDescription": "添加用户登录功能",
  "commitType": "feat"
})
  1. 暂存并提交
# 暂存所有文件并提交
stage_and_commit({
  "customMessage": "添加用户登录功能",
  "commitType": "feat",
  "autoCommit": true
})

技术特性

  • 🚀 零配置 - 开箱即用,自动适配项目风格
  • 🧠 智能分析 - 基于机器学习的提交风格识别
  • 🔄 增量优化 - 随着使用不断优化提交建议
  • 📊 详细反馈 - 提供完整的分析和建议信息
  • 🛡️ 安全可靠 - 不会强制修改或截断用户内容

版本信息

当前版本:0.1.16

许可证

MIT License

贡献

欢迎提交 Issue 和 Pull Request 来改进这个工具!

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors