Skip to main content
Glama

hse-ruz-mcp

CI npm License: MIT

English. A local (stdio) MCP server for the HSE University timetable (RUZ, ruz.hse.ru/api). It finds students, lecturers, groups and rooms (ruz_find_person) and returns their schedules (ruz_get_schedule, or ruz_get_my_schedule by a student's @edu.hse.ru email). No login needed, but RUZ only answers from inside the HSE network (campus Wi-Fi HSE.Student or staff VPN). Install for Claude Code: claude mcp add hse-ruz-mcp -- npx -y hse-ruz-mcp (Node.js 22+).

Локальный MCP-сервер (stdio) для расписания НИУ ВШЭ через API RUZ (ruz.hse.ru/api): ищет студентов, преподавателей, группы и аудитории и показывает их расписание (студента — в том числе по email). Логин, пароль и браузер не нужны.

Ограничение: только из сети ВШЭ

RUZ отвечает только из внутренней сети ВШЭ (Wi-Fi HSE.Student на кампусе или VPN сотрудника). Вне её API перенаправляет на HTML-заглушку, и tools возвращают ошибку с объяснением.

Related MCP server: hdu-ics-mcp-server

Установка

Нужен Node.js 22+.

Claude Code

claude mcp add hse-ruz-mcp -- npx -y hse-ruz-mcp

Claude Desktop, Cursor и другие клиенты

{
  "mcpServers": {
    "hse-ruz-mcp": {
      "command": "npx",
      "args": ["-y", "hse-ruz-mcp"]
    }
  }
}

Из исходников

git clone https://github.com/ihavealotofguap/hse-ruz-mcp.git
cd hse-ruz-mcp
npm install
npm run build
claude mcp add hse-ruz-mcp -- node <путь-к-проекту>/dist/index.js

Tools

Tool

Что делает

ruz_find_person

Ищет студента, преподавателя, группу или аудиторию по подстроке (от 2 символов) и возвращает до limit совпадений (по умолчанию 20) с id и общим числом совпадений с id total (type: student по умолчанию, lecturer, group, auditorium)

ruz_get_schedule

Возвращает расписание студента, преподавателя, группы или аудитории по RUZ id из ruz_find_person (с тем же type)

ruz_get_my_schedule

Возвращает расписание студента по корпоративному email (login@edu.hse.ru)

Параметры периода у всех тулов расписания:

  • startDate — первый день, ГГГГ-ММ-ДД (можно в прошлом), по умолчанию сегодня;

  • daysAhead — сколько дней, 1–60, по умолчанию 7;

  • language — язык названий дисциплин и аудиторий: ru (по умолчанию) или en.

Расписание возвращается как { from, to, lessons }, где from и to — фактические даты периода. Все тулы только читают данные (аннотация readOnlyHint) и описывают формат ответа в outputSchema.

Даты считаются по московскому времени при любой часовой зоне машины. Запрос к RUZ прерывается через 15 секунд или когда клиент отменяет вызов. Успешные ответы RUZ кэшируются в памяти на 5 минут, а одинаковые запросы, отправленные одновременно, уходят в RUZ один раз.

Примеры запросов

  • «Какие у меня пары завтра? Мой email login@edu.hse.ru»

  • «Найди группу БПИ231 и покажи её расписание на неделю»

  • «Какие пары у преподавателя Иванова на следующей неделе с понедельника?»

Разработка

  • npm run build собирает проект в dist/, npm run dev собирает в режиме watch.

  • npm run lint проверяет код линтером и форматтером Biome, npm run format исправляет то, что можно исправить автоматически.

  • npm test собирает проект и запускает тесты node:test (test/*.test.mjs, fetch подменён, сеть не нужна).

Участие в разработке и выпуск релизов описаны в CONTRIBUTING.md.

Лицензия

MIT

Available Tools

3 tools
ruz_find_personНайти в РУЗA
Read-onlyIdempotent

Поиск студента, преподавателя, группы или аудитории ВШЭ по подстроке (ФИО, номер группы) через API RUZ (ruz.hse.ru/api/search). ВАЖНО: RUZ отдаёт данные только из внутренней сети ВШЭ (Wi-Fi HSE.Student на кампусе или VPN сотрудника) — вне сети запрос вернёт ошибку. Возвращает до limit совпадений (id и подпись) и их общее число total — id с тем же type передаётся в ruz_get_schedule. Если total больше limit, уточните запрос.

Inputs: term (required), type, limit. Returns: total, results

ruz_get_my_scheduleРасписание студента по emailA
Read-onlyIdempotent

Расписание занятий студента ВШЭ по его корпоративному email (login@edu.hse.ru) на daysAhead дней начиная со startDate (по умолчанию с сегодня). Использует API RUZ, который отдаёт данные только из внутренней сети ВШЭ (Wi-Fi HSE.Student на кампусе или VPN) — вне сети запрос вернёт ошибку.

Inputs: email (required), language, daysAhead, startDate. Returns: to, from, lessons, student

ruz_get_scheduleРасписание по RUZ idA
Read-onlyIdempotent

Расписание студента, преподавателя, группы или аудитории ВШЭ по RUZ id (узнать id — ruz_find_person с тем же type) на daysAhead дней начиная со startDate (по умолчанию с сегодня).

Inputs: id (required), type (required), language, daysAhead, +1 more. Returns: to, from, lessons

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.2/5.0

    Scored across 3 tools

    Disambiguation4/5

    The search tool and schedule tools are clearly distinct: one resolves names to RUZ ids, the other fetches schedules. The only overlap is between ruz_get_schedule and ruz_get_my_schedule, both returning schedules, but the descriptions clarify that one works by RUZ id for any entity and the other by corporate email for the current student.

    Naming Consistency5/5

    All tools use the same ruz_ prefix and snake_case verb_noun pattern: ruz_find_person, ruz_get_schedule, ruz_get_my_schedule. The naming is predictable and readable.

    Tool Count5/5

    Three tools are well-scoped for a focused RUZ schedule lookup server: search, schedule by id, and schedule by email. Each tool has a clear role and there is no unnecessary surface area.

    Completeness4/5

    The core workflow is covered: find a person/group/room, then fetch its schedule, plus a shortcut for the current student's schedule by email. Minor gaps exist, such as no explicit tool for enumerating supported entity types or additional schedule metadata, but agents can work around this through search.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      D
      maintenance
      Enables querying University of Caen (Unicaen) schedule data to find next classes for professors, students, or rooms and check room availability. Integrates with ADE scheduling system to provide real-time schedule information through natural language queries.
      -
    • F
      license
      B
      quality
      D
      maintenance
      Enables querying of Hangzhou Dianzi University course schedules, exams, and campus events by accessing the HDUHelp ICS calendar subscription. Supports getting today's and upcoming events, as well as keyword search.
      3
      -
    • A
      license
      A
      quality
      B
      maintenance
      Provides LLM clients with real-time access to BSUIR class schedules, academic weeks, student groups, and teachers through a read-only MCP interface, enabling natural-language queries about lessons and timetable information.
      22
      MIT
    • F
      license
      Not graded
      quality
      C
      maintenance
      Enables users to search for information about the Institute of Fundamental Medicine and Biology at KFU and retrieve academic group schedules. It uses OpenRouter to understand natural-language questions and automatically invoke MCP tools.
      1
      -