Skip to main content
Glama
ikolcov

T-Bank Personal MCP

by ikolcov

T-Bank Personal MCP

Минимальный stdio MCP для личных счетов физлица: счета, остатки и история операций. Использует непубличный API мобильного банка. Это не официальный T-API для сторонних разработчиков. Формат мобильного API может измениться; работоспособность с живым аккаунтом пока не проверена.

Инструменты

  • list_accounts() — счета и остатки одним запросом; без реквизитов карт.

  • get_balances(account_id?) — остатки всех счетов или одного.

  • list_operations(start, end, account_id?, limit=100, offset=0) — операции за период до 31 дня, даты ISO 8601 с часовым поясом. Пример: 2026-10-01T00:00:00+03:00 → 2026-10-06T23:59:59+03:00.

Каждый вызов делает один запрос. Нет платежных инструментов, универсального HTTP-инструмента, фонового опроса, keepalive, автоматического повторения запросов или обновления сессии. При истечении сессии нужен новый локальный вход. Суммы с дробной частью читаются как строки, без округления через float.

История фильтруется и разбивается на страницы локально. truncated и next_offset обозначают обрезку выдачи MCP, matching_received — количество подходящих операций в полученном ответе банка. coverage=bank_completeness_unknown означает, что полнота ответа самого банка не подтверждена. Запрос следующей страницы снова обращается к банку: это не фиксированный снимок. На границах интервалов возможны дубли, учитывайте id операций. Пустой результат по account_id не доказывает существование счёта — id нужно брать из list_accounts.

Related MCP server: becu-mcp

Куда идут запросы

Процесс

Разрешённые запросы

MCP

GET https://api.t-bank-app.ru/v1/accounts_light

MCP

GET https://api.t-bank-app.ru/v1/operations

Локальный вход

GET https://id.t-bank-app.ru/auth/authorize

Локальный вход

POST https://id.t-bank-app.ru/auth/step

Локальный вход

POST https://id.t-bank-app.ru/auth/token/mobile

Список фиксирован в коде. Хосты, пути и методы нельзя переопределить через аргументы MCP, файл сессии или переменные окружения. HTTP-редиректы запрещены, прокси из окружения отключены. TLS проверяет имя сервера и цепочку до локально включённого Russian Trusted Root CA с проверкой SHA-256. Системное хранилище сертификатов не меняется, сертификаты из сети не скачиваются.

У MCP нет телеметрии, аналитики, автообновления или стороннего backend. DNS-разрешение имён выполняет ОС через настроенный DNS-сервер. Это ограничение HTTP-клиента, а не системный firewall для всей машины. Результаты инструментов передаются ChatGPT и могут попасть в историю чата. Условие «только банк» относится к исходящим HTTP-запросам нашего сервера и CLI, а не к сетевой работе приложения ChatGPT.

Установка и вход

Python 3.10+. Единственная прямая runtime-зависимость — официальный Python MCP SDK (mcp). Его транзитивные зависимости зафиксированы в uv.lock; SDK включает и HTTP-компоненты, хотя здесь используется только stdio. Банковский клиент и команда входа используют стандартную библиотеку Python.

uv sync --frozen
.venv/bin/python login.py

Установка зависимостей обращается в реестр Python-пакетов; она выполняется отдельно от работы MCP. Desktop запускает уже установленный Python напрямую, без uv run/uvx и без скачивания пакетов при старте.

Без uv: python3 -m venv .venv, затем .venv/bin/python -m pip install .. В Windows интерпретатор находится в .venv\Scripts\python.exe.

Запускайте login.py самостоятельно в терминале. Телефон вводится интерактивно, SMS-код, пароль и PIN — скрыто, только если банк запросил соответствующий шаг. Не отправляйте эти данные в чат. Неизвестный шаг авторизации останавливает вход.

Сессия сохраняется атомарно в ~/.local/share/tbank-personal-mcp/session.json (0600 на POSIX). Путь можно изменить переменной TBANK_SESSION, одинаковой для CLI и сервера. В Windows доступ к файлу определяется ACL пользовательского профиля. Сохраняются только access token, мобильная сессия, id устройства и три допустимых служебных cookie. Пароль, SMS-код, refresh token и SSO_SESSION не сохраняются. Сервер перечитывает файл при каждом вызове — после нового входа перезапуск не нужен. Банковские ответы и операции на диск не записываются.

Подключение к ChatGPT Desktop

Официальная инструкция MCP: Settings → MCP servers → Add server, транспорт STDIO.

  • Command: /absolute/path/tbank-mcp/.venv/bin/python

  • Arguments: /absolute/path/tbank-mcp/server.py

  • Environment: TBANK_SESSION, только если выбран нестандартный путь.

Пути должны существовать на машине, где исполняется MCP. Пример записи в ~/.codex/config.toml для общего Codex host Desktop:

[mcp_servers.tbank_personal]
command = "/absolute/path/tbank-mcp/.venv/bin/python"
args = ["/absolute/path/tbank-mcp/server.py"]

После добавления нажмите Restart. Рабочая директория не важна. Токен T-Invest API не нужен. Настройки Desktop этот проект автоматически не меняет.

Проверки

.venv/bin/python -m unittest discover -s tests -v

Синтетические ответы, без реальных банковских данных: разрешённые адреса и методы, редиректы, прокси, TLS, точность денег, ошибки, права файла сессии, шаги входа, периоды и страницы истории, настоящий stdio handshake при запрещённых сетевых соединениях. Это не заменяет проверку входа и чтения на живом аккаунте.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Exposes Monobank personal account data through MCP tools, allowing users to fetch client info, accounts, and jars. It also enables retrieving account statements for specific time periods.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that provides read-only access to your BECU accounts via browser automation, enabling querying of account balances and transaction history conversationally.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Read-only MCP server for FinTS/HBCI banking; enables account information retrieval such as balances and transactions via PIN-TAN.
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server that exposes banking data (connections, accounts, balances, transactions) and agent skills, allowing AI agents to query and refresh financial data via stdio.
    78 npm
    6
    Apache 2.0