pypi sber-unofficial-mcpstdioMITupdated 1mo ago
Неофициальный MCP-сервер и async SDK для СберБанк Онлайн: вход, чтение продуктов и операций, перевод между своими продуктами — напрямую, client ↔ Сбербанк .
What can you do with sber mcp?
Неофициальный проект. Не связан с ПАО Сбербанк. Использование может нарушать условия сервиса и привести к блокировке аккаунта; работает с реальными деньгами и учётными данными. Никаких гарантий и никакой ответственности — DISCLAIMER.md · LICENSE.
Попробовать без банковского аккаунта
claude mcp add sber-demo -- uvx sber-unofficial-mcp --demo
Спросите агента «сколько у меня на картах» — он ответит по синтетическому портфелю. Демо не обращается ни к какому банку: ни логина, ни пароля, ни единого сетевого запроса. Так можно посмотреть, как это работает, ничем не рискуя.
Вход одной командой
Что это
Один проект — два равноправных способа использования; оба работают прямыми 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 |
Где живут секреты
- Прямо 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 mcp add sber -- sber-unofficial-mcp
{
"mcpServers": {
"sber": { "command": "sber-unofficial-mcp" }
}
}
[mcp_servers.sber]
command = "sber-unofficial-mcp"
{
"mcpServers": {
"sber": { "command": "sber-unofficial-mcp" }
}
}
Так сервер работает только на чтение. Чтобы разрешить перевод и переименование
карты, добавьте флаг: claude mcp add sber -- sber-unofficial-mcp --allow-writes.
sber_transfer_confirmдвигает реальные деньги. Не добавляйте её в авто-разрешения.
Как это выглядит у агента
Инструменты
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 enroll → sber-unofficial balances/operations (см. docs/SDK.ru.md).
Полный справочник (конструкторы, авторизация, сущности, ошибки, переводы, CLI) — docs/SDK.ru.md · SDK (EN); детали авторизации и доказательства — AUTHENTICATION.md.
Проверить, что всё на месте
- Модель защиты секретов и что именно её обеспечивает — док MCP §1 и §8.
- Нашли уязвимость — SECURITY.md (не через публичный issue).
- PR и issue приветствуются — CONTRIBUTING.md. Главное правило: никогда не коммитить реальные креды, куки, deviceprint, сессии, HAR и балансы.
Лицензия
MIT. Полный отказ от ответственности — DISCLAIMER.md. Неофициальный проект, не связан с ПАО Сбербанк; вся ответственность за использование — на пользователе.
Install
Add sber mcp to your client. Pick the one you use.
claude mcp add sber-unofficial-mcp -- uvx sber-unofficial-mcpcodex mcp add sber-unofficial-mcp -- uvx sber-unofficial-mcpamp mcp add sber-unofficial-mcp -- uvx sber-unofficial-mcp{
"mcpServers": {
"sber-unofficial-mcp": {
"command": "uvx",
"args": [
"sber-unofficial-mcp"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"sber-unofficial-mcp": {
"command": "uvx",
"args": [
"sber-unofficial-mcp"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
code --add-mcp '{"name":"sber-unofficial-mcp","command":"uvx","args":["sber-unofficial-mcp"]}'Or add the block manually to `.vscode/mcp.json` under `servers`.
{
"mcpServers": {
"sber-unofficial-mcp": {
"command": "uvx",
"args": [
"sber-unofficial-mcp"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"sber-unofficial-mcp": {
"command": "uvx",
"args": [
"sber-unofficial-mcp"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"sber-unofficial-mcp": {
"command": "uvx",
"args": [
"sber-unofficial-mcp"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"sber-unofficial-mcp": {
"type": "local",
"command": "uvx",
"args": [
"sber-unofficial-mcp"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"sber-unofficial-mcp": {
"command": {
"path": "uvx",
"args": [
"sber-unofficial-mcp"
]
}
}
}
}Add to your Zed `settings.json`.
uvx sber-unofficial-mcpRun `goose configure`, choose **Add Extension → Command-line Extension**, and paste this command.
Score
39 / 100
Incomplete
- Documentation25/25
- Maintenance19/25
- Trust13/20
- Capability0/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 26 days ago
- Has a release history
- Repository is not archived
- Licensed MIT
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 0 tool(s) documented
- Provides prompt templates
- Provides resources
- 12 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
Version history
| Versions | Published |
|---|---|
| 0.6.4Latest | Aug 5, 2026 |