Skip to main content
Glama

gencommit

Analyzes code changes to generate structured Git commit messages with emoji support, helping developers maintain consistent commit history.

Instructions

【生成提交】分析代码变更并生成规范的 Git commit 消息(支持 emoji)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
changesNo代码变更内容(可选,默认使用 git diff)
typeNo提交类型:fixed, fix, feat, docs, style, chore, refactor, test

Implementation Reference

  • The core handler function for the 'gencommit' tool. It takes args with 'changes' and 'type', constructs a detailed prompt message explaining Conventional Commits with examples, emojis, and steps, and returns it as MCP content.
    export async function gencommit(args: any) { try { const changes = args?.changes || ""; const type = args?.type || ""; // fixed, fix, feat, docs, style, chore, refactor, test const message = `请按以下步骤生成规范的 Git commit 消息: **第一步:获取变更信息** ${changes ? `已提供变更内容:\n${changes}` : ` 1. 执行 \`git status\` 查看修改的文件 2. 执行 \`git diff\` 查看具体变更内容 3. 如果有暂存的文件,执行 \`git diff --staged\` 查看暂存区变更 `} **第二步:分析变更** - 识别变更类型(新功能、修复、重构等) - 选择对应的 emoji 表情 - 总结主要变更点 - 如需要,在 body 中说明影响的模块/范围 --- 🎯 **Commit 消息规范**(参考 Conventional Commits): **格式**: \`\`\` <type>: <emoji> <subject> <body> (可在 body 中说明影响范围和详细变更) <footer> \`\`\` **类型(type)**: - fixed 🐛: 线上/测试缺陷修复 - fix 🐛: 历史中也存在的写法,语义同 fixed,保持兼容 - feat 🎸: 新增或迭代业务功能 - docs ✏️: 文档相关更新 - style 💄: UI/样式调整,无业务逻辑变更 - chore 🤖: 构建、脚本、依赖等杂项 - refactor ♻️(可选): 重构、内部结构调整,不改变外部行为 - test ✅(可选): 测试相关 **要求**: 1. type 后面加冒号和空格,然后是对应的 emoji 2. subject 使用中文,简洁明了(不超过 50 字) 3. body 详细说明变更内容,可包含影响范围、具体改动等(可选) 4. footer 引用相关 issue(如有) 5. 如有破坏性变更,添加 BREAKING CHANGE **示例 1**(详细版,包含影响范围): \`\`\` feat: 🎸 添加用户登录功能 影响模块: auth - 实现 JWT 认证机制 - 添加密码加密存储 - 实现登录失败重试限制 Closes #123 \`\`\` **示例 2**(包含模块说明): \`\`\` fixed: 🐛 修复用户数据返回异常 模块: api - 修复空值判断逻辑 - 优化错误处理机制 Closes #456 \`\`\` **示例 3**(简洁版): \`\`\` chore: 🤖 升级依赖版本至 1.2.9 \`\`\` --- **第三步:生成并提交** 1. 根据变更内容生成符合规范的 commit 消息 2. 使用 \`git commit -m "<生成的消息>"\` 提交 3. 如果消息较长,使用 \`git commit\` 打开编辑器填写完整消息 💡 **提示**: - 如果暂存区为空,提示用户先使用 \`git add\` 添加文件 - 如果变更较多,建议分多次提交 - 确保 commit 消息清晰描述了"做了什么"和"为什么" --- 现在请开始执行上述步骤。`; return { content: [ { type: "text", text: message, }, ], }; } catch (error) { const errorMessage = error instanceof Error ? error.message : String(error); return { content: [ { type: "text", text: `❌ 生成 commit 消息失败: ${errorMessage}`, }, ], isError: true, }; } }
  • The input schema and metadata for the 'gencommit' tool, defined in the ListToolsRequestSchema handler. Specifies optional 'changes' and 'type' parameters.
    { name: "gencommit", description: "【生成提交】分析代码变更并生成规范的 Git commit 消息(支持 emoji)", inputSchema: { type: "object", properties: { changes: { type: "string", description: "代码变更内容(可选,默认使用 git diff)", }, type: { type: "string", description: "提交类型:fixed, fix, feat, docs, style, chore, refactor, test", }, }, required: [], }, },
  • src/index.ts:468-469 (registration)
    Registration in the CallToolRequestSchema switch dispatcher: maps 'gencommit' tool calls to the gencommit handler function.
    case "gencommit": return await gencommit(args);
  • src/tools/index.ts:4-4 (registration)
    Re-export of the gencommit handler from src/tools/index.ts, imported into src/index.ts.
    export { gencommit } from "./gencommit.js";
  • src/index.ts:12-15 (registration)
    Import of gencommit handler (via tools/index.js) into the main src/index.ts file.
    detectShell, initSetting, initProject, gencommit, debug, genapi, codeReview, gentest, genpr, checkDeps, gendoc, genchangelog, refactor, perf, fix, gensql, resolveConflict, genui, explain, convert, genreadme, split, analyzeProject } from "./tools/index.js";

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mybolide/mcp-probe-kit'

If you have feedback or need assistance with the MCP directory API, please join our Discord server