hse-ruz-mcp
A local stdio MCP server for the HSE University timetable (RUZ API) that looks up people/groups/rooms and returns their class schedules — no login, but only reachable from the HSE network.
ruz_find_person— search students (default), lecturers, groups or auditoriums by substring (min 2 chars), returning up tolimit(default 20, max 100) matches withid/labelplustotalcount.ruz_get_schedule— fetch the schedule for a student, lecturer, group or auditorium by RUZid(sametype), for a date range.ruz_get_my_schedule— fetch a student's own schedule from their@edu.hse.rucorporate email.Period controls on every schedule tool:
startDate(YYYY-MM-DD, MSK, past allowed, default today) anddaysAhead(1–60, default 7).languageoption (rudefault /en) for discipline and room names.Results come back as
{ from, to, lessons }(my-schedule also includesstudent), with read-only, cached (5 min) and 15-second-timeout behavior.Requires campus Wi-Fi
HSE.Studentor staff VPN; outside the HSE network calls return an explanatory error.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@hse-ruz-mcp show my schedule for the next 7 days, my HSE email is i.petrov@edu.hse.ru"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
hse-ruz-mcp
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, orruz_get_my_scheduleby a student's@edu.hse.ruemail). No login needed, but RUZ only answers from inside the HSE network (campus Wi-FiHSE.Studentor 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-mcpClaude 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.jsTools
Tool | Что делает |
| Ищет студента, преподавателя, группу или аудиторию по подстроке (от 2 символов) и возвращает до |
| Возвращает расписание студента, преподавателя, группы или аудитории по RUZ id из |
| Возвращает расписание студента по корпоративному email ( |
Параметры периода у всех тулов расписания:
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.
Лицензия
Available Tools
3 toolsruz_find_personНайти в РУЗARead-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Расписание студента по emailARead-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 idARead-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
Scored across 3 tools
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.
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.
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.
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
Related MCP Connectors
Enables AI assistants to retrieve event data and execute event management operations in Nunify.
Connects AI assistants to TrackingTime for querying time entries, projects, tasks, customers, and team data using natural language.
Calendar API for AI agents: events, availability, Google/Microsoft setup, scheduling, and iCal.
Read Schedule it events, resources, groups and labels; create and update events and resources.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables 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.-
- FlicenseBqualityDmaintenanceEnables 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-
- AlicenseAqualityBmaintenanceProvides 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.22MIT
- FlicenseNot gradedqualityCmaintenanceEnables 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-