bcs-mcp
Enables AI assistants to interact with BCS brokerage accounts for portfolio viewing, quotes, order book, candles, position analysis, and rebalancing planning using natural language, with read-only mode by default and optional trade execution with confirmation.
README
bcs-mcp
Твой портфель БКС Мир инвестиций — в диалоге с AI.
MCP-сервер, который подключает Claude (Claude Code, Claude Desktop — и любой другой MCP-клиент) к BCS Trade API. Смотри портфель, котировки, стакан, свечи, анализируй позиции и планируй ребалансировку — обычными фразами, на русском.
Это не торговый робот и не «сигналы». Решения всегда принимаешь ты — сервер лишь даёт модели безопасный доступ к данным твоего брокерского счёта.
Собран по образу и подобию t-invest-mcp (аналогичный сервер для Т-Инвестиций) — та же модель безопасности и файловых выгрузок.

Почему это безопасно
- Read-only по умолчанию. Торговые операции даже не регистрируются, пока ты их явно не включишь. Достаточно токена «только для чтения».
- Сделки — только с твоего подтверждения. Если включишь торговлю, перед каждой заявкой сервер показывает диалог «Купить N шт. X?» — без явного «да» заявка не уйдёт.
- У БКС нет песочницы — поэтому торговый режим включай осознанно: каждая заявка реальная.
- Токен живёт в переменной окружения и никогда не попадает в код, логи и ответы сервера. Быстрый старт ниже кладёт его в конфиг клиента — для постоянного использования держи токен в системном keychain, рецепт: docs/secure-token.md.
Быстрый старт (5 минут)
Нужен Node.js ≥ 22 и брокерский счёт в БКС.
-
Токен. Войди в веб-версию БКС Мир инвестиций → «Профиль» → «Управление счетами» → нажми на брокерский счёт → «Токены API» → «Выпустить токен», тип «Только для чтения». Токен показывается один раз; живёт 90 дней. Токен привязан ровно к одному счёту.
-
Подключение к Claude Code — одной командой, установка не нужна (пакет
bcs-mcpподтянется из npm):claude mcp add bcs \ -e BCS_REFRESH_TOKEN=<ваш-токен> \ -- npx -y bcs-mcpДля Claude Desktop тот же блок добавляется в Settings → Developer → Edit Config. Этот JSON подходит и любому другому MCP-клиенту (Cursor, VS Code, Windsurf и др.) — меняется только место, куда его вписать:
{ "mcpServers": { "bcs": { "command": "npx", "args": ["-y", "bcs-mcp"], "env": { "BCS_REFRESH_TOKEN": "<ваш-токен>" } } } }<details><summary>Вариант из исходников (для разработки)</summary>
git clone https://github.com/human-turn/bcs-mcp && cd bcs-mcp npm install && npm run build # далее в командах выше вместо "npx -y bcs-mcp" → "node /path/to/bcs-mcp/dist/index.js"</details>
В такой минимальной конфигурации сервер строго read-only: смотреть и анализировать можно всё, торговать — нельзя (торговые операции даже не регистрируются). Торговля и файловые выгрузки включаются переменными в
env— см. Переменные окружения, каждая выключена по умолчанию. -
Проверка: спроси «покажи мой портфель БКС».
Готовое из коробки: slash-команды
В Claude Code появляются как /bcs:<имя>:

| Команда | Что делает |
|---|---|
portfolio_review |
Полный обзор: структура, концентрация, риски |
rebalance_check |
Дрейф от целевых долей + план сделок в лотах (без исполнения) |
invest_cash <сумма> |
Пришла зарплата: куда докупить, чтобы приблизиться к целям |
bond_picker <сумма> <горизонт> |
Скрининг каталога облигаций: рейтинг, купон, доходность, лесенка |
fire_progress |
Прогресс к целям (FIRE) из portfolio-target.json: прогноз, требуемый взнос |
position_deep_dive <тикер> |
Разбор бумаги: карточка, динамика, моя позиция |
trades_review [дней] |
Мои сделки за период: обороты, средние цены, комиссии |
weekly [сумма] |
Недельный ритуал: дайджест + план докупок |
quarterly |
Обзор портфеля + проверка ребалансировки |
feedback [тема] |
Репорт о проблеме для разработчиков (без токена и личных данных) |
Все команды анализируют и предлагают — ни одна не совершает сделок сама.
Целевые доли для ребалансировки задаются файлом portfolio-target.json в корне проекта
(эталон — MCP-ресурс bcs://portfolio-target/example, формат совместим с t-invest-mcp).
Дивиденды и купоны BCS Trade API не отдаёт — рядом можно подключить публичный moex-mcp (MOEX ISS): команды это учитывают.
Переменные окружения
| Переменная | Значение | Описание |
|---|---|---|
BCS_REFRESH_TOKEN |
обязательна | Refresh-токен из ЛК БКС (90 дней, привязан к счёту) |
BCS_ALLOW_TRADING |
true/false |
Регистрирует place/edit/cancel_order. Нужен токен «для торговли и чтения». РЕАЛЬНЫЕ деньги! |
BCS_CONFIRM |
off |
Отключает elicitation-подтверждение сделок (по умолчанию включено; выключать не рекомендуется — песочницы нет) |
BCS_OUTPUT_DIR |
путь | Корень для файловых выгрузок outputPath (по умолчанию — cwd сервера) |
Tools
Read-only (всегда):
| Tool | Описание |
|---|---|
get_portfolio |
Портфель: позиции с P&L, долями, стоимостью в RUB/USD/EUR; итоги по классам (срез term, по умолчанию T0) |
get_limits |
Денежные и депо-лимиты: свободные средства по валютам (free = quantity − locked; снимок на начало дня) |
get_quotes |
Котировки (батч): bid/offer, last, open/high/low, изменение за день |
get_order_book |
Стакан L2 (глубина 20) |
get_recent_trades |
Лента обезличенных сделок: новейшие limit (расширяемое окно), период from/to; полный период в файл — через outputPath |
get_candles |
Свечи OHLCV (M1…MN); с outputPath — весь период чанками |
find_instrument |
Карточки по тикерам/ISIN: лот, classCode, купоны, дивдоходность, рейтинги (одна карточка на бумагу; allBoards — все площадки) |
get_instruments_by_type |
Каталог инструментов типа (акции/облигации/ETF/фьючерсы…), пагинация |
get_trading_schedule |
Сессии инструмента на сегодня (МСК, отсортированы) |
get_trading_status |
Открыт/закрыт инструмент сейчас + кросс-чек с расписанием (warning при расхождении) |
get_discounts |
Маржинальные дисконты (long/short) |
get_orders |
Список заявок (данные с 26.01.2026) |
get_order_status |
Статус заявки по UUID или биржевому номеру |
get_trades |
Мои исполненные сделки (данные с 26.01.2026) |
get_server_info |
Диагностика сервера (для фидбэка) |
Торговые (BCS_ALLOW_TRADING=true): place_order, edit_order, cancel_order.
Важно: количество в заявках — в штуках, не в лотах (лот — lotSize из find_instrument).
Выгрузка в файл
Каждый read-tool принимает outputPath (путь относительно BCS_OUTPUT_DIR) и
outputFormat (json/csv). Сервер пишет результат на диск, в диалог возвращает
summary. Для get_candles и get_instruments_by_type это включает выкачивание
полного периода/каталога чанками. Запись возможна строго внутри корня выгрузок.
Ограничения BCS Trade API
- Нет истории денежных операций (полученные дивиденды, комиссии, пополнения) — только биржевые сделки. XIRR и налоговые отчёты поэтому невозможны.
- Нет песочницы.
- Один токен = один счёт (несколько счетов — несколько инстансов сервера).
- Списки заявок/сделок — только с 26.01.2026.
Disclaimer
Не является индивидуальной инвестиционной рекомендацией. Все торговые решения вы
принимаете самостоятельно. place_order оперирует реальными деньгами — используйте
BCS_ALLOW_TRADING=true осознанно и держите подтверждение сделок включённым.
License
Apache 2.0
Recommended Servers
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.
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.
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.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
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.
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.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.