@andrebuzeli/git-mcp
v15.8.1
Published
MCP server para Git com operações locais e sincronização paralela GitHub/Gitea
Readme
@andrebuzeli/git-mcp
Servidor MCP (Model Context Protocol) para operações Git locais sem git instalado, com sincronização paralela para GitHub e Gitea.
Melhorias Implementadas (v15.3.0)
🔴 Correções Críticas
- ✅ Métodos Faltantes:
getMergeStatus,abortMerge,resetHardCleanimplementados - ✅ Paralelização runBoth: GitHub e Gitea executados em paralelo (2x mais rápido)
- ✅ withRetry Integrado: Operações remotas com retry automático
🔒 Segurança
- ✅ Validação de Path: Prevenção de path traversal e validação rigorosa
- ✅ Logging Configurável: Debug logging controlado por
DEBUG_AGENT_LOG - ✅ Limite de Comprimento: Paths limitados a 260 caracteres (MAX_PATH)
⚡ Performance
- ✅ Timeout Configurável:
GIT_TIMEOUT_MS(default: 60s) para operações Git - ✅ Cache de URLs: URLs de remotes cacheadas por 10 minutos
- ✅ Paginação listAllRepos: Suporta contas com milhares de repositórios
- ✅ Rate Limit Handling: Backoff automático com Retry-After header
🧪 Testabilidade & Desenvolvimento
- ✅ Dry Run Mode: Todas as operações suportam simulação
- ✅ Testes Unitários: Suite Jest com 13 testes passando
- ✅ Suporte .env File: Carrega variáveis de
.envautomaticamente - ✅ Métricas/Telemetria: Opt-in via
ENABLE_METRICS=true
🔧 Novas Funcionalidades
- ✅ Git LFS: Suporte completo (track, pull, push, status)
- ✅ Sistema de Hooks: Pre/post hooks customizáveis
- ✅ Consistência Naming: camelCase em todas as respostas
📊 Variáveis de Ambiente
| Variável | Descrição | Default |
|----------|-----------|---------|
| GITHUB_TOKEN | Token de autenticação GitHub | - |
| GITEA_URL | URL do servidor Gitea | - |
| GITEA_TOKEN | Token de autenticação Gitea | - |
| GIT_TIMEOUT_MS | Timeout para operações Git | 60000 |
| DEBUG_AGENT_LOG | Habilita logging de debug | false |
| ENABLE_METRICS | Habilita métricas | false |
Status dos Testes
Test Suites: 2 passed, 2 total
Tests: 13 passed, 13 total{
"mcpServers": {
"git-mcp": {
"command": "npx",
"args": ["@andrebuzeli/git-mcp@latest"],
"env": {
"GITEA_URL": "https://seu-gitea",
"GITEA_TOKEN": "...",
"GITHUB_TOKEN": "..."
}
}
}
}Tools
- git-workflow: init, status, add, remove, commit, ensure-remotes, push
- git-remote: list, ensure
- git-branches: list, create, delete, rename, checkout
- git-tags: list, create, delete, push
- git-stash: list, save, apply, pop, drop, clear
- git-reset: soft, mixed, hard
- git-config: get, set, unset, list
- git-ignore: list, create, add, remove
- git-files: list, read
- git-history: log
- git-sync: fetch, pull
- git-issues: create, list, comment
- git-pulls: create, list, files
Todas as tools exigem projectPath e operam com derivação automática do nome do repositório a partir do caminho.
