T-Bank MCP server
T-Bank (Т-Банк) mobile banking: accounts, cards, transfers, bill pay, grocery, tickets, travel
29 stars
Reviews
Write oneNobody has reviewed T-Bank MCP yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
T-Bank MCP tools (90, 14 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
account_requisitesРеквизиты счёта для перевода извне: получатель, счёт, БИК, корсчёт, ИНН/КПП. account_id — из list_accounts(). currencies — через запятую (RUB,USD,EUR).
afisha_catalogАфиша вертикали за ПЕРИОД дат: что идёт с date_from по date_to.
afisha_placesПлощадки города: кинотеатры, залы, театры, музеи — с их objectId.
bank_documentsСправки, заказанные в банке (о движении средств, о доходах и т.п.).
card_limitsЛимиты по карте (на покупки, на снятие) и сколько уже израсходовано. ucid — из list_cards().
card_operationsОперации по КОНКРЕТНОЙ карте. card_id — поле id из list_cards(). Серверного фильтра по карте нет (API умеет только excludeCardIds), поэтому берутся операции за период и фильтруются по полю card. limit=0 — показать все за период. desc_len — ширина колонки описания (0 = описание целиком, обрезка помечена «…»).
card_requisitesРеквизиты карты: держатель, срок, номер. ucid — из list_cards().
cinema_bookЗАБРОНИРОВАТЬ места. Создаёт заказ, но НЕ платит — деньги списывает отдельный ticket_pay(). Неоплаченная бронь отваливается сама.
cinema_scheduleСеансы кино на дату. date — YYYY-MM-DD.
cinema_searchНайти фильм в прокате и его eventId (нужен для cinema_schedule). query — часть названия; пусто = вся сегодняшняя афиша города (её видно целиком только при limit=0 — по умолчанию показаны первые 20). city — город афиши, ОБЯЗАТЕЛЕН: молчаливая Москва даёт правдоподобный список чужого города. Известно 65 городов; если нужного нет в таблице, передай city_id числом (его видно в ошибке и в выдаче площад
cinema_seatsСвободные места на сеансе. Денег не двигает. slot_id и object_id — из cinema_schedule()/concert_schedule(). row — показать только один ряд, max_price — потолок цены за место. kind — "кино" | "концерт" | "театр" | "выставка" (принимает и movie / concert / spectacle / exhibition). sector_id — показать один сектор; без него приходят все. limit — поднять кап показа (по умолчанию 40 мест / 24 номера в
concert_hallСекторы со свободной рассадкой (входные билеты, фан-зоны). kind — "концерт" или "театр": у кино места нумерованные, а у выставок такого экрана в API нет вовсе.
concert_scheduleПоказы концерта, спектакля или выставки: площадка, дата, slotId и objectId для cinema_seats(). kind — "концерт" | "театр" | "выставка". Кино сюда НЕ ходит: у него показы привязаны к дате, это cinema_schedule(event_id, date). object_id — сузить до одной площадки. limit — сколько площадок показать, 0 = все (по умолчанию 15). Даты в запросе нет — приходит всё будущее сразу, у гастрольных событий площ
confirm_otpОтправить SMS-код.
confirm_passwordНЕ вызывай напрямую из чата: пароль аккаунта не должен проходить через агента. Этот тул существует для логин-CLI (tbank-mcp-login, в репозитории — login_cli.py), который читает пароль из терминала, невидимого модели. Если банк просит password (первый логин на новом устройстве) — попроси пользователя запустить tbank-mcp-login (или login_cli.py из репозитория).
confirm_paymentПодтвердить платёж, который банк держит на WAITING_CONFIRMATION (второй фактор).
confirm_pinОтправить PIN (re-auth).
debug_reportКак этим MCP пользовались: какие тулы звали, в каком порядке, что получили в ответ и где застряли. Для отладки самого MCP, не для банковских задач.
diagnosticsНедавние redacted-события (checkout delivery/order/payment + refresh сессии) для диагностики — БЕЗ секретов. reconstruct попытку / найти последний подтверждённый шаг. Источник: ~/.local/share/tbank-mcp/events.jsonl.
documentsДокументы клиента: паспорт, загранпаспорт, ВУ, СНИЛС, ИНН, ОСАГО/КАСКО, ПТС/СТС. kind — фильтр по названию или коду (напр. "паспорт", "RusDriversLic"); пусто = все. В хранилище лежат и документы РОДСТВЕННИКОВ, которые клиент когда-то вводил — они отсеиваются по дате рождения; include_others=True покажет и их.
flight_bookКУПИТЬ авиабилет. РЕАЛЬНЫЕ ДЕНЬГИ. Это ОДИН шаг: у авиа нет отдельной брони, вызов сразу оформляет и списывает. Подтверждение — кнопка: тул сам покажет «Оплатить/Отмена» с итоговой суммой. НЕ спрашивай «да/нет» текстом — покажи тариф, багаж и правила из flight_offer(), согласие даёт кнопка. Клиент без элиситации получает отказ, деньги при этом не двигаются.
flight_historyИстория авиапоисков — и единственный источник кодов IATA с названиями.
flight_offerТарифы, багаж и правила возврата по выбранному рейсу. offer_id — из flight_search().
flight_searchПоиск авиабилетов. from_code/to_code — коды IATA (MOW, LED, SVO), date — YYYY-MM-DD.
flight_seatsКарта мест в салоне с ценами. offer_id — из flight_search(), fare — номер тарифа из flight_offer().
flowsГид по флоу: порядок вызовов для конкретной задачи.
get_dataУниверсальный 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
grocery_add_to_cartДобавить товары в корзину. items = JSON [{id, count}, ...]. app_id/point_id — из grocery_stores() (обязательны). Запомни их — тот же магазин нужен для grocery_cart и grocery_checkout.
grocery_attemptsНедавние попытки grocery checkout (read-only) — для reconciliation после неопределённого результата (UNKNOWN). Показывает status/order_id/attempt_id/sum. limit — сколько последних попыток показать (0 = все); в шапке видно общее число.
grocery_cartСодержимое корзины. app_id/point_id — из grocery_stores() (обязательны) и должны совпадать с теми, что использовались в grocery_add_to_cart.
grocery_checkoutПолный чекаут: доставка → заказ → оплата. РЕАЛЬНЫЕ ДЕНЬГИ. app_id/point_id — из grocery_stores() (обязательны, тот же магазин что в корзине).
grocery_good_infoКарточка товара: состав, КБЖУ, вес, срок хранения, производитель. good_id — из grocery_search()/grocery_plan_order(). КБЖУ приводится на 100 г и на упаковку (у части сетей КБЖУ есть только текстом — он разбирается).
grocery_order_cancelwrite actionОтменить продуктовый заказ (Город) — оплаченный или ещё нет. Деньги за оплаченный возвращаются на счёт списания. Покажи пользователю заказ и дождись согласия, прежде чем отменять.
grocery_order_statuswrite actionReconciliation: статус grocery-заказа по orderId (GET /api/grocery/order). Read-only. Проверь после UNKNOWN checkout, создался/оплатился ли заказ на бэкенде.
grocery_plan_orderwrite actionСпланировать заказ: для каждого ингредиента ищет (custom_ordered → global). ingredients = JSON массив, напр. ["свёкла","говядина","капуста"]. app_id/point_id — из grocery_stores() (обязательны).
grocery_rankКандидаты по запросу с атрибутами, опционально отсортированные.
grocery_searchПоиск товара по названию. app_id/point_id — из grocery_stores() (обязательны). Возвращает товары с тегом likely_raw (сырой/готовый). limit — сколько показать (0 = все подходящие); в шапке видно, сколько нашлось всего и сколько товаров вообще вернула сеть.
grocery_set_cartИзменить или убрать товары в корзине. Считает количества АБСОЛЮТНО, в отличие от grocery_add_to_cart, который прибавляет.
grocery_storesМагазины, доступные по адресу пользователя: appId/pointId (нужны всем остальным grocery-тулам), окно ближайшей доставки, её цена, минимальная сумма заказа и кешбэк.
hotel_infoКарточка отеля: адрес, время заезда, отзывы. С датами — ещё и тарифы: цена, питание, до какого числа бесплатная отмена.
hotel_searchПоиск отелей. query — город, регион или название отеля («Сочи», «Красная Поляна»); checkin/checkout — YYYY-MM-DD; children — возрасты детей через запятую («5,12»).
insurance_policiesДействующие страховые полисы (ОСАГО/КАСКО/путешествия) с суммами и сроками.
invest_accountsИнвест-счета: брокерские и InvestBox. brokerAccountId отсюда — единственный аргумент invest_portfolio/invest_operations/invest_securities.
invest_operationsБрокерские операции, новые сверху. limit применяется и к запросу, и к выводу (0 = всё, что вернул банк).
invest_portfolioСтатистика портфеля (ввод/вывод, купоны, дивиденды, стоимость по месяцам) за период. broker_account_id — из invest_accounts().
invest_securitiesБумаги в портфеле: тикер, количество, текущая цена, доля и доходность. broker_account_id — из invest_accounts(); пусто = все портфели.
keepaliveПинг — продлить сессию.
list_accountsСчета, балансы и карты каждого счёта (id + ucid).
list_cardsВсе карты по всем счетам: id, ucid, баланс, тип. id — для card_operations, ucid — для card_limits/card_requisites. Карты, привязанные из ДРУГИХ банков, помечены «внешняя»: у них нет ucid, и card_limits/card_requisites по ним не работают.
list_operationsОперации за период, новые сверху.
loginНачать логин. Отправляет SMS OTP. Возвращает какой шаг следующий (otp/password/pin). Спроси у пользователя код и вызови confirm_otp(otp); если банк попросит — confirm_pin(pin). Пароль вводится не через агента: пользователь запускает tbank-mcp-login (pip-установка) или login_cli.py (репозиторий) в своём терминале.
messenger_conversationsСписок чатов (одна страница банка).
messenger_fileСкачать вложение из чата (выписку, отчёт, справку) НА ДИСК и вернуть путь.
messenger_messagesИстория чата, старые сверху.
messenger_sendwrite actionОтправить сообщение в чат — НЕОБРАТИМО, его прочитает живой человек (обычно поддержка банка). Денег не двигает, но и отозвать нельзя.
messenger_unreadЧаты с непрочитанными сообщениями (по названиям, а не по сырым id).
operations_histogramТраты, сгруппированные банком. Возвращает сырой JSON (дерево summary + intervals[].aggregated[]); для готовой разбивки по категориям бери spending_categories() — он это дерево уже разворачивает.
order_detailswrite actionДетали одного заказа (места, зал, код брони, состав корзины). Работает для развлекательных заказов (кино/концерты); для продуктов — grocery_order_status, для поездок — travel_order_details(order_id) (вагон, места, маршрут, отель).
ordersВсе заказы клиента: продукты, кино, концерты, авиабилеты, ж/д, отели. kind — "афиша" | "кино" | "путешествия" | "продукты" | код objectType; пусто = все. Отсортировано по дате создания, новые сверху. limit=0 — показать все.
pay_billwrite actionОплатить счёт: ЖКХ, связь, интернет, штраф, налог. РЕАЛЬНЫЕ ДЕНЬГИ.
payment_commissionПредпросмотр комиссии (денег НЕ двигает). body обязателен — это JSON-строка.
payment_providersКаталог платёжных провайдеров (ЖКХ, связь, штрафы, налоги, интернет…) — только чтение, денег не двигает.
payment_qrПрочитать платёжный QR со счёта/квитанции (ГОСТ Р 56042-2014, строка ST0001…). ТОЛЬКО ЧТЕНИЕ, денег не двигает.
payment_receiptСкачать PDF-чек по платежу. По умолчанию — в ~/.local/share/tbank-mcp/receipts/.
payment_statusСостояние платёжной попытки по attempt_id: висит ли она на подтверждении, подтверждена или её исход неизвестен.
place_infoКарточка площадки: название, город, метро, залы.
place_scheduleЧто идёт на площадке: концерты, спектакли, выставки.
push_unread_countЧисло непрочитанных push-уведомлений.
refresh_sessionОбновить сессию. Сначала пробует refresh_token, при invalid_grant — silent re-login через SSO_SESSION (без OTP). Если оба пути не работают — REAUTH_REQUIRED.
search_appПолнотекстовый поиск по разделу приложения.
session_statusПроверить жива ли сессия. Сам поднимает уровень до CLIENT, если окно портальной сессии (~11 минут) успело закрыться.
shop_cartКорзины маркетплейса — по одной на продавца.
shop_searchПоиск товаров в маркетплейсе Т-Банка (Город → Шопинг).
spending_categoriesТраты по категориям.
ticket_cancelwrite actionОтменить заказ билета. kind — "movie" или "concert".
ticket_paywrite actionОПЛАТИТЬ бронь билета. РЕАЛЬНЫЕ ДЕНЬГИ. Подтверждение — кнопка: тул сам покажет пользователю «Оплатить/Отмена» с суммой заказа (для сумм от TBANK_CONFIRM_ABOVE). НЕ спрашивай «да/нет» текстом заранее — покажи места и итог со сбором (из cinema_book), потом вызывай; согласие даёт кнопка. Клиент без элиситации получает отказ «ПЛАТЁЖ НЕ ВЫПОЛНЕН» — деньги там не двигаются.
ticket_qrСам билет по оплаченному заказу: код брони, QR и ссылка на PDF.
train_bookЗАБРОНИРОВАТЬ места в поезде. Денег НЕ списывает, но ДЕРЖИТ места ~15 минут.
train_calendarДаты, на которые открыта продажа по направлению.
train_paywrite actionОПЛАТИТЬ бронь поезда. РЕАЛЬНЫЕ ДЕНЬГИ. Подтверждение — кнопка: тул сам покажет «Оплатить/Отмена» с суммой заказа. НЕ спрашивай «да/нет» текстом — покажи места и сумму из train_book(), согласие даёт кнопка. Клиент без элиситации получает отказ, деньги при этом не двигаются.
train_refundwrite actionВОЗВРАТ ЖД-билета. Необратим: место уходит обратно в продажу.
train_searchПоиск поездов. origin/destination — ЧИСЛОВЫЕ коды станций банка (2000000 — Москва, 2004000 — Санкт-Петербург), date — YYYY-MM-DD.
train_seatsВагоны и свободные места в поезде. train_id — из train_search().
transferwrite actionПеревод (РЕАЛЬНЫЕ ДЕНЬГИ). Подтверждение — кнопка, не текст: тул сам покажет пользователю выбор банка (если их несколько) и кнопки «Перевести/Отмена» (для сумм от TBANK_CONFIRM_ABOVE). НЕ спрашивай «да/нет» заранее — вызывай, когда сумма и получатель известны; согласие даёт кнопка. Клиент без элиситации получает отказ «ПЛАТЁЖ НЕ ВЫПОЛНЕН» — деньги там не двигаются вообще.
transfer_requisiteswrite actionПеревод юрлицу или ИП по банковским реквизитам (БИК + счёт + ИНН). РЕАЛЬНЫЕ ДЕНЬГИ. Подтверждение — кнопка, не текст: тул сам покажет пользователю «Перевести/Отмена» (для сумм от TBANK_CONFIRM_ABOVE) ДО отправки. НЕ спрашивай «да/нет» заранее — покажи реквизиты и назначение (payment_qr для QR), потом вызывай; согласие даёт кнопка. Клиент без элиситации получает отказ «ПЛАТЁЖ НЕ ВЫПОЛНЕН» — деньги
transfer_sbp_resolvewrite actionРезолвинг получателя по номеру (read-only, БЕЗ денег) — счёт в Т-Банке И банки СБП. Возвращает маскированное имя + банк + isDefaultBank и готовый provider_fields. Используй ПЕРЕД transfer()/payment_commission() для НОВОГО (несохранённого) получателя. provider_fields вставь в payParameters.providerFields комиссии — не пиши 8276 руками.
travel_order_detailswrite actionДетали поездки по orderId из orders("путешествия") — отель, поезд, самолёт.
travel_payment_optionsЧем платить за поездку и сколько это стоит на самом деле: доступные счета, сколько бонусов можно списать, сколько кэшбэка вернётся, какие есть рассрочки.
travel_ticket_fileСохранить билет в файл: ЖД-бланк или маршрутные квитанции по перелёту. По умолчанию — в ~/.local/share/tbank-mcp/receipts/.
tripsПоездки — самолёты, поезда и отели одной лентой.
Public scan report
scanner v0.1.9 · 2026-09-21 · same rubric, same numbers if you re-run it
- Code scan12 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 12 days ago15/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
What the publisher says
From the T-Bank MCP repository's README, as published. We do not edit it. Read it on GitHub
T-Bank MCP
<!-- mcp-name: io.github.icyberdeveloper/tbank-mcp -->
T-Bank (Т-Банк) MCP — mobile banking API server for Claude Code, Codex, ChatGPT, and other MCP-capable agents.
The buttons register the tbank-mcp command — run pip install tbank-mcp first.
Features
concert tickets, train and flight booking, hotel search, orders, transfers (including payment by bank requisites, from a scanned invoice QR), messenger, investments
- 90 tools: accounts, cards, documents, operations, grocery ordering, cinema and
order, tickets, travel, transfer, bill pay, cards & documents, messenger, budget analysis, invest advisor, login
- A skill for every vertical, entered through the tbank router skill: grocery
OS ships and every .t-bank-app.ru host needs — that is most of the hosts this MCP talks to. Shipped in tbankmcp/ca/roots/, pinned by SHA-256. Leaf/intermediate rotation needs no action; a root rotation is a PEM drop into tbankmcp/ca/roots/ (or TBANKEXTRACA). The verify bundle is (re)generated from that material into ~/.local/share/tbank-mcp/bundle.pem; TBANKCABUNDLE relocates it — it is a write target, not a curated input, so extra roots go in via TBANKEXTRACA. Certificates are never learned from the network — see the header of tbankmcp/tls.py.
- Pinned CA trust: system store + the Russian Trusted Root CA (Минцифры), which no
- Grocery checkout: search → cart → order → pay (proven end-to-end)
- Secure login: password/PIN stay OUT of the LLM context (local CLI or env var)
Quick Install
As a Claude Code plugin (server + every skill in one step)
/plugin marketplace add icyberdeveloper/tbank-mcp
/plugin install tbank@tbank-mcp
/reload-pluginsThere is no store to be admitted to — a marketplace is just a git repo with a .claude-plugin/marketplace.json, and anyone can host one.
The venv and the Python dependencies are created on the server's first start by bin/tbank-mcp: a plugin manifest cannot run install steps (install is not a field in the schema), so the launcher does it once and every later start goes straight to the server. Only the grocery checkout needs a browser, and 150 MB is not something to download behind your back — install it yourself if you want that flow:
~/.claude/plugins/cache/tbank-mcp/tbank/*/.venv/bin/python -m playwright install chromiumFrom PyPI
pip install tbank-mcp
tbank-mcp-login +7XXXXXXXXXX # first login: SMS code + password in YOUR terminal, not the LLM
claude mcp add tbank -- tbank-mcp
tbank-mcp-skills # optional: the Claude Code skills, into ~/.claude/skillsShortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Install directly
claude mcp add tbank-mcp -- uvx tbank-mcp
T-Bank MCP: common questions
- Is T-Bank MCP server safe?
- Yes, by our scan: it is graded A (92/100). Read the T-Bank MCP safety report
- How do I install T-Bank MCP?
- It runs on your machine. Copy the Claude Code, Claude Desktop or Cursor config from the install section.
- Does T-Bank MCP need an API key?
- Not as far as the registry entry and our scan can tell: no credentials are declared or required.
- Is T-Bank MCP maintained?
- The last commit was 12 days ago (2026-09-09). The latest release is v0.2.2.
- What can I use instead of T-Bank MCP?
- Servers from other publishers that do the same job: BankMCP™ MCP server, Monapay MCP server and Agent402.Tools: pay-per-call web tools MCP server. Compare all T-Bank MCP alternatives.
Alternatives to T-Bank MCP
Same job from other publishers: the closest match first, then the best rated.
BankMCP™Read-only MCP server for your own bank accounts via Enable Banking. Self-hosted, one user.not reviewedEstablishedA- MonapayMONA Pay for AI agents: create VietQR, check bank transfers, webhooks & HMAC. Vietnam bank API, VNDnot reviewedGrowingB
- Agent402.Tools: pay-per-call web toolsAgentic Finance: 500+ agent tools, multi-chain USDC over x402 or MPP, free via PoW or card creditsnot reviewedEstablishedA
- BankstatementlyConvert PDF bank statements into structured transactions, accounts, and balances.not reviewedGrowingB
- BlockrunWeb search, deep research, prediction markets & crypto data for AI agents. Pay per call via x402.not reviewedEstablishedB