kfu-itis
Retrieves group schedules from a Google Sheets timetable, including class times, instructors, rooms, and merged-cell lectures.
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., "@kfu-itisПокажи расписание 11-401"
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.
ИТИС Навигатор · MCP Demo
Локальное приложение для вопросов об ИТИС Казанского федерального университета. В чате можно открыть расписание конкретной группы: карточки пар, время, преподаватели, аудитории, выбор группы и переключение дней недели. Для общих вопросов подключается модель через OpenRouter, которая получает информацию с сайтов КФУ через MCP.
Быстрый запуск
Нужны Node.js 22.13 или новее и npm. Команды выполняются в терминале:
git clone https://github.com/GreenSLA/MCP-Demo.git
cd MCP-Demo
npm ci
npm run devОткройте http://127.0.0.1:3000. Держите терминал открытым; остановка — Ctrl+C.
npm start запускает то же локальное приложение. Порты 3000 и 8788 должны быть свободны.
В Windows команды подходят для PowerShell. На macOS после установки зависимостей также
можно открыть Запустить.command двойным щелчком (при необходимости chmod +x Запустить.command).
Расписание — без ключа и облачной модели
Работает сразу после запуска, в том числе без интернета. Нажмите «Расписание группы» или напишите:
«Покажи расписание 11-401»;
«Какие пары у 11-402 в понедельник?»;
«Расписание 11-401 на завтра»;
«Расписание» — приложение предложит выбрать группу.
В ответе откроется интерактивная карточка. Выберите другую группу или день недели. Время, названия предметов и остальные сведения отображаются из данных таблицы без пересказа LLM. Общие лекции из объединённых ячеек включаются во все соответствующие группы.
В репозитории есть сохранённая копия предоставленной таблицы на 65 групп:
server/data/timetable.json. Дата получения указана в карточке; это не гарантия актуальности
на сегодняшний день. Кнопка «Обновить из таблицы» получает свежие данные через интернет
и сохраняет их в памяти до перезапуска приложения.
Чтобы обновить встроенную копию на диске:
npm run schedule:updateПосле этого перезапустите приложение. Изменённый JSON можно закоммитить. Если Google Sheets недоступен при обновлении, карточка сохраняет прежние данные и показывает ошибку. Исходная таблица не редактируется.
Общие вопросы — подключение OpenRouter
Создайте ключ на https://openrouter.ai/settings/keys.
В приложении нажмите «Нужен API-ключ», вставьте ключ, выберите модель и сохраните.
Задайте вопрос, например «Как связаться с ИТИС?» или «Какие компании сотрудничают с ИТИС?».
Ключ сохраняется только в локальном .env. Его значение не возвращается браузеру
при чтении настроек и не включается в Git. Для платной модели нужен баланс OpenRouter;
бесплатный вариант есть в настройках, но возможны ограничения и очереди.
Вместо настройки через интерфейс можно скопировать .env.example в .env и заполнить:
OPENROUTER_API_KEY=YOUR_OPENROUTER_KEY
OPENROUTER_MODEL=google/gemini-2.5-flashНе добавляйте настоящий ключ в README, исходники или коммиты.
Related MCP server: tbank-edu-mcp
Архитектура
React-интерфейс → локальный Node.js API
│
┌────────┴────────┐
│ │
Вопрос о парах Общий вопрос
│ ↕
Разбор группы OpenRouter → LLM
и дня │ tool calling
└────────┬────────┘
↓
MCP-клиент
↕ JSON-RPC / stdio
Отдельный MCP-сервер
┌───────────┼───────────────────┐
search_kfu read_kfu_page get_group_schedule
↓ ↓ ↓
Сайты КФУ Страница КФУ Копия / Google SheetsMCP реализован официальным @modelcontextprotocol/sdk, включая обнаружение инструментов
через listTools, вызовы callTool и ресурс itis://about. Это отдельный процесс,
к которому можно подключить сторонний MCP-клиент. Нейросеть не обучалась.
Файл | Назначение |
| Три MCP-инструмента и ресурс |
| Цикл модели, вызовов инструментов и результатов |
| HTML КФУ, кодировки, лексический поиск, кэш |
| Разбор таблицы, объединённых ячеек и дней |
| Распознавание запросов расписания без LLM |
| Локальный HTTP API и настройка ключа |
| Карточки пар и переключатели |
| Чат, настройки и журнал MCP |
Подключение к другому MCP-клиенту
Установите зависимости и укажите абсолютные пути в конфигурации клиента:
{
"mcpServers": {
"kfu-itis": {
"command": "node",
"args": ["/absolute/path/MCP-Demo/server/mcp-server.mjs"]
}
}
}Самому MCP-серверу ключ OpenRouter не нужен. Модель предоставляет выбранный клиент.
Проверка
npm test # извлечение, объединения, маршрутизация, агентный цикл
npx tsc --noEmit # проверка TypeScript
npm run build # сборка интерфейса
npm run check:mcp # настоящий MCP и поиск по КФУ; нужен интернетДля демонстрации запускайте npm run dev, а не отдельно артефакты сборки:
приложению нужны одновременно интерфейс и Node.js API. Публичное развёртывание не настроено.
Ограничения и источники
«Сегодня/завтра» вычисляются по Москве. Показывается шаблон дня недели; каникулы, чётность учебной недели и отмены автоматически не вычисляются. Все условия из ячеек остаются в тексте занятий.
Расписание охватывает предоставленную таблицу, а не произвольные группы университета. Изменение структуры таблицы может потребовать обновления парсера.
Поиск по КФУ — ограниченный корпус HTML и релевантные ссылки, без векторной базы. PDF, закрытые личные кабинеты и JavaScript-страницы не извлекаются.
Общие ответы модели могут содержать ошибки; проверяйте ссылки. История чата хранится в памяти вкладки до перезагрузки. Приложение предназначено для локального использования.
Источники: сайт ИТИС, расписание Google Sheets. Шпаргалка для демонстрации: ЗАЩИТА.md.
This server cannot be deployed
Maintenance
Related MCP Connectors
Remote MCP for TehProf Booking: browse resources & availability, create & cancel reservations.
Web and URL utilities over MCP: shorten URLs, screenshot pages, read page metadata, encode URLs.
All public upAPI operations as MCP tools: web scraping, search, screenshots, PDF, OCR and more.
MCP server for Russian books search, details, and recommendation candidates.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables querying academic data such as subjects, degrees, locations, and schedules from Universitat Jaume I via MCP tools.MIT
- FlicenseNot gradedqualityDmaintenanceMCP server that connects AI assistants to T-Bank Education, enabling access to courses, timetable, deadlines, and user profile via tools like get_timetable, get_my_courses, and get_deadlines.-
- AlicenseAqualityBmaintenanceProvides MCP tools for querying and summarizing Northwest A&F University campus information, including trending QQ channel posts, official website notices/events/competitions, and cross-site custom searches with Markdown output and source links.4MIT
- AlicenseNot gradedqualityBmaintenanceProvides 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.MIT