Команды программ (Studio.Mcp)

Studio.Mcp — MCP-сервер, через который агент отдаёт команды запущенным программам StockSharp: выставляет и снимает заявки в Terminal, управляет источниками данных Hydra, запускает тестирование стратегий в Designer и Shell. Сервер не нажимает кнопки и не читает окна — команду выполняет сама программа.

Сервер ничего не запускает и ничего не хранит. Команда доходит до программы только тогда, когда программа открыта; если программа не запущена, сервер так и отвечает.

Какие программы отвечают

Программа Какие команды принимает
Terminal список заявок, выставление и снятие заявки
Hydra виды источников, список источников, добавление, включение, запуск, остановка и удаление источника
Designer список стратегий, запуск и остановка тестирования на истории
Shell список стратегий области Эмуляция, запуск и остановка их прогона

Команды принимают только Avalonia-версии этих программ, причём в обычной сборке: отдельная сборка не нужна. Программа открывает канал для команд вместе с главным окном и закрывает, когда окно закрывается. WPF-версии Terminal, Hydra и Designer этих команд не принимают.

Канал — локальный именованный канал, доступный только процессам текущего пользователя ОС. По сети команды не передаются.

Установка

Сервер собирается из исходного кода StockSharp:

dotnet build Studio/Studio.Mcp/Studio.Mcp.csproj -c Release

Готовый файл — Studio/Studio.Mcp/bin/Release/net10.0/StockSharp.Studio.Mcp.exe. Своих настроек у сервера нет: ни аргументы, ни переменные окружения ему не нужны. Протокол он пишет в стандартный вывод, журнал — в стандартный поток ошибок; запущенный вручную, без клиента, он просто ждёт ввода.

Подключение агента

Claude Code — файл .mcp.json проекта:

{
  "mcpServers": {
    "stocksharp": {
      "command": "Studio/Studio.Mcp/bin/Release/net10.0/StockSharp.Studio.Mcp.exe"
    }
  }
}

В других MCP-клиентах, в том числе в Claude Desktop, сервер подключается так же: команда — путь к StockSharp.Studio.Mcp.exe, без аргументов и переменных окружения.

Что может агент

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

Общие

Инструмент Что делает
list_products какие программы запущены и какие команды принимает каждая из них
describe_product команды одной программы; product — Terminal, Hydra, Designer или Shell
close_product просит программу закрыться

Hydra

Инструмент Что делает
hydra_list_source_types виды источников, которые Hydra может создать, с их идентификаторами
hydra_list_sources источники Hydra: включён ли каждый и качает ли он сейчас
hydra_add_source (typeId) добавляет источник выбранного вида и возвращает его; новый источник выключен
hydra_enable_source (sourceId, isEnabled) включает источник в скачивание или исключает из него
hydra_start_source (sourceId) запускает скачивание источником; выключенный источник не запускается
hydra_stop_source (sourceId) останавливает скачивание
hydra_remove_source (sourceId) удаляет источник вместе с его настройками; работающий источник сначала нужно остановить

Чтобы скачать данные новым источником, нужны три вызова: hydra_add_source, hydra_enable_source, hydra_start_source. Настройки источника — инструменты, типы данных, параметры подключения — эти команды не меняют: их задают в окне Hydra (см. Источники данных).

Designer

Инструмент Что делает
designer_list_strategies стратегии Designer: вид (Backtest, Optimization, Live, Remote, Other) и текущее состояние
designer_start_backtest (strategyId, startTime, stopTime) запускает стратегию вида Backtest или Optimization на истории; период задаётся в UTC в формате ISO 8601 и заменяет период в настройках стратегии, без него берётся период из настроек
designer_stop_backtest (strategyId) останавливает работающую стратегию

Terminal

Инструмент Что делает
terminal_list_orders заявки Terminal с номером транзакции каждой
terminal_register_order (securityId, portfolioName, side, volume, price, orderType) выставляет заявку и возвращает номер её транзакции
terminal_cancel_order (orderTransactionId) снимает заявку по номеру транзакции

Инструмент задаётся в том виде, в каком его знает Terminal, например SBER@TQBR; портфель — по имени, известному Terminal; side — Buy или Sell. Лимитной заявке нужна цена; у заявок других типов переданная цена не используется. Заявку называет номер транзакции, который вернули terminal_register_order или terminal_list_orders, а не номер, который позже присвоит биржа.

Shell

Инструменты Shell сервер строит из описания команд, которое присылает сама программа. Поэтому они есть, только если Shell был запущен в момент запуска сервера или последнего вызова list_products или describe_product.

Инструмент Что делает
shell_list_strategies стратегии области «Эмуляция» и их состояние
shell_start_backtest (StrategyId, StartTime, StopTime) запускает прогон стратегии на истории
shell_stop_backtest (StrategyId) останавливает прогон

Shell всегда тестирует стратегию на периоде из её настроек: если передать StartTime или StopTime, команда будет отклонена, поэтому передавайте в них null.

Ограничения и безопасность

Caution

terminal_register_order выставляет настоящую заявку туда, куда подключён Terminal. Сервер ничего не переспрашивает: подтверждение — дело MCP-клиента, в котором человек видит вызов до того, как он выполнен.

  • Стратегии, торгующие по-настоящему, не запускаются. Designer запускает только стратегии вида Backtest и Optimization; для остальных команда отклоняется. Shell открывает для команд только стратегии области «Эмуляция».
  • Удаление необратимо. hydra_remove_source удаляет источник вместе с настройками.
  • Закрытие. close_product закрывает программу.
  • Программа должна быть запущена. Иначе команда возвращает ошибку <программа> is not running. Ожидание ответа от незапущенной программы — около 5 секунд, поэтому list_products при закрытых программах отвечает не сразу. Отказ запущенной программы приходит агенту текстом: <программа> refused the command: <причина>.
  • Без пароля. Канал открыт для любой программы, запущенной под той же учётной записью пользователя: отдельной проверки, кто отправил команду, нет.
  • Копии программ не различаются. Если запущено несколько копий Terminal или Designer или рядом с обычной Hydra работает Hydra на тестовом профиле, команда попадёт в одну из них, и в какую — заранее не известно.
  • Результатов тестирования нет. Сервер возвращает только состояние стратегии, но не статистику и не сделки. Прочитать их с панелей программы может DesktopDriver.

Пример сеанса

Пользователь просит: «Запусти в Designer тестирование стратегии за январь и проверь, что оно идёт».

  1. list_products — Designer запущен; про остальные программы — … is not running.
  2. designer_list_strategies — среди стратегий есть нужная, вида Backtest, в состоянии Stopped.
  3. designer_start_backtest, strategyId из шага 2, startTime = 2026-01-01T00:00:00Z, stopTime = 2026-02-01T00:00:00Z — ответ Strategy <идентификатор> was started.
  4. designer_list_strategies — состояние стратегии изменилось.
  5. designer_stop_backtest с тем же strategyId, если тестирование нужно прервать.

См. также

Подключение ИИ-агентов (MCP)

Управление интерфейсом (DesktopDriver)

Удалённое управление