Git Analytics

Proporciona análisis detallados e información sobre repositorios de Git.

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

  1. get_repository_overview - Resumen ejecutivo con métricas clave y principales contribuyentes
  2. get_repository_stats - Estadísticas detalladas del repositorio
  3. get_author_stats - Análisis completo de contribuyentes
  4. get_branch_stats - Salud de ramas y métricas de comparación
  5. get_file_stats - Patrones de modificación de archivos y puntos críticos
  6. get_commit_history - Cronología detallada de commits con filtros
  7. get_commit_frequency - Patrones diarios de commits a lo largo del tiempo
  8. get_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

  1. Haz un fork del repositorio
  2. Crea una rama de características: git checkout -b feature/amazing-feature
  3. Realiza los cambios: git commit -m 'Add amazing feature'
  4. Sube a la rama: git push origin feature/amazing-feature
  5. 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


¡Feliz análisis! 📊✨

Para preguntas, problemas o solicitudes de funciones, abre un problema en GitHub.

MCP-Server

MCP-Server