Skip to main content

commit-check-mcp

PyPI version Python versions Build Coverage MCP server MCP Registry Glama

Model Context Protocol (MCP) server for commit-check.

commit-check-mcp exposes commit-check as local MCP tools so an MCP client can validate commit messages, branch names, author info, push safety, and repository state.

Features

This MCP server exposes commit-check validations as MCP tools:

  • server_health — returns server/sdk versions
  • validate_commit_message — validates a commit message
  • validate_branch_name — validates a branch name or the current repo branch
  • validate_push_safety — validates that a push is not a force push
  • validate_author_info — validates author name/email or the repo's git author config
  • validate_commit_context — runs combined checks in one call
  • validate_repository_state — validates latest commit, current branch, author state, and optional push safety for a repo
  • describe_validation_rules — returns the effective config and enabled rules after merging defaults and repo config

All validation tools return the same structured commit-check result shape:

{
  "status": "pass|fail",
  "checks": [
    {
      "check": "message",
      "status": "pass|fail",
      "value": "...",
      "error": "...",
      "suggest": "...",
      "fix": "..."
    }
  ]
}

suggest is the advice a person reads. fix is the corrected value itself, present only when the correction is unambiguous — Fix: add x comes back with "fix": "fix: add x" — and an empty string otherwise, so an agent can apply a non-empty fix as it stands and fall back to suggest when it is empty. Populating fix needs a commit-check release that carries the field; with an older commit-check the key is present and always empty.

A call that cannot run at all — an empty message, a repo_path that does not exist, a repo_path that is not a git repository when the tool has to read git state (see the repo_path note under Tool Usage), a malformed or rejected commit-check config — is returned as an MCP tool error (is_error) whose text names the problem, for example repo_path is not a git repository: /path/to/dir or invalid commit-check config: ..., rather than as a pass/fail result.

Installation

pip install commit-check-mcp

This installs the commit-check-mcp CLI entrypoint.

For local development from this repository:

pip install -e .

Use With An MCP Client

This server runs over stdio, so it is meant to be launched by an MCP client rather than used as a long-running HTTP service.

With uvx (recommended — no install needed):

# Run once, no pip install required
uvx commit-check-mcp

Tip: If uv is not installed, get it via curl -LsSf https://astral.sh/uv/install.sh | sh.


Claude Desktop

{
  "mcpServers": {
    "commit-check": {
      "command": "uvx",
      "args": ["commit-check-mcp"]
    }
  }
}

Claude Code CLI

{
  "mcpServers": {
    "commit-check": {
      "command": "uvx",
      "args": ["commit-check-mcp"]
    }
  }
}

Add to your ~/.claude/settings.json or project-level .claude/settings.local.json.

Cursor

In Cursor, go to Settings → Cursor Settings → MCP → Add new MCP server and paste:

Field Value
Name commit-check
Type command
Command uvx commit-check-mcp

Or add to your project's .cursor/mcp.json:

{
  "mcpServers": {
    "commit-check": {
      "command": "uvx",
      "args": ["commit-check-mcp"]
    }
  }
}

Windsurf

Add to your ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "commit-check": {
      "command": "uvx",
      "args": ["commit-check-mcp"]
    }
  }
}

Cline (VS Code)

Add a new MCP server in the Cline extension settings:

{
  "mcpServers": {
    "commit-check": {
      "command": "uvx",
      "args": ["commit-check-mcp"]
    }
  }
}

Continue.dev (VS Code / JetBrains)

Add to your ~/.continue/config.json:

{
  "experimental": {
    "mcpServers": {
      "commit-check": {
        "command": "uvx",
        "args": ["commit-check-mcp"]
      }
    }
  }
}

Roo Code

Add to your Roo Code MCP settings:

{
  "mcpServers": {
    "commit-check": {
      "command": "uvx",
      "args": ["commit-check-mcp"]
    }
  }
}

Zed

Add to your ~/.config/zed/settings.json:

{
  "mcp_servers": {
    "commit-check": {
      "command": "uvx",
      "args": ["commit-check-mcp"]
    }
  }
}

Generic / Any MCP Client

If your client does not support uvx, use pip and the direct path:

pip install commit-check-mcp
which commit-check-mcp

Then use the absolute path in your config:

{
  "mcpServers": {
    "commit-check": {
      "command": "/path/to/commit-check-mcp"
    }
  }
}

Run Manually

# If installed via pip
commit-check-mcp

# Or via uvx (no install needed)
uvx commit-check-mcp

The server uses stdio transport, which is the recommended MCP default for local tool integrations.

Tool Usage

After the client starts the server, it will expose these tools:

  • server_health: returns server, SDK, and dependency versions
  • validate_commit_message(message, config?, repo_path?, config_path?)
  • validate_branch_name(branch?, config?, repo_path?, config_path?)
  • validate_push_safety(push_refs?, config?, repo_path?, config_path?)
  • validate_author_info(author_name?, author_email?, config?, repo_path?, config_path?)
  • validate_commit_context(message?, branch?, author_name?, author_email?, config?, repo_path?, config_path?)
  • validate_repository_state(repo_path?, config?, config_path?, include_message?, include_branch?, include_author?, include_push?)
  • describe_validation_rules(config?, repo_path?, config_path?)

The common optional arguments are:

  • repo_path: repository directory to validate against; it must be a git repository when the tool reads git state (branch, author, or push refs omitted, or validate_repository_state), and may be a plain directory holding a config file when every value is supplied
  • config_path: explicit TOML config file; relative paths resolve from repo_path
  • config: ad-hoc config overrides merged on top of defaults and repo config

Common Examples

Validate a commit message using repo-local rules:

{
  "message": "feat(api): add MCP validation tool",
  "repo_path": "/path/to/repo"
}

Validate the current repository branch using an explicit config file:

{
  "repo_path": "/path/to/repo",
  "config_path": ".github/commit-check.toml"
}

Validate the full repository state:

{
  "repo_path": "/path/to/repo",
  "include_message": true,
  "include_branch": true,
  "include_author": true
}

Validate push safety from git pre-push hook ref metadata (push_refs must be non-empty when given; omit it to check the current branch against its upstream):

{
  "repo_path": "/path/to/repo",
  "push_refs": "refs/heads/main abc123 refs/heads/main def456"
}

Inspect the final merged rules that will be applied:

{
  "repo_path": "/path/to/repo",
  "config": {
    "commit": {
      "require_body": true
    }
  }
}

Repository-Aware Validation

commit-check is most useful when it runs against a real git repository and its cchk.toml or commit-check.toml file. This MCP server now supports that directly:

  • repo_path — run git-based validations against a specific repository
  • config_path — point to an explicit TOML config file; relative paths are resolved from repo_path
  • config — apply ad-hoc overrides on top of defaults and repo config

Typical patterns:

  • Validate an explicit message with a repository's rules
  • Validate the current repository state — the latest commit's message and author, and the current branch — without passing message/branch/author values manually
  • Validate push safety using pre-push ref metadata, or check the current branch against its upstream
  • Inspect which rules are actually enabled after config merging

Example payload for a repository-wide validation:

{
  "repo_path": "/path/to/repo",
  "include_message": true,
  "include_branch": true,
  "include_author": true,
  "include_push": true
}

Config precedence is:

  1. commit-check built-in defaults
  2. repository config loaded from repo_path
  3. config_path when explicitly provided
  4. inline config overrides passed to the tool

Published On

Directory Link
Official MCP Registry io.github.commit-check/commit-check-mcp
Glama.ai github/commit-check/commit-check-mcp
PyPI commit-check-mcp

mcp-name: io.github.commit-check/commit-check-mcp

Metadata

Release files for commit-check-mcp 0.1.10

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for commit-check-mcp 0.1.10
File Size Uploaded
commit_check_mcp-0.1.10.tar.gz 89.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for commit-check-mcp 0.1.10
File Interpreter ABI Platform
commit_check_mcp-0.1.10-py3-none-any.whl Python 3 none any Details

Total release size: 101.3 kB

Release files / commit_check_mcp-0.1.10.tar.gz

Download URL commit_check_mcp-0.1.10.tar.gz
Size 89.8 kB
Tags Source
SHA-256 checksum
How to use checksums
cb486a938c4b648219ab7fe8a76e324d1e6409f5c2ac0957dcc4279db6bccdd6
BLAKE2b-256 checksum
How to use checksums
29b6c4a47cccd1678293ec5805a7b0a81eaa0e3f0a833374310dfd1b9c92c6e0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 6, 2026.

Transparency log

Release files / commit_check_mcp-0.1.10-py3-none-any.whl

Download URL commit_check_mcp-0.1.10-py3-none-any.whl
Size 11.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
03a681b7267385b7b36d3f5e521dbcc206779a32f07aa24be30a8534e4666cb9
BLAKE2b-256 checksum
How to use checksums
1a174a2cb3e3ca9643e7244e10429db9783c11429115c4b51f5f3768d373d230
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 6, 2026.

Transparency log

Release history Release notifications | RSS feed

0.1.11

2 release files

This release

0.1.10 This release

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page