# HSE SmartLMS and personal account (npm · hse-mcp)

HSE University (NIU VShE) SmartLMS and personal account (lk.hse.ru) via browser SSO

- Trust score: 80/100 (high trust)
- Change this week: −2
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- npm · `hse-mcp`: 80/100 (this document), [markdown](https://verifymcp.io/servers/ihavealotofguap-hse-mcp/hse-mcp.md), [page](https://verifymcp.io/servers/ihavealotofguap-hse-mcp/hse-mcp)

## Channel facts

- Registry: `npm`
- Package: `hse-mcp`
- Version: `0.1.2`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Supply Chain Security**: 99/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - 30 of 108 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 71/100
  - Repository check failed: the declared repository URL returned HTTP 404.
  - Cryptographically verified build provenance (signed, bound to ihavealotofguap/hse-mcp).
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 8 days ago).
  - Security-disclosure policy not yet verified: we couldn't inspect the source repository.
- **Schema Quality & AI Usability**: 69/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 3224 tokens (~153/item across 21 items; 21 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 37/100
  - Stability observed for 11 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (29% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 21 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 21 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the HSE SmartLMS and personal account MCP server?

HSE SmartLMS and personal account runs locally as an npm package, launched with npx -y hse-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add ihavealotofguap-hse-mcp -- npx -y hse-mcp
```

### Cursor

```json
{
  "mcpServers": {
    "ihavealotofguap-hse-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "hse-mcp"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "ihavealotofguap-hse-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "hse-mcp"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add ihavealotofguap-hse-mcp -- npx -y hse-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "ihavealotofguap-hse-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "hse-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add ihavealotofguap-hse-mcp --command npx --arg -y --arg hse-mcp
```

### Hermes

```yaml
mcp_servers:
  ihavealotofguap-hse-mcp:
    command: "npx"
    args: ["-y", "hse-mcp"]
```

### Netclaw

```json
{
  "McpServers": {
    "ihavealotofguap-hse-mcp": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "hse-mcp"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add ihavealotofguap-hse-mcp -t stdio -c npx -a -y hse-mcp
```

### Other

```json
{
  "mcpServers": {
    "ihavealotofguap-hse-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "hse-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-05 (score 80, +1)

No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-03 (score 79, +1)

No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-02 (score 78, −5)

- [security regression] Source repository: pass → fail
- [functional regression] Security disclosure: pass → unverified

### 2026-10-30 (score 83, +1)

No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-29 (score 82, +15)

- [security improvement] Malware scan: unverified → pass

### 2026-10-28 (score 67, −9)

- [security regression] Malware scan: pass → unverified
- [security improvement] CVE-2023-54404 no longer affects this package
- [security improvement] Known CVEs: fail → pass
- [functional] Package version: 0.1.1 → 0.1.2

### 2026-10-27 (score 76, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-25 (score 75)

First indexed and scored.

## MCP tools (21)

### `lms_list_courses` (~80 tokens)

Список курсов SmartLMS

Список курсов текущего студента на SmartLMS (edu.hse.ru, Moodle): id, название, категория, даты начала/окончания, процент прохождения, избранное/скрытое. Требует входа через единый SSO ВШЭ (выполняется автоматически, credentials из .env).

Output parameters:

- `courses` (array)

### `lms_list_messages` (~95 tokens)

Входящие внутренней почты SmartLMS

Список входящих писем внутренней почты SmartLMS (плагин local_mail, edu.hse.ru/local/mail) — переписка с преподавателями внутри курсов. Важные объявления и материалы от преподавателей часто приходят именно сюда. Возвращает тему, курс, отправителя, дату, статус прочтения, число вложений.

Input parameters:

- `limit` (integer): Максимум писем

### `lms_get_message` (~73 tokens)

Письмо внутренней почты SmartLMS

Полный текст письма внутренней почты SmartLMS по id (см. lms_list_messages): текст, курс, отправитель, получатели, вложения (имя файла, размер, ссылка на скачивание).

Input parameters:

- `messageId` (integer, required): id письма (из lms_list_messages)

### `lms_get_course_materials` (~79 tokens)

Материалы курса

Список элементов курса SmartLMS (файлы, задания, тесты, форумы и т.п.) по id курса (см. lms_list_courses). Возвращает тип, название и ссылку каждого элемента.

Input parameters:

- `courseId` (integer, required): id курса на edu.hse.ru (course/view.php?id=...)

### `lms_list_assignments` (~48 tokens)

Задания курса

Список заданий (mod/assign) курса SmartLMS со сроками сдачи и статусами.

Input parameters:

- `courseId` (integer, required): id курса на edu.hse.ru

Output parameters:

- `assignments` (array): Строки таблицы заданий курса: заголовок колонки → текст ячейки

### `lms_get_grades` (~117 tokens)

Оценки по курсу

Оценки студента по курсу SmartLMS (отчёт по пользователю): items — строки журнала по порядку, у каждой name (название элемента или категории), level (уровень вложенности), path (категории-предки), isCategory и grade (текст оценки; null у категории, «-» если оценки ещё нет). Если вёрстка журнала курса не распознана — ошибка.

Input parameters:

- `courseId` (integer, required): id курса на edu.hse.ru

### `lms_open_page` (~90 tokens)

Открыть произвольную страницу SmartLMS

Открыть любую страницу edu.hse.ru по относительному пути (например /calendar/view.php) под авторизованной сессией и вернуть видимый текст и ссылки. Полезно для сценариев, не покрытых готовыми тулами.

Input parameters:

- `path` (string, required): Относительный путь на edu.hse.ru, напр. /calendar/view.php?view=month

### `elk_get_schedule` (~92 tokens)

Расписание через ЕЛК

Расписание занятий студента через API Единого личного кабинета (lk.hse.ru/api/get-myschedule) — включая ссылки на онлайн-пары. Работает из ЛЮБОЙ сети (в отличие от RUZ, который доступен только из внутренней сети ВШЭ) — основной источник расписания.

Input parameters:

- `daysAhead` (integer): На сколько дней вперёд от сегодня

Output parameters:

- `days` (array): Дни с занятиями по порядку

### `elk_get_user_info` (~77 tokens)

Данные аккаунта ЕЛК

Базовая структурированная информация об аккаунте в ЕЛК (lk.hse.ru/api/get-user): ФИО, email, роли (студент/ДПО и т.п.). Не содержит академическую карточку (рейтинг, группа, факультет) — за ней используйте elk_get_academic_data.

### `elk_get_academic_data` (~76 tokens)

Академическая карточка ЕЛК

Структурированная академическая карточка студента (lk.hse.ru/api/get-academic-data): рейтинг, GPA, кредиты, КУД, программа обучения, факультет, курс, группа, форма и уровень обучения, статус. Структурированная замена разделу profile в elk_get_section.

### `elk_search_services` (~208 tokens)

Поиск сервисов в каталоге ЕЛК

Полнотекстовый поиск по каталогу сервисов ЕЛК (lk.hse.ru/api/search/search-all, категория services — 254 сервиса на 2026-09-15): справки, заявки на практику/мобильность/стипендии, запись к психологу, антиплагиат и т.п. Возвращает id, название, описание, прямую ссылку на сервис и релевантность (score). Поле categories в ответе — счётчики совпадений по ВСЕМ категориям поиска (сотрудники/студенты/сервисы/подразделения), даже если сами результаты отданы только по сервисам — так можно понять, есть ли смысл поискать ещё и людей/подразделения по этому запросу.

Input parameters:

- `limit` (integer): Максимум результатов
- `query` (string, required): Поисковый запрос, напр. 'справка' или 'стипендия'

### `elk_list_requests` (~118 tokens)

История заявок в ЕЛК

Список всех поданных пользователем заявок в ЕЛК (lk.hse.ru/claim): номер, содержание, сервис, статус (например «Выполнено», «На проверке»), даты создания/обновления, исполнитель и ссылка на форму заявки (если есть). Полезно проверить статус ранее поданных обращений (справки, стипендии, воинский учёт и т.п.) без захода в веб-интерфейс.

Input parameters:

- `limit` (integer): Максимум заявок

### `elk_get_notifications` (~60 tokens)

Уведомления ЕЛК

Уведомления ЕЛК (колокольчик в шапке, lk.hse.ru/notification): заголовок, текст, дата, важность, прочитано ли.

Input parameters:

- `limit` (integer): Максимум уведомлений

### `elk_get_section` (~362 tokens)

Раздел ЕЛК

Один из разделов Единого личного кабинета (lk.hse.ru и его порталы) по имени section. profile — страница профиля /profile текстом и ссылками (ФИО, контакты); для рейтинга, GPA и группы есть elk_get_academic_data. login_history — история входов: дата, действие, IP, местоположение, устройство (проверка безопасности аккаунта; offset — пагинация). tasks — задачи пользователя (/task); поля задачи вживую не подтверждены, ответ как есть (limit — максимум задач). dpo_programs — программы ДПО, на которые подана заявка, со statusLabels; у остальных студентов пусто. antiplagiat — сколько проверок в Антиплагиате обрабатывается, завершено и подано. course_evaluation — периоды СОП («Оцени свои курсы») и заполнена ли анкета. thesis — статус ВКР/КР: тема, заимствования, оценка, рецензия; пусто, если тема не зарегистрирована. portfolio — электронное портфолио (достижения, влияют на повышенную стипендию), текстом. internships — заявки на практику. scholarship_history — история заявок на повышенную стипендию; пусто, если заявок не было. Все разделы только читаются: подача заявок не реализована.

Input parameters:

- `limit` (integer): Только для tasks: максимум задач (по умолчанию 500)
- `offset` (integer): Только для login_history: смещение для пагинации (по умолчанию 0)
- `section` (string, required): Какой раздел прочитать

### `elk_open_page` (~215 tokens)

Открыть произвольную страницу ЕЛК

Открыть любую страницу lk.hse.ru по относительному пути под авторизованной SSO-сессией и вернуть видимый текст и список ссылок на странице. Известные разделы (разведаны 2026-09-15): /task (задачи), /claim (заявления/обращения), /service (сервисы), /student-services (Центр сервиса «Студент» — заказ справок, изменение персональных данных, финансовые вопросы; разделы через ?section=documents&subsection=certificates и т.п.), /faq. Хелпдеск-тикеты создаются на отдельном домене pmo.hse.ru/servicedesk/customer/portal/81/create/<id> (ссылки на конкретные формы есть на странице профиля и student-services).

Input parameters:

- `path` (string, required): Относительный путь на lk.hse.ru, напр. /claim или /student-services?section=documents

### `hse_clear_cache` (~134 tokens)

Сбросить кэш данных ВШЭ

Результаты тулов lms_*/elk_* и сводок my_today/my_week/my_deadlines (они собираются из тех же ресурсов) кэшируются в памяти на 2–30 минут, чтобы не открывать браузер заново ради неизменившихся данных. Если нужно гарантированно свежее значение — например, сразу после подачи работы или заявки, — вызовите этот тул, затем повторите нужный запрос. scope сужает сброс до одного сервиса.

Input parameters:

- `scope` (string): Что сбросить: all (по умолчанию) или один сервис

### `my_today` (~185 tokens)

Сводка на сегодня

Что у студента сегодня: занятия на сегодня, дедлайны (все просроченные несданные и до конца завтрашнего дня) из SmartLMS и ЕЛК, экзамены/зачёты, непрочитанная внутренняя почта SmartLMS, непрочитанные уведомления ЕЛК, активные заявки и задачи ЕЛК. Возвращает JSON: items — единый список элементов (kind, when, title, course, place, overdue, unread, source, ...), отсортированный: просроченные несданные первыми, затем по времени, затем без даты; sources — статус каждого источника (ok/error/skipped, текст ошибки, warnings). Если источник недоступен (например, ЕЛК не ответил), сводка всё равно возвращается — смотрите sources.

Output parameters:

- `generatedAt` (string)
- `items` (array)
- `sources` (object)
- `window` (object)

### `my_week` (~162 tokens)

Сводка на неделю

План на ближайшие 7 дней (сегодня + 6): расписание занятий, дедлайны SmartLMS и ЕЛК, экзамены/зачёты, просроченные несданные работы. Без почты и уведомлений — для них my_today. Возвращает JSON: items — единый список элементов (kind, when, title, course, place, overdue, unread, source, ...), отсортированный: просроченные несданные первыми, затем по времени, затем без даты; sources — статус каждого источника (ok/error/skipped, текст ошибки, warnings). Если источник недоступен (например, ЕЛК не ответил), сводка всё равно возвращается — смотрите sources.

Output parameters:

- `generatedAt` (string)
- `items` (array)
- `sources` (object)
- `window` (object)

### `my_deadlines` (~292 tokens)

Дедлайны

Что горит: несданные задания и тесты SmartLMS (в том числе просроченные, у которых приём уже закрыт), окна ЕЛК (например, оценка курсов), активные задачи и заявки ЕЛК, ближайшие экзамены/зачёты за days дней вперёд. Элементы без распознанной даты идут в конце с when: null. Возвращает JSON: items — единый список элементов (kind, when, title, course, place, overdue, unread, source, ...), отсортированный: просроченные несданные первыми, затем по времени, затем без даты; sources — статус каждого источника (ok/error/skipped, текст ошибки, warnings). Если источник недоступен (например, ЕЛК не ответил), сводка всё равно возвращается — смотрите sources.

Input parameters:

- `courses` (array): Сузить курсы SmartLMS: число — id курса, строка — часть названия. По умолчанию — все видимые курсы: будущие дедлайны берутся у актуальных (не завершённых), просроченные несданные — у любых видимых. Р…
- `days` (integer): Горизонт в днях вперёд

Output parameters:

- `generatedAt` (string)
- `items` (array)
- `sources` (object)
- `window` (object)

### `hse_changes` (~540 tokens)

Что изменилось с прошлого раза

Снимает текущее состояние дедлайнов, расписания, входящего и заявок (по явной просьбе — оценок) и возвращает ТОЛЬКО изменения с прошлого снимка: новое, изменено, пропало, перенесено, просрочено. Для «что есть сейчас» используйте my_today/my_week/my_deadlines. Первый вызов по источнику создаёт базу без событий (status: baseline). События не теряются, если ответ не дошёл: курсор двигается только явным подтверждением — передайте ackSeq из ответа в параметр ack следующего вызова; без ack те же события вернутся снова. Если persisted: false (запись на диск не удалась), у ответа нет ackSeq (null), у событий нет seq, и события повторятся в следующем вызове — подтверждать нечего. В ответе не более 200 событий: если omitted > 0, ответ усечён — передайте ackSeq ответа в ack и вызовите тул снова, чтобы получить остальное; усечённый ответ не считайте полным. Тул только ЧИТАЕТ системы ВШЭ и пишет лишь локальную базу снимков. «Пропало из календаря» не означает «сдано». Область grades дорогая (страница на курс, десятки секунд) и берёт оценки только из журнала LMS. Возвращает JSON: changes, scopes (статус по областям), sources (статус каждого источника; отказ одного не роняет вызов), ackSeq, omitted, gap, persisted, warnings.

Input parameters:

- `ack`: Передавайте ТОЛЬКО ackSeq из последнего ответа hse_changes (число; null не нужен — просто опустите параметр, если ackSeq был null). seq отдельного события подтверждением НЕ является. События до ackSe…
- `courses` (array): Фильтр курсов для grades: число — id курса, строка — часть названия.
- `fresh` (boolean): true — игнорировать кэш (иначе принимаются данные не старше 60 с).
- `scopes` (array): Области; по умолчанию deadlines, schedule, inbox, claims (без grades).
- `since` (string): Журнал за период ("7d", "12h" или дата ISO) вместо неподтверждённого; since сам курсор не двигает (ack в том же вызове двигает).

### `hse_changes_reset` (~121 tokens)

Сбросить накопленные изменения

Стирает локальные базы снимков и журнал событий области (или всех областей), после чего следующий hse_changes создаёт базу заново. Полный сброс (без scope) удаляет и копии повреждённого файла (state.json.corrupt-*) и оставшиеся временные файлы. Меняет только локальные файлы. Требует confirm: true.

Input parameters:

- `confirm` (boolean, required): Должно быть true: подтверждение стирания.
- `scope` (string): Область; без неё — все.

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/ihavealotofguap-hse-mcp/hse-mcp#diagnostics

## Score history

- 2026-11-05: 80
- 2026-11-04: 79
- 2026-11-03: 79
- 2026-11-02: 78
- 2026-11-01: 83
- 2026-10-31: 83
- 2026-10-30: 83
- 2026-10-29: 82
- 2026-10-28: 67
- 2026-10-27: 76
- 2026-10-26: 75
- 2026-10-25: 75

## Common questions

### What is the HSE SmartLMS and personal account MCP server?

HSE SmartLMS and personal account is an MCP server listed in the public MCP registry as io.github.ihavealotofguap/hse-mcp. HSE University (NIU VShE) SmartLMS and personal account (lk.hse.ru) via browser SSO. This page covers its npm package (hse-mcp).

### Is the HSE SmartLMS and personal account MCP server safe to use?

HSE SmartLMS and personal account scores 80 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the HSE SmartLMS and personal account MCP server expose?

HSE SmartLMS and personal account exposes 21 tools: lms_list_courses, lms_list_messages, lms_get_message, lms_get_course_materials, lms_list_assignments, and 16 more. Their descriptions and schemas cost roughly 3,224 tokens of context every time the server is loaded.

### Is the HSE SmartLMS and personal account MCP server still maintained?

HSE SmartLMS and personal account is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the HSE SmartLMS and personal account MCP server under?

HSE SmartLMS and personal account declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

### What did VerifyMCP test on the HSE SmartLMS and personal account MCP server?

VerifyMCP ran 15 checks on HSE SmartLMS and personal account, covering Malware scan, Known CVEs, Install scripts, Dependency health and 11 more. One item could not be completed, a gap on our side rather than a finding about HSE SmartLMS and personal account: Security disclosure. Endpoint Security and Transport & Reachability do not apply to an npm package, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.

## Links

- npm package: https://www.npmjs.com/package/hse-mcp
- Socket report: https://socket.dev/npm/package/hse-mcp
- Changelog RSS feed: https://verifymcp.io/servers/ihavealotofguap-hse-mcp/hse-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/ihavealotofguap-hse-mcp/hse-mcp/changelog.json
- Trust report (JSON): https://verifymcp.io/servers/ihavealotofguap-hse-mcp/hse-mcp.json
- HTML version of this page: https://verifymcp.io/servers/ihavealotofguap-hse-mcp/hse-mcp
