Skip to main content

Commit Helper MCP

A Model Context Protocol (MCP) server that provides Commitizen functionality through MCP tools and resources, enabling AI assistants to generate, validate, and work with conventional commit messages.

Features

Core Functionality

  • Generate Commit Messages: Create conventional commit messages with validation
  • Validate Messages: Check existing commit messages against Commitizen rules
  • Interactive Questions: Get commit questions for guided message creation
  • Commit Types: Access available commit types and their descriptions
  • Configuration Access: View current Commitizen configuration and schema
  • Plugin Support: Works with any Commitizen plugin (conventional commits, custom plugins)
  • Health Monitoring: Built-in health checks and configuration refresh

🚀 Enhanced Git Integration with GitPython

Commit Helper MCP now supports GitPython for enhanced git operations:

  • Repository Health Analysis: Comprehensive repository metrics and scoring
  • Smart Commit Suggestions: AI-powered commit message suggestions based on file patterns
  • Detailed Diff Analysis: Line-by-line change analysis with statistics
  • Branch Management: Comprehensive branch and remote analysis
  • Performance Improvements: 2x faster operations, thread-safe execution
  • Advanced Git Operations: Enhanced commit previews, repository analytics, and batch operations

📦 GitPython Installation

# GitPython is automatically installed
uv sync

# Or install manually
uv add "GitPython>=3.1.40"

🔄 Automatic Fallback

The system automatically selects the best available implementation:

  • GitPython (preferred): Enhanced features and performance
  • commitizen.git (fallback): Basic functionality, full compatibility

📊 Feature Comparison

Feature Basic Enhanced (GitPython)
Repository status ✅ ✅ Rich metadata
Commit preview ✅ ✅ Diff analysis
Smart suggestions ❌ ✅ AI-powered
Repository health ❌ ✅ Comprehensive
Performance Standard 2x faster

See GitPython Integration Guide for complete documentation.

Installation

Prerequisites

  • Python 3.13 or higher
  • uv package manager
  • Git repository (for Commitizen configuration detection)

Install from Source

  1. Clone the repository:
git clone <repository-url>
cd commit-helper-mcp
  1. Install dependencies:
uv sync
  1. Install the package:
uv pip install -e .

Usage

MCP Inspector (Development & Testing)

Use the MCP Inspector to test and explore the server's capabilities:

uv run mcp dev main.py

This will start an interactive session where you can:

  • Test all available tools
  • Explore resources
  • Debug server functionality
  • View tool schemas and documentation

Claude Desktop Integration

To use with Claude Desktop, install the server:

uv run mcp install main.py

This will add the server to your Claude Desktop configuration, making the tools available in your conversations.

Manual Configuration

Add to your Claude Desktop configuration file (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "commit-helper-mcp": {
      "command": "uv",
      "args": ["run", "python", "/path/to/commit-helper-mcp/main.py"],
      "cwd": "/path/to/commit-helper-mcp"
    }
  }
}

Available Tools

generate_commit_message

Generate a commit message with validation using provided parameters.

Parameters:

  • type (required): Commit type (e.g., 'feat', 'fix', 'docs')
  • subject (required): Commit subject/description
  • body (optional): Detailed description
  • scope (optional): Scope of the change
  • breaking (optional): Whether this is a breaking change
  • footer (optional): Footer (e.g., issue references)

Example:

generate_commit_message(
    type="feat",
    subject="add user authentication",
    scope="auth",
    body="Implement JWT-based authentication system with login and logout functionality"
)

create_commit_message

Generate a commit message from a complete answers dictionary.

Parameters:

  • answers_dict: Dictionary containing all answers to commit questions

Example:

create_commit_message({
    "type": "fix",
    "subject": "resolve memory leak in data processing",
    "body": "Fixed memory leak caused by unclosed file handles",
    "scope": "core"
})

validate_commit_message

Validate an existing commit message against current plugin rules.

Parameters:

  • message: The commit message to validate

Example:

validate_commit_message("feat(auth): add user login functionality")

get_commit_types

Get list of available commit types from the current plugin.

Returns: List of commit types with descriptions

get_commit_questions

Get interactive questions for commit message generation.

Returns: List of questions that can be used to build commit messages

health_check

Check the health and status of the Commitizen service.

Returns: Service health information and configuration details

refresh_configuration

Refresh the Commitizen configuration and reinitialize the service.

Returns: Status of configuration refresh

Available Resources

commitizen://config

Current Commitizen configuration including:

  • Active plugin information
  • Configuration settings
  • Available capabilities
  • Message pattern

commitizen://schema

Commit message schema showing:

  • Required fields
  • Field types and constraints
  • Validation rules

commitizen://example

Example commit message demonstrating the expected format for the current plugin configuration.

Configuration

The server automatically detects and uses your project's Commitizen configuration from:

  • pyproject.toml (recommended)
  • .cz.toml
  • .cz.json
  • setup.cfg

Example Configuration

Add to your pyproject.toml:

[tool.commitizen]
name = "cz_conventional_commits"
tag_format = "v$version"
version_scheme = "semver"
version_provider = "pep621"
update_changelog_on_bump = true

Supported Commitizen Plugins

The server works with any Commitizen plugin, including:

  • cz_conventional_commits (default): Standard conventional commits
  • cz_jira: Jira integration
  • cz_customize: Custom commit formats
  • Third-party plugins: Any plugin following Commitizen's plugin interface

Troubleshooting

Server Won't Start

  1. Check Python version: Ensure Python 3.13+ is installed
  2. Verify dependencies: Run uv sync to install dependencies
  3. Check Commitizen config: Ensure valid Commitizen configuration exists
  4. View logs: Check console output for specific error messages

Invalid Commit Messages

  1. Check plugin: Verify correct Commitizen plugin is configured
  2. Validate config: Use health_check tool to verify configuration
  3. Refresh config: Use refresh_configuration tool after config changes
  4. Check pattern: View commitizen://config resource for expected pattern

MCP Connection Issues

  1. Verify installation: Ensure server is properly installed
  2. Check paths: Verify file paths in Claude Desktop configuration
  3. Test with inspector: Use uv run mcp dev main.py to test locally
  4. Restart Claude: Restart Claude Desktop after configuration changes

Common Error Messages

  • "No Commitizen configuration found": Add Commitizen config to your project
  • "Plugin not found": Install the specified Commitizen plugin
  • "Invalid message format": Check message against plugin's expected pattern
  • "Service initialization failed": Check Python environment and dependencies

Development

Running Tests

# Run all tests
uv run pytest

# Run with coverage
uv run pytest --cov=src/commit_helper_mcp

# Run specific test file
uv run pytest tests/test_integration.py

Code Formatting

# Format code
uv run black src/ tests/

# Check formatting
uv run black --check src/ tests/

# Lint code
uv run ruff check src/ tests/

Local Development Server

# Run server directly
python main.py

# Run with MCP inspector
uv run mcp dev main.py

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests for new functionality
  5. Ensure all tests pass
  6. Submit a pull request

License

MIT License - see LICENSE file for details.

Support

For issues and questions:

  1. Check the troubleshooting section above
  2. Search existing issues in the repository
  3. Create a new issue with detailed information about your problem

Changelog

See CHANGELOG.md for version history and changes.

Metadata

Release files for iflow-mcp_commit-helper-mcp 0.6.0

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

Source distribution (sdist)

Source distribution for iflow-mcp_commit-helper-mcp 0.6.0
File Size Uploaded
iflow_mcp_commit_helper_mcp-0.6.0.tar.gz 798.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for iflow-mcp_commit-helper-mcp 0.6.0
File Interpreter ABI Platform
iflow_mcp_commit_helper_mcp-0.6.0-py3-none-any.whl Python 3 none any Details

Total release size: 852.4 kB

Release files / iflow_mcp_commit_helper_mcp-0.6.0.tar.gz

Download URL iflow_mcp_commit_helper_mcp-0.6.0.tar.gz
Size 798.6 kB
Tags Source
SHA-256 checksum
How to use checksums
f1c849ad47f0d5a3875cb043327bc562785f34529c37bfec5c95e0a1dc5d8a8e
BLAKE2b-256 checksum
How to use checksums
0ab4628063c20eb6d5c3eb00563c12043e25c466da354b60bedb35af4c6869a7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.6.9

Release files / iflow_mcp_commit_helper_mcp-0.6.0-py3-none-any.whl

Download URL iflow_mcp_commit_helper_mcp-0.6.0-py3-none-any.whl
Size 53.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5c4c03ac71a48d896e222a0b8f1025d26e33b23b8559dc8129d9bef33aeb5825
BLAKE2b-256 checksum
How to use checksums
530553001709ce8ad3793a7091c015114c0800860295408c331c103a35614fcd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.6.9

Release history Release notifications | RSS feed

This release

0.6.0 This release

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