提交MCP服务器
通过模型上下文协议(MCP)生成AI驱动的提交消息。
概述
CommitPage MCP Server通过标准化的模型上下文协议提供基于AI的Git提交消息生成。它支持多个AI提供者(Gemini、OpenAI、Codestral、Ollama)和各种提交格式,使其易于与Claude Code、Cursor、Zed和其他MCP兼容工具集成到您的工作流程中。
特性
- 🤖 多个AI提供商:Gemini、OpenAI、Codestral、Olama
- 📝 多种提交格式:常规、角度、因果报应、语义、表情符号等等
- 🌍 多语言支持:英语、俄语、中文、日语、西班牙语
- 🔧 可定制的:自定义说明、格式和语言
- 🚀 快速高效:具有智能缓存的本地git操作
- 🔌 MCP兼容:适用于Claude Code、Cursor、Zed等
快速开始
先决条件
- Node.js 18.0.0或更高版本
- Git已安装并位于PATH中
- 您选择的提供商(Gemini、OpenAI或Codestral)的API密钥-Ollama不需要
安装
CommitPage MCP服务器可在npm上使用: @commission/mcp服务器
使用时无需安装 npx (推荐),或全局安装:
npm install -g @commitsage/mcp-server然后在MCP客户端中进行配置(请参阅下面的配置部分)。
IDE客户端的配置
克劳德代码
添加到您的Claude Code配置文件中:
窗户: %USERPROFILE%\.claude\config.json macOS/Linux: ~/.claude/config.json
{
"mcpServers": {
"commitsage": {
"command": "npx",
"args": ["-y", "@commitsage/mcp-server"],
"env": {
"GEMINI_API_KEY": "your-api-key-here",
"DEFAULT_PROVIDER": "gemini",
"DEFAULT_COMMIT_FORMAT": "conventional",
"DEFAULT_COMMIT_LANGUAGE": "english",
"API_REQUEST_TIMEOUT": "30"
}
}
}
}最低配置(仅限Gemini):
{
"mcpServers": {
"commitsage": {
"command": "npx",
"args": ["-y", "@commitsage/mcp-server"],
"env": {
"GEMINI_API_KEY": "your-api-key-here"
}
}
}
}光标
添加到光标设置(设置>MCP):
{
"mcp": {
"servers": {
"commitsage": {
"command": "npx",
"args": ["-y", "@commitsage/mcp-server"],
"env": {
"GEMINI_API_KEY": "your-api-key-here",
"DEFAULT_PROVIDER": "gemini",
"DEFAULT_COMMIT_FORMAT": "conventional"
}
}
}
}
}Zed(手动配置)
注: 对于Zed,我们建议使用 Zed扩展 相反。
如果您更喜欢手动配置,请添加 .zed/settings.json:
{
"context_servers": {
"commitsage": {
"command": "npx",
"args": ["-y", "@commitsage/mcp-server"],
"env": {
"GEMINI_API_KEY": "your-api-key-here",
"DEFAULT_PROVIDER": "gemini"
}
}
}
}可用的MCP工具
1. generate_commit_message
为Git存储库生成AI驱动的提交消息。使用MCP服务器环境变量的配置分析所有更改(阶段性和非阶段性)。
参数:
repoPath(必填):git存储库的路径
例子:
{
"repoPath": "/path/to/your/repo"
}答复:
{
"success": true,
"message": "feat(auth): add OAuth2 authentication\n\nImplement GitHub OAuth flow with JWT tokens",
"model": "gemini-2.0-flash",
"provider": "gemini"
}注: 所有配置(提供者、格式、语言等)都是通过MCP服务器配置中的环境变量设置的。
2. validate_api_key
验证是否为提供程序配置了API密钥。
参数:
provider(必填):提供商验证(gemini,openai,codestral,ollama)
例子:
{
"provider": "gemini"
}用法示例
克劳德密码
Generate a commit message for my changes in C:/projects/myapp克劳德代码将调用 generate_commit_message 工具,并为您提供格式正确的提交消息。
在光标中
Generate commit message for the current repositoryCursor将分析所有更改并生成适当的提交消息。
在Zed
Create a commit message for my projectZed会打电话给 generate_commit_message 工具并显示结果。
环境变量引用
| 变量 | 描述 | 默认值 | 必填 |
|---|---|---|---|
GEMINI_API_KEY | Google Gemini API密钥 | - | 适用于Gemini提供商 |
OPENAI_API_KEY | OpenAI API密钥 | - | 用于OpenAI提供商 |
CODESTRAL_API_KEY | Mistral Codestral API密钥 | - | 用于Codestral提供程序 |
OLLAMA_BASE_URL | Ollama API基础URL | http://localhost:11434 | Ollama供应商 |
OLLAMA_MODEL | Olama型号名称 | llama3.2 | Ollama供应商 |
DEFAULT_PROVIDER | 默认AI提供程序 | gemini | 没有 |
DEFAULT_COMMIT_FORMAT | 默认提交格式 | conventional | 没有 |
DEFAULT_COMMIT_LANGUAGE | 默认语言 | english | 没有 |
API_REQUEST_TIMEOUT | API超时(秒) | 30 | 没有 |
LOG_LEVEL | 日志记录级别 | info | 没有 |
USE_CUSTOM_INSTRUCTIONS | 启用自定义指令 | false | 没有 |
CUSTOM_INSTRUCTIONS | 自定义提示说明 | - | 如果 USE_CUSTOM_INSTRUCTIONS 是 true |
支持的提交格式
- 常规的 -
type(scope): description - Angular -Angular提交消息格式
- 业 -
type(scope): message - 语义 -
type: message - 表情符号 -
:emoji: message - 表情符号Karma -
:emoji: type(scope): message - 谷歌 -Google的提交格式
- 原子 -Atom编辑器提交格式
支持的语言
- 英语
- 俄语(Руский)
- Chinese (中文)
- Japanese(日本语)
- 西班牙语(西班牙语)
发展
对于本地开发,克隆存储库:
git clone https://github.com/VizzleTF/CommitSage.git
cd CommitSage/mcp-server
npm install以开发模式运行
npm run dev构建
npm run build清理构建工件
npm run clean故障排除
“Git未安装或未在PATH中找到”
确保Git已安装并在系统PATH中可用。
git --version“存储库路径无效”
确保 repoPath 参数指向有效的Git存储库(包含 .git 目录)。
“未检测到任何更改”
确保您的存储库中有未提交的更改。使用 git status 检查。
“身份验证失败”
请验证您的API密钥是否正确并具有必要的权限。
连接超时
如果请求超时,请增加超时时间:
API_REQUEST_TIMEOUT=60或设置为 -1 无超时:
API_REQUEST_TIMEOUT=-1API密钥
获取API密钥
- 双子座: 谷歌AI工作室 (提供免费套餐)
- 开放人工智能: OpenAI API密钥 (付费)
- 编码: Mistral AI控制台 (提供免费套餐)
- 奥拉玛:不需要API密钥,在本地运行
建筑
mcp-server/
├── src/
│ ├── index.ts # Entry point
│ ├── server/
│ │ ├── mcpServer.ts # MCP server implementation
│ │ └── tools.ts # MCP tools definitions
│ ├── services/ # Business logic
│ │ ├── aiService.ts # Main AI service coordinator
│ │ ├── geminiService.ts # Gemini provider
│ │ ├── openaiService.ts # OpenAI provider
│ │ ├── codestralService.ts # Codestral provider
│ │ ├── ollamaService.ts # Ollama provider
│ │ ├── gitService.ts # Git operations
│ │ ├── gitBlameAnalyzer.ts # Git blame analysis
│ │ └── promptService.ts # Prompt generation
│ ├── models/
│ │ ├── types.ts # TypeScript types
│ │ └── errors.ts # Custom errors
│ └── utils/
│ ├── config.ts # Configuration
│ ├── logger.ts # Logging
│ ├── httpUtils.ts # HTTP utilities
│ ├── retryUtils.ts # Retry logic
│ └── textProcessing.ts # Text processing
├── package.json
├── tsconfig.json
└── README.md安全
- API密钥从未被记录或公开
- 所有git操作都是只读的
- 除人工智能提供商外,不会向外部服务发送任何数据
- 本地git操作只能访问指定的存储库
许可证
麻省理工学院
支持
有关问题、疑问或贡献,请访问:
- npm包: @commission/mcp服务器
- 主要项目:
- 问题:
学分
建在 提交页VSCode扩展 VizzleTF。
更新日志
v1.0.0(2026-02-06)
- 初始版本
- 支持Gemini、OpenAI、Codestral和Ollama提供商
- 8种提交消息格式
- 5语言支持
- 完整的MCP协议实施
- 与Claude Code、Cursor和Zed兼容
