MCP Git Repo Browser
Um navegador de repositórios Git que permite navegar e inspecionar repositórios Git locais usando o Model Context Protocol.
Documentação
MCP Git Repo Browser (Node.js)
Uma implementação em Node.js de um navegador de repositórios Git usando o Model Context Protocol (MCP).
Instalação
NPM (Recomendado)
npm install -g git-commands-mcp
Instalação Manual
git clone https://github.com/bsreeram08/git-commands-mcp.git
cd git-commands-mcp
npm install
Configuração
Adicione isto ao seu arquivo de configuração de configurações MCP:
{
"mcpServers": {
"git-commands-mcp": {
"command": "git-commands-mcp"
}
}
}
Para instalação manual, use:
{
"mcpServers": {
"git-commands-mcp": {
"command": "node",
"args": ["/path/to/git-commands-mcp/src/index.js"]
}
}
}
Recursos
O servidor fornece as seguintes ferramentas:
Operações Básicas de Repositório
git_directory_structure: Retorna uma representação em forma de árvore da estrutura de diretórios de um repositório- Entrada: URL do repositório
- Saída: Representação em árvore ASCII da estrutura do repositório
- Entrada: URL do repositório
git_read_files: Lê e retorna o conteúdo de arquivos especificados em um repositório- Entrada: URL do repositório e lista de caminhos de arquivos
- Saída: Dicionário mapeando caminhos de arquivos para seus conteúdos
- Entrada: URL do repositório e lista de caminhos de arquivos
git_search_code: Pesquisa padrões no código do repositório- Entrada: URL do repositório, padrão de pesquisa, padrões de arquivos opcionais, sensibilidade a maiúsculas/minúsculas e linhas de contexto
- Saída: JSON com resultados da pesquisa, incluindo linhas correspondentes e contexto
- Entrada: URL do repositório, padrão de pesquisa, padrões de arquivos opcionais, sensibilidade a maiúsculas/minúsculas e linhas de contexto
Operações de Branch
git_branch_diff: Compara dois branches e mostra os arquivos alterados entre eles- Entrada: URL do repositório, branch de origem, branch de destino e flag opcional show_patch
- Saída: JSON com contagem de commits e resumo do diff
- Entrada: URL do repositório, branch de origem, branch de destino e flag opcional show_patch
Operações de Commit
git_commit_history: Obtém o histórico de commits de um branch com filtragem opcional- Entrada: URL do repositório, nome do branch, contagem máxima, filtro de autor, data inicial, data final e grep de mensagem
- Saída: JSON com detalhes dos commits
- Entrada: URL do repositório, nome do branch, contagem máxima, filtro de autor, data inicial, data final e grep de mensagem
git_commits_details: Obtém informações detalhadas sobre commits, incluindo mensagens completas e diffs- Entrada: URL do repositório, nome do branch, contagem máxima, flag include_diff, filtro de autor, data inicial, data final e grep de mensagem
- Saída: JSON com informações detalhadas dos commits
- Entrada: URL do repositório, nome do branch, contagem máxima, flag include_diff, filtro de autor, data inicial, data final e grep de mensagem
git_local_changes: Obtém alterações não commitadas no diretório de trabalho- Entrada: Caminho do repositório local
- Saída: JSON com informações de status e diffs
- Entrada: Caminho do repositório local
Estrutura do Projeto
git-commands-mcp/
├── src/
│ ├── index.js # Entry point
│ ├── server.js # Main server implementation
│ ├── handlers/ # Tool handlers
│ │ └── index.js # Tool implementation functions
│ └── utils/ # Utility functions
│ └── git.js # Git-related helper functions
├── package.json
└── readme.md
Detalhes de Implementação
- Usa módulos nativos do Node.js (crypto, path, os) para funcionalidades principais
- Utiliza fs-extra para operações aprimoradas de arquivos
- Usa simple-git para operações de repositórios Git
- Implementa tratamento limpo de erros e limpeza de recursos
- Cria diretórios temporários determinísticos baseados em hashes de URLs de repositórios
- Reutiliza repositórios clonados quando possível para eficiência
- Estrutura de código modular para melhor manutenibilidade
Requisitos
- Node.js 14.x ou superior
- Git instalado no sistema
Uso
Se instalado globalmente via npm:
git-commands-mcp
Se instalado manualmente:
node src/index.js
O servidor roda em stdio, tornando-o compatível com clientes MCP.
CI/CD
Este projeto usa GitHub Actions para integração contínua e implantação:
Publicação Automática no NPM
O repositório está configurado com um fluxo de trabalho do GitHub Actions que publica automaticamente o pacote no npm quando alterações são enviadas para o branch master.
Configurando NPM_AUTOMATION_TOKEN
Para habilitar a publicação automática, você precisa adicionar um token de automação npm como um segredo do GitHub (isso funciona mesmo com contas que têm 2FA habilitado):
- Gere um token de automação npm:
- Faça login na sua conta npm em npmjs.com
- Vá para as configurações do seu perfil
- Selecione "Access Tokens"
- Clique em "Generate New Token"
- Selecione o tipo de token "Automation"
- Defina as permissões apropriadas (precisa de "Read and write" para pacotes)
- Copie o token gerado
- Faça login na sua conta npm em npmjs.com
- Adicione o token ao seu repositório GitHub:
- Vá para o seu repositório GitHub
- Navegue até "Settings" > "Secrets and variables" > "Actions"
- Clique em "New repository secret"
- Nome:
NPM_AUTOMATION_TOKEN - Valor: Cole seu token de automação npm
- Clique em "Add secret"
- Vá para o seu repositório GitHub
Uma vez configurado, qualquer push para o branch master acionará o fluxo de trabalho para publicar o pacote no npm.
Licença
Licença MIT - veja o arquivo LICENSE para detalhes.