MyCourseVille MCP Server
Servidor MCP de MyCourseVille
Un servidor MCP que da acceso a un agente de IA a tu cuenta de MyCourseVille: nuevas tareas con sus fechas límite y descripciones, materiales del curso y calificaciones publicadas, además de un feed de "qué ha cambiado desde la última vez".
Una herramienta personal para los datos de tu propia cuenta. Mantén el intervalo de sondeo moderado y nunca hagas commit de tus credenciales.
Cómo funciona
MCV tiene una API OAuth2 oficial (/api/v1/public/get/*), pero requiere registrar una aplicación para obtener un client_id/client_secret, y sus nombres de endpoint no están documentados públicamente. Este servidor, en cambio, inicia sesión exactamente igual que el cliente web de MCV: a través del botón de IT Chula SSO por defecto, o con el formulario normal de MCV. Después lee las mismas páginas de curso procesadas por el servidor que el sitio muestra a un navegador: la página de inicio del curso para materiales, /assignment para fechas límite y /portfolio-<student id> para puntuaciones. Consulta docs/ENDPOINTS.md.
Los datos obtenidos se guardan en una instantánea local de SQLite. Cada sincronización compara los cambios con esa instantánea y agrega registros a un log de events — ese log es lo que lee whats_new, para que el servidor pueda decirte qué apareció desde la última vez que miraste. Un sondeo en segundo plano se actualiza en un intervalo, por lo que se detecta una nueva tarea incluso si no hay ningún chat abierto.
Sobre "nuevo": MCV no expone de forma confiable una marca de tiempo de publicación, así que first_seen —cuando este servidor observó un elemento por primera vez— se usa como sustituto. La primera sincronización completa los datos en silencio, en lugar de reportar todo tu semestre como nuevo.
Related MCP server: UofT Student Helper MCP Server
Instalación
uv sync --extra dev
cp .env.example .env # then fill in MCV_USERNAME / MCV_PASSWORD
uv run mcv-mcp --selftest--selftest inicia sesión, sincroniza una vez e imprime cuántos cursos, tareas, materiales y calificaciones encontró. Asegúrate de que funcione antes de conectar el agente.
Registra con Claude Code:
claude mcp add mcv -- uv --directory C:\Users\velys\Documents\mcp_mcv run mcv-mcpLuego pregunta: "¿Qué tengo que entregar esta semana?", "¿Hay algo nuevo en MCV desde ayer?", "Descarga las últimas diapositivas de Comp Prog."
Herramientas
Herramienta | Para qué sirve |
| Tareas, materiales y calificaciones nuevos o modificados desde un momento determinado |
| Lo que vence en los próximos N días, primero lo más próximo |
| Cursos matriculados, opcionalmente de un semestre |
| Tareas con fecha límite + descripción |
| Detalle completo de una tarea |
| Archivos publicados en un curso (copia, nombre, URL) |
| Guarda un archivo localmente; extrae el texto del PDF para que se pueda leer |
| Calificaciones publicadas |
| Fuerza una actualización ( |
| Diagnóstico: estado de inicio de sesión, última sincronización, conteo de filas |
Configuración
Variable | Valor por defecto | Significado |
| — | Tus credenciales de MCV |
|
|
|
|
| Intervalo del sondeo (mínimo 10) |
|
| Establece |
|
| Donde se guardan la base de datos, las cookies y las descargas |
El estado se mantiene fuera del repositorio. Las cookies se conservan, por lo que los reinicios no requieren volver a iniciar sesión.
Ejecuta el sondeo por separado (por ejemplo, con el Programador de tareas) usando:
uv run python -m mcv_mcp.pollerEstructura
src/mcv_mcp/
config.py settings, URLs, state paths
client.py Chula SSO login, cookie persistence, throttled AJAX transport
parsers.py HTML -> dicts (pure functions, fixture-tested)
store.py SQLite snapshot + event log
sync.py orchestration + background poller
server.py MCP tool definitionsEl marcado de MCV es la parte frágil y está confinado a parsers.py. Si algo deja de devolver filas, captura una copia de una prueba nueva (consulta docs/ENDPOINTS.md) y corrige el selector allí.
Estado
Funciona con una cuenta real: inicio de sesión, los cuatro analizadores, descargas y detección de cambios están verificados de extremo a extremo. Una sincronización representativa obtuvo 9 cursos, 20 tareas (todas con fecha límite analizada), 112 materiales y 69 elementos calificados; la siguiente sincronización reportó cero cambios, por lo que el registro de diferencias se mantiene en silencio hasta que algo realmente se mueva.
Limitaciones conocidas:
La publicación de calificaciones se detecta por sondeo, no por notificación. La aparición deuna calificación se muestra como un evento
grade_changeddentro de un intervalo de sondeo (por defecto, 30 minutos).Solo se sincroniza el semestre actual, a menos que pases
full=trueasync_now.El marcado de MCV es la parte frágil. Si un analizador comienza a devolver cero filas, captura una una prueba y corrige el selector; consulta docs/ENDPOINTS.md.
Desarrollo
uv run pytestMaintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to interact with Canvas LMS and Gradescope, allowing users to query courses, assignments, modules, calendar events, and find relevant resources using natural language.59ISC
- FlicenseNot gradedqualityNot gradedmaintenanceEnables University of Toronto students to access academic data from ACORN and Quercus via AI assistants. It provides tools to retrieve course schedules, enrollment details, syllabi, assignments, and announcements.
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to access Canvas LMS course content, including assignments, modules, announcements, and files, to help students manage their coursework.59ISC
- AlicenseNot gradedqualityDmaintenanceEnables AI to read MyCourseVille data locally, including assignments, deadlines, grades, announcements, and course materials.1MIT
Related MCP Connectors
Your memory, everywhere AI goes. Build knowledge once, access it via MCP anywhere.
Brazilian Open Finance MCP — 30+ banks (Itaú, Nubank, etc.) to Claude/Cursor. Read-only.
Cross-AI personal memory. Save once in ChatGPT, recall in Claude, Mistral, Grok, or any MCP client.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/aongzera/mcv-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server