SABIS MCP Server

Accede a las calificaciones académicas del sistema SABIS de la Universidad de Sakarya mediante scraping web automatizado.

Documentación

Servidor MCP SABIS 🎓

Un Servidor de Protocolo de Contexto de Modelo (MCP) para acceder a calificaciones académicas del SABIS de la Universidad de Sakarya (Sistema de Información Estudiantil). Este servidor permite a asistentes de IA y aplicaciones recuperar de forma segura información académica de estudiantes mediante automatización de web scraping.

🌟 Características

  • 🔐 Autenticación Segura: Utiliza variables de entorno para las credenciales
  • 📊 Recuperación Integral de Calificaciones: Obtiene información académica detallada que incluye:
    • Códigos y nombres de cursos
    • Tipos de evaluación (Parcial, Cuestionario, Tareas, Proyectos, Finales)
    • Porcentajes y ponderaciones de calificaciones
    • Calificaciones finales con letras
    • Información de año académico y semestre
  • 🤖 Integración MCP: Compatible con Claude, Cursor y otros asistentes de IA habilitados para MCP
  • 🚀 Automatización de Navegador sin Interfaz: Utiliza Puppeteer para web scraping confiable
  • ⚡ Datos en Tiempo Real: Obtiene datos en vivo directamente del sistema SABIS

🛠️ Pila Tecnológica

  • TypeScript - Desarrollo con seguridad de tipos
  • Puppeteer - Web scraping y automatización de navegador
  • SDK de Protocolo de Contexto de Modelo - Implementación del servidor MCP
  • Node.js - Entorno de ejecución

📋 Requisitos

  • Node.js 18+
  • TypeScript 5.8+
  • Credenciales SABIS válidas (cuenta de estudiante de la Universidad de Sakarya)

🚀 Instalación

  1. Clonar el repositorio:

    git clone https://github.com/your-username/sabis-mcp-server.git
    cd sabis-mcp-server
    
  2. Instalar dependencias:

    npm install
    
  3. Configurar variables de entorno: Crear un archivo .env en el directorio raíz:

    USERNAME=your_sabis_username
    PASSWORD=your_sabis_password
    
  4. Compilar el proyecto:

    npm run build
    

⚙️ Configuración

Variables de Entorno

VariableDescripciónRequerida
USERNAMETu ID de estudiante/nombre de usuario SABIS✅ Sí
PASSWORDTu contraseña de cuenta SABIS✅ Sí

Configuración del Cliente MCP

Tienes dos opciones para configurar las credenciales con tu cliente MCP:

Opción 1: Variables de Entorno en la Configuración MCP

Agrega el servidor a la configuración de tu cliente MCP con las credenciales directamente en la configuración:

{
  "mcpServers": {
    "sabis-mcp-server": {
      "command": "node",
      "args": [
        "/path/to/sabis-mcp-server/build/index.js"
      ],
      "env": {
        "USERNAME": "your_student_number",
        "PASSWORD": "your_password"
      }
    }
  }
}

Opción 2: Usando Archivo .env

Alternativamente, crea un archivo .env en el directorio del proyecto y elimina la propiedad env de la configuración MCP:

Crear archivo .env:

USERNAME=your_student_number
PASSWORD=your_password

Configuración MCP:

{
  "mcpServers": {
    "sabis-mcp-server": {
      "command": "node",
      "args": [
        "/path/to/sabis-mcp-server/build/index.js"
      ]
    }
  }
}

💡 Consejo: La Opción 1 es más conveniente para clientes MCP como Cursor, mientras que la Opción 2 es mejor para mantener las credenciales separadas de los archivos de configuración.

🎯 Uso

Una vez configurado, puedes usar el servidor MCP con asistentes de IA compatibles:

Herramientas Disponibles

get-grades

Recupera calificaciones académicas del sistema SABIS.

Ejemplo de Uso:

// Through MCP-enabled AI assistant
"Get my grades from SABIS"

Formato de Respuesta:

Login successful! 🎓

Academic Year: 2024 - Semester: Bahar

=== SWE310 - MOBİL UYGULAMA GELİŞTİRME ===
Grup: 1. Öğretim A Grubu
• Ara Sınav (45%): 95
• Ödev (5%): 100
• Final (50%): 85
📋 Final Grade: AA

🔧 Desarrollo

Ejecución en Modo de Desarrollo

# Install dependencies
npm install

# Build the project
npm run build

# Test the server
node build/index.js

Estructura del Proyecto

sabis-mcp-server/
├── src/
│   └── index.ts          # Main MCP server implementation
├── build/                # Compiled JavaScript output
├── package.json         # Dependencies and scripts
├── tsconfig.json        # TypeScript configuration
└── README.md           # This file

Componentes Clave

  • Configuración del Servidor MCP: Configurado usando @modelcontextprotocol/sdk
  • Autenticación: Gestión de credenciales basada en entorno
  • Web Scraping: Automatización basada en Puppeteer para el portal SABIS
  • Extracción de Datos: Análisis del DOM para información de calificaciones
  • Manejo de Errores: Gestión integral de errores y registro

🛡️ Seguridad y Privacidad

  • Credenciales: Almacenadas de forma segura en variables de entorno
  • Operación sin Interfaz: Sin exposición de información sensible en la interfaz
  • HTTPS: Toda la comunicación con SABIS utiliza conexiones seguras
  • Sin Almacenamiento de Datos: Las calificaciones se obtienen en tiempo real, no se almacenan localmente
  • Gestión de Sesiones: Las sesiones del navegador se limpian adecuadamente

🚨 Solución de Problemas

Problemas Comunes

"Se requieren nombre de usuario y contraseña"

  • Asegúrate de que las variables de entorno USERNAME y PASSWORD estén configuradas
  • Verifica que el archivo .env exista y contenga las credenciales correctas

"Error de inicio de sesión"

  • Verifica que las credenciales SABIS sean correctas
  • Comprueba si el portal SABIS es accesible
  • Asegura el acceso a la red universitaria si es necesario

Errores de navegador/Puppeteer

  • Instala las dependencias de Chromium en Linux:
    sudo apt-get install -y libgbm-dev libnss3-dev libxss1 libasound2
    

📚 Referencia de la API

Herramientas

get-grades

Autentica con SABIS y recupera información de calificaciones académicas.

Parámetros: Ninguno (usa variables de entorno)

Devuelve:

  • Año académico y semestre
  • Información de cursos con calificaciones
  • Desglose de evaluaciones con porcentajes
  • Calificaciones finales cuando estén disponibles

🤝 Contribuciones

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

📄 Licencia

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

⚠️ Aviso Legal

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

  • Cumplir con los términos de servicio de la universidad
  • Proteger sus credenciales de cuenta
  • Usar la herramienta de manera responsable y ética

Los desarrolladores no son responsables por el mal uso o las consecuencias derivadas del uso de este software.

👨‍💻 Autor

Mehmet Hanifi Şentürk

🔗 Proyectos Relacionados


Nota: Esta es una herramienta no oficial y no está afiliada con la Universidad de Sakarya ni con el sistema SABIS oficial.