MCP Servers

A collection of Model Context Protocol servers, templates, tools and more.

T
Tradermcprootlord

MCP server by baskaev

Created 5/12/2026
Updated about 4 hours ago
Repository documentation and setup instructions

RootLord Trader Workspace

RootLord Trader Workspace - набор локальных модулей для сбора рыночных данных, подготовки датасетов, обучения торговых моделей, оценки риска, backtest, paper/sandbox-журнала и выдачи этих данных через локальный HTTP API для AI-агента RootLord.

Репозиторий хранит код, тесты, конфиги-примеры и описание контрактов. Секреты, browser/session state, parquet-данные, модели, отчеты, логи и runtime-файлы по умолчанию хранятся вне проекта: C:\Users\tamu\.rootlord\TraderMcpRootlord\....

Для Чего Нужен

Проект был нужен как локальная инфраструктура для торгового агента:

  • собрать исторические свечи, инструменты, новости, macro и realtime-данные;
  • привести разные источники к стабильным parquet/json/csv артефактам;
  • построить базовые, microstructure, news impact, gradient boosting и neural модели;
  • посчитать risk, backtest и model evaluation;
  • вести paper/sandbox journal без live trading;
  • дать агенту единый локальный API вместо прямого доступа к файлам и CLI.

Это исследовательский и sandbox-инструмент. Live trading в API не реализован и намеренно не включен.

Структура

| Модуль | Каталог | Назначение | | --- | --- | --- | | market-history | market-history/ | historical OHLCV candles | | instrument-master | instrument-master/ | instrument reference, ticker mapping, corporate actions | | realtime-stream | realtime-stream/ | raw market stream, orderbook, trades, realtime candles | | macro-regime | macro-regime/ | macro series and market regime features | | news-intelligence | news-intelligence/ | news, fundamentals, sentiment, event mapping | | paper-sandbox-journal | paper-sandbox-journal/ | paper orders, trades, PnL, Tinkoff Sandbox helpers | | daily-baseline-model | daily-baseline-model/ | first daily forecasting baseline | | microstructure-model | microstructure-model/ | intraday microstructure dataset and model | | risk-engine | risk-engine/ | risk metrics and position sizing | | backtest-engine | backtest-engine/ | vectorized and event-driven backtests | | news-impact-model | news-impact-model/ | news impact dataset and predictions | | decision-engine | decision-engine/ | meta-signal aggregation and final decision layer | | gradient-boosting-model | gradient-boosting-model/ | stronger classical ML forecast model | | model-evaluation | model-evaluation/ | model comparison and forward-test metrics | | neural-trader | neural-trader/ | neural sequence forecast model | | trader-core | trader_core/ | shared contracts, artifact registry, schemas, storage helpers | | trader-api | trader_api/ | local HTTP tools API for RootLord | | workspace-tools | workspace_tools/ | workspace status, validation and readiness helpers |

Имена вроде market-history, decision-engine, neural-trader теперь являются и названиями модулей, и именами каталогов, и project keys для workspace/API команд.

Каждый модуль автономен: у него свои README.md, main.py, requirements.txt, тесты и package-код в trader_data_hub/.

Архитектурное Правило

Проекты связаны через опубликованные артефакты, а не через прямой импорт внутреннего кода друг друга.

Разрешено:

project -> trader_core
project -> parquet/json/csv artifact from another project

Не разрешено:

project -> internal module of another module

Пути к межпроектным артефактам централизованы в trader_core/artifact_registry.py.

Что Не Хранится В Проекте И Git

По умолчанию рабочее состояние уходит в домашнюю папку:

C:\Users\tamu\.rootlord\TraderMcpRootlord\<module>\data
C:\Users\tamu\.rootlord\TraderMcpRootlord\<module>\models
C:\Users\tamu\.rootlord\TraderMcpRootlord\<module>\reports
C:\Users\tamu\.rootlord\TraderMcpRootlord\<module>\.runs

Секреты можно хранить здесь:

C:\Users\tamu\.rootlord\secrets\TraderMcpRootlord.env
C:\Users\tamu\.rootlord\secrets\TraderMcpRootlord\<module>.env

Для совместимости также читаются старые приватные env-пути C:\Users\tamu\.rootlord\secrets\traderModelsAndData.env и C:\Users\tamu\.rootlord\secrets\traderModelsAndData\<module>.env, но новые секреты лучше хранить под именем TraderMcpRootlord.

Project-local .env больше не читается автоматически. Если агент, браузер или сторонняя библиотека случайно создаст cookies/session/profile внутри repo, это поймает:

python workspace.py security-check

Для работы из этой папки с дополнительной защитой запускай shell или команду через guard-скрипт:

.\scripts\private-workspace.ps1
.\scripts\private-workspace.ps1 codex
.\scripts\private-workspace.ps1 python workspace.py status

Он выставляет приватные пути вне repo:

ROOTLORD_HOME         -> %USERPROFILE%\.rootlord
ROOTLORD_WORKSPACE_ID -> TraderMcpRootlord
ROOTLORD_STATE_ROOT   -> %USERPROFILE%\.rootlord\TraderMcpRootlord
ROOTLORD_SECRETS_ROOT -> %USERPROFILE%\.rootlord\secrets
CODEX_HOME            -> %USERPROFILE%\.rootlord\agent-home\codex
XDG_*                 -> %USERPROFILE%\.rootlord\agent-home\...

Это best-effort изоляция для CLI и browser automation tools, которые уважают эти переменные окружения. Для программ, которые игнорируют env и явно пишут в current working directory, защитой остается security-check и Git pre-commit guard.

Один раз после git init включи Git guard:

python workspace.py install-guards

После этого git commit будет падать, если в repo появились секреты, cookies, browser/session profiles, data, models, reports или .runs.

Корневой .gitignore исключает:

  • .env, .env.*, secrets.env, ключи и credentials;
  • .rootlord_agent/, .runs/, browser profiles, cookies, sessions, *.log;
  • __pycache__/, *.pyc, .pytest_cache/, virtualenv;
  • data/raw, data/bronze, data/silver, data/gold;
  • models, reports;
  • *.parquet, *.pkl, *.joblib, *.onnx;
  • архивы *.tgz, *.zip, *.tar*;
  • локальные one-off ops scripts с machine-specific путями.

Если нужно восстановить результаты работы, их надо пересобрать локально командами проектов.

Требования

Минимально:

  • Python 3.11+ или 3.12+;
  • pip или uv;
  • PowerShell на Windows;
  • Git.

Для отдельных модулей нужны дополнительные зависимости из их requirements.txt. Например:

  • pandas, pyarrow, numpy для parquet/data pipeline;
  • fastapi, uvicorn, httpx для API;
  • scikit-learn, lightgbm, torch для моделей;
  • tinkoff-investments только для Tinkoff/Sandbox-интеграций.

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

Из корня репозитория:

python workspace.py status

Если зависимости не установлены глобально, удобнее запускать через uv:

uv run --with pandas --with pyarrow python workspace.py status

Проверить workspace и записать отчет:

python workspace.py report

Отчет будет создан локально:

C:\Users\tamu\.rootlord\TraderMcpRootlord\_workspace\reports\workspace_status.md

Папка _workspace\reports находится вне repo.

Переменные Окружения

Реальные значения держи только в shell env или в приватных env-файлах под C:\Users\tamu\.rootlord\secrets\.... Не создавай .env внутри repo.

Частые переменные:

ROOTLORD_HOME                     приватная домашняя папка RootLord, default ~/.rootlord
ROOTLORD_WORKSPACE_ID             стабильное имя приватного workspace, default TraderMcpRootlord
ROOTLORD_STATE_ROOT               приватная папка runtime-данных, default ~/.rootlord/TraderMcpRootlord
ROOTLORD_SECRETS_ROOT             приватная папка env-секретов, default ~/.rootlord/secrets
TINKOFF_API_TOKEN                 token для Tinkoff API/Sandbox
TINKOFF_API_TARGET                sandbox или production endpoint для SDK, где поддерживается
TRADER_DATA_ROOT                  кастомная папка данных, должна быть вне repo
TRADER_MODELS_ROOT                кастомная папка моделей, должна быть вне repo
TRADER_REPORTS_ROOT               кастомная папка отчетов, должна быть вне repo
TRADER_HTTP_TIMEOUT               timeout HTTP-коннекторов
TRADER_API_HOST                   host локального API, default 127.0.0.1
TRADER_API_PORT                   port локального API, default 8765
TRADER_API_ALLOW_JOBS             включает API job execution, default 0
TRADER_API_ALLOW_SANDBOX_ORDERS   включает sandbox order endpoint, default выключено
TRADER_WORKSPACE_ROOT             корень workspace для API, если запускаешь API не из repo root
ROOTLORD_ALLOW_PROJECT_STATE      аварийный opt-in для project-local state, default 0

Пример приватного env-файла:

New-Item -ItemType Directory -Force "$env:USERPROFILE\.rootlord\secrets" | Out-Null
notepad "$env:USERPROFILE\.rootlord\secrets\TraderMcpRootlord.env"

Внутри файла:

TINKOFF_API_TOKEN=...

Управление Workspace

Корневой CLI:

python workspace.py status
python workspace.py status --json
python workspace.py report
python workspace.py validate
python workspace.py validate --projects instrument-master,decision-engine
python workspace.py security-check
python workspace.py install-guards
python workspace.py production-readiness
python workspace.py all
python workspace.py all --projects instrument-master,decision-engine

Что делают команды:

  • status - проверяет наличие ожидаемых артефактов по всем проектам;
  • status --json - то же самое в JSON;
  • report - пишет markdown-отчет в reports/workspace_status.md;
  • validate - запускает validation-команды проектов;
  • validate --projects instrument-master,decision-engine - валидирует только выбранные проекты;
  • security-check - падает, если внутри repo появились .env, cookies, browser/session profiles, data, models, reports или .runs;
  • install-guards - подключает versioned Git pre-commit hook из .githooks/;
  • production-readiness - пишет readiness-отчет;
  • all - делает status report и validation одним запуском.

Типовой Порядок Сборки

Базовый pipeline:

instrument-master
  -> market-history
  -> realtime-stream
  -> macro-regime
  -> news-intelligence
  -> paper-sandbox-journal

daily-baseline-model
  -> gradient-boosting-model
  -> neural-trader
  -> model-evaluation

risk-engine
backtest-engine
news-impact-model
decision-engine

Практически:

cd instrument-master
python main.py --help

cd ../market-history
python main.py --help

cd ..
python workspace.py validate --projects instrument-master,market-history

CLI workspace.py --projects принимает новые имена модулей. Старые числовые IDs временно мапятся на новые имена для совместимости. У каждого модуля подробные команды описаны в его локальном README.md.

Модули

market-history (market-history/)

Назначение: загрузка исторических свечей MOEX/Tinkoff, нормализация OHLCV, запись model-ready parquet.

Основные артефакты:

market-history/data/gold/model_ready/candles.parquet
market-history/reports/candles_quality_report.md

Проверка:

cd market-history
python main.py validate-candles --ticker SBER --interval 1d

instrument-master (instrument-master/)

Назначение: справочник инструментов, ticker/FIGI/UID mapping, corporate actions.

Основные артефакты:

instrument-master/data/gold/symbol_master.parquet
instrument-master/data/gold/corporate_actions.parquet
instrument-master/reports/instrument_master_quality_report.md

Проверка:

cd instrument-master
python main.py validate

realtime-stream (realtime-stream/)

Назначение: сбор raw stream events, orderbook/trades, resample в 1m realtime candles.

Основные артефакты:

realtime-stream/data/raw/stream_events/...
realtime-stream/data/silver/realtime_candles/...
realtime-stream/reports/realtime_stream_quality_report.md

Проверка:

cd realtime-stream
python main.py validate --date 2026-05-08 --warn-only

macro-regime (macro-regime/)

Назначение: macro daily series, market regime features, macro quality checks.

Основные артефакты:

macro-regime/data/gold/macro_daily.parquet
macro-regime/data/gold/market_regime_features.parquet
macro-regime/reports/macro_quality_report.md

news-intelligence (news-intelligence/)

Назначение: сбор RSS/news/fundamentals, очистка, sentiment/event classification, ticker mapping.

Основные артефакты:

news-intelligence/data/silver/news_events.parquet
news-intelligence/reports/news_quality_report.md
news-intelligence/reports/news_event_study.md

paper-sandbox-journal (paper-sandbox-journal/)

Назначение: paper signals, paper orders, paper trades, PnL report и Tinkoff Sandbox helpers.

Основные артефакты:

paper-sandbox-journal/data/gold/signals.parquet
paper-sandbox-journal/data/gold/paper_orders.parquet
paper-sandbox-journal/data/gold/paper_trades.parquet
paper-sandbox-journal/reports/sandbox_journal_quality_report.md

Sandbox-заявки специально выключены по умолчанию. Для API endpoint order нужен отдельный guard:

$env:TRADER_API_ALLOW_SANDBOX_ORDERS="1"

daily-baseline-model (daily-baseline-model/)

Назначение: первый daily forecasting baseline по MOEX equities.

Артефакты:

daily-baseline-model/data/silver/baseline_daily_dataset.parquet
daily-baseline-model/models/baseline_daily/model.pkl
daily-baseline-model/models/baseline_daily/metrics.json

microstructure-model (microstructure-model/)

Назначение: microstructure dataset и intraday signal model на realtime/orderbook/trade данных.

Артефакты:

microstructure-model/data/silver/microstructure_dataset.parquet
microstructure-model/data/gold/microstructure_signals.parquet
microstructure-model/models/microstructure_1m/model.pkl

risk-engine (risk-engine/)

Назначение: volatility, drawdown, position sizing, portfolio risk estimates.

Артефакты:

risk-engine/data/gold/risk_estimates.parquet
risk-engine/reports/risk_report.md

backtest-engine (backtest-engine/)

Назначение: vectorized/event-driven backtest, costs, slippage, equity curve, trades.

Артефакты:

backtest-engine/data/gold/backtest_equity.parquet
backtest-engine/data/gold/backtest_trades.parquet
backtest-engine/reports/backtest_report.md

news-impact-model (news-impact-model/)

Назначение: dataset и модель влияния новостей на последующую доходность.

Артефакты:

news-impact-model/data/silver/news_impact_dataset.parquet
news-impact-model/models/news_impact/model.pkl
news-impact-model/models/news_impact/impact_predictions.parquet

decision-engine (decision-engine/)

Назначение: объединение сигналов моделей, risk, news и regime features в итоговые meta-signals.

Артефакты:

decision-engine/data/gold/meta_signals.parquet
decision-engine/reports/decision_report.md

gradient-boosting-model (gradient-boosting-model/)

Назначение: сильная classical ML модель поверх baseline dataset.

Артефакты:

gradient-boosting-model/data/silver/gradient_boosting_dataset.parquet
gradient-boosting-model/models/gradient_boosting/model.pkl
gradient-boosting-model/data/gold/gb_signals.parquet

model-evaluation (model-evaluation/)

Назначение: сравнение моделей, common-window evaluation, sensitivity по assumptions.

Артефакты:

model-evaluation/data/gold/model_evaluation.parquet
model-evaluation/data/gold/model_evaluation_common.parquet
model-evaluation/data/gold/model_evaluation_sensitivity.parquet
model-evaluation/reports/model_evaluation_report.md

neural-trader (neural-trader/)

Назначение: neural sequence model для прогнозов и neural signals.

Артефакты:

neural-trader/data/silver/neural_trader_dataset.parquet
neural-trader/models/neural_trader/model.pkl
neural-trader/models/neural_trader/model.pt
neural-trader/data/gold/neural_signals.parquet

Локальный Tools API

API нужен, чтобы RootLord или другой агент мог обращаться к workspace через HTTP:

  • читать инструменты, свечи, macro, news, fundamentals;
  • получать predictions, risk, backtest, evaluation;
  • читать и писать paper journal;
  • работать с Tinkoff Sandbox helpers;
  • запускать allowlist jobs, если явно включено.

Запуск:

uv run --isolated --with fastapi --with uvicorn --with pandas --with pyarrow python -m trader_api.main

Адреса после запуска:

Swagger UI:      http://127.0.0.1:8765/docs
Health:          http://127.0.0.1:8765/api/v1/health
Tools manifest:  http://127.0.0.1:8765/api/v1/tools/manifest
OpenAPI:         http://127.0.0.1:8765/openapi.json

Smoke test:

uv run --isolated --with fastapi --with httpx --with pandas --with pyarrow python -m trader_api.smoke_test

Основные API Endpoints

Workspace:

GET /api/v1/health
GET /api/v1/projects
GET /api/v1/artifacts
GET /api/v1/artifacts/{name}/summary
GET /api/v1/tools/manifest

Market data:

GET /api/v1/instruments
GET /api/v1/instruments/{ticker}
GET /api/v1/corporate-actions/{ticker}
GET /api/v1/candles/{ticker}
GET /api/v1/macro
GET /api/v1/regimes
GET /api/v1/news
GET /api/v1/fundamentals/{ticker}

Realtime:

GET /api/v1/realtime/status
GET /api/v1/realtime/events
GET /api/v1/realtime/orderbook/latest
GET /api/v1/realtime/trades/latest
GET /api/v1/realtime/candles

Models, risk, backtest:

GET /api/v1/predictions/baseline
GET /api/v1/predictions/gradient_boosting
GET /api/v1/predictions/neural_trader
GET /api/v1/microstructure/signals
GET /api/v1/news-impact/predictions
GET /api/v1/meta-signals
GET /api/v1/signals/latest
GET /api/v1/risk/{ticker}
GET /api/v1/backtest/metrics
GET /api/v1/backtest/equity
GET /api/v1/backtest/trades
GET /api/v1/evaluation
GET /api/v1/models/baseline/metrics
GET /api/v1/models/gradient_boosting/metrics
GET /api/v1/models/neural_trader/metrics
GET /api/v1/models/news_impact/metrics

Journal and sandbox:

GET  /api/v1/journal/signals
POST /api/v1/journal/signals
GET  /api/v1/journal/orders
POST /api/v1/journal/orders
GET  /api/v1/journal/trades
POST /api/v1/journal/trades
GET  /api/v1/journal/pnl
GET  /api/v1/sandbox/status
GET  /api/v1/sandbox/accounts
POST /api/v1/sandbox/open-account
POST /api/v1/sandbox/pay-in
GET  /api/v1/sandbox/portfolio
GET  /api/v1/sandbox/operations
POST /api/v1/sandbox/cancel-order
POST /api/v1/sandbox/order

Jobs:

GET  /api/v1/jobs
POST /api/v1/jobs/{project}/{command}
GET  /api/v1/jobs/{job_id}

POST /api/v1/jobs/{project}/{command} выключен по умолчанию. Включение:

$env:TRADER_API_ALLOW_JOBS="1"
python -m trader_api.main

Безопасность

Правила эксплуатации:

  • не коммить .env, токены, ключи, логи, архивы, parquet, модели и отчеты;
  • хранить TINKOFF_API_TOKEN только в shell env или C:\Users\tamu\.rootlord\secrets\...;
  • запускать python workspace.py security-check после авторизаций в браузере/Telegram/агентах;
  • перед push проверять git status --ignored --short;
  • не включать TRADER_API_ALLOW_JOBS, если API доступен не только локально;
  • не включать TRADER_API_ALLOW_SANDBOX_ORDERS, если не понимаешь, какая заявка будет отправлена;
  • не менять TRADER_API_HOST на публичный интерфейс без auth/proxy/firewall.

Проверка на случайно добавленные опасные файлы:

python workspace.py security-check
git status --short
git ls-files | Select-String -Pattern "(\.env$|\.log$|\.tgz$|__pycache__|\.pyc$|\.parquet$|\.pkl$|/data/|/models/|/reports/)"

Ожидаемо: в git ls-files не должно быть совпадений по реальным данным, моделям, логам и секретам.

Работа С Git

Обычный безопасный цикл:

git status --short
git add README.md trader_core trader_api workspace_tools
git status --short
git commit -m "update docs"
git push

Перед массовым git add . проверь, что .gitignore покрывает новые runtime-папки.

Где Смотреть Контракты

Главные файлы:

trader_core/artifact_registry.py   список ожидаемых артефактов и их путей
trader_core/schemas.py             общие схемы
workspace_tools/projects.py        список проектов и validation-команд
trader_api/rootlord_tools.json     статический tools manifest
trader_api/app.py                  HTTP endpoints

Диагностика

Нет артефактов:

python workspace.py status
python workspace.py validate --projects <project-key>

Не стартует API:

python -m trader_api.main

Проверь TRADER_API_PORT, зависимости fastapi/uvicorn, и что команда запущена из корня repo или задан TRADER_WORKSPACE_ROOT.

Нет Tinkoff/Sandbox доступа:

$env:TINKOFF_API_TOKEN

Если переменная пустая, sandbox endpoints вернут ошибку или статус token_present=false.

Quick Setup
Installation guide for this server

Install Package (if required)

uvx tradermcprootlord

Cursor configuration (mcp.json)

{ "mcpServers": { "baskaev-tradermcprootlord": { "command": "uvx", "args": [ "tradermcprootlord" ] } } }
Author Servers
Other servers by baskaev