MCP

MCP Git Ingest: ler a árvore de um repo GitHub e arquivos importantes

Para quem quer que um cliente MCP veja primeiro o diretório de um repositório GitHub e depois extraia arquivos importantes indicados; cada consulta clona para um diretório temporário local conforme a URL do repo.

Official source · MCP Git Ingest

Install

uvx --from git+https://github.com/adhikasp/mcp-git-ingest mcp-git-ingest

Para quem

Se você quer que um cliente MCP veja primeiro a árvore de um repositório GitHub e depois leia alguns arquivos importantes, sem clonar na mão e percorrer o diretório, este serviço combina. Expõe duas ferramentas: github_directory_structure devolve uma árvore e github_read_important_files lê o conteúdo dos arquivos que você nomear. A implementação usa GitPython para criar um temporário determinístico a partir de um hash da URL do repo; se já clonou, reutiliza, senão executa clone. Serve para mapear um repo público e conferir arquivos-chave. Não serve puxar um repo privado sem autorização, nem tratá-lo como um espaço de trabalho git completo. Clone e leituras acontecem nesta máquina; isto não é «sem rede, sem leituras locais, sem fronteira de privacidade».

Primeira tentativa em 3 minutos

O caminho principal oficial é uvx rodando direto do repositório Git. Em runtime precisa de Python 3.8+, mais fastmcp e gitpython. No cliente escreva o comando assim:

uvx --from git+https://github.com/adhikasp/mcp-git-ingest  mcp-git-ingest

Depois de conectar, faça uma chamada de baixo risco: github_directory_structure no próprio repo oficial, endereço https://github.com/adhikasp/mcp-git-ingest A evidência diz que a ferramenta devolve uma árvore, mas não dá nomes de parâmetro; se o cliente pedir repo_url, preencha esse endereço já escrito, sem inventar parâmetro de branch ou token. O sinal de sucesso é ver a árvore, não um arquivo reescrito. Esta passagem chega ao GitHub e deixa um clone num temporário nomeado por hash; o resumo fala em limpeza após o processamento, mas a evidência não escreve quando nem o que resta se falhar. Trate o temporário como um efeito colateral possível. Ferramenta somente leitura não é risco zero.

Casos de uso

Caso 1: ver primeiro a árvore. Diante de um repo público desconhecido, chame primeiro github_directory_structure. A evidência só garante uma representação em árvore; não escreve limite de profundidade, regras de ignore nem submódulos. Se faltarem, aceite a árvore completa ou o corte do cliente; não invente um parâmetro .gitignore.

Caso 2: depois ler arquivos importantes. Com os caminhos conhecidos, use github_read_important_files para ler arquivos nomeados. Isso reutiliza a mesma lógica de clone. A evidência não lista um conjunto «importante» padrão; você deve dar os caminhos. Comece por README ou texto curto; não indique de cara muitos arquivos desconhecidos. Não escreve teto de tamanho nem tratamento de encoding; se um arquivo enorme volta completo fica fora da documentação existente.

Limites de uso

Este é um serviço stdio local, não um gateway hospedado somente leitura. Sem capacidade Git (GitPython) não clona. Como repositórios privados autenticam não está escrito; não trate uma variável de ambiente token não documentada como já suportada. clone_repo aparece nas notas de implementação e pousa um temporário pelo hash da URL; não presuma que o disco nunca guardará uma cópia. Escritas git fora das duas ferramentas ficam fora do escopo. Página do projeto: https://github.com/adhikasp/mcp-git-ingest A primeira tentativa usa só o comando oficial uvx --from git+...; o sucesso é ver a árvore do repo oficial.