Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
HSE_EMAILYesEmail аккаунта ВШЭ (например, login@edu.hse.ru). Не секрет; берётся из окружения или .env.
HSE_DATA_DIRNoКаталог данных (сессия браузера, ключ и журнал записей, снимки hse_changes, папка исходящих). Абсолютный путь или путь относительно корня проекта.
HSE_PASSWORDNoПароль ВШЭ. Обычно хранится в системном хранилище (credentials set); переменная окружения — запасной путь, если хранилище недоступно. Не записывайте пароль в конфигурацию MCP.
HSE_OUTBOX_DIRNoПапка «исходящих» для файлов, отправляемых через lms_submit_assignment. Абсолютный путь или путь относительно корня проекта; по умолчанию outbox/ в каталоге данных.
HSE_ENABLE_WRITESNoВключает тулы записи (lms_submit_assignment, lms_delete_submission, elk_order_certificate). По умолчанию тулы записи выключены. Значение читается при старте процесса.false
HSE_BROWSER_CHANNELNoБраузер для входа: auto (по умолчанию: скачанный Chromium, затем Edge и Chrome, затем скачивание), chromium, chrome или msedge.auto
HSE_DISABLE_KEYCHAINNoОтключает системное хранилище паролей (CI, серверы без графической сессии, Linux без Secret Service).false

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
lms_list_coursesA

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

lms_list_messagesA

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

lms_get_messageA

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

lms_get_course_materialsA

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

lms_list_assignmentsB

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

lms_get_gradesA

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

lms_open_pageA

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

elk_get_scheduleA

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

elk_get_user_infoA

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

elk_get_academic_dataA

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

elk_search_servicesA

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

elk_list_requestsA

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

elk_get_notificationsC

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

elk_get_sectionA

Один из разделов Единого личного кабинета (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 — история заявок на повышенную стипендию; пусто, если заявок не было. Все разделы только читаются: подача заявок не реализована.

elk_open_pageA

Открыть любую страницу 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/ (ссылки на конкретные формы есть на странице профиля и student-services).

hse_clear_cacheA

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

my_todayA

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

my_weekA

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

my_deadlinesA

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

hse_changesA

Снимает текущее состояние дедлайнов, расписания, входящего и заявок (по явной просьбе — оценок) и возвращает ТОЛЬКО изменения с прошлого снимка: новое, изменено, пропало, перенесено, просрочено. Для «что есть сейчас» используйте 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.

hse_changes_resetA

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

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.5/5.0

Scored across 21 tools

Disambiguation4/5

Prefixes (elk_/lms_/my_/hse_) plus explicit cross-references in descriptions (e.g. elk_get_user_info says to use elk_get_academic_data for academic card; elk_get_section notes profile replacement) make most tools clearly separable. The main softness is the trio my_today / my_week / my_deadlines, whose windows overlap (today already includes deadlines through tomorrow, week includes deadlines too), and the two generic open_page escape hatches that can retrieve anything the specific tools return.

Naming Consistency4/5

Almost all tools are snake_case verb_noun with a source prefix (elk_get_schedule, lms_list_messages, elk_search_services), which is predictable and readable. The deviations are modest: the my_* aggregators use noun-only names (my_today, my_week, my_deadlines), and hse_changes / hse_changes_reset / hse_clear_cache break the source_action pattern with a prefix plus noun.

Tool Count3/5

21 tools is at the heavy end for what is essentially a read-only student dashboard, and there is visible redundancy: three overlapping summary tools, two generic open_page catch-alls, two snapshot/maintenance tools, and both elk_get_user_info and elk_get_academic_data. The scope (two separate systems plus cross-system aggregation) does justify breadth, so it is borderline rather than bloated.

Completeness3/5

Read coverage is broad — schedule, academic record, courses, materials, assignments, grades, mail, requests, notifications, plus aggregate digests and diffing — but every tool is read-only: no request/application submission (explicitly stated as unimplemented), no assignment submission, no message sending, no profile edits. The two open_page tools let an agent navigate uncovered read paths, but they too return only text and links, so write-side workflows remain dead ends.

Maintenance

ActivityNo data
ResponsivenessNo issues