sber-mcp

sber-mcp

Unofficial MCP server for SberBank Online, enabling agents to read banking products and operations and perform transfers between own accounts directly via HTTP, with human confirmation for transfers. Also provides an async SDK and CLI for use without an agent.

Category
Visit Server

README

<!-- Generated by tools/render_brand.py from docs/brand/readme.ru.md — do not edit this file; edit the template and re-run the script. --> <p align="center"><img src="docs/img/ru/banner.svg" alt="SBER-MCP — неофициальный MCP-сервер и async SDK для СберБанк Онлайн" width="900"></p>

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

<p align="center"> <a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-1B7A2C.svg" alt="MIT"></a> <img src="https://img.shields.io/badge/python-3.11%2B-2C4E6B.svg" alt="Python 3.11+"> <a href="https://pypi.org/project/sber-unofficial-mcp/"><img src="https://img.shields.io/pypi/v/sber-unofficial-mcp?label=mcp&color=21A038" alt="PyPI · sber-unofficial-mcp"></a> <a href="https://pypi.org/project/sber-unofficial-sdk/"><img src="https://img.shields.io/pypi/v/sber-unofficial-sdk?label=sdk&color=21A038" alt="PyPI · sber-unofficial-sdk"></a> <a href="https://github.com/ex3lite/sber-mcp/actions/workflows/ci.yml"><img src="https://github.com/ex3lite/sber-mcp/actions/workflows/ci.yml/badge.svg" alt="CI"></a> </p>

<p align="center"> <b>Русский</b> · <a href="README.en.md">English</a> · <a href="README.zh.md">中文</a>  ·  <a href="docs/mcp/README.ru.md">документация MCP</a> · <a href="docs/SDK.ru.md">справочник SDK</a> </p>

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

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

<p align="center"><img src="docs/img/ru/hero-login.svg" alt="sber-unofficial-mcp login — интерактивный вход, профиль сохраняется с правами 0600" width="900"></p>

<p align="center"><sub>Интерактивно спросит логин, пароль, SMS-код и новый PIN, сам сгенерирует device-отпечаток и сохранит профиль в <code>0600</code>. Ни кук, ни HAR, ни ручного редактирования файлов.</sub></p>

Что это

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

SBER-MCP — агент (Claude, Codex, Cursor) читает продукты и операции и делает переводы между вашими продуктами с явным подтверждением человеком.<br><br>uv tool install sber-unofficial-mcp SBER-SDK — те же возможности в вашем Python-коде или из терминала, без агента и без MCP. Ставится с одним certifi+curl-cffi.<br><br>uv add sber-unofficial-sdk

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

<p align="center"><img src="docs/img/ru/flow.svg" alt="Поток данных: агент → MCP-сервер на вашей машине → Сбербанк" width="900"></p>

  • Прямо client ↔ Сбербанк. Никаких сторонних сервисов, прокси или облаков в цепочке — трафик идёт с вашей машины напрямую на сервера Сбербанка. Данные не проходят через инфраструктуру проекта, потому что её нет.
  • Секреты никогда не проходят через агента. Ни один инструмент не принимает и не возвращает логин, пароль, PIN, OTP, deviceprint, cookie или токен. Разовые секреты человек записывает в файл 0600, сервер читает его и удаляет до сетевого вызова. Подробно — док MCP §1.
  • Агент не управляет сессиями. Логин один раз — дальше 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. Подключите к агенту. Дальше сервер входит сам по сохранённому профилю.

<details open> <summary><b>Claude Code</b></summary>

claude mcp add sber -- sber-unofficial-mcp

</details>

<details> <summary><b>Claude Desktop</b> — <code>claude_desktop_config.json</code></summary>

{
  "mcpServers": {
    "sber": { "command": "sber-unofficial-mcp" }
  }
}

</details>

<details> <summary><b>Codex</b> — <code>~/.codex/config.toml</code></summary>

[mcp_servers.sber]
command = "sber-unofficial-mcp"

</details>

<details> <summary><b>Cursor</b> — <code>~/.cursor/mcp.json</code></summary>

{
  "mcpServers": {
    "sber": { "command": "sber-unofficial-mcp" }
  }
}

</details>

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

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

<p align="center"><img src="docs/img/ru/agent-chat.svg" alt="Агент отвечает, вызвав sber_products()" width="760"></p>

Инструменты

<p align="center"><img src="docs/img/ru/tools.svg" alt="14 инструментов MCP по группам" width="900"></p>

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.

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

<p align="center"><img src="docs/img/ru/status.svg" alt="sber-unofficial-mcp status" width="560"></p>

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

Контрибьюторы

<p align="center"><img src="docs/img/ru/contributors.svg" alt="Контрибьюторы по коммитам" width="900"></p>

<p align="center"><sub>По коммитам — из docs/data/contributors.json, обновляется в CI.</sub></p>

Лицензия

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

<p align="center"><sub>Графика и README генерируются: <code>python tools/render_brand.py</code> → <code>docs/img/</code> · версия 0.6.3</sub></p>

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured