Skip to main content

MCP server for automated Git commit workflows with conventional commit messages

Project description

Git Commit MCP Server

A small MCP (Model Context Protocol) server that automates conventional Git commits, changelog updates, and optional pushes. Use this repository when you want an AI assistant to create well-formed Conventional Commit messages and manage the CHANGELOG automatically.

See detailed documentation in the docs/ folder:

  • docs/architecture.md — high-level architecture, components, and data flows.
  • docs/usage.md — setup, configuration, and common workflows (PowerShell examples included).

Quick Start

Prerequisites

  • Python 3.10+
  • Git installed and configured
  • uv package manager (for development)
  • pipx (for global installation)

Installation

Option 1: Global Installation with pipx (Recommended)

Install globally so the server is available from any directory:

# Install pipx if you don't have it
uv tool install pipx

# Install from PyPI (production)
pipx install git-commit-mcp-server

# Or install from TestPyPI (testing)
pipx install git-commit-mcp-server --index-url https://test.pypi.org/simple/ --pip-args="--extra-index-url https://pypi.org/simple/"

Option 2: Run with uvx (No Installation)

Run directly without installing:

uvx git-commit-mcp-server

Option 3: Development Mode

For local development:

# Clone the repository
git clone https://github.com/surajfale/git-mcp-server.git
cd git-mcp-server

# Install with development dependencies
uv pip install -e ".[dev]"

# Run the server
python -m git_commit_mcp.__main__

Configuration

MCP Client Setup

The server works with various MCP-compatible clients including:

  • Kiro IDE.kiro/settings/mcp.json or ~/.kiro/settings/mcp.json
  • Cursor IDE — See Cursor Configuration below
  • Claude Desktopclaude_desktop_config.json
  • WARP — MCP configuration file
  • VSCode — With MCP extension

Example configuration (Kiro IDE):

{
  "mcpServers": {
    "git-commit": {
      "command": "git-commit-mcp",
      "args": [],
      "disabled": false,
      "env": {
        "OPENAI_API_KEY": "sk-your-key-here",
        "ENABLE_AI": "true",
        "AI_MODEL": "gpt-4o-mini",
        "FORCE_SSH_ONLY": "true"
      },
      "autoApprove": []
    }
  }
}

Environment Variables

Key environment variables:

  • OPENAI_API_KEY — Required when ENABLE_AI=true for AI-powered commit messages
  • ENABLE_AI — Set to true to use AI generation (default: true)
  • AI_MODEL — OpenAI model to use (default: gpt-4o-mini)
  • FORCE_SSH_ONLY — Require SSH for Git operations (default: true)
  • LOG_LEVEL — Logging level: DEBUG, INFO, WARNING, ERROR (default: INFO)

Set in PowerShell:

# Current session
$env:OPENAI_API_KEY = 'sk-your-key-here'

# Persistent (user-level)
setx OPENAI_API_KEY "sk-your-key-here"

Cursor IDE Configuration

Important: Cursor IDE has specific requirements. See the detailed Cursor setup guide in docs/usage.md.

Quick setup for Cursor:

  1. Configuration file location (Windows):

    %APPDATA%\Cursor\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json
    
  2. Basic configuration:

    {
      "mcpServers": {
        "git-commit-mcp": {
          "command": "git-commit-mcp",
          "args": [],
          "env": {
            "OPENAI_API_KEY": "sk-your-key-here",
            "ENABLE_AI": "true"
          }
        }
      }
    }
    
  3. For local development:

    {
      "mcpServers": {
        "git-commit-mcp": {
          "command": "python",
          "args": ["-m", "git_commit_mcp.__main__"],
          "cwd": "C:\\path\\to\\git_commit_message",
          "env": {
            "OPENAI_API_KEY": "sk-your-key-here"
          }
        }
      }
    }
    

Troubleshooting: If you encounter issues in Cursor, see the Cursor-specific troubleshooting section in docs/usage.md.

Usage

Once configured, use natural language with your AI assistant:

User: "Commit my changes"
AI: [Analyzes your git diff and generates a conventional commit message]
AI: "Created commit abc1234: feat(auth): Add user authentication module"

User: "Commit and push"
AI: [Commits and pushes to remote]
AI: "Successfully pushed to origin/main"

The server provides two main tools:

  • generate_commit_message — Generate a commit message without committing
  • git_commit_and_push — Full workflow: analyze, commit, and optionally push

Features

  • AI-Powered Messages: Analyzes actual git diffs to generate accurate commit messages
  • Conventional Commits: Follows the Conventional Commits specification
  • Smart Type Detection: Automatically determines commit type (feat, fix, docs, etc.)
  • Changelog Management: Maintains CHANGELOG.md with commit history
  • Push Confirmation: Requires explicit approval before pushing
  • Multi-Repository: Works with any Git repository, local or remote

Testing

Run the test suite:

# Run all tests
pytest

# Run with coverage
pytest --cov=git_commit_mcp

# Run specific tests
pytest tests/test_integration.py -v

Updating

Update to the latest version:

# Update global installation
pipx upgrade git-commit-mcp-server

# Or from TestPyPI
pipx upgrade git-commit-mcp-server --index-url https://test.pypi.org/simple/ --pip-args="--extra-index-url https://pypi.org/simple/"

Documentation

  • docs/usage.md — Detailed setup, configuration, troubleshooting, and best practices
  • docs/architecture.md — System architecture, components, and design decisions

Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes with tests
  4. Submit a pull request

License

MIT License - see LICENSE file for details

Links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

git_commit_mcp_server-0.1.3.tar.gz (172.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

git_commit_mcp_server-0.1.3-py3-none-any.whl (34.1 kB view details)

Uploaded Python 3

File details

Details for the file git_commit_mcp_server-0.1.3.tar.gz.

File metadata

  • Download URL: git_commit_mcp_server-0.1.3.tar.gz
  • Upload date:
  • Size: 172.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for git_commit_mcp_server-0.1.3.tar.gz
Algorithm Hash digest
SHA256 8a8f0569027b62e3dfbd4ec74459261ac905f85633a6a2fc149ebe31c19ede60
MD5 071ae79b28d4f90db365c0e23590798c
BLAKE2b-256 66c2b8fb8e2bbfb582f823c939a2de0a798b347629be40006e7887d6e29d2577

See more details on using hashes here.

File details

Details for the file git_commit_mcp_server-0.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for git_commit_mcp_server-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 40275e6fac41e192e4e59e07e6e9af00b42b6fdad33a5f3c855c758bee1713c6
MD5 0b1409096725d261a834d7814022b859
BLAKE2b-256 28b8e989599c62d548523fef4d7d4d3ab0ac430c6ff772d3e35d3ae6b4c71635

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page