{"name":"io.github.icyberdeveloper/tbank-mcp","slug":"icyberdeveloper-tbank-mcp","title":"T-Bank MCP","description":"T-Bank (Т-Банк) mobile banking: accounts, cards, transfers, bill pay, grocery, tickets, travel","url":"https://mcp.market/server/icyberdeveloper-tbank-mcp","rating":null,"grade":"A","score":92,"certified":false,"status":"active","category":"finance","tags":["finance","maps"],"presence":{"score":29,"stars":29,"forks":4,"downloads_week":null,"last_push_at":"2026-09-09T20:45:03.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"pypi","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/icyberdeveloper/tbank-mcp","website":null,"version":"0.2.2","remotes":[],"packages":[{"registryType":"pypi","identifier":"tbank-mcp","version":"0.2.2","transport":{"type":"stdio"}}],"tools":[{"name":"account_requisites","description":"Реквизиты счёта для перевода извне: получатель, счёт, БИК, корсчёт, ИНН/КПП. account_id — из list_accounts(). currencies — через запятую (RUB,USD,EUR).","write_action":false,"price_micros":0,"input_schema":null},{"name":"afisha_catalog","description":"Афиша вертикали за ПЕРИОД дат: что идёт с date_from по date_to.","write_action":false,"price_micros":0,"input_schema":null},{"name":"afisha_places","description":"Площадки города: кинотеатры, залы, театры, музеи — с их objectId.","write_action":false,"price_micros":0,"input_schema":null},{"name":"bank_documents","description":"Справки, заказанные в банке (о движении средств, о доходах и т.п.).","write_action":false,"price_micros":0,"input_schema":null},{"name":"card_limits","description":"Лимиты по карте (на покупки, на снятие) и сколько уже израсходовано. ucid — из list_cards().","write_action":false,"price_micros":0,"input_schema":null},{"name":"card_operations","description":"Операции по КОНКРЕТНОЙ карте. card_id — поле id из list_cards(). Серверного фильтра по карте нет (API умеет только excludeCardIds), поэтому берутся операции за период и фильтруются по полю card. limit=0 — показать все за период. desc_len — ширина колонки описания (0 = описание целиком, обрезка помечена «…»).","write_action":false,"price_micros":0,"input_schema":null},{"name":"card_requisites","description":"Реквизиты карты: держатель, срок, номер. ucid — из list_cards().","write_action":false,"price_micros":0,"input_schema":null},{"name":"cinema_book","description":"ЗАБРОНИРОВАТЬ места. Создаёт заказ, но НЕ платит — деньги списывает отдельный ticket_pay(). Неоплаченная бронь отваливается сама.","write_action":false,"price_micros":0,"input_schema":null},{"name":"cinema_schedule","description":"Сеансы кино на дату. date — YYYY-MM-DD.","write_action":false,"price_micros":0,"input_schema":null},{"name":"cinema_search","description":"Найти фильм в прокате и его eventId (нужен для cinema_schedule). query — часть названия; пусто = вся сегодняшняя афиша города (её видно целиком только при limit=0 — по умолчанию показаны первые 20). city — город афиши, ОБЯЗАТЕЛЕН: молчаливая Москва даёт правдоподобный список чужого города. Известно 65 городов; если нужного нет в таблице, передай city_id числом (его видно в ошибке и в выдаче площад","write_action":false,"price_micros":0,"input_schema":null},{"name":"cinema_seats","description":"Свободные места на сеансе. Денег не двигает. slot_id и object_id — из cinema_schedule()/concert_schedule(). row — показать только один ряд, max_price — потолок цены за место. kind — \"кино\" | \"концерт\" | \"театр\" | \"выставка\" (принимает и movie / concert / spectacle / exhibition). sector_id — показать один сектор; без него приходят все. limit — поднять кап показа (по умолчанию 40 мест / 24 номера в","write_action":false,"price_micros":0,"input_schema":null},{"name":"concert_hall","description":"Секторы со свободной рассадкой (входные билеты, фан-зоны). kind — \"концерт\" или \"театр\": у кино места нумерованные, а у выставок такого экрана в API нет вовсе.","write_action":false,"price_micros":0,"input_schema":null},{"name":"concert_schedule","description":"Показы концерта, спектакля или выставки: площадка, дата, slotId и objectId для cinema_seats(). kind — \"концерт\" | \"театр\" | \"выставка\". Кино сюда НЕ ходит: у него показы привязаны к дате, это cinema_schedule(event_id, date). object_id — сузить до одной площадки. limit — сколько площадок показать, 0 = все (по умолчанию 15). Даты в запросе нет — приходит всё будущее сразу, у гастрольных событий площ","write_action":false,"price_micros":0,"input_schema":null},{"name":"confirm_otp","description":"Отправить SMS-код.","write_action":false,"price_micros":0,"input_schema":null},{"name":"confirm_password","description":"НЕ вызывай напрямую из чата: пароль аккаунта не должен проходить через агента. Этот тул существует для логин-CLI (tbank-mcp-login, в репозитории — login_cli.py), который читает пароль из терминала, невидимого модели. Если банк просит password (первый логин на новом устройстве) — попроси пользователя запустить tbank-mcp-login (или login_cli.py из репозитория).","write_action":false,"price_micros":0,"input_schema":null},{"name":"confirm_payment","description":"Подтвердить платёж, который банк держит на WAITING_CONFIRMATION (второй фактор).","write_action":false,"price_micros":0,"input_schema":null},{"name":"confirm_pin","description":"Отправить PIN (re-auth).","write_action":false,"price_micros":0,"input_schema":null},{"name":"debug_report","description":"Как этим MCP пользовались: какие тулы звали, в каком порядке, что получили в ответ и где застряли. Для отладки самого MCP, не для банковских задач.","write_action":false,"price_micros":0,"input_schema":null},{"name":"diagnostics","description":"Недавние redacted-события (checkout delivery/order/payment + refresh сессии) для диагностики — БЕЗ секретов. reconstruct попытку / найти последний подтверждённый шаг. Источник: ~/.local/share/tbank-mcp/events.jsonl.","write_action":false,"price_micros":0,"input_schema":null},{"name":"documents","description":"Документы клиента: паспорт, загранпаспорт, ВУ, СНИЛС, ИНН, ОСАГО/КАСКО, ПТС/СТС. kind — фильтр по названию или коду (напр. \"паспорт\", \"RusDriversLic\"); пусто = все. В хранилище лежат и документы РОДСТВЕННИКОВ, которые клиент когда-то вводил — они отсеиваются по дате рождения; include_others=True покажет и их.","write_action":false,"price_micros":0,"input_schema":null},{"name":"flight_book","description":"КУПИТЬ авиабилет. РЕАЛЬНЫЕ ДЕНЬГИ. Это ОДИН шаг: у авиа нет отдельной брони, вызов сразу оформляет и списывает. Подтверждение — кнопка: тул сам покажет «Оплатить/Отмена» с итоговой суммой. НЕ спрашивай «да/нет» текстом — покажи тариф, багаж и правила из flight_offer(), согласие даёт кнопка. Клиент без элиситации получает отказ, деньги при этом не двигаются.","write_action":false,"price_micros":0,"input_schema":null},{"name":"flight_history","description":"История авиапоисков — и единственный источник кодов IATA с названиями.","write_action":false,"price_micros":0,"input_schema":null},{"name":"flight_offer","description":"Тарифы, багаж и правила возврата по выбранному рейсу. offer_id — из flight_search().","write_action":false,"price_micros":0,"input_schema":null},{"name":"flight_search","description":"Поиск авиабилетов. from_code/to_code — коды IATA (MOW, LED, SVO), date — YYYY-MM-DD.","write_action":false,"price_micros":0,"input_schema":null},{"name":"flight_seats","description":"Карта мест в салоне с ценами. offer_id — из flight_search(), fare — номер тарифа из flight_offer().","write_action":false,"price_micros":0,"input_schema":null},{"name":"flows","description":"Гид по флоу: порядок вызовов для конкретной задачи.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_data","description":"Универсальный getter. section = subscriptions | subscription_bills | credit_schedule | credit_rating | statements | invoices | templates | contacts | cards | loans | autopayments | sbp | sbp_me2me | promocodes | offers | gifts | services | bundles | manager | merchant_subs | profile | homes | cars | shortcuts | finhealth_total | finhealth_turnover | finhealth_presets | finhealth_invest | invest_ac","write_action":false,"price_micros":0,"input_schema":null},{"name":"grocery_add_to_cart","description":"Добавить товары в корзину. items = JSON [{id, count}, ...]. app_id/point_id — из grocery_stores() (обязательны). Запомни их — тот же магазин нужен для grocery_cart и grocery_checkout.","write_action":false,"price_micros":0,"input_schema":null},{"name":"grocery_attempts","description":"Недавние попытки grocery checkout (read-only) — для reconciliation после неопределённого результата (UNKNOWN). Показывает status/order_id/attempt_id/sum. limit — сколько последних попыток показать (0 = все); в шапке видно общее число.","write_action":false,"price_micros":0,"input_schema":null},{"name":"grocery_cart","description":"Содержимое корзины. app_id/point_id — из grocery_stores() (обязательны) и должны совпадать с теми, что использовались в grocery_add_to_cart.","write_action":false,"price_micros":0,"input_schema":null},{"name":"grocery_checkout","description":"Полный чекаут: доставка → заказ → оплата. РЕАЛЬНЫЕ ДЕНЬГИ. app_id/point_id — из grocery_stores() (обязательны, тот же магазин что в корзине).","write_action":false,"price_micros":0,"input_schema":null},{"name":"grocery_good_info","description":"Карточка товара: состав, КБЖУ, вес, срок хранения, производитель. good_id — из grocery_search()/grocery_plan_order(). КБЖУ приводится на 100 г и на упаковку (у части сетей КБЖУ есть только текстом — он разбирается).","write_action":false,"price_micros":0,"input_schema":null},{"name":"grocery_order_cancel","description":"Отменить продуктовый заказ (Город) — оплаченный или ещё нет. Деньги за оплаченный возвращаются на счёт списания. Покажи пользователю заказ и дождись согласия, прежде чем отменять.","write_action":true,"price_micros":0,"input_schema":null},{"name":"grocery_order_status","description":"Reconciliation: статус grocery-заказа по orderId (GET /api/grocery/order). Read-only. Проверь после UNKNOWN checkout, создался/оплатился ли заказ на бэкенде.","write_action":true,"price_micros":0,"input_schema":null},{"name":"grocery_plan_order","description":"Спланировать заказ: для каждого ингредиента ищет (custom_ordered → global). ingredients = JSON массив, напр. [\"свёкла\",\"говядина\",\"капуста\"]. app_id/point_id — из grocery_stores() (обязательны).","write_action":true,"price_micros":0,"input_schema":null},{"name":"grocery_rank","description":"Кандидаты по запросу с атрибутами, опционально отсортированные.","write_action":false,"price_micros":0,"input_schema":null},{"name":"grocery_search","description":"Поиск товара по названию. app_id/point_id — из grocery_stores() (обязательны). Возвращает товары с тегом likely_raw (сырой/готовый). limit — сколько показать (0 = все подходящие); в шапке видно, сколько нашлось всего и сколько товаров вообще вернула сеть.","write_action":false,"price_micros":0,"input_schema":null},{"name":"grocery_set_cart","description":"Изменить или убрать товары в корзине. Считает количества АБСОЛЮТНО, в отличие от grocery_add_to_cart, который прибавляет.","write_action":false,"price_micros":0,"input_schema":null},{"name":"grocery_stores","description":"Магазины, доступные по адресу пользователя: appId/pointId (нужны всем остальным grocery-тулам), окно ближайшей доставки, её цена, минимальная сумма заказа и кешбэк.","write_action":false,"price_micros":0,"input_schema":null},{"name":"hotel_info","description":"Карточка отеля: адрес, время заезда, отзывы. С датами — ещё и тарифы: цена, питание, до какого числа бесплатная отмена.","write_action":false,"price_micros":0,"input_schema":null},{"name":"hotel_search","description":"Поиск отелей. query — город, регион или название отеля («Сочи», «Красная Поляна»); checkin/checkout — YYYY-MM-DD; children — возрасты детей через запятую («5,12»).","write_action":false,"price_micros":0,"input_schema":null},{"name":"insurance_policies","description":"Действующие страховые полисы (ОСАГО/КАСКО/путешествия) с суммами и сроками.","write_action":false,"price_micros":0,"input_schema":null},{"name":"invest_accounts","description":"Инвест-счета: брокерские и InvestBox. brokerAccountId отсюда — единственный аргумент invest_portfolio/invest_operations/invest_securities.","write_action":false,"price_micros":0,"input_schema":null},{"name":"invest_operations","description":"Брокерские операции, новые сверху. limit применяется и к запросу, и к выводу (0 = всё, что вернул банк).","write_action":false,"price_micros":0,"input_schema":null},{"name":"invest_portfolio","description":"Статистика портфеля (ввод/вывод, купоны, дивиденды, стоимость по месяцам) за период. broker_account_id — из invest_accounts().","write_action":false,"price_micros":0,"input_schema":null},{"name":"invest_securities","description":"Бумаги в портфеле: тикер, количество, текущая цена, доля и доходность. broker_account_id — из invest_accounts(); пусто = все портфели.","write_action":false,"price_micros":0,"input_schema":null},{"name":"keepalive","description":"Пинг — продлить сессию.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_accounts","description":"Счета, балансы и карты каждого счёта (id + ucid).","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_cards","description":"Все карты по всем счетам: id, ucid, баланс, тип. id — для card_operations, ucid — для card_limits/card_requisites. Карты, привязанные из ДРУГИХ банков, помечены «внешняя»: у них нет ucid, и card_limits/card_requisites по ним не работают.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_operations","description":"Операции за период, новые сверху.","write_action":false,"price_micros":0,"input_schema":null},{"name":"login","description":"Начать логин. Отправляет SMS OTP. Возвращает какой шаг следующий (otp/password/pin). Спроси у пользователя код и вызови confirm_otp(otp); если банк попросит — confirm_pin(pin). Пароль вводится не через агента: пользователь запускает tbank-mcp-login (pip-установка) или login_cli.py (репозиторий) в своём терминале.","write_action":false,"price_micros":0,"input_schema":null},{"name":"messenger_conversations","description":"Список чатов (одна страница банка).","write_action":false,"price_micros":0,"input_schema":null},{"name":"messenger_file","description":"Скачать вложение из чата (выписку, отчёт, справку) НА ДИСК и вернуть путь.","write_action":false,"price_micros":0,"input_schema":null},{"name":"messenger_messages","description":"История чата, старые сверху.","write_action":false,"price_micros":0,"input_schema":null},{"name":"messenger_send","description":"Отправить сообщение в чат — НЕОБРАТИМО, его прочитает живой человек (обычно поддержка банка). Денег не двигает, но и отозвать нельзя.","write_action":true,"price_micros":0,"input_schema":null},{"name":"messenger_unread","description":"Чаты с непрочитанными сообщениями (по названиям, а не по сырым id).","write_action":false,"price_micros":0,"input_schema":null},{"name":"operations_histogram","description":"Траты, сгруппированные банком. Возвращает сырой JSON (дерево summary + intervals[].aggregated[]); для готовой разбивки по категориям бери spending_categories() — он это дерево уже разворачивает.","write_action":false,"price_micros":0,"input_schema":null},{"name":"order_details","description":"Детали одного заказа (места, зал, код брони, состав корзины). Работает для развлекательных заказов (кино/концерты); для продуктов — grocery_order_status, для поездок — travel_order_details(order_id) (вагон, места, маршрут, отель).","write_action":true,"price_micros":0,"input_schema":null},{"name":"orders","description":"Все заказы клиента: продукты, кино, концерты, авиабилеты, ж/д, отели. kind — \"афиша\" | \"кино\" | \"путешествия\" | \"продукты\" | код objectType; пусто = все. Отсортировано по дате создания, новые сверху. limit=0 — показать все.","write_action":false,"price_micros":0,"input_schema":null},{"name":"pay_bill","description":"Оплатить счёт: ЖКХ, связь, интернет, штраф, налог. РЕАЛЬНЫЕ ДЕНЬГИ.","write_action":true,"price_micros":0,"input_schema":null},{"name":"payment_commission","description":"Предпросмотр комиссии (денег НЕ двигает). body обязателен — это JSON-строка.","write_action":false,"price_micros":0,"input_schema":null},{"name":"payment_providers","description":"Каталог платёжных провайдеров (ЖКХ, связь, штрафы, налоги, интернет…) — только чтение, денег не двигает.","write_action":false,"price_micros":0,"input_schema":null},{"name":"payment_qr","description":"Прочитать платёжный QR со счёта/квитанции (ГОСТ Р 56042-2014, строка ST0001…). ТОЛЬКО ЧТЕНИЕ, денег не двигает.","write_action":false,"price_micros":0,"input_schema":null},{"name":"payment_receipt","description":"Скачать PDF-чек по платежу. По умолчанию — в ~/.local/share/tbank-mcp/receipts/.","write_action":false,"price_micros":0,"input_schema":null},{"name":"payment_status","description":"Состояние платёжной попытки по attempt_id: висит ли она на подтверждении, подтверждена или её исход неизвестен.","write_action":false,"price_micros":0,"input_schema":null},{"name":"place_info","description":"Карточка площадки: название, город, метро, залы.","write_action":false,"price_micros":0,"input_schema":null},{"name":"place_schedule","description":"Что идёт на площадке: концерты, спектакли, выставки.","write_action":false,"price_micros":0,"input_schema":null},{"name":"push_unread_count","description":"Число непрочитанных push-уведомлений.","write_action":false,"price_micros":0,"input_schema":null},{"name":"refresh_session","description":"Обновить сессию. Сначала пробует refresh_token, при invalid_grant — silent re-login через SSO_SESSION (без OTP). Если оба пути не работают — REAUTH_REQUIRED.","write_action":false,"price_micros":0,"input_schema":null},{"name":"search_app","description":"Полнотекстовый поиск по разделу приложения.","write_action":false,"price_micros":0,"input_schema":null},{"name":"session_status","description":"Проверить жива ли сессия. Сам поднимает уровень до CLIENT, если окно портальной сессии (~11 минут) успело закрыться.","write_action":false,"price_micros":0,"input_schema":null},{"name":"shop_cart","description":"Корзины маркетплейса — по одной на продавца.","write_action":false,"price_micros":0,"input_schema":null},{"name":"shop_search","description":"Поиск товаров в маркетплейсе Т-Банка (Город → Шопинг).","write_action":false,"price_micros":0,"input_schema":null},{"name":"spending_categories","description":"Траты по категориям.","write_action":false,"price_micros":0,"input_schema":null},{"name":"ticket_cancel","description":"Отменить заказ билета. kind — \"movie\" или \"concert\".","write_action":true,"price_micros":0,"input_schema":null},{"name":"ticket_pay","description":"ОПЛАТИТЬ бронь билета. РЕАЛЬНЫЕ ДЕНЬГИ. Подтверждение — кнопка: тул сам покажет пользователю «Оплатить/Отмена» с суммой заказа (для сумм от TBANK_CONFIRM_ABOVE). НЕ спрашивай «да/нет» текстом заранее — покажи места и итог со сбором (из cinema_book), потом вызывай; согласие даёт кнопка. Клиент без элиситации получает отказ «ПЛАТЁЖ НЕ ВЫПОЛНЕН» — деньги там не двигаются.","write_action":true,"price_micros":0,"input_schema":null},{"name":"ticket_qr","description":"Сам билет по оплаченному заказу: код брони, QR и ссылка на PDF.","write_action":false,"price_micros":0,"input_schema":null},{"name":"train_book","description":"ЗАБРОНИРОВАТЬ места в поезде. Денег НЕ списывает, но ДЕРЖИТ места ~15 минут.","write_action":false,"price_micros":0,"input_schema":null},{"name":"train_calendar","description":"Даты, на которые открыта продажа по направлению.","write_action":false,"price_micros":0,"input_schema":null},{"name":"train_pay","description":"ОПЛАТИТЬ бронь поезда. РЕАЛЬНЫЕ ДЕНЬГИ. Подтверждение — кнопка: тул сам покажет «Оплатить/Отмена» с суммой заказа. НЕ спрашивай «да/нет» текстом — покажи места и сумму из train_book(), согласие даёт кнопка. Клиент без элиситации получает отказ, деньги при этом не двигаются.","write_action":true,"price_micros":0,"input_schema":null},{"name":"train_refund","description":"ВОЗВРАТ ЖД-билета. Необратим: место уходит обратно в продажу.","write_action":true,"price_micros":0,"input_schema":null},{"name":"train_search","description":"Поиск поездов. origin/destination — ЧИСЛОВЫЕ коды станций банка (2000000 — Москва, 2004000 — Санкт-Петербург), date — YYYY-MM-DD.","write_action":false,"price_micros":0,"input_schema":null},{"name":"train_seats","description":"Вагоны и свободные места в поезде. train_id — из train_search().","write_action":false,"price_micros":0,"input_schema":null},{"name":"transfer","description":"Перевод (РЕАЛЬНЫЕ ДЕНЬГИ). Подтверждение — кнопка, не текст: тул сам покажет пользователю выбор банка (если их несколько) и кнопки «Перевести/Отмена» (для сумм от TBANK_CONFIRM_ABOVE). НЕ спрашивай «да/нет» заранее — вызывай, когда сумма и получатель известны; согласие даёт кнопка. Клиент без элиситации получает отказ «ПЛАТЁЖ НЕ ВЫПОЛНЕН» — деньги там не двигаются вообще.","write_action":true,"price_micros":0,"input_schema":null},{"name":"transfer_requisites","description":"Перевод юрлицу или ИП по банковским реквизитам (БИК + счёт + ИНН). РЕАЛЬНЫЕ ДЕНЬГИ. Подтверждение — кнопка, не текст: тул сам покажет пользователю «Перевести/Отмена» (для сумм от TBANK_CONFIRM_ABOVE) ДО отправки. НЕ спрашивай «да/нет» заранее — покажи реквизиты и назначение (payment_qr для QR), потом вызывай; согласие даёт кнопка. Клиент без элиситации получает отказ «ПЛАТЁЖ НЕ ВЫПОЛНЕН» — деньги","write_action":true,"price_micros":0,"input_schema":null},{"name":"transfer_sbp_resolve","description":"Резолвинг получателя по номеру (read-only, БЕЗ денег) — счёт в Т-Банке И банки СБП. Возвращает маскированное имя + банк + isDefaultBank и готовый provider_fields. Используй ПЕРЕД transfer()/payment_commission() для НОВОГО (несохранённого) получателя. provider_fields вставь в payParameters.providerFields комиссии — не пиши 8276 руками.","write_action":true,"price_micros":0,"input_schema":null},{"name":"travel_order_details","description":"Детали поездки по orderId из orders(\"путешествия\") — отель, поезд, самолёт.","write_action":true,"price_micros":0,"input_schema":null},{"name":"travel_payment_options","description":"Чем платить за поездку и сколько это стоит на самом деле: доступные счета, сколько бонусов можно списать, сколько кэшбэка вернётся, какие есть рассрочки.","write_action":false,"price_micros":0,"input_schema":null},{"name":"travel_ticket_file","description":"Сохранить билет в файл: ЖД-бланк или маршрутные квитанции по перелёту. По умолчанию — в ~/.local/share/tbank-mcp/receipts/.","write_action":false,"price_micros":0,"input_schema":null},{"name":"trips","description":"Поездки — самолёты, поезда и отели одной лентой.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":92,"grade":"A","scanned_at":"2026-09-21T13:07:48.868Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-21T13:07:48.908Z","components":{"code":{"score":25,"max":25,"notes":["12 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 12 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"pypi","identifier":"tbank-mcp","version":"0.2.2","found":true,"license":"MIT","dependencyCount":4,"publishedAt":"2026-08-23T16:41:17.672971Z","repositoryUrl":"https://github.com/icyberdeveloper/tbank-mcp"}],"repo":{"found":true,"owner":"icyberdeveloper","repo":"tbank-mcp","archived":false,"pushedAt":"2026-09-09T20:45:03Z","stars":29,"forks":4,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/2022981?v=4","ownerCreatedAt":"2012-07-22T18:26:21Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/2022981?v=4&s=128","source":"github"},"presence":{"stars":29,"forks":4,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-09-09T20:45:03.000Z","score":29}}}},"grade_history":[],"reviews":[]}