PAF-IAST LMS Automation

Automatiza las interacciones con el Sistema de Gestión de Aprendizaje (LMS) PAF-IAST para asistentes de IA como Claude y VS Code Copilot.

Documentación

🎓 Servidor MCP LMS - Automatización de la Universidad PAF-IAST

Un potente servidor de Protocolo de Contexto de Modelo (MCP) que automatiza las interacciones con el LMS de PAF-IAST mediante asistentes de IA como Claude, Cursor y VS Code Copilot.

Python MCP License

🌟 Características

🔐 Autenticación Inteligente

  • Inicio de sesión automatizado con resolución avanzada de CAPTCHA
  • Integración con la API de Google Gemini Vision para mayor precisión
  • Gestión segura de sesiones con cifrado
  • Persistencia y restauración automática de sesiones

📊 Acceso a Datos Académicos

  • Seguimiento de Asistencia - Registros de asistencia en tiempo real por asignatura
  • Notas y Calificaciones - Puntuaciones de exámenes y evaluaciones completas
  • Gestión de Horarios - Horarios de clases y calendario académico
  • Sistema de Solicitudes - Envía y realiza seguimiento de solicitudes universitarias

🤖 Automatización Impulsada por IA

  • Operación de navegador sin interfaz gráfica para mayor eficiencia
  • Manejo inteligente de formularios y navegación DOM
  • Manejo robusto de errores y mecanismos de reintento
  • Resolución de CAPTCHA por múltiples métodos (IA de Visión + OCR)

🛡️ Seguridad y Privacidad

  • Configuración basada en variables de entorno
  • Almacenamiento de sesiones cifrado
  • Sin credenciales codificadas
  • Gestión segura de claves API

🚀 Inicio Rápido

📋 Requisitos Previos

  • Python 3.11+
  • Git
  • Navegador Chrome (para automatización)
  • Clave API de Google Gemini (opcional, para resolución mejorada de CAPTCHA)

📦 Instalación

  1. Clona el repositorio:

    git clone <your-repo-url>
    cd LMS-MCP
    
  2. Instala las dependencias:

    # Using uv (recommended)
    uv sync
    
    # Or using pip
    pip install -e .
    
  3. Configura el entorno:

    # Copy the example environment file
    cp .env.example .env
    
    # Edit with your credentials (see Configuration section)
    notepad .env  # Windows
    nano .env     # Linux/Mac
    

⚙️ Configuración

📝 Configuración del Entorno

Edita tu archivo .env con la siguiente configuración:

# Required: Your PAF-IAST credentials
LMS_USERNAME=your_student_id_here
LMS_PASSWORD=your_password_here

# Optional: Enhanced CAPTCHA solving
GEMINI_API_KEY=your_gemini_api_key_here

# Browser settings
BROWSER_HEADLESS=true  # Set to false for debugging

# Session settings
SESSION_EXPIRY_HOURS=24
ENCRYPT_SESSIONS=true

🔑 Obtención de la Clave API de Google Gemini (Opcional pero Recomendada)

  1. Visita Google AI Studio
  2. Inicia sesión con tu cuenta de Google
  3. Haz clic en "Crear Clave API"
  4. Copia la clave API a tu archivo .env

🔧 Configuración con Asistentes de IA

🤖 Configuración de Claude Desktop

  1. Localiza el archivo de configuración de Claude:

    # Windows
    %APPDATA%\Claude\claude_desktop_config.json
    
    # macOS
    ~/Library/Application Support/Claude/claude_desktop_config.json
    
    # Linux
    ~/.config/Claude/claude_desktop_config.json
    
  2. Añade la configuración del servidor MCP:

    {
      "mcpServers": {
        "lms-automation": {
          "command": "python",
          "args": ["C:/path/to/your/LMS-MCP/main.py"],
          "env": {
            "PYTHONPATH": "C:/path/to/your/LMS-MCP"
          }
        }
      }
    }
    
  3. Reinicia Claude Desktop

  4. Prueba la conexión:

    Can you check my LMS attendance?
    

💻 Configuración del IDE Cursor

  1. Abre el IDE Cursor

  2. Ve a Configuración (Ctrl/Cmd + ,)

  3. Navega a Extensiones → MCP

  4. Añade un nuevo servidor MCP:

    {
      "name": "LMS Automation",
      "command": "python",
      "args": ["./main.py"],
      "cwd": "/path/to/LMS-MCP",
      "env": {
        "PYTHONPATH": "/path/to/LMS-MCP"
      }
    }
    
  5. Reinicia Cursor

  6. Prueba en el chat:

    @lms-automation login to LMS and check my marks
    

🆚 Configuración de VS Code con GitHub Copilot

  1. Instala la Extensión MCP:

    • Abre VS Code
    • Ve a Extensiones (Ctrl+Shift+X)
    • Busca "Cliente MCP" e instala
  2. Configura el servidor MCP:

    Crea .vscode/settings.json en tu proyecto:

    {
      "mcp.servers": [
        {
          "name": "lms-automation",
          "command": "python",
          "args": ["main.py"],
          "cwd": "${workspaceFolder}",
          "env": {
            "PYTHONPATH": "${workspaceFolder}"
          }
        }
      ]
    }
    
  3. Úsalo con Copilot Chat:

    • Abre Copilot Chat (Ctrl+Shift+I)
    • Escribe: @mcp:lms-automation login and get my attendance

🛠️ Herramientas MCP Disponibles

🔐 Autenticación

  • login_to_lms - Inicia sesión con credenciales y resolución de CAPTCHA
  • logout_lms - Cierra sesión y limpia la sesión

📊 Datos Académicos

  • check_attendance - Obtiene registros de asistencia por asignatura
  • get_marks - Recupera notas y calificaciones
  • get_timetable - Accede al horario de clases

📝 Solicitudes

  • create_application - Envía solicitudes universitarias
  • view_application_status - Consulta el estado de las solicitudes

🔧 Utilidades

  • solve_captcha - Resolución manual de CAPTCHA

💡 Ejemplos de Uso

Inicio de Sesión Básico y Recuperación de Datos

# Login to LMS
Login to PAF-IAST LMS with my credentials

# Check attendance
What's my current attendance status?

# Get marks
Show me my latest marks and grades

# View timetable
What's my class schedule for today?

Consultas Avanzadas

# Comprehensive report
Generate a summary report of my academic performance including attendance, marks, and upcoming classes

# Specific subject
What's my attendance percentage for Computer Science subjects?

# Application tracking
Check the status of my scholarship application

🔍 Solución de Problemas

Problemas Comunes

❌ Error de Inicio de Sesión

  • Verifica las credenciales en el archivo .env
  • Comprueba que la resolución de CAPTCHA esté funcionando
  • Asegúrate de que el LMS de la universidad sea accesible

❌ El CAPTCHA No se Resuelve

  • Añade la clave API de Gemini para mayor precisión
  • Comprueba la conexión a internet
  • Verifica el preprocesamiento de imágenes

❌ Sesión Expirada

  • Las sesiones expiran después de 24 horas por defecto
  • Volver a iniciar sesión creará una nueva sesión
  • Comprueba la configuración de SESSION_EXPIRY_HOURS

❌ Problemas con el Navegador

  • Asegúrate de que Chrome esté instalado y actualizado
  • Comprueba la configuración de BROWSER_HEADLESS
  • Instala los controladores de navegador necesarios

Modo de Depuración

Activa el modo de depuración para solucionar problemas:

# In .env file
DEBUG_MODE=true
SAVE_SCREENSHOTS=true
BROWSER_HEADLESS=false

🏗️ Arquitectura

🧱 Componentes Principales

LMS-MCP/
├── main.py              # MCP server entry point
├── lms_automation.py    # Core automation logic
├── captcha_solver.py    # CAPTCHA solving algorithms
├── session_manager.py   # Session persistence
├── config.py           # Configuration management
├── models/             # Data models
│   ├── attendance.py
│   ├── marks.py
│   └── timetable.py
└── utils/              # Utility functions
    ├── encryption.py
    ├── image_processor.py
    └── web_scraper.py

🔄 Flujo de Trabajo

  1. Inicialización - Carga la configuración y configura el navegador
  2. Autenticación - Inicia sesión con resolución de CAPTCHA
  3. Gestión de Sesiones - Guarda/restaura sesiones de inicio de sesión
  4. Extracción de Datos - Navega y extrae datos académicos
  5. Formato de Respuestas - Estructura los datos para el consumo de IA

🤝 Contribuciones

¡Damos la bienvenida a las contribuciones! Así es como empezar:

  1. Haz un fork del repositorio
  2. Crea una rama de características (git checkout -b feature/amazing-feature)
  3. Confirma los cambios (git commit -m 'Add amazing feature')
  4. Sube la rama (git push origin feature/amazing-feature)
  5. Abre una Solicitud de Extracción

Configuración de Desarrollo

# Clone your fork
git clone https://github.com/yourusername/LMS-MCP.git
cd LMS-MCP

# Install development dependencies
uv sync --dev

# Run tests
python -m pytest

# Run linting
black . && flake8 .

📄 Licencia

Este proyecto está licenciado bajo la Licencia MIT - consulta el archivo LICENCIA para más detalles.


⚠️ Aviso Legal

Esta herramienta es solo para fines educativos y uso personal. Los usuarios son responsables de:

  • Cumplir con las políticas de la universidad
  • Asegurar sus propias credenciales
  • Usar la herramienta de manera responsable
  • No sobrecargar los servidores de la universidad

📞 Soporte


Hecho con ❤️ para los estudiantes de PAF-IAST

⭐ Marca este repositorio | 🐛 Reportar un Error | 💡 Solicitar una Función