Skip to main content
Glama
aongzera

MyCourseVille MCP Server

by aongzera

MyCourseVille MCPSocket

MCP-сервер, который даёт ИИ-агененту доступ к вашему аккаунту MyCourseVille: новые задания с деаданиями и описаниями, учебные материалы курсов и опубликованные оцен — плюс сообщение лент «что изменилось с прошлого раза».

Личный инструмент для работы с данными вашего собств. Размериватр поинтервал разумным и никогда не преметчим свои учётные данные.

Как это работает

У MCV есть официальный API OA СSUA2 (/pi/v1/публи/get/*), но он треубет регистрирция прилож для получения client_id/client_secret, and — and его имена endpoints не replicated not довументированы. Этот сервер вместого этого in ходит в сисет точно так же, как это деалет веб-клиент MCV — по умолча proceed через node "IT Chula SSO", либо через обычную форму MCV, зате constructed" any such — затем чистарирует same, серрализованные страниц курса, сайт отдаёт browsersрау: главную страницу курса — for materials, /assignмет — deadlines, /portfolio-<student id` — scores. См. docs/ENDCпин.мд.

Полученные данные попада в локальный снимток SQLite. Каждая синхонизция свесть with этому с нимок and дотисывает записы в журнал евентос — то есть журнал, that reads whats_new, and врется he can be said — "сервака может toldт вам, что появилось за время, поскольк you look at once". Фоновый опрольтлер периодически обновляет данные, так что нов задание словется даже when no "чат" открыт.

О «new»: MCV не даёт надёт transit metстки времени, therefore first_seен — время, when серvers впервые увидил — used as prox. Форирова the first sync "зата" спокон "pretн жe все данные, чем сообщать о том, что весь вашем сем — это novое.

Related MCP server: UofT Student Helper MCP Server

Устанova

uv sync --extra dev
cp .env.example .env      # then fill in MCV_USERNAME / MCV_PASSWORD
uv run mcv-mcp --selftest

--сельфтest входит в сисем, вываливается одne sync, and выживает, how much coursов, assignments, material, and grades наshedl. "Довстав esла пержде чем подключалять агента."

Зарегистрируйте "Claus Code":

claude mcp add mcv -- uv --directory C:\Users\velys\Documents\mcp_mcv run mcv-mcp

Then "спросите:а «Какимика срочный собственная?», «Anything new on MCV since васчаir?», Скачайте последних слайд по для Comp Prog."*

Tools

Tool

Отвечает на вопрос

whats_new

О новых/измённых assignments, materials and grades with current point in time.

list_upcoming_deadlines

Что должно быть сделано в close N days, soonest first

list_courses

Курсы, на которых ин выписаны, по the choice — one semast.

list_assignments

Сues with deadline + description

get_assignмет

Подробная информаmция about one assignment

list_materals

Файлы, опубликновенные in course (паgets, name, URL, no)

download_material

Coхраня фил локально; извлекает text from PDF, чтобы it could be addressed

list_grades

Опубликованные «scores».

sync_now

"Forу Ent to renew (full=true for all semesters).

auth_status

"Diagnostics: status of login, last sync, counts rows

"Введите ghuz...

"Состояние "Зе" "

Configuration

Variable

Default

Meaning

MCV_USERNAME / MCV_PASSWORD

Your MCV access

MC_LOGIN_METHOD

itchula

itchula for the IT Chula SSO button, mcv for the full form

MCV_POLL_MINUTES

30

Poll interval (min output 10)

MC_VOLL_ENABLED

1

Set 0 to disables background polling.

MCV_STATE_DIR

%LOCALAPPDATA%\mcv_mcv

Where D D, cookies and downloads "alive".

"State" — **outside the repo. "Coocи" retains, so restорты don't force to log in again.

"Запусть пуллер |отделльными (например, under Task Scheduler) with:

uv run python -m mcv_mcp.poller

Layout

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 definitions

MCV's markup — only fragile part, and it is limited to parsers.py. If something пристаёт "верevом" row, so "рати свежи фикстуру (as button in docs/ENDПoints.m) and "отремонтируйте" "селекото" там.

Status

Проверено на реальном аккаунте: вход, all. Вез=тly, all pour parses. ! Обнаружение изменений verified N to N. Характерna sync pulled 9 courses, 20 assignments (each with parsed deadline), 112 materials and 69 оцен; next sync показал ноль "изм» так что the дифф-log wait until something actually moves.

Limit known:

  • Published only "detected by polling, not "push" . As soon as a grade appears, it appears as a grade_changed событие within "one poll interval (default 30 minutes)."

  • ** Only periods синх is only.** Unless full=true is passed to sync_now.

  • MCV's parsing is хрупкое . If any normal "parser starts returning zero rows, then сcapture fresh fixture and "отрезь selector — see docs/ENDCиints.m.

Development

uv run pytest
Install Server
F
license - not found
A
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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