Git Commit Message Generator

Genera mensajes de commit en estilo Conventional Commits utilizando proveedores de LLM como DeepSeek y Groq.

Documentación

Servidor MCP Generador de Mensajes de Commit Git

Python 3.10+ License: MIT MCP Compatible

Un servidor MCP inteligente que genera automáticamente mensajes de commit estilo Conventional Commits utilizando proveedores de LLM como DeepSeek y Groq.

Características

  • Impulsado por IA: Aprovecha proveedores de LLM (DeepSeek, Groq) para la generación inteligente de mensajes de commit
  • Conventional Commits: Sigue las convenciones estándar de la industria para mensajes de commit
  • Multi-proveedor: Soporta múltiples proveedores de LLM con cambio sencillo
  • Compatible con MCP: Funciona perfectamente con Claude, Cursor, Gemini CLI y otros clientes MCP
  • Configuración sencilla: Configuración simple mediante variables de entorno

Tabla de Contenidos

Inicio Rápido

  1. Clonar e instalar:

    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. Configurar el entorno:

    cp .env.example .env
    # Edit .env with your API keys
    
  3. Ejecutar el servidor:

    uv run mcp-server-git-cz
    

Instalación

Requisitos Previos

Instalación Paso a Paso

  1. Clonar el repositorio:

    git clone https://github.com/FradSer/mcp-server-git-cz.git
    cd mcp-server-git-cz
    
  2. Crear entorno virtual e instalar dependencias:

    uv venv
    uv pip install -r requirements.txt
    
  3. Configurar variables de entorno:

    cp .env.example .env
    

    Editar el archivo .env:

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

Configuración

Variables de Entorno

VariableDescripciónPredeterminadoRequerido
DEEPSEEK_API_KEYClave API de DeepSeek-Sí (si se usa DeepSeek)
GROQ_API_KEYClave API de Groq-Sí (si se usa Groq)
LLM_PROVIDERProveedor de LLM a utilizardeepseekNo

Opciones de Transporte

El servidor soporta múltiples métodos de transporte:

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

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

Uso

El servidor expone una única herramienta: generate_commit_message que analiza tu diff de git y genera mensajes de commit convencionales.

Ejemplo Básico

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())

Configuración del Cliente MCP

Nota: Reemplaza /path/to/mcp-server-git-cz con la ruta real de tu directorio de proyecto en todas las configuraciones siguientes.

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

Añadir a la configuración de Cursor:

{
  "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

Añadir a ~/.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": {}
    }
  }
}
Instrucciones de Configuración Detalladas

Encontrar Tus Rutas

  1. Obtener la ruta del entorno virtual:

    cd mcp-server-git-cz
    uv venv
    which python  # Copy this path
    
  2. Obtener el directorio del proyecto:

    pwd  # Copy this path
    
  3. Actualizar las configuraciones con tus rutas reales

Configuración Avanzada

Con Variables de Entorno

{
  "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"
      }
    }
  }
}

Con Directorio de Trabajo

{
  "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": {}
    }
  }
}

Ejemplos

Uso con Clientes MCP

Una vez configurado, puedes interactuar con la herramienta usando lenguaje natural:

  • "Genera un mensaje de commit para mis cambios actuales"
  • "Crea un mensaje de commit convencional basado en mi diff de git"
  • "Ayúdame a escribir un mensaje de commit siguiendo conventional commits"

El servidor:

  1. Analizará tu diff de git actual
  2. Generará un mensaje de commit convencional usando IA
  3. Devolverá el mensaje formateado para revisión

Ejemplo de Salida

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

Contribuciones

¡Damos la bienvenida a las contribuciones! Por favor, sigue estas pautas:

Configuración de Desarrollo

  1. Haz un fork del repositorio
  2. Crea una rama de funcionalidad: git checkout -b feature/amazing-feature
  3. Realiza tus cambios
  4. Ejecuta las pruebas: make test
  5. Haz commit usando conventional commits: git commit -m 'feat: add amazing feature'
  6. Sube a tu rama: git push origin feature/amazing-feature
  7. Abre una Pull Request

Estilo de Código

  • Sigue PEP 8 para código Python
  • Usa Black para el formato de código
  • Añade type hints donde sea apropiado
  • Escribe pruebas para nuevas funcionalidades

Reportar Problemas

¿Encontraste un error? ¿Tienes una solicitud de funcionalidad? Por favor abre un issue con:

  • Descripción clara del problema
  • Pasos para reproducirlo
  • Comportamiento esperado vs. real
  • Detalles del entorno

Licencia

Este proyecto está licenciado bajo la Licencia MIT - consulta el archivo LICENSE para más detalles.

Soporte

Agradecimientos


Hecho con ❤️ para la comunidad de desarrolladores
⭐ ¡Dale una estrella a este repositorio si te resulta útil!