Gitmoji提交MCP
模型上下文协议(MCP)服务器,用于按照表情增强的传统提交标准创建、验证和格式化Git提交。
概述
此MCP服务器为AI助手提供了工具,帮助开发人员使用表情符号创建格式良好、有意义的提交消息。它实现了一个全面的提交约定,将传统提交的清晰度与表情符号的视觉吸引力相结合。
特性
- 自动提交格式:使用正确的表情符号生成格式正确的提交消息
- 类型建议:分析阶段性更改,并建议适当的提交类型
- 消息验证:根据约定规则验证提交消息
- Git集成:直接从工具无缝创建提交
- TypeScript:全类型实施,可靠性高
- 16种提交类型:支持主提交类型和扩展提交类型
安装
全球安装
npm install -g gitmoji-commit-mcp本地开发
git clone
cd gitmoji-commit-mcp
npm install
npm run buildMCP服务器配置
将此服务器添加到MCP客户端配置中:
克劳德桌面版
编辑您的Claude Desktop配置文件:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"git-emoji-commit": {
"command": "npx",
"args": ["-y", "gitmoji-commit-mcp"]
}
}
}或者,如果全局安装:
{
"mcpServers": {
"git-emoji-commit": {
"command": "gitmoji-commit-mcp"
}
}
}VSCode(原生MCP支持)
VSCode具有本机MCP支持。编辑VSCode MCP配置文件:
位置: %APPDATA%\Code\User\mcp.json (Windows)或 ~/.config/Code/User/mcp.json (macOS/Linux)
{
"servers": {
"gitmoji-commit-mcp": {
"command": "npx",
"args": ["-y", "gitmoji-commit-mcp"]
}
}
}或者,如果全局安装(通过 npm install -g 或 npm link):
{
"servers": {
"gitmoji-commit-mcp": {
"command": "gitmoji-commit-mcp"
}
}
}带连续扩展的VSCode
如果你正在使用 继续 VSCode的扩展,添加到您的继续配置中:
位置: ~/.continue/config.json (macOS/Linux)或 %USERPROFILE%\.continue\config.json (Windows)
{
"mcpServers": {
"git-emoji-commit": {
"command": "npx",
"args": ["-y", "gitmoji-commit-mcp"],
"disabled": false
}
}
}OpenAI Codex
对于OpenAI Codex,编辑您的配置文件:
位置: ~/.codex/config.toml (macOS/Linux)或 %USERPROFILE%\.codex\config.toml (Windows)
[mcp_servers.gitmoji-commit-mcp]
transport = "stdio"
command = "npx"
args = ["-y", "gitmoji-commit-mcp"]
description = "MCP server for creating Git commits with emojis following conventional commit standards"或者,如果全局安装(通过 npm install -g 或 npm link):
[mcp_servers.gitmoji-commit-mcp]
transport = "stdio"
command = "gitmoji-commit-mcp"
description = "MCP server for creating Git commits with emojis following conventional commit standards"其他MCP客户端
对于支持模型上下文协议的任何MCP兼容客户端:
{
"servers": {
"git-emoji-commit": {
"type": "stdio",
"command": "npx",
"args": ["-y", "gitmoji-commit-mcp"]
}
}
}备注:配置文件的位置和格式可能因客户端而异。请参阅您的特定MCP客户的文档。
可用工具
1. git_format_message
根据约定格式化提交消息。
参数:
type(必填):提交类型(壮举、修复、文档等)title(必填):祈使语气的简要描述scope(可选):类似#123、auth、api的上下文description(可选):详细说明breaking(可选):这是否是一个突破性的变化
例子:
{
"type": "feat",
"scope": "auth",
"title": "add OAuth2 authentication",
"description": "Implemented OAuth2 flow with Google and GitHub providers.",
"breaking": false
}输出:
✨ feat(auth): add OAuth2 authentication
Implemented OAuth2 flow with Google and GitHub providers.2. git_validate_message
根据约定验证提交消息。
参数:
message(必填):要验证的提交消息
例子:
{
"message": "✨ feat(auth): add OAuth2 authentication"
}输出:
✅ Commit message is valid!3. git_suggest_type
分析阶段性更改,并建议适当的提交类型。
参数:
repo_path(可选):当MCP服务器在项目目录外运行时,目标git存储库的路径
输出:
Suggested commit type: ✨ feat
Confidence: high
Reason: Significant additions (245 lines added vs 12 deleted) suggest new feature
Type description: A new feature4. git_commit
按照约定创建git commit。
参数: 同 git_format_message,加上:
repo_path(可选):当MCP服务器在项目目录外运行时,目标git存储库的路径
输出:
✅ Commit created successfully!
Commit hash: abc123def456
Message:
✨ feat(auth): add OAuth2 authentication
Implemented OAuth2 flow with Google and GitHub providers.存储库上下文解析
Git工具(git_suggest_type, git_commit)按以下顺序解析存储库上下文:
repo_path工具调用中的参数- MCP请求元数据(
_meta,如果客户端提供cwd/工作区信息) - 环境变量(
GITMOJI_REPO_PATH,MCP_REPO_PATH,MCP_WORKSPACE_ROOT,MCP_WORKING_DIR,PROJECT_ROOT,INIT_CWD,PWD) process.cwd()MCP服务器的
如果您的客户端在存储库外启动MCP服务器,请通过 repo_path 明确地:
{
"type": "feat",
"title": "add OAuth login",
"repo_path": "C:/Users/Alex/Projects/my-repo"
}提交类型
主要类型
| 类型 | 表情符号 | 描述 |
|---|---|---|
feat | ✨ | 新功能 |
fix | 🐛 | bug修复 |
docs | 📝 | 仅文档更改 |
style | 🎨 | 代码格式(无逻辑更改) |
refactor | ♻️ | 代码重构(无功能/修复) |
perf | ⚡ | 性能改进 |
test | 🧪 | 添加或更新测试 |
build | 📦 | 构建系统/依赖关系 |
ci | 👷 | CI/CD配置 |
chore | 🔧 | 维护任务 |
revert | ⏪ | 还原以前的提交 |
扩展类型
| 类型 | 表情符号 | 描述 |
|---|---|---|
security | 🔒 | 安全修复 |
deprecate | ⚠️ | 弃用警告 |
breaking | 💥 | 突破性变化 |
i18n | 🌐 | 国际化 |
a11y | ♿ | 可访问性改进 |
deps | ⬆️ | 依赖关系更新 |
提交消息格式
():
规则
标题:
- 使用命令式语气:“添加功能”而不是“添加了功能”
- 不要将第一个字母大写
- 末尾没有句号
- 最多50个字符
说明:
- 用空行与标题分隔
- 包装长度为72个字符
- 解释什么和为什么,而不是如何
使用示例
使用AI助手
User: "I added a new login feature with OAuth"
AI: Let me analyze your changes and create a commit.
[calls git_suggest_type]
This looks like a new feature. I'll create a commit for you.
[calls git_commit with type='feat', scope='auth', title='add OAuth login']
✅ Created commit: feat(auth): add OAuth login手动工具使用
- 进行更改:
git add src/auth/*- 让AI建议类型:
"What type of commit should this be?"- 创建提交:
"Create a commit with type feat, scope auth, and title 'add OAuth2 authentication'"发展
项目结构
gitmoji-commit-mcp/
├── src/
│ ├── index.ts # MCP server entry point
│ ├── types.ts # Type definitions and commit types
│ ├── utils.ts # Formatting and validation
│ └── git.ts # Git operations
├── dist/ # Compiled JavaScript
├── package.json
├── tsconfig.json
└── README.md构建
npm run build观看模式
npm run watch本地测试
对于不发布到npm的本地开发:
- 构建项目:
npm run build- 全局链接(创建指向本地开发版本的符号链接):
npm link- 测试服务器:
gitmoji-commit-mcp服务器通过stdio进行通信,并期望收到MCP协议消息。
运行后 npm link,您可以在所有MCP客户端中使用简化的“全局安装”配置(见上面的配置示例)。符号链接确保您的本地更改在重建后立即反映出来,无需重新发布或重新安装!
整合
使用克劳德桌面
配置后,当您提出以下问题时,Claude可以自动使用这些工具:
- “为我的更改创建提交”
- “这应该是什么类型的承诺?”
- “验证我的提交消息”
- “设置添加身份验证的提交格式”
使用VSCode(继续扩展)
这 继续 扩展将人工智能辅助直接引入支持MCP的VSCode。配置后,您可以:
- 继续分析你的阶段性更改,并建议提交类型
- 直接在编辑器中请求格式化的提交消息
- 提交前验证提交消息
- 使用自然语言创建提交:“将这些更改作为bug修复提交”
用法:新闻 Cmd+L (macOS)或 Ctrl+L (Windows/Linux)打开Continue,然后与MCP工具交互。
与其他MCP客户端
任何兼容MCP的客户端都可以使用此服务器:
- Zed编辑:在MCP设置中配置AI辅助提交
- 自定义MCP客户端:使用stdio传输协议
- API集成:通过模型上下文协议规范连接
使用适当的命令和参数将其添加到客户端的服务器配置中。服务器使用stdio传输并遵循标准MCP协议。
验证规则
验证器检查:
- 所需格式:
(): - 有效类型:必须是已定义的提交类型之一
- 表情符号匹配:表情符号必须与提交类型匹配
- 标题长度:建议最多50个字符
- 首字母大写:应以小写开头
- 所有权期限:不应以句号结尾
- 祈使语气:常见错误的基本检查
- 描述格式:标题后空白行,72个字符行
类型建议算法
这 git_suggest_type 工具分析:
- 文件类型:文档、测试、配置、CI文件
- 文件模式:构建文件、依赖关系、源代码
- 变化率:添加与删除
- 改变音量:更改的行总数
返回带有置信度(高/中/低)的建议。
错误处理
所有工具都提供明确的错误消息:
- 没有提交的阶段性更改
- 提交类型无效
- 提交消息格式错误
- Git操作失败
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 如果适用,添加测试
- 提交拉取请求
许可证
麻省理工学院
支持
有关问题、疑问或贡献,请访问GitHub存储库。
更新日志
1.0.0 (2025-02-06)
- 初始版本
- 四种MCP工具:格式化、验证、建议、提交
- 支持16种提交类型
- TypeScript实现
- Git与简单Git的集成
- 全面的验证和格式化
相关
______________________________________________________________________
由以下材料制成❤️ 更好的Git提交
