mcp-server-git-cz

mcp-server-git-cz

3.3

If you are the rightful owner of mcp-server-git-cz and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

The Git Commit Message Generator MCP Server is an intelligent server that automates the generation of Conventional Commits style messages using advanced LLM providers.

Git Commit Message Generator MCP Server

An intelligent MCP server that automatically generates Conventional Commits style commit messages using LLM providers like DeepSeek and Groq.

Features

  • AI-Powered: Leverages LLM providers (DeepSeek, Groq) for intelligent commit message generation
  • Conventional Commits: Follows industry-standard commit message conventions
  • Multi-Provider: Supports multiple LLM providers with easy switching
  • MCP Compatible: Works seamlessly with Claude, Cursor, Gemini CLI, and other MCP clients
  • Easy Setup: Simple configuration via environment variables

Table of Contents

Quick Start

  1. Clone and install:

    git clone https://github.com/FradSer/mcp-server-git-cz.git
    cd mcp-server-git-cz
    uv venv && uv pip install -r requirements.txt
    
  2. Configure environment:

    cp .env.example .env
    # Edit .env with your API keys
    
  3. Run the server:

    uv run mcp-server-git-cz
    

Installation

Prerequisites

Step-by-step Installation

  1. Clone the repository:

    git clone https://github.com/FradSer/mcp-server-git-cz.git
    cd mcp-server-git-cz
    
  2. Create virtual environment and install dependencies:

    uv venv
    uv pip install -r requirements.txt
    
  3. Set up environment variables:

    cp .env.example .env
    

    Edit .env file:

    DEEPSEEK_API_KEY=your_deepseek_api_key
    GROQ_API_KEY=your_groq_api_key
    LLM_PROVIDER=deepseek  # or groq
    

Configuration

Environment Variables

VariableDescriptionDefaultRequired
DEEPSEEK_API_KEYDeepSeek API key-Yes (if using DeepSeek)
GROQ_API_KEYGroq API key-Yes (if using Groq)
LLM_PROVIDERLLM provider to usedeepseekNo

Transport Options

The server supports multiple transport methods:

# STDIO transport (recommended)
uv run mcp-server-git-cz

# SSE transport
uv run mcp-server-git-cz --transport sse --port 8000

Usage

The server exposes a single tool: generate_commit_message that analyzes your git diff and generates conventional commit messages.

Basic Example

import asyncio
from mcp.client.session import ClientSession
from mcp.client.stdio import StdioServerParameters, stdio_client

async def main():
    async with stdio_client(
        StdioServerParameters(command="uv", args=["run", "mcp-server-git-cz"])
    ) as (read, write):
        async with ClientSession(read, write) as session:
            await session.initialize()
            
            # Generate commit message
            result = await session.call_tool("generate_commit_message", {})
            print(result)

asyncio.run(main())

MCP Client Setup

Note: Replace /path/to/mcp-server-git-cz with your actual project directory path in all configurations below.

Claude Code

# Project scope (recommended for teams)
claude mcp add git-cz -s project -- uv run --python /path/to/mcp-server-git-cz/.venv/bin/python -m mcp_server_git_cz

# User scope (personal use)
claude mcp add git-cz -s user -- uv run --python /path/to/mcp-server-git-cz/.venv/bin/python -m mcp_server_git_cz

Cursor

Add to Cursor settings:

{
  "mcpServers": {
    "git-cz": {
      "command": "uv",
      "args": ["run", "--python", "/path/to/mcp-server-git-cz/.venv/bin/python", "-m", "mcp_server_git_cz"],
      "env": {},
      "transport": "stdio"
    }
  }
}

Gemini CLI

Add to ~/.gemini/settings.json:

{
  "mcpServers": {
    "git-cz": {
      "command": "uv",
      "args": ["run", "--python", "/path/to/mcp-server-git-cz/.venv/bin/python", "-m", "mcp_server_git_cz"],
      "env": {}
    }
  }
}
Detailed Setup Instructions

Finding Your Paths

  1. Get virtual environment path:

    cd mcp-server-git-cz
    uv venv
    which python  # Copy this path
    
  2. Get project directory:

    pwd  # Copy this path
    
  3. Update configurations with your actual paths

Advanced Configuration

With Environment Variables
{
  "mcpServers": {
    "git-cz": {
      "command": "uv",
      "args": ["run", "--python", "/path/to/mcp-server-git-cz/.venv/bin/python", "-m", "mcp_server_git_cz"],
      "env": {
        "DEEPSEEK_API_KEY": "your_key_here",
        "LLM_PROVIDER": "deepseek"
      }
    }
  }
}
With Working Directory
{
  "mcpServers": {
    "git-cz": {
      "command": "uv",
      "args": ["run", "--python", "/path/to/mcp-server-git-cz/.venv/bin/python", "-m", "mcp_server_git_cz"],
      "cwd": "/path/to/mcp-server-git-cz",
      "env": {}
    }
  }
}

Examples

Using with MCP Clients

Once configured, you can interact with the tool using natural language:

  • "Generate a commit message for my current changes"
  • "Create a conventional commit message based on my git diff"
  • "Help me write a commit message following conventional commits"

The server will:

  1. Analyze your current git diff
  2. Generate a conventional commit message using AI
  3. Return the formatted message for review

Example Output

feat(auth): add OAuth2 integration with GitHub

- Implement OAuth2 authentication flow
- Add GitHub provider configuration
- Update user model to support external auth
- Add tests for authentication endpoints

Closes #123

Contributing

We welcome contributions! Please follow these guidelines:

Development Setup

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Make your changes
  4. Run tests: make test
  5. Commit using conventional commits: git commit -m 'feat: add amazing feature'
  6. Push to your branch: git push origin feature/amazing-feature
  7. Open a Pull Request

Code Style

  • Follow PEP 8 for Python code
  • Use Black for code formatting
  • Add type hints where appropriate
  • Write tests for new features

Reporting Issues

Found a bug? Have a feature request? Please open an issue with:

  • Clear description of the problem
  • Steps to reproduce
  • Expected vs actual behavior
  • Environment details

License

This project is licensed under the MIT License - see the file for details.

Support

Acknowledgments


Made with ❤️ for the developer community
⭐ Star this repo if you find it useful!