Автономный MCP-сервис для интеграции BCS Trade API с LLM.
Сервис собирает рыночные и приватные данные, хранит их в PostgreSQL/pgvector и предоставляет инструменты через MCP.
- Рыночные потоки: котировки, стакан, сделки, свечи.
- Приватные данные: портфель, заявки, сделки, лимиты.
- Разделение данных по схемам:
bcs_market— рыночные данные;bcs_private— приватные данные.
- Семантический поиск по истории через embeddings (
llm_mcpdefault, Ollama fallback). - Логи решений и контекст для последующего анализа.
- Local-first подход: максимум вычислений на стороне БД/скриптов, минимум токенов LLM.
- Встроенные математические скрипты (
SMA/EMA/RSI, комиссии, сессии, риск). - Каталог скриптов и запуск серверных расчётов без вывода сырых рядов в LLM.
signals.runсохраняет heuristic сигнал и дополняетdirection.llm(enrichment без миграции схемы).
server/— Node.js MCP server (tools + HTTP endpoints)worker/— Python ingestion/streams/embeddingsdb/init/— SQL инициализация и схемы
Один контейнер (Dockerfile) содержит server + worker.
cd bcs-mcp
cp .env.example .env
# заполните BCS_REFRESH_TOKEN
docker compose -f compose.yml up -dПроверка:
curl http://127.0.0.1:3332/health
curl http://127.0.0.1:3332/toolsBCS_REFRESH_TOKEN— обязательный refresh-tokenBCS_CLIENT_ID—trade-api-readилиtrade-api-writeBCS_ALLOW_WRITE— включение торговых операцийBCS_DB_HOST— в compose:bcsdbBCS_DB_PORT— в compose внутри сети:5432MCP_PORT— порт MCP внутри контейнера (3333), наружу опубликован3332OLLAMA_EMBED_MODEL— модель embeddingsLLM_BACKEND=llm_mcp|ollama,LLM_MCP_BASE_URL,LLM_MCP_PROVIDER,LLM_BACKEND_FALLBACK_OLLAMA
market.*— выборки, latest, aggregate, snapshot, computeprivate.*— портфель/сделки/PnL/решенияselected_assets.*— watchlistembedding.*— очередь и поискscripts.*,signals.run— локальные расчётыbcs.*— прямые вызовы BCS REST
docs/bcs_api_reference.md— карта API и MCP-инструментовCHANGELOG.md— история измененийVERSION— текущая версия модуля
bcs-mcp/
├── server/
├── worker/
├── scripts/
├── db/init/
├── compose.yml
└── Dockerfile
- Версия в
VERSIONстрого в форматеYYYY.MM.x. - Любые изменения фиксируются в
CHANGELOG.md. - Секреты не хранятся в git: только
.env.example, рабочие значения в локальном.env. - Перед релизом выполняются
docker compose configи базовый smoke (/health,/tools).
- Торговые действия выполняются только при
BCS_ALLOW_WRITE=1. - Для HTTP MCP можно включить
MCP_HTTP_TOKEN. - Реальные секреты хранятся только в локальном
.env.