Git Analytics
Proporciona análisis detallados e información sobre repositorios de Git.
GitHubPrueba este MCPPatrocinado
Documentación
Servidor MCP de Git Analytics
🚀 Un servidor integral del Protocolo de Contexto de Modelos (MCP) que proporciona análisis y perspectivas detalladas de repositorios Git. Perfecto para desarrolladores que desean comprender mejor su base de código mediante perspectivas basadas en datos.
📊 Características
Análisis de Repositorio
- Estadísticas completas: Total de commits, autores, ramas y cambios de código
- Análisis de autores: Clasificaciones de contribuyentes, patrones de commits y períodos de actividad
- Inteligencia de ramas: Salud de ramas, estado adelante/atrás y métricas de actividad
- Perspectivas de archivos: Archivos más modificados, contribuciones de autores por archivo
- Análisis temporal: Frecuencia de commits, cambios de código a lo largo del tiempo
- Informes visuales: Salida de terminal con formato atractivo, colores y emojis
Herramientas disponibles
get_repository_overview- Resumen ejecutivo con métricas clave y principales contribuyentesget_repository_stats- Estadísticas detalladas del repositorioget_author_stats- Análisis completo de contribuyentesget_branch_stats- Salud de ramas y métricas de comparaciónget_file_stats- Patrones de modificación de archivos y puntos críticosget_commit_history- Cronología detallada de commits con filtrosget_commit_frequency- Patrones diarios de commits a lo largo del tiempoget_code_churn- Análisis de líneas añadidas/eliminadas
🛠 Instalación
Requisitos previos
- Node.js 18+
- npm o yarn
- Repositorio Git para analizar
Configuración rápida
# Clone or create the project
cd ~/git-analytics-mcp-server
# Install dependencies
npm install
# Build the project
npm run build
# Test the server (optional)
npm test
Modo de desarrollo
# Run in development with auto-reload
npm run dev
🚀 Uso
Como servidor MCP
Añade a la configuración de tu cliente MCP:
{
"mcpServers": {
"git-analytics": {
"command": "node",
"args": ["/path/to/git-analytics-mcp-server/dist/index.js"]
}
}
}
Uso directo por CLI
# Install globally
npm install -g .
# Use anywhere
git-analytics-mcp
📈 Ejemplos de análisis
Resumen del repositorio
📊 REPOSITORY SUMMARY REPORT
──────────────────────────────────────────────────
Repository Statistics:
• Total Commits: 1,247
• Total Authors: 12
• Active Branches: 8
• Code Changes: +45,678 -12,345
• Repository Age: 2023-01-15 to 2024-06-15
Top Contributors:
🥇 John Doe - 456 commits
🥈 Jane Smith - 234 commits
🥉 Bob Wilson - 189 commits
🏅 Alice Brown - 145 commits
🏅 Mike Johnson - 123 commits
Recent Activity:
• a1b2c3d4 Add new authentication module (John Doe)
• e5f6g7h8 Fix critical security vulnerability (Jane Smith)
• i9j0k1l2 Update documentation and examples (Bob Wilson)
Análisis de autores
[
{
"name": "John Doe",
"email": "john@example.com",
"commits": 456,
"insertions": 12340,
"deletions": 3456,
"firstCommit": "2023-01-15T10:30:00Z",
"lastCommit": "2024-06-15T14:22:00Z"
}
]
Análisis de cambios de código
[
{
"date": "2024-06-01",
"insertions": 234,
"deletions": 45,
"net": 189
},
{
"date": "2024-06-02",
"insertions": 156,
"deletions": 89,
"net": 67
}
]
🔧 Configuración
Parámetros de herramientas
La mayoría de las herramientas aceptan estos parámetros comunes:
path(cadena): Ruta del repositorio (por defecto: directorio actual)days(número): Rango de tiempo para el análisis (por defecto: 30)limit(número): Máximo de resultados a devolver (por defecto: 50)
Variables de entorno
# Set default repository path
export GIT_ANALYTICS_DEFAULT_PATH="/path/to/repo"
# Enable debug logging
export GIT_ANALYTICS_DEBUG=true
🧪 Pruebas
# Run all tests
npm test
# Run with coverage
npm run test:coverage
# Test specific functionality
npm run test -- --grep "author stats"
Configuración del repositorio de prueba
# Create test repository
mkdir test-repo && cd test-repo
git init
echo "# Test" > README.md
git add . && git commit -m "Initial commit"
# Test the server
node dist/index.js
📊 Casos de uso
Análisis del equipo de desarrollo
- Perspectivas de revisión de código: Identifica archivos que necesitan más atención
- Productividad del equipo: Realiza seguimiento de patrones de commits y métricas de contribución
- Deuda técnica: Encuentra archivos con altas tasas de cambios
- Incorporación: Comprende la estructura de la base de código y los contribuyentes clave
Gestión de proyectos
- Planificación de lanzamientos: Analiza la velocidad de desarrollo reciente
- Asignación de recursos: Identifica silos de conocimiento y áreas que necesitan soporte
- Métricas de calidad: Realiza seguimiento de la estabilidad del código mediante análisis de cambios
- Análisis de cronología: Comprende los patrones y ciclos de desarrollo
Salud del repositorio
- Gestión de ramas: Identifica ramas obsoletas o problemáticas
- Puntos críticos de archivos: Encuentra archivos que pueden necesitar refactorización
- Incorporación de contribuyentes: Da la bienvenida a nuevos miembros del equipo con contexto
- Análisis histórico: Aprende de patrones de desarrollo pasados
🛠 Funciones avanzadas
Análisis personalizados
Extiende el servidor con análisis personalizados:
// Add to git-analytics.ts
async getCustomMetric(): Promise<CustomMetric> {
// Your custom analysis logic
}
Ejemplos de integración
# Use with GitHub CLI
gh repo list | xargs -I {} git-analytics-mcp --path {}
# Batch analysis
find ~/projects -name ".git" -type d | \
xargs -I {} dirname {} | \
xargs -I {} git-analytics-mcp --path {}
🐛 Solución de problemas
Problemas comunes
"Repositorio Git no válido"
- Asegúrate de estar en un repositorio Git o proporciona la ruta correcta
- Verifica la instalación de Git:
git --version
"Permiso denegado"
- Verifica el acceso de lectura al repositorio
- Comprueba los permisos de archivos en el directorio .git
"No se encontraron commits"
- El repositorio puede estar vacío o recién inicializado
- Prueba con un repositorio que tenga commits
Modo de depuración
# Enable verbose logging
DEBUG=git-analytics:* npm start
# Check server connectivity
echo '{}' | node dist/index.js
🤝 Contribuciones
- Haz un fork del repositorio
- Crea una rama de características:
git checkout -b feature/amazing-feature - Realiza los cambios:
git commit -m 'Add amazing feature' - Sube a la rama:
git push origin feature/amazing-feature - Abre una Solicitud de Extracción
Configuración de desarrollo
# Install dev dependencies
npm install
# Run in watch mode
npm run dev
# Lint code
npm run lint
# Format code
npm run format
📄 Licencia
Licencia MIT - consulta el archivo LICENCIA para más detalles.
🌟 Agradecimientos
- Protocolo de Contexto de Modelos por el excelente marco de trabajo
- simple-git para operaciones Git
- chalk para una salida de terminal atractiva
- date-fns para manipulación de fechas
¡Feliz análisis! 📊✨
Para preguntas, problemas o solicitudes de funciones, abre un problema en GitHub.