Install
uvx --from git+https://github.com/adhikasp/mcp-git-ingest mcp-git-ingestPara quién
Si quieres que un cliente MCP vea primero el árbol de directorios de un repositorio GitHub y luego lea algunos archivos importantes, sin clonar a mano y recorrer el directorio, este servicio encaja. Expone dos herramientas: github_directory_structure devuelve un árbol y github_read_important_files lee el contenido de los archivos que indiques. La implementación usa GitPython para crear un directorio temporal determinista a partir de un hash de la URL del repo; si ya está clonado lo reutiliza, si no ejecuta clone. Encaja con mapear un repo público y comprobar archivos clave. No encaja tirar de un repo privado sin autorización, ni tratarlo como un espacio de trabajo git completo. El clon y las lecturas ocurren en esta máquina; esto no es «sin red, sin lecturas locales, sin frontera de privacidad».
Primer intento en 3 minutos
La ruta principal oficial es uvx ejecutado directo desde el repositorio Git. En tiempo de ejecución hace falta Python 3.8+, más fastmcp y gitpython. En el cliente escribe el comando así:
uvx --from git+https://github.com/adhikasp/mcp-git-ingest mcp-git-ingest
Tras conectar, haz una llamada de bajo riesgo: github_directory_structure sobre el repo oficial mismo, dirección https://github.com/adhikasp/mcp-git-ingest
La evidencia dice que la herramienta devuelve un árbol, pero no da nombres de parámetro; si el cliente pide repo_url, rellena esa dirección ya escrita, no inventes parámetros de rama o token. La señal de éxito es ver el árbol, no un archivo reescrito. Esta pasada llega a GitHub y deja un clon en un temporal nombrado por hash; el resumen dice que limpia al terminar, pero la evidencia no escribe cuándo ni qué queda si falla. Trata el temporal como un posible efecto secundario. Una herramienta de solo lectura no es riesgo cero.
Casos de uso
Caso 1: ver primero el árbol. Ante un repo público desconocido, llama primero github_directory_structure. La evidencia solo garantiza una representación en árbol; no escribe límite de profundidad, reglas de ignore ni submódulos. Si faltan, acepta el árbol completo o el recorte del cliente; no inventes un parámetro .gitignore.
Caso 2: luego leer archivos importantes. Cuando ya sepas rutas, usa github_read_important_files para leer archivos indicados. Esto reutiliza la misma lógica de clon. La evidencia no lista un conjunto «importante» por defecto; las rutas las das tú. Empieza por README o texto corto; no indiques de entrada muchos archivos desconocidos. No escribe tope de tamaño ni tratamiento de codificación; si un archivo enorme vuelve entero queda fuera de la documentación existente.
Límites de uso
Es un servicio stdio local, no una pasarela alojada de solo lectura. Sin capacidad Git (GitPython) no puede clonar. Cómo se autentican los repos privados no está escrito; no trates una variable de entorno token no documentada como ya soportada. clone_repo aparece en las notas de implementación y deja un temporal por hash de URL; no asumas que el disco nunca guardará una copia. Las escrituras git fuera de las dos herramientas quedan fuera de alcance. Página del proyecto: https://github.com/adhikasp/mcp-git-ingest
El primer intento solo usa el comando oficial uvx --from git+...; el éxito es ver el árbol del repo oficial.