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
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
- Instalación
- Configuración
- Uso
- Configuración del Cliente MCP
- Ejemplos
- Contribuciones
- Licencia
- Soporte
Inicio Rápido
-
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 -
Configurar el entorno:
cp .env.example .env # Edit .env with your API keys -
Ejecutar el servidor:
uv run mcp-server-git-cz
Instalación
Requisitos Previos
- Python 3.10+
- Gestor de paquetes uv
Instalación Paso a Paso
-
Clonar el repositorio:
git clone https://github.com/FradSer/mcp-server-git-cz.git cd mcp-server-git-cz -
Crear entorno virtual e instalar dependencias:
uv venv uv pip install -r requirements.txt -
Configurar variables de entorno:
cp .env.example .envEditar 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
| Variable | Descripción | Predeterminado | Requerido |
|---|---|---|---|
DEEPSEEK_API_KEY | Clave API de DeepSeek | - | Sí (si se usa DeepSeek) |
GROQ_API_KEY | Clave API de Groq | - | Sí (si se usa Groq) |
LLM_PROVIDER | Proveedor de LLM a utilizar | deepseek | No |
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-czcon 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
-
Obtener la ruta del entorno virtual:
cd mcp-server-git-cz uv venv which python # Copy this path -
Obtener el directorio del proyecto:
pwd # Copy this path -
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:
- Analizará tu diff de git actual
- Generará un mensaje de commit convencional usando IA
- 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
- Haz un fork del repositorio
- Crea una rama de funcionalidad:
git checkout -b feature/amazing-feature - Realiza tus cambios
- Ejecuta las pruebas:
make test - Haz commit usando conventional commits:
git commit -m 'feat: add amazing feature' - Sube a tu rama:
git push origin feature/amazing-feature - 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
- Documentación: Documentación completa
- Reportes de errores: GitHub Issues
- Solicitudes de funcionalidad: GitHub Discussions
- Correo electrónico: fradser@gmail.com
Agradecimientos
- Especificación Conventional Commits
- Marco de trabajo Model Context Protocol
- DeepSeek y Groq por sus capacidades de IA
- Todos los contribuidores que ayudan a mejorar este proyecto
⭐ ¡Dale una estrella a este repositorio si te resulta útil!