Git提交消息生成工具

一个基于Model Context Protocol(MCP)和大型语言模型(LLM)的Web应用,用于从git变更中生成智能且符合规范的提交消息。

  • by sanjayperam04
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 sanjayperam04/mcp-git-assistant

使用说明

MCP Git助手

一个生产就绪的web应用程序,利用模型上下文协议(MCP)和大型语言模型从git更改中生成智能、传统的提交消息。使用Next.js 14、TypeScript和现代AI基础设施构建。

概述

MCP Git Assistant演示了Git操作的模型上下文协议的企业级集成。应用程序与官方通信,而不是直接执行shell命令 @modelcontextprotocol/server-git MCP服务器,为git自动化提供了一种标准化、安全和可维护的方法。

该架构展示了MCP如何将AI应用程序与外部工具连接起来,同时保持关注点的分离并实现无缝的可扩展性。

主要特点

  • MCP协议集成:为标准化的git操作实现模型上下文协议
  • 多提供商LLM支持:与Groq(Llama 3.3 70B)、OpenAI(GPT-4)和Anthropic(Claude 3.5)兼容
  • 实时存储库分析:通过MCP工具实时监控git状态
  • 常规承诺:根据行业最佳实践生成提交消息
  • 类型安全架构:具有严格类型检查的完整TypeScript实现
  • 生产准备就绪:针对Vercel上的部署进行了优化,并支持边缘运行时

技术栈

层 技术
框架 Next.js 14(应用路由器)
语言 TypeScript 5.x
样式 顺风CSS 3.x
协议 模型上下文协议(MCP)SDK
MCP服务器 @modelcontextprotocol/server-git
LLM提供商 Groq,OpenAI,人类学
运行时 Node.js 18+
部署 Vercel(边缘优化)

入门指南

先决条件

  • Node.js 18.x或更高版本
  • npm或yarn包管理器
  • Git 2.x或更高版本
  • 来自受支持的LLM提供程序之一的API密钥

安装

  1. 克隆存储库:
git clone https://github.com/sanjayperam04/mcp-git-assistant.git
cd mcp-git-assistant
  1. 安装依赖项:
npm install
  1. 配置环境变量:
cp .env.example .env
  1. 将您的LLM提供商API密钥添加到 .env:
# Recommended: Groq (fastest, free tier available)
GROQ_API_KEY=gsk_...

# Alternative providers:
# OPENAI_API_KEY=sk-proj-...
# ANTHROPIC_API_KEY=sk-ant-...

发展

启动开发服务器:

npm run dev

该应用程序将在 http://localhost:3000

生产建设

npm run build
npm start

部署

Vercel(推荐)

  1. 将您的存储库推送到GitHub
  2. 进口项目 vercel.com/new
  3. 配置环境变量:
    • GROQ_API_KEY 或 OPENAI_API_KEY 或 ANTHROPIC_API_KEY
  4. 部署

Vercel命令行界面

npm install -g vercel
vercel login
vercel

其他平台

该应用程序与支持Next.js 14的任何Node.js托管平台兼容。

项目结构

├── app/
│   ├── api/
│   │   └── git/
│   │       ├── status/route.ts       # Git status endpoint
│   │       ├── commit/route.ts       # Commit endpoint
│   │       └── generate-commit/route.ts  # AI generation endpoint
│   ├── layout.tsx
│   ├── page.tsx                      # Main page
│   └── globals.css
├── components/
│   ├── CommitGenerator.tsx           # Commit message UI
│   └── GitStatus.tsx                 # Git status display
├── lib/
│   ├── mcp-client.ts                 # MCP client utilities
│   ├── git-mcp.ts                    # Git operations via MCP
│   └── llm.ts                        # LLM integration
└── package.json

建筑

MCP集成流程

┌─────────────┐      ┌──────────────┐      ┌─────────────┐      ┌──────────────┐
│   Browser   │─────▶│  Next.js API │─────▶│ MCP Client  │─────▶│  Git MCP     │
│     UI      │      │    Routes    │      │             │      │   Server     │
└─────────────┘      └──────────────┘      └─────────────┘      └──────────────┘
                              │                                          │
                              │                                          ▼
                              │                                   ┌──────────────┐
                              │                                   │     Git      │
                              ▼                                   │  Repository  │
                       ┌──────────────┐                          └──────────────┘
                       │  LLM Provider│
                       │ (Groq/OpenAI)│
                       └──────────────┘

请求的生命周期

  1. 客户端请求:用户通过web界面启动操作
  2. API路线:Next.js API路由接收请求
  3. MCP连接:建立到Git MCP服务器的stdio传输
  4. 工具调用:调用MCP工具(git_status, git_diff_unstaged, git_commit)
  5. LLM处理:将git diff发送到LLM以生成提交消息
  6. 回应:将结构化数据返回给客户端
  7. 清理:关闭MCP连接

有关详细的体系结构文档,请参阅 MCP_建筑.md

提交消息标准

生成的提交消息符合 常规承诺 规范:

<type>(<scope>): <description>

[optional body]

[optional footer]

支持的类型:

  • feat:新功能
  • fix:Bug修复
  • docs:文件更改
  • style:代码样式更改(格式、分号等)
  • refactor:代码重构
  • test:测试添加或修改
  • chore:构建过程或辅助工具更改

故障排除

“未发现阶段性更改”

  • 跑 git add <files> 先进行更改

“获取git状态失败”

  • 确保你在git存储库中
  • 检查git是否已安装: git --version

“未配置LLM API密钥”

  • 将OPENAI_API_KEY或ANTHROPIC_API_KEY添加到.env文件中

“MCP工具错误”

  • 确保 npx 可用: npx --version
  • Git MCP服务器在首次使用时会自动下载

路线图

  • []拉取请求描述生成
  • []自动生成变更日志
  • []提交质量指标和评分
  • []团队分析仪表板
  • []VS代码扩展名
  • []用于终端使用的CLI工具
  • []支持多语言提交消息
  • []与其他MCP服务器(文件系统、数据库)集成

贡献

欢迎捐款。请遵循以下指南:

  1. 复刻仓库
  2. 创建要素分支(git checkout -b feature/improvement)
  3. 按照常规提交提交更改
  4. 推到分支(git push origin feature/improvement)
  5. 打开拉取请求

许可证

该项目根据MIT许可证获得许可。看 许可证 了解详情。

致谢

联系

如有疑问或反馈,请在GitHub上发布问题。


使用模型上下文协议构建 | 文档 | 安装指南