Skip to main content
Glama
icyberdeveloper

tbank-myt

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MYT_TZNoЧасовой пояс сотрудника: +05:00 или Asia/Yekaterinburg
MYT_TRACENoУправление трассировкой вызовов. 0 выключает трассировку
MYT_EVENTSNoКуда писать события
MYT_SESSIONNoПуть к файлу сессии~/.local/share/tbank-myt/session.json
MYT_EXTRA_CANoДополнительный PEM в хранилище доверия
MYT_TRACE_FILENoКуда писать трассировку

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": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
myt_statusA

Жива ли корпоративная сессия MyT — проверяет ЗАПРОСОМ, а не арифметикой. Секретов не печатает.

Токен продлевается сам перед любым запросом, за 120 секунд до истечения, поэтому нулевой остаток НЕ значит «сессия мертва». Этот тул делает обычный читающий запрос и отвечает по его результату — про состояние на сервере, а не про часы на машине, где крутится MCP. Обновить сессию принудительно — myt_refresh_session().

Как и любой читающий тул здесь, он может по дороге переминтить токен и переписать файл сессии: это поддержание доступа, а не изменение чего-то в мире пользователя. Если запись не удалась, ответ об этом скажет — молча «успешно» не вернёт.

Чего не может ни один тул — полного перелогина: он требует пароля и SMS и живёт в .venv/bin/python login_cli.py <логин>. Если сессия действительно мертва, ответ так и скажет; предлагать пользователю передать пароль не надо.

MyT — рабочее приложение Т-Банка. Если у тебя подключён ещё и банковский MCP: это другой аккаунт и другая сессия, его refresh_session() сюда не относится.

myt_refresh_sessionA

Обменять refresh-токен MyT на свежий access — принудительно, прямо сейчас.

Обычно НЕ нужен: обмен делается сам перед каждым запросом, за 120 секунд до истечения, поэтому нулевой остаток в myt_status() не значит «сессия умерла». Тул для двух случаев, которые сами собой не покрываются: проверить именно REFRESH-токен (access бывает жив, а refresh уже отозван администратором), и обновиться перед длинной цепочкой вызовов, чтобы обмен не пришёлся на середину брони.

Refresh-токен при обмене НЕ ротируется: сервер возвращает тот же самый. Поэтому повторный вызов ничего не сжигает — звать можно свободно.

Если refresh-токен мёртв — MYT SESSION EXPIRED. Дальше только полный перелогин (.venv/bin/python login_cli.py <логин>), он требует пароля и SMS, и ни один тул его не заменит. Пароль у пользователя не спрашивай.

calendar_scheduleA

Рабочее расписание из MyT (корпоративный календарь, НЕ банк).

Пустые даты = сегодня; date_to включительно, принимаются «завтра»/«послезавтра». Один день = один запрос к kairos (так же ходит само приложение), поэтому диапазон ограничен 14 днями — дальше вызови ещё раз со сдвигом.

Время приводится к поясу СОТРУДНИКА и подписано в шапке. Kairos отдаёт момент в UTC, а офисы компании стоят в восьми поясах, от +02:00 до +10:00, поэтому пояс берётся из офиса сотрудника (workplacer), а не предполагается. Переопределить: переменная окружения MYT_TZ («+05:00» или «Asia/Yekaterinburg») — нужна тому, кто уехал или работает не из своего офиса.

Дальше: calendar_event(id) — участники, ссылка на созвон, повестка; calendar_respond(id, «пойду»/«не пойду»/«может быть») — ответить.

calendar_eventA

Детали встречи: участники, ссылка на созвон, место, повестка, повторяемость.

appointment_id — из calendar_schedule().

Для ПОВТОРЯЮЩЕЙСЯ встречи kairos отдаёт не то вхождение, которое ты открыл, а мастер серии: start там — дата ПЕРВОЙ встречи серии, часто многолетней давности. Поле «повторяется» об этом скажет; время конкретного вхождения бери из calendar_schedule().

calendar_respondA

Ответить на приглашение: «пойду» / «не пойду» / «может быть».

Ответ видят организатор и все участники, и он перезаписывает предыдущий — покажи пользователю НАЗВАНИЕ встречи и выбранный ответ, прежде чем звать.

response: пойду/да/Accept, не пойду/нет/Decline, может быть/Tentative. Чужие формулировки не угадываются — при непонятном значении будет ошибка. comment — необязательный текст организатору (уходит в поле answer).

Kairos пускает не чаще одного ответа в 5 секунд; тул сам ждёт и повторяет один раз, так что серия ответов подряд — это нормально, просто небыстро.

calendar_cancelA

Отменить встречу — НЕОБРАТИМО, уведомление уйдёт всем участникам.

Работает только у организатора. Спроси подтверждение с названием и временем, прежде чем вызывать.

occurrence — КАКОЕ вхождение отменяем. Достаточно даты: «2026-08-05», «завтра». Тул сам найдёт в этом дне нужную встречу и возьмёт её исходный момент — то есть ключ, который требует kairos. Для разовой встречи можно не передавать вовсе. Точный момент из kairos (2026-08-05T12:00:00+00:00) тоже принимается, если он у тебя откуда-то есть.

Для ПОВТОРЯЮЩЕЙСЯ встречи дата обязательна: сама встреча знает только начало ВСЕЙ серии, а отмена по нему возвращает 200 и не отменяет ничего. 200 здесь вообще ничего не доказывает, поэтому тул после отмены перечитывает день и печатает, что вышло на самом деле — верь этой строке, а не факту вызова.

parking_placesA

Свободные места на парковке офиса на дату (MyT, НЕ банк).

Пустая дата = завтра: бронь открывается заранее, и «сегодня» почти всегда уже поздно. building_id пустой = здание последней брони, иначе первое из списка.

Стоит 4 запроса (настройки, здания, прошлая бронь, рекомендации) — это ровно то, что нужно, чтобы ответить «где мне парковаться» одним вызовом: список зданий, окно бронирования, машина по умолчанию и сами места.

Дальше: parking_book(date, place_id) — id места это mapElementId.

parking_bookA

Забронировать место на парковке — занимает реальное место, денег не двигает.

date и place_id обязательны: place_id — это place_id из parking_places(). Пустые car_number/car_model/building_id берутся из прошлой брони.

Сервер отвечает 200 с ПУСТЫМ телом и на успех, и молча — поэтому тул после записи перечитывает брони и печатает то, что действительно сохранилось. Номер машины при этом вернётся транслитом (А000АА000 → A000AA000): так его хранит workplacer, это не ошибка.

office_bookingsA

Мои брони в офисе: парковка, рабочее место, локеры (MyT, НЕ банк).

Пустая дата = сегодня. Возвращает брони НАЧИНАЯ с этой даты, а не только за неё — то есть одного вызова хватает, чтобы увидеть всё окно вперёд.

Отменить бронь парковки этот MCP не умеет: такого запроса нет, а угадывать метод и путь на живом сервисе нельзя. Отмена — в приложении MyT.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/icyberdeveloper/tbank-myt'

If you have feedback or need assistance with the MCP directory API, please join our Discord server