Back to Discover

sber-mcp

connector

ex3lite

Unofficial SberBank Online: read accounts and operations, transfer with human approval.

View on GitHub
0 starsSynced Aug 5, 2026

Install to Claude Code

/plugin marketplace add ex3lite/sber-mcp

README

SBER-MCP — неофициальный MCP-сервер и async SDK для СберБанк Онлайн

Неофициальный MCP-сервер и async SDK для СберБанк Онлайн: вход, чтение продуктов и операций, перевод между своими продуктами — напрямую, client ↔ Сбербанк.

MIT Python 3.11+ PyPI · sber-unofficial-mcp PyPI · sber-unofficial-sdk CI

Русский · English · 中文  ·  документация MCP · справочник SDK

Неофициальный проект. Не связан с ПАО Сбербанк. Использование может нарушать условия сервиса и привести к блокировке аккаунта; работает с реальными деньгами и учётными данными. Никаких гарантий и никакой ответственности — DISCLAIMER.md · LICENSE.

Попробовать без банковского аккаунта

claude mcp add sber-demo -- uvx sber-unofficial-mcp --demo

Спросите агента «сколько у меня на картах» — он ответит по синтетическому портфелю. Демо не обращается ни к какому банку: ни логина, ни пароля, ни единого сетевого запроса. Так можно посмотреть, как это работает, ничем не рискуя.

Вход одной командой

sber-unofficial-mcp login — интерактивный вход, профиль сохраняется с правами 0600

Интерактивно спросит логин, пароль, SMS-код и новый PIN, сам сгенерирует device-отпечаток и сохранит профиль в 0600. Ни кук, ни HAR, ни ручного редактирования файлов.

Что это

Один проект — два равноправных способа использования; оба работают прямыми HTTP-запросами, без Chrome, WebDriver и HAR.

SBER-MCP — агент (Claude, Codex, Cursor) читает продукты и операции и делает переводы между вашими продуктами с явным подтверждением человеком.

uv tool install sber-unofficial-mcp
SBER-SDK — те же возможности в вашем Python-коде или из терминала, без агента и без MCP. Ставится с одним certifi+curl-cffi.

uv add sber-unofficial-sdk

Где живут секреты

Поток данных: агент → MCP-сервер на вашей машине → Сбербанк

  • Прямо client ↔ Сбербанк. Никаких сторонних сервисов, прокси или облаков в цепочке — трафик идёт с вашей машины напрямую на сервера Сбербанка. Данные не проходят через инфраструктуру проекта, потому что её нет.
  • Секреты никогда не проходят через агента. Ни один инструмент не принимает и не возвращает логин, пароль, PIN, OTP, deviceprint, cookie или токен. Разовые секреты человек записывает в файл 0600, сервер читает его и удаляет до сетевого вызова. Подробно — док MCP §1.
  • По умолчанию только чтение. Инструменты, меняющие счёт, при старте вообще не регистрируются — агент их не видит в своей схеме, а значит не может ни вызвать по ошибке, ни быть уговорённым их вызвать. Перевод и переименование карты включаются явным флагом --allow-writes.
  • Агент не управляет сессиями. Логин один раз — дальше sber_products() и прочее без session_id; активную сессию держит сервер.
  • Переводы под контролем человека. prepare рассчитывает, confirm исполняет только после явного «да»; токен прожигается до сети, повтор не отправляет деньги дважды.

Быстрый старт

1. Установка (команда sber-unofficial-mcp):

uv tool install sber-unofficial-mcp     # или: pipx install sber-unofficial-mcp

2. Вход одной командой. Интерактивно (скрытым вводом) спросит логин, пароль, SMS-код и новый PIN, сам сгенерирует device-отпечаток, сохранит профиль в 0600:

sber-unofficial-mcp login
sber-unofficial-mcp status      # проверить, что профиль сохранён

3. Подключите к агенту. Дальше сервер входит сам по сохранённому профилю.

Claude Code
claude mcp add sber -- sber-unofficial-mcp
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "sber": { "command": "sber-unofficial-mcp" }
  }
}
Codex~/.codex/config.toml
[mcp_servers.sber]
command = "sber-unofficial-mcp"
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "sber": { "command": "sber-unofficial-mcp" }
  }
}

Так сервер работает только на чтение. Чтобы разрешить перевод и переименование карты, добавьте флаг: claude mcp add sber -- sber-unofficial-mcp --allow-writes.

sber_transfer_confirm двигает реальные деньги. Не добавляйте её в авто-разрешения.

Как это выглядит у агента

Агент отвечает, вызвав sber_products()

Инструменты

14 инструментов MCP по группам

14 инструментов: sber_setup_status, sber_auth_start/continue, sber_auth_resend_otp, sber_session_info/close, sber_products/operations, sber_operations_page, sber_card_rename, sber_transfer_start/prepare/confirm, sber_transfer_resolve_uncertain. Полный справочник, конверт результата и next_action, runbook для агента — в документации MCP.

Использовать как SDK или CLI (без агента)

MCP-сервер — тонкая обёртка над sber_unofficial, самостоятельным async SDK (SRP-логин, RSA-OAEP шифрование PIN, двухфазный перевод, PIN-релогин без браузера). SDK не тянет зависимости MCP:

uv add sber-unofficial-sdk              # или: pip install sber-unofficial-sdk

Пайплайн целиком в коде — без CLI и без браузера. Deviceprint генерируется самим SDK. Шаг 1 — первый вход, один раз (полный пример: examples/first_login.py):

from sber_unofficial import (AsyncPrimaryAuth, PinOtpRequired,
                             generate_deviceprint, generate_antifraud_deviceprint)

dp = generate_deviceprint()                                    # без браузера
auth = AsyncPrimaryAuth.new(deviceprint=dp,
                            antifraud_deviceprint=generate_antifraud_deviceprint(dp))
async with auth:
    try:
        bundle = await auth.login(login, password, store_login=True)
    except PinOtpRequired:                                     # Сбер прислал SMS
        bundle = await auth.confirm_otp(sms_code)
    if bundle is None:                                         # нужен новый PIN
        bundle = await auth.create_pin("12345")
    bundle.save("profile.json")                                # атомарно, mode 0600

Шаг 2 — дальше просто читаете по PIN (пример: examples/quickstart.py):

from sber_unofficial import AsyncSberClient

async with await AsyncSberClient.from_pin_profile("profile.json", pin="12345") as sber:
    portfolio = await sber.portfolio()                         # карты + счета одним запросом
    for card in portfolio.cards:
        print(card.name, card.last4, card.balance)             # Money(amount, currency)
    for op in await sber.operations.list(limit=20):
        print(op.date, op.amount, op.description)

Опционально — если удобнее терминал, у SDK есть свой CLI без агента: sber-unofficial enrollsber-unofficial balances/operations (см. docs/SDK.ru.md).

Полный справочник (конструкторы, авторизация, сущности, ошибки, переводы, CLI) — docs/SDK.ru.md · SDK (EN); детали авторизации и доказательства — AUTHENTICATION.md.

Проверить, что всё на месте

sber-unofficial-mcp status

  • Модель защиты секретов и что именно её обеспечивает — док MCP §1 и §8.
  • Нашли уязвимость — SECURITY.md (не через публичный issue).
  • PR и issue приветствуются — CONTRIBUTING.md. Главное правило: никогда не коммитить реальные креды, куки, deviceprint, сессии, HAR и балансы.

Лицензия

MIT. Полный отказ от ответственности — DISCLAIMER.md. Неофициальный проект, не связан с ПАО Сбербанк; вся ответственность за использование — на пользователе.

Графика и README генерируются: python tools/render_brand.pydocs/img/ · версия 0.6.4

Rendered live from ex3lite/sber-mcp's GitHub README — not stored, always reflects the source repo.

1 Install Method

NameDescriptionCategorySource
pypi packageInstall via pypi (stdio transport)mcp-serversber-unofficial-mcp

0 Comments

Login required
Log in to post a comment or update on this repo.

No comments yet — be the first to share an update.