Git Commit Message Generator
Gera mensagens de commit no estilo Conventional Commits usando provedores de LLM como DeepSeek e Groq.
Documentação
Git Commit Message Generator MCP Server
Um servidor MCP inteligente que gera automaticamente mensagens de commit no estilo Conventional Commits usando provedores de LLM como DeepSeek e Groq.
Recursos
- Com IA: Utiliza provedores de LLM (DeepSeek, Groq) para geração inteligente de mensagens de commit
- Conventional Commits: Segue as convenções padrão do setor para mensagens de commit
- Multi-provedor: Suporta múltiplos provedores de LLM com fácil alternância
- Compatível com MCP: Funciona perfeitamente com Claude, Cursor, Gemini CLI e outros clientes MCP
- Configuração fácil: Configuração simples via variáveis de ambiente
Sumário
- Início Rápido
- Instalação
- Configuração
- Uso
- Configuração do Cliente MCP
- Exemplos
- Contribuição
- Licença
- Suporte
Início Rápido
-
Clone e instale:
git clone https://github.com/FradSer/mcp-server-git-cz.git cd mcp-server-git-cz uv venv && uv pip install -r requirements.txt -
Configure o ambiente:
cp .env.example .env # Edit .env with your API keys -
Execute o servidor:
uv run mcp-server-git-cz
Instalação
Pré-requisitos
- Python 3.10+
- Gerenciador de pacotes uv
Instalação Passo a Passo
-
Clone o repositório:
git clone https://github.com/FradSer/mcp-server-git-cz.git cd mcp-server-git-cz -
Crie um ambiente virtual e instale as dependências:
uv venv uv pip install -r requirements.txt -
Configure as variáveis de ambiente:
cp .env.example .envEdite o arquivo
.env:DEEPSEEK_API_KEY=your_deepseek_api_key GROQ_API_KEY=your_groq_api_key LLM_PROVIDER=deepseek # or groq
Configuração
Variáveis de Ambiente
| Variável | Descrição | Padrão | Obrigatória |
|---|---|---|---|
DEEPSEEK_API_KEY | Chave da API DeepSeek | - | Sim (se usar DeepSeek) |
GROQ_API_KEY | Chave da API Groq | - | Sim (se usar Groq) |
LLM_PROVIDER | Provedor de LLM a usar | deepseek | Não |
Opções de Transporte
O servidor suporta múltiplos 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
O servidor expõe uma única ferramenta: generate_commit_message que analisa seu diff do git e gera mensagens de commit convencionais.
Exemplo 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())
Configuração do Cliente MCP
Nota: Substitua
/path/to/mcp-server-git-czpelo caminho real do diretório do seu projeto em todas as configurações abaixo.
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
Adicione às configurações do 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
Adicione 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": {}
}
}
}
Instruções Detalhadas de Configuração
Encontrando Seus Caminhos
-
Obtenha o caminho do ambiente virtual:
cd mcp-server-git-cz uv venv which python # Copy this path -
Obtenha o diretório do projeto:
pwd # Copy this path -
Atualize as configurações com seus caminhos reais
Configuração Avançada
Com Variáveis de Ambiente
{
"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"
}
}
}
}
Com Diretório de Trabalho
{
"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": {}
}
}
}
Exemplos
Usando com Clientes MCP
Após a configuração, você pode interagir com a ferramenta usando linguagem natural:
- "Gere uma mensagem de commit para minhas alterações atuais"
- "Crie uma mensagem de commit convencional com base no meu diff do git"
- "Ajude-me a escrever uma mensagem de commit seguindo conventional commits"
O servidor irá:
- Analisar seu diff do git atual
- Gerar uma mensagem de commit convencional usando IA
- Retornar a mensagem formatada para revisão
Exemplo de Saída
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
Contribuição
Agradecemos contribuições! Siga estas diretrizes:
Configuração de Desenvolvimento
- Faça um fork do repositório
- Crie um branch de funcionalidade:
git checkout -b feature/amazing-feature - Faça suas alterações
- Execute os testes:
make test - Faça commits usando conventional commits:
git commit -m 'feat: add amazing feature' - Envie para seu branch:
git push origin feature/amazing-feature - Abra um Pull Request
Estilo de Código
- Siga PEP 8 para código Python
- Use Black para formatação de código
- Adicione dicas de tipo onde apropriado
- Escreva testes para novos recursos
Relatando Problemas
Encontrou um bug? Tem uma solicitação de recurso? Por favor, abra uma issue com:
- Descrição clara do problema
- Passos para reproduzir
- Comportamento esperado vs. real
- Detalhes do ambiente
Licença
Este projeto é licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.
Suporte
- Documentação: Documentação completa
- Relatórios de Bugs: Issues no GitHub
- Solicitações de Recursos: Discussões no GitHub
- Email: fradser@gmail.com
Agradecimentos
- Especificação Conventional Commits
- Framework Model Context Protocol
- DeepSeek e Groq pelas capacidades de IA
- Todos os colaboradores que ajudam a melhorar este projeto
⭐ Dê uma estrela neste repositório se você o achar útil!