What problem does it solve? Quebec college students using Omnivox/Lea have no official API, so assistants and scripts cannot access grades, schedules, assignments, or MIO messages. This Skill runs a self-hosted server that logs into Omnivox once through a persistent Puppeteer browser and exposes the entire portal as structured tools. ## Core Features & Use Cases - 34 MCP tools plus REST gateway: Covers LEA courses, grades, evaluations, schedule, calendar, documents, assignments, absences, and MIO messaging, with every tool also available as a plain HTTP endpoint and an OpenAPI 3.1 spec at GET /openapi.json. - Delta tracking and document access: Tools annotate what changed since the last call, and document/assignment download links let an agent fetch and read syllabi, assignment sheets, and attachments. - Raw Omnivox proxy: The /Mobl/* route forwards any request through the authenticated session for direct access to the undocumented mobile API. - Use Case: A student asks their assistant "what's due this week and how did I do on my last exam?" The assistant calls get-overview, reads new grades against class averages, checks the calendar, and reads the course syllabus to map exam week numbers to real dates. ## Quick Start Clone the repository, run npm install, authenticate once with the omnivox-connection Electron app to save cookies.json and config.json into the data folder, then run npm start and connect your MCP client to http://localhost:3000/mcp?key=YOUR_KEY.