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
-
Clonar el repositorio:
git clone https://github.com/your-username/sabis-mcp-server.git cd sabis-mcp-server -
Instalar dependencias:
npm install -
Configurar variables de entorno: Crear un archivo
.enven el directorio raíz:USERNAME=your_sabis_username PASSWORD=your_sabis_password -
Compilar el proyecto:
npm run build
⚙️ Configuración
Variables de Entorno
| Variable | Descripción | Requerida |
|---|---|---|
USERNAME | Tu ID de estudiante/nombre de usuario SABIS | ✅ Sí |
PASSWORD | Tu 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
USERNAMEyPASSWORDestén configuradas - Verifica que el archivo
.envexista 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
- Haz un fork del repositorio
- Crea una rama de características (
git checkout -b feature/amazing-feature) - Realiza tus cambios (
git commit -m 'Add some amazing feature') - Haz push a la rama (
git push origin feature/amazing-feature) - 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
- Protocolo de Contexto de Modelo - Documentación oficial de MCP
- Puppeteer - Biblioteca de automatización de navegador
- Integración MCP de Claude - Uso de MCP con Claude
Nota: Esta es una herramienta no oficial y no está afiliada con la Universidad de Sakarya ni con el sistema SABIS oficial.