Integrates with GitIngest to generate text digests and context files from GitHub repositories (both public and private), providing structured analysis of repository contents, directory structure, and file contents optimized for LLM consumption.
GitIngest MCP Server
Un servidor MCP (Model Context Protocol) que integra GitIngest para generar archivos de contexto de repositorios de GitHub privados, diseñado para nodos de resolución de tareas LLM.
🚀 Características
Integración completa con GitIngest: Soporte para repositorios públicos y privados de GitHub
Protocolo MCP: Compatible con el estándar MCP para integración con agentes de IA
Dockerizado: Fácil despliegue y ejecución en contenedores
Configuración flexible: Patrones de inclusión/exclusión personalizables
Manejo robusto de errores: Fallback automático a CLI si el paquete Python no está disponible
Seguridad: Ejecución como usuario no-root en contenedores
📋 Requisitos
Python 3.11+
Docker (opcional, para ejecución en contenedor)
Token de acceso personal de GitHub (para repositorios privados)
🛠️ Instalación
Opción 1: Ejecución Directa
Opción 2: Docker
3. Publicación de Imagen Docker
Para publicar la imagen en GitHub Container Registry:
⚙️ Configuración
Variables de Entorno
Crea un archivo .env
basado en env.example
:
Token de GitHub
Para acceder a repositorios privados, necesitas un token de acceso personal de GitHub:
Genera un nuevo token con los siguientes scopes:
repo
(para repositorios privados)public_repo
(para repositorios públicos)
Copia el token y configúralo en la variable
GITHUB_TOKEN
🚀 Uso
Ejecución Directa
Docker
🔧 Herramientas MCP Disponibles
1. ingest_repository
Genera un digest de texto de un repositorio de GitHub.
Parámetros:
repository_url
(requerido): URL del repositorio de GitHubgithub_token
(opcional): Token de GitHub (si no está en variables de entorno)branch
(opcional): Rama específica a analizarinclude_patterns
(opcional): Patrones de archivos a incluirexclude_patterns
(opcional): Patrones de archivos a excluirmax_file_size
(opcional): Tamaño máximo de archivo en bytes
Ejemplo:
2. ingest_repository_async
Versión asíncrona para procesamiento por lotes.
3. validate_repository_url
Valida si una URL es un repositorio de GitHub válido.
📊 Formato de Salida
El servidor devuelve texto estructurado optimizado para consumo de LLM:
🔗 Integración con Nodos LLM
Uso con Imagen Docker Publicada (Recomendado)
Para usar la imagen Docker publicada en GitHub Container Registry:
Uso con Imagen Docker Local
Si prefieres construir la imagen localmente:
Configuración Estilo Atlassian
Para usar con herramientas que requieren configuración similar al MCP de Atlassian:
Ejemplo de Uso con Otros Clientes MCP
🐳 Docker Compose
El archivo docker-compose.yml
incluye:
Configuración de salud del contenedor
Límites de recursos
Política de reinicio
Configuración de seguridad
Sistema de archivos de solo lectura
🔒 Seguridad
Ejecución como usuario no-root en contenedores
Sistema de archivos de solo lectura
Límites de recursos configurados
Validación de URLs de GitHub
Manejo seguro de tokens
🐛 Solución de Problemas
Error: "GitIngest package not found"
Error: "GitHub token required"
Error: "Repository not found"
Verifica que la URL del repositorio sea correcta
Asegúrate de que el token tenga permisos para el repositorio
Para repositorios privados, el token debe tener scope
repo
📝 Logs
Los logs se pueden configurar con la variable LOG_LEVEL
:
DEBUG
: Información detalladaINFO
: Información general (por defecto)WARNING
: Solo advertencias y erroresERROR
: Solo errores
🤝 Contribución
Fork el proyecto
Crea una rama para tu feature (
git checkout -b feature/AmazingFeature
)Commit tus cambios (
git commit -m 'Add some AmazingFeature'
)Push a la rama (
git push origin feature/AmazingFeature
)Abre un Pull Request
📄 Licencia
Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE
para más detalles.
🆘 Soporte
Issues: GitHub Issues
Documentación: GitIngest Docs
Comunidad: Discord
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Integrates GitIngest to generate context files from public and private GitHub repositories, optimized for LLM consumption. Supports flexible file filtering, Docker deployment, and secure token-based authentication for private repository access.