commit-check MCP について
commit-check MCP はリポジトリのコミットポリシーをコーディングエージェントに提供し、設定ルールに基づいてコミットメッセージ、ブランチ名、作者、プッシュの安全性を検証します。作業ツリーやコミットを変更せず、対処可能な失敗と修正案を返します。
主な機能
- 01コミットメッセージのポリシー検証
- 02ブランチ名とリベース先の検証
- 03作者名とメールアドレスの検証
- 04プッシュ安全性の検証
- 05統合済みルールと設定の報告
- 06対処可能な検証結果
活用シーン
- 01コミット作成前の内容確認
- 02プッシュ前のリポジトリ状態の検証
- 03エージェント変更へのリポジトリ固有ルールの適用
MCP 対応
コミットメッセージ、ブランチ、作者、リポジトリ状態、プッシュ安全性を検証する MCP ツールに加え、有効なルールとサーバーの状態を確認するツールを提供します。MCP クライアントが stdio 経由で起動します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
8掲載時のツール一覧 · 2 週間前に更新
このツールにパラメーターはありません。
詳細
Commit Check の Model Context Protocol サーバーです。チームや AI エージェント向けに、コミットポリシーをコードとして管理します。CI が適用するルールをコーディングエージェントに提供します。エージェントはコミットやプッシュの前に、コミットメッセージ、ブランチ名、作成者を検証します。修正方法が明確な場合は、適用すべき修正も提示します。
クイックスタート
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 | 共有可能な .mcp.json をリポジトリのルートに書き込むには、--scope project を追加します(--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 エージェントモード) | .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 リストを記述します。下記を参照してください。Continue は、上記の JSON ブロックを .continue/mcpServers/ に配置した場合も読み込みます。 |
| 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 エントリー全体です(name、version、schema は Continue で必須です。既存ファイルに 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 config から読み取ります | author_name? author_email? |
validate_commit_context | メッセージ、ブランチ、作成者を 1 回の呼び出しでチェックします。渡された項目が対象です | 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 | なし:サーバー、コミットチェック、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 は SHA を解決するために git fetch を実行する場合があるため、読み取り専用ではないと注釈されているのはこの 2 つだけです。MCP ツールのヒントに基づいて許可を制御するクライアントは、残り 6 つを自動承認できます。
引数の例
リポジトリのルールに従ってメッセージを検証します。
{
"message": "feat(api): add MCP validation tool",
"repo_path": "/path/to/repo"
}
プッシュも含め、現在のリポジトリの状態をチェックします。
{
"repo_path": "/path/to/repo",
"include_push": true
}
git の pre-push ref メタデータ(<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に従ってから、もう一度検証してください。サーバーの指示により、エージェントはこの手順を実行します。- 呼び出し自体を実行できない場合(空の
message、存在しないrepo_path、必要な場面で git リポジトリではないrepo_path、無効な設定、解決できないpush_refsの SHA など)は、問題を示す MCP ツールエラーが返されます。合格として返されることはありません。
開発
pip install -e .[dev]
python -m pytest
サーバーは stdio で通信するため、MCP クライアントが起動します。起動を確認する場合に限り、手動で uvx commit-check-mcp を実行してください。
コミュニティ
質問やアイデアはディスカッションへ、バグはイシューへお寄せください。 リリースにはセマンティック バージョニングを採用しています。MIT ライセンスの下でリリースされています。
mcp-name: io.github.commit-check/commit-check-mcp
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。