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密钥
安装
- 克隆存储库:
git clone https://github.com/sanjayperam04/mcp-git-assistant.git
cd mcp-git-assistant- 安装依赖项:
npm install- 配置环境变量:
cp .env.example .env- 将您的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(推荐)
- 将您的存储库推送到GitHub
- 进口项目 vercel.com/new
- 配置环境变量:
- GROQ_API_KEY 或 OPENAI_API_KEY 或 ANTHROPIC_API_KEY
- 部署
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)│
└──────────────┘请求的生命周期
- 客户端请求:用户通过web界面启动操作
- API路线:Next.js API路由接收请求
- MCP连接:建立到Git MCP服务器的stdio传输
- 工具调用:调用MCP工具(
git_status,git_diff_unstaged,git_commit) - LLM处理:将git diff发送到LLM以生成提交消息
- 回应:将结构化数据返回给客户端
- 清理:关闭MCP连接
有关详细的体系结构文档,请参阅 MCP_建筑.md
提交消息标准
生成的提交消息符合 常规承诺 规范:
():
[optional body]
[optional footer]支持的类型:
feat:新功能fix:Bug修复docs:文件更改style:代码样式更改(格式、分号等)refactor:代码重构test:测试添加或修改chore:构建过程或辅助工具更改
故障排除
“未发现阶段性更改”
- 跑
git add先进行更改
“获取git状态失败”
- 确保你在git存储库中
- 检查git是否已安装:
git --version
“未配置LLM API密钥”
- 将OPENAI_API_KEY或ANTHROPIC_API_KEY添加到.env文件中
“MCP工具错误”
- 确保
npx可用:npx --version - Git MCP服务器在首次使用时会自动下载
路线图
- \[\]拉取请求描述生成
- \[\]自动生成变更日志
- \[\]提交质量指标和评分
- \[\]团队分析仪表板
- \[\]VS代码扩展名
- \[\]用于终端使用的CLI工具
- \[\]支持多语言提交消息
- \[\]与其他MCP服务器(文件系统、数据库)集成
贡献
欢迎捐款。请遵循以下指南:
- 复刻仓库
- 创建要素分支(
git checkout -b feature/improvement) - 按照常规提交提交更改
- 推到分支(
git push origin feature/improvement) - 打开拉取请求
许可证
该项目根据MIT许可证获得许可。看 许可证 了解详情。
致谢
联系
如有疑问或反馈,请在GitHub上发布问题。
______________________________________________________________________
