关于 commit-check MCP
commit-check MCP 将仓库提交策略提供给编码 Agent,可按配置规则检查提交信息、分支名、作者和推送安全。它返回可处理的失败结果及建议或明确修正,且不会更改工作区或提交。
主要功能
- 01提交信息策略检查
- 02分支名与变基目标检查
- 03作者姓名和邮箱检查
- 04推送安全验证
- 05合并规则与配置报告
- 06提供可执行的验证结果
适用场景
- 01创建提交前检查提交内容
- 02推送前验证仓库状态
- 03让 Agent 按仓库规则检查变更
MCP 相关
提供 MCP 工具,用于验证提交信息、分支、作者、仓库状态和推送安全,并查询生效规则及服务器健康状态。MCP 客户端通过 stdio 启动该服务。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
8收录的工具列表 · 更新于 2 周前
此工具无需参数。
详细介绍
Commit Check 的 Model Context Protocol 服务,为团队和 AI Agent 提供代码化的提交策略。它会将 CI 强制执行的规则交给你的编码 Agent:在提交或推送之前,Agent 会检查提交信息、分支名和作者;如果修正方式明确,还会提供可应用的修正。
快速开始
claude mcp add commit-check -- uvx commit-check-mcp
其他客户端都使用相同的命令启动。请注册以下对象:
{
"mcpServers": {
"commit-check": {
"command": "uvx",
"args": ["commit-check-mcp"]
}
}
}
还没有 uv?运行 curl -LsSf https://astral.sh/uv/install.sh | sh 安装,或者使用 pip install commit-check-mcp,如以下最后一行所示。
各客户端的配置位置
| 客户端 | 配置位置 | 备注 |
|---|---|---|
| Claude Code | claude mcp add commit-check -- uvx commit-check-mcp | 添加 --scope project,即可在仓库根目录写入可共享的 .mcp.json(--scope user 可让所有项目都能使用)。你也可以提交一个包含上述代码块的 .mcp.json;服务器对象中可以添加 "type": "stdio"。MCP 服务不会在 ~/.claude/settings.json 中配置。 |
| Claude Desktop | macOS ~/Library/Application Support/Claude/claude_desktop_config.json;Windows %APPDATA%\Claude\claude_desktop_config.json | 原样使用上述代码块;重启 Claude Desktop。 |
| Cursor | 项目级 .cursor/mcp.json 或全局 ~/.cursor/mcp.json | 原样使用上述代码块(或者依次选择 Settings → Cursor Settings → MCP → Add new MCP server,并使用命令 uvx commit-check-mcp)。 |
| VS Code(Copilot Agent 模式) | .vscode/mcp.json | 键名不同:{"servers": {"commit-check": {"type": "stdio", "command": "uvx", "args": ["commit-check-mcp"]}}} |
| Cline | MCP Servers 面板 → Configure → cline_mcp_settings.json(请查阅客户端文档) | 原样使用上述代码块。 |
| Roo Code | 项目级 .roo/mcp.json 或全局 mcp_settings.json(Edit Global MCP) | 原样使用上述代码块;可选添加 "alwaysAllow": [...]。 |
| Windsurf | ~/.codeium/windsurf/mcp_config.json(请查阅客户端文档) | 原样使用上述代码块。 |
| Continue | config.yaml(或 .continue/mcpServers/ 中的文件) | mcpServers: 下的 YAML 列表,见下文。将上述 JSON 代码块放入 .continue/mcpServers/ 后,Continue 也会读取它。 |
| Zed | ~/.config/zed/settings.json | 键名不同:{"context_servers": {"commit-check": {"command": "uvx", "args": ["commit-check-mcp"]}}} |
| 其他客户端 | 客户端的 MCP 配置 | 如果客户端无法运行 uvx:运行 pip install commit-check-mcp,然后将 "command" 设置为已安装二进制文件的绝对路径,并移除 args。使用 which commit-check-mcp(macOS/Linux)、where commit-check-mcp(Windows cmd)或 Get-Command commit-check-mcp | Select-Object -ExpandProperty Source(PowerShell)查找路径。 |
Continue 的完整 config.yaml 配置项(Continue 要求提供 name、version 和 schema;如果只向现有文件添加 mcpServers 片段,可省略这些字段;也可以将其保存为 .continue/mcpServers/ 中的独立文件):
name: commit-check
version: 0.0.1
schema: v1
mcpServers:
- name: commit-check
command: uvx
args: ["commit-check-mcp"]
工具
| 工具 | 检查内容 | 参数 |
|---|---|---|
validate_commit_message | 提交消息:Conventional Commits、主题长度和大小写、正文、签署确认、WIP 和 fixup 标记、AI 署名 | message |
validate_branch_name | 分支名称或当前检出的分支,以及已配置的变基目标 | branch? |
validate_author_info | 作者姓名和邮箱;省略时从仓库的 git 配置中读取 | author_name? author_email? |
validate_commit_context | 在一次调用中检查消息、分支和作者,具体检查哪些取决于你传入的参数 | message? branch? author_name? author_email? |
validate_push_safety | 推送不是强制推送(CC301) | push_refs? — pre-push 行;省略时会将分支与其上游分支进行比较 |
validate_repository_state | 最新提交的消息和作者、当前检出的分支,以及可选的推送 | include_message include_branch include_author(默认 true)、include_push(默认 false) |
describe_validation_rules | 不检查任何内容:返回合并后的配置及其启用的规则 | — |
server_health | 不检查任何内容:返回服务端、commit-check 和 MCP SDK 的版本 | — |
除 server_health 外,每个工具还接受:
repo_path— 应用其cchk.toml/commit-check.toml的仓库。 工具读取 git 状态时,该路径必须是 git 仓库;如果你自行传入所有值,则只需提供一个包含配置文件的普通目录。config_path— 用来替代仓库自身配置的配置文件路径; 相对路径以repo_path为基准解析。config— 内联覆盖项,会合并到现有配置之上,例如{"commit": {"require_body": true}}。
没有工具会更改工作树或提交。validate_push_safety 和
validate_repository_state 可能会运行 git fetch 来解析 SHA,因此只有这两个工具会被标记为非只读;依赖 MCP 工具提示进行门控的客户端可以自动批准其他六个工具。
参数示例
使用仓库规则验证消息:
{
"message": "feat(api): add MCP validation tool",
"repo_path": "/path/to/repo"
}
检查仓库当前状态,包括推送:
{
"repo_path": "/path/to/repo",
"include_push": true
}
根据 git pre-push 引用元数据验证推送安全性(<local_ref> <local_sha> <remote_ref> <remote_sha>):
{
"repo_path": "/path/to/repo",
"push_refs": "refs/heads/main abc123 refs/heads/main def456"
}
查看合并覆盖项后适用的规则:
{
"repo_path": "/path/to/repo",
"config": {
"commit": {
"require_body": true
}
}
}
结果
每个 validate_* 工具都会返回 commit-check --format json 输出的结构:
{
"status": "pass|fail|skip",
"warnings": 0,
"checks": [
{
"rule_id": "CC001",
"check": "message",
"status": "pass|fail|warn|skip",
"value": "...",
"error": "...",
"suggest": "...",
"fix": "...",
"docs_url": "https://commit-check.com/rules/#cc001",
"reason": ""
}
]
}
- 只有
fail表示拒绝。skip表示未验证任何内容——绝不能将其视为通过;warn会报告出来,但不会导致运行失败。使用 commit-check 2.19.0 或更高版本时,跳过的检查会在reason中说明原因,例如"author dependabot[bot] is in [commit].ignore_authors";较旧版本会省略该字段。 - 如果结果为
fail,则原样应用非空的fix;否则遵循suggest,然后重新验证。服务端指令会教 Agent 按此循环操作。 - 如果调用完全无法运行——例如
message为空、repo_path不存在,或在需要 git 仓库时该路径不是 git 仓库、配置无效,或push_refs中的 SHA 无法解析——则会返回指出问题的 MCP 工具错误,而非通过结果。
开发
pip install -e .[dev]
python -m pytest
该服务端使用 stdio 通信,因此由 MCP 客户端启动;手动运行 uvx commit-check-mcp
仅用于确认其能够启动。
社区
问题和想法请提交到 Discussions, Bug 请提交到 Issues。 版本发布遵循语义化版本。基于 MIT License发布。
mcp-name: io.github.commit-check/commit-check-mcp
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。