mcpField
C
commit-check MCP

commit-check MCP

本地服务
github.com/commit-check版本控制16 天前更新

关于 commit-check MCP

commit-check MCP 将仓库提交策略提供给编码 Agent,可按配置规则检查提交信息、分支名、作者和推送安全。它返回可处理的失败结果及建议或明确修正,且不会更改工作区或提交。

主要功能

  1. 01提交信息策略检查
  2. 02分支名与变基目标检查
  3. 03作者姓名和邮箱检查
  4. 04推送安全验证
  5. 05合并规则与配置报告
  6. 06提供可执行的验证结果

适用场景

  1. 01创建提交前检查提交内容
  2. 02推送前验证仓库状态
  3. 03让 Agent 按仓库规则检查变更

MCP 相关

提供 MCP 工具,用于验证提交信息、分支、作者、仓库状态和推送安全,并查询生效规则及服务器健康状态。MCP 客户端通过 stdio 启动该服务。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"commit-check-commit-check": {
"command": "uvx",
"args": [
"commit-check-mcp"
]
}
}
}
启动命令uvx commit-check-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypicommit-check-mcp0.1.12

工具

8

收录的工具列表 · 更新于 2 周前

此工具无需参数。

详细介绍

Commit Check

在糟糕的提交合并之前发现问题 — 在 AI Agent 中完成。

PyPI CI Coverage MCP Registry Glama

文档 · 规则 · CLI · GitHub Action · GitHub App

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 Codeclaude mcp add commit-check -- uvx commit-check-mcp添加 --scope project,即可在仓库根目录写入可共享的 .mcp.json(--scope user 可让所有项目都能使用)。你也可以提交一个包含上述代码块的 .mcp.json;服务器对象中可以添加 "type": "stdio"。MCP 服务不会在 ~/.claude/settings.json 中配置。
Claude DesktopmacOS ~/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"]}}}
ClineMCP Servers 面板 → Configure → cline_mcp_settings.json(请查阅客户端文档)原样使用上述代码块。
Roo Code项目级 .roo/mcp.json 或全局 mcp_settings.json(Edit Global MCP)原样使用上述代码块;可选添加 "alwaysAllow": [...]。
Windsurf~/.codeium/windsurf/mcp_config.json(请查阅客户端文档)原样使用上述代码块。
Continueconfig.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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。