Документация MCP-сервера — 16 бирж + MetaTrader 5

MCP-сервер AlgoVesta: пусть Claude, ChatGPT, Cursor и Gemini торгуют на ваших реальных счетах на бирже и в MetaTrader 5

Что это такое: AlgoVesta размещает хостируемый сервер Model Context Protocol (MCP), который предоставляет ИИ-ассистенту двадцать реальных торговых инструментов через одну HTTPS-ссылку. Вставьте эту единственную ссылку в Claude, ChatGPT, Cursor, Claude Code, Gemini CLI или любой другой MCP-совместимый клиент, и ассистент сможет читать балансы, открывать и закрывать позиции, переставлять стоп-лосс и тейк-профит, а также проверять собственные действия сразу на 16 криптобиржах и форекс через MetaTrader 5 — используя настройки риска, уже сохранённые вами в AlgoVesta, за серверной стеной политик, которую не может обойти ни один промпт. Каждое подключение начинается с виртуального баланса $5,000, а каждое действие возвращает квитанцию, подписанную ed25519.
20 нативных MCP-инструментов OAuth 2.1 (PKCE) или секретная ссылка Сначала бумажная торговля, $5,000 виртуальных Транспорт Streamable HTTP

Model Context Protocol: открытый стандарт для подключения ИИ-ассистентов к внешним системам. Большинство MCP-серверов, связанных с трейдингом, транслируют рыночные данные в окно чата. Этот исполняет: это уровень маршрутизации ордеров с детерминированным риск-движком перед ним, а ИИ выступает лишь вызывающей стороной — но никогда не инстанцией, принимающей решения.

Самая важная мысль этой страницы. Вы один раз подключаете свои API-ключи биржи и счета MetaTrader 5 внутри AlgoVesta и там же один раз задаёте свои настройки риска (стоп-лосс %, тейк-профит %, плечо). Затем вы передаёте своему ИИ-ассистенту одну ссылку. С этого момента ассистент получает доступ к каждому подключённому вами счёту, одновременно, через одну и ту же ссылку, и каждый открываемый им ордер наследует ваши сохранённые настройки — те же самые, что использует ручная панель и Telegram-бот. Вы не отдаёте ИИ свои API-ключи. Вы даёте ему ограниченную по правам, отзываемую, лимитированную по частоте запросов и проверяемую политиками дверь к счетам, которые уже находятся под вашим контролем.

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

Настройка занимает три шага и не требует кода. Весь процесс находится во вкладке MCP Connection вашей панели AlgoVesta.

Шаг 1

Откройте вкладку MCP Connection и сгенерируйте ключ. По умолчанию новые ключи получают область paper . Полная ссылка показывается один раз — скопируйте её сразу.

Шаг 2

Вставьте ссылку в ваш ИИ-клиент как пользовательский MCP-сервер. Ни один API-ключ не покидает AlgoVesta, код не нужен, локальная установка не требуется.

Шаг 3

Просто общайтесь. “Как мой портфель?” “Смоделируй лонг на $200 по ETHUSDT с плечом 5x.” “Закрой половину моей позиции по BTC.”

Ваш URL подключения выглядит так:

https://api.algovesta.com/u/avmcp_<your-key>/mcp

Этот URL представляет собой учётные данные. Любой, кто им обладает, может действовать в рамках его области на ваших счетах. Относитесь к нему как к паролю: никогда не вставляйте его в публичный чат, скриншот, общий репозиторий или тикет поддержки. Если он утёк, отзовите его в панели — отзыв вступает в силу немедленно для новых подключений и обрывает открытые потоки событий за считаные секунды.

Какие ИИ-ассистенты могут подключаться

Подключиться может любой клиент, работающий по MCP через Streamable HTTP. В таблице ниже указано то, что было проверено на живом сервере, включая реальные ограничения — некоторые из них являются ограничениями самого ИИ-продукта, а не AlgoVesta, и вы столкнётесь с ними независимо от того, каким MCP-сервером пользуетесь.

ИИ-клиент Куда вставить ссылку Примечания и реальные ограничения
Claude (веб, десктоп, iOS, Android)Customize → Connectors → Add custom connectorПолная поддержка. Названия инструментов и диалоги подтверждения поступают напрямую с сервера.
Claude Codeclaude mcp add --transport httpКомандная строка. Полезно для скриптовых или повторяемых рабочих процессов.
Cursormcp.json, "url" полеПолная поддержка. Обратите внимание, имя ключа: url здесь — в Gemini CLI используется другое.
ChatGPTРежим разработчика / пользовательский коннекторТолько платные тарифы. Пользовательские MCP-коннекторы недоступны на бесплатном тарифе, и может потребоваться сначала включить режим разработчика. Это ограничение OpenAI.
Gemini CLI~/.gemini/settings.json, "httpUrl" полеТолько CLI. Веб-приложение Gemini не поддерживает пользовательские MCP-серверы. Используйте httpUrl ключ, а не url.
Любой другой MCP-совместимый клиентСобственные настройки MCP / коннекторовСервер реализует стандарт, поэтому клиент с поддержкой удалённого MCP через Streamable HTTP будет работать без каких-либо специфичных для него настроек.

Пример для Cursor (mcp.json):

{
  "mcpServers": {
    "algovesta": {
      "url": "https://api.algovesta.com/u/avmcp_<your-key>/mcp"
    }
  }
}

Пример для Gemini CLI (~/.gemini/settings.json) — обратите внимание httpUrl:

{
  "mcpServers": {
    "algovesta": {
      "httpUrl": "https://api.algovesta.com/u/avmcp_<your-key>/mcp"
    }
  }
}

Claude Code:

claude mcp add --transport http algovesta https://api.algovesta.com/u/avmcp_<your-key>/mcp

Транспорт и протокол

ТранспортStreamable HTTP, без сохранения состояния, ответы в формате JSON. Каждый запрос аутентифицируется независимо.
Имя сервераAlgoVesta
Эндпоинт секретной ссылкиhttps://api.algovesta.com/u/<key>/mcp
Эндпоинт OAuthhttps://api.algovesta.com/mcp
Список инструментов может менятьсяtools.listChanged = true. Клиенты обновляют список инструментов при переподключении, поэтому новые инструменты и параметры появляются без удаления и повторного добавления коннектора.
Поток событийServer-sent events по адресу /mcp/events и /u/<key>/events, изолированный по клиенту (tenant), с Last-Event-ID переподключением.
Машиночитаемая схема/mcp/tools.json — полная JSON Schema всех 20 инструментов, именно в том виде, в каком её получает клиент.

Аутентификация и области действия

Есть два способа подключения, и оба сводятся к одному и тому же контексту клиента (tenant). Инструменты никогда не принимают ID пользователя в качестве параметра — идентичность считывается только из аутентифицированного соединения, из-за чего доступ к чужому счёту структурно невозможен, а не просто запрещён.

Секретная ссылка

Ключ вида avmcp_<32-byte urlsafe random>, встроенный в путь URL. Он хранится в виде хэша Argon2id плюс поискового хэша SHA-256; открытый текст существует только в момент создания и впоследствии никогда не может быть восстановлен. У каждого ключа своя область действия, своя метка и свой статус отзыва, поэтому вы можете использовать один paper-ключ в Cursor и один live-ключ в Claude и отозвать любой из них независимо.

OAuth 2.1

Для клиентов, предпочитающих полноценный флоу авторизации. Поддерживаемые типы grant: authorization_code и refresh_token, с ротацией refresh-токенов. PKCE с S256 обязателен — запрос без него отклоняется. Доступна динамическая регистрация клиентов, поэтому большинство клиентов настраиваются автоматически. Документы обнаружения (discovery):

GET https://api.algovesta.com/.well-known/oauth-authorization-server
GET https://api.algovesta.com/.well-known/oauth-protected-resource
POST https://api.algovesta.com/mcp/oauth/register
GET  https://api.algovesta.com/mcp/oauth/authorize
POST https://api.algovesta.com/mcp/oauth/token

Три области действия

Область действия Что можно делать Как получить
readПортфель, цены, отложенные ордера, симуляции, предпросмотр политик, проверка квитанций, воспроизведение канала. Ни один ордер не может быть выставлен.Создаётся напрямую.
paperВсё, что в read, плюс ордера, исполняемые на бумажном (paper) движке с виртуальным балансом $5,000. Значение по умолчанию для новых ключей.Создаётся напрямую.
liveВсё вышеперечисленное, плюс реальные ордера на подключённых биржах и счетах MetaTrader 5.Требуется второй фактор. Действующий код аутентификатора (TOTP) либо код подтверждения, отправленный на e-mail вашего аккаунта и действительный 10 минут. Проверяется на стороне сервера, без исключений.

Области действия ранжированы, поэтому инструмент, требующий paper отклонит read ключ с insufficient_scope. Поэтому граница между смоделированными и реальными деньгами является свойством самого ключа, а не промпта, настройки или суждения модели’.

Справочник инструментов — все 20 инструментов

Это именно те инструменты, которые видит ваш ассистент. Инструменты чтения безопасно вызывать без предварительного запроса; шесть инструментов записи запрашивают подтверждение в клиентах, которые это поддерживают, и три из них — place_order, close_position и cancel_order — дополнительно помечены как деструктивные в своих аннотациях.

Инструмент Область действия Тип Назначение
get_portfolio_contextreadтолько чтениеВсе подключённые счета за один вызов
get_market_pricereadтолько чтениеАктуальная цена с указанием её свежести
simulate_orderreadтолько чтениеТестовый прогон (dry-run), включая вердикт политики
place_orderpaper / liveдеструктивныйОткрывает позицию
close_positionpaper / liveдеструктивныйЗакрывает полностью или частично
modify_positionpaper / liveзаписьПереставляет стоп-лосс и тейк-профит
list_open_ordersreadтолько чтениеОтложенные лимитные ордера
cancel_orderpaper / liveдеструктивныйОтменяет отложенный ордер
compile_policyreadтолько чтениеПревращает правила на обычном языке в предпросмотр политики
verify_receiptreadтолько чтениеПроверяет подпись и цепочку хэшей
replay_channelreadтолько чтениеТестирует Telegram-канал на исторических данных по вашим правилам
get_trade_historyreadтолько чтениеЗакрытые сделки и результаты по крипте, MT5 и paper
compare_venuesreadтолько чтениеРанжирует подключённые биржи по измеренной цене и спреду
list_strategiesreadтолько чтениеСтратегии TradingView; URL вебхука никогда не возвращается
create_strategypaper / liveзаписьНовая стратегия, всегда с выключенным исполнением на реальные деньги
update_strategypaper / liveзаписьНастройки стратегии; auto_trade отклоняется
backtest_my_signalsreadread-onlyПереигрывает ваши прошлые сигналы с другими настройками (задача в очереди)
simulate_policyreadread-onlyПрименяет правила риска к вашим реально закрытым сделкам (задача в очереди)
import_tradingview_backtestreadread-onlyПересчитывает выгрузку TradingView с реальной комиссией и проскальзыванием (задача в очереди)
get_job_statusreadread-onlyПрогресс и результат задачи из очереди

get_portfolio_context

Не принимает параметров. Возвращает нормализованное представление каждого биржевого счёта, каждого счёта MetaTrader 5 и paper-счёта, принадлежащих аутентифицированному ключу — и ничего больше. Именно этот вызов превращает вопрос “как у меня дела?” в один запрос вместо шестнадцати.

Два поля важнее остальных. Для криптосчетов balance и equity описывают только фьючерсный кошелёк; спотовые средства указываются отдельно в spot_balance, поэтому ассистент, читающий только balance может ошибочно решить, что у вас ничего нет. Для счетов MetaTrader 5 positions_source принимает значение либо live_ea, что означает: список позиций сверен с терминалом, либо unavailable, что означает: терминал недоступен. В случае unavailable пустой список позиций не означает “нет открытых позиций” — это означает неизвестно, и описание инструмента предписывает модели прямо сказать об этом, а не успокаивать вас.

get_market_price

Параметры: venue, symbol. Возвращает {ok, venue, symbol, last, bid, ask, ts, source, age_sec}. Цены берутся из общего кэша, обновляемого примерно раз в секунду; при промахе кэша сервер делает один живой REST-запрос к бирже. Если значение старше 10 секунд или вообще не может быть получено, это указывается явно — устаревшая цена никогда не выдаётся за актуальную. Если символ не найден ни на одной подключённой бирже, может быть возвращена информационная цена с DEX вместе с явным предупреждением, что торговать им на ваших подключённых площадках нельзя.

simulate_order

Обязательно: venue, symbol, side, order_type, idempotency_key. Не отправляет ордер. Возвращает ожидаемое исполнение, влияние на маржу и вердикт политики, а также абсолютные цены стоп-лосса и тейк-профита, рассчитанные сервером. Это операция чтения, поэтому корректно ведущий себя ассистент вызывает её без запроса разрешения, показывает вам одну сводку и запрашивает ровно одно подтверждение перед тем, как что-либо выставить.

place_order

Обязательно: venue, symbol, side, order_type, idempotency_key. Опционально: account, market, size_usd, margin_usd, risk_pct, lots, leverage, sl, tp, sl_pct, tp_pct, take_profits, entry_price.

Параметр idempotency_key не для галочки. Если один и тот же ключ приходит дважды для одного пользователя, возвращается сохранённый ответ, и второй ордер не открывается — именно это защищает вас, когда клиент повторяет запрос после таймаута, телефон теряет сигнал в момент подтверждения или модель вызывает инструмент дважды.

Размер позиции задаётся явно намеренно. Для крипты вы передаёте ровно одно из трёх полей, и означают они разное:

Поле Значение Пример при плече 5x
size_usdСтоимость позиции (номинал)size_usd=100 → позиция на $100, из них $20 ваших денег
margin_usdОбеспечение из ваших собственных средствmargin_usd=20 → позиция на $100
risk_pctПроцент используемого свободного баланса в качестве маржи. Это не расчёт риска по дистанции стоп-лосса; дистанция стоп-лосса в расчёт не входит.risk_pct=1 при балансе $2,000 → маржа $20 → позиция на $100

Для форекса и MetaTrader 5 размер задаётся в lots , а leverage вообще не отправляется — продукт торгуется без плеча, и размер определяется объёмом лота. Указанный вами размер лота используется точно и никогда не округляется до удобного значения; если он выходит за пределы лимитов вашего брокера’, ордер отклоняется, а в ответ сообщается допустимый диапазон.

Допуск по размеру ордера. Биржи принимают только определённые шаги лота, поэтому запрошенная сумма подгоняется к ближайшему допустимому шагу. Если отклонение остаётся в пределах 20%, ордер исполняется, а точное отклонение сообщается вам в ответе; свыше 20% ордер не открывается, и вам сообщаются в цифрах, какие ближайшие суммы сработали бы. Этот порог был выбран путём повторного прогона всех реальных ордеров, когда-либо прошедших через функцию расчёта размера, а не выбран интуитивно.

Пропущенные поля берутся из ваших сохранённых настроек. Если вы не указали стоп-лосс, тейк-профит или плечо, ассистенту предписано оставить эти поля пустыми, и сервер заполняет их из настроек, сохранённых в вашей панели — тех же значений, что использует ручная панель и Telegram-бот. В ответе сообщается, какие поля были взяты из сохранённых настроек, в prefs_used. Это сделано из-за реально зафиксированного сбоя: когда эти поля были обязательными, модели приходилось придумывать значения, и пять из пяти ордеров перезаписывали собственные настройки клиента’.

close_position

Обязательно: venue, symbol, side, idempotency_key. Опционально: fraction (от 0 до 1], account, ticket. Работает для крипты и для MetaTrader 5. Закрытие снижает риск, поэтому стена политик никогда его не блокирует — это может сделать только kill switch. Десять вызовов с одним и тем же ключом идемпотентности выполняют ровно одно закрытие. Если подходящей позиции не существует, вы получаете POSITION_NOT_FOUND вместе со списком позиций, которые действительно открыты на этой площадке, чтобы ассистент мог исправиться, а не гадать.

У MetaTrader 5 нет частичного закрытия — Expert Advisor закрывает позицию полностью — поэтому используйте fraction=1 там. Когда по одному символу открыто несколько позиций MT5, ticket становится обязательным, и пока цель неоднозначна, ничего не закрывается.

modify_position

Обязательно: venue, symbol, side, idempotency_key, плюс хотя бы одно из new_sl / new_tp. Стоп-лосс нельзя убрать — правило обязательного SL действует и здесь. Порядок значений проверяется: для лонга нужно new_sl < mark < new_tp, а для шорта наоборот. Если передана только одна сторона, другая остаётся на текущем значении, а не удаляется. Как и при закрытии, неоднозначный тикет MT5 означает, что ничего не изменяется.

list_open_orders

Опционально: venue. Выводит список отложенных лимитных ордеров с order_ref, площадкой, символом, стороной, ценой входа, размером и временем создания.

Прежде чем просить ассистента проверить ваши открытые ордера, стоит знать один нюанс: отслеживаемые этим инструментом отложенные ордера находятся в бумажной (paper) книге ордеров. Ордера, размещённые на реальной площадке через MCP, отправляются как рыночные ордера, поэтому они исполняются сразу, а не остаются в ожидании, и пустой список на реальном счёте означает, что ничего не ожидает исполнения, а не то, что что-то пропало.

cancel_order

Обязательно: venue, order_ref, idempotency_key. Если указанный идентификатор вам не принадлежит, ответом будет NOT_FOUND — никогда не намёк на то, что чужой ордер’ существует. Как и закрытие, это снижает риск, и стена политик его не блокирует.

compile_policy

Обязательно: natural_text. Вы пишете правило на обычном языке — “никогда не рискуй более чем 2% на одну сделку, плечо не выше 10, торговать только BTC и ETH” — и оно компилируется в JSON-политику, возвращаемую как предпросмотр. Компиляция никогда ничего не активирует. Активация является отдельным, осознанным шагом из панели или через POST /api/mcp/policies/{policy_id}/activate, а значит, модель не может ослабить ваши правила, просто рассуждая о них.

verify_receipt

Обязательно: receipt_id. Возвращает signature_valid и chain_valid; действие считается подтверждённым, только если оба значения истинны. Квитанции подписаны ed25519 и связаны в хэш-цепочку по каждому пользователю, поэтому изменение более ранней квитанции ломает все последующие, и chain_valid становится false. Публичный ключ доступен по адресу /mcp/receipts/pubkey, поэтому вы можете проверить всё независимо, не доверяя этому эндпоинту. Более старые квитанции эпохи HMAC возвращают legacy=true.

replay_channel

Обязательно: channel_ref. Опционально: days (до 90, по умолчанию 30), policy_override. Отвечает на вопрос “что если бы я следовал этому Telegram-каналу последние X дней по своим правилам?”, воспроизводя его прошлые сигналы в режиме paper-торговли, причём каждый сигнал проходит через стену политик, поэтому отклонённые никогда не открываются. Прогресс поступает в виде replay_progress событий. Результаты кэшируются на 24 часа, инструмент ограничен 5 воспроизведениями в час. Результат: {trades:[...], summary:{total_pnl, win_rate, max_drawdown, avg_rr, policy_rejections}}.

get_trade_history

Опционально: venue, symbol, days (1–365, по умолчанию 30), limit (1–200, по умолчанию 50), market (crypto / forex / paper). Возвращает закрытые сделки из всех трёх источников одним списком, сначала самые новые, плюс summary. Сводка намеренно консервативна: avg_rr вычисляется только по сделкам, где вход, стоп-лосс и выход известны, а rr_sample сообщает, сколько таких было; total_pnl равен null, если смешаны несколько валют счетов, вместо этого указывается pnl_by_currency; комиссия нигде не фиксируется, поэтому fee остаётся null, а PnL по крипте указан без вычета комиссии. Если источник не удалось прочитать, incomplete_sources называет его, вместо того чтобы выдать короткий список так, будто он полный.

compare_venues

Обязательно: symbol. Опционально: market (futures по умолчанию, либо spot), side. Возвращает для каждой подключённой криптобиржи живую цену и — на площадках, публикующих bid/ask — спред в базисных пунктах, а также разницу цен между площадками. Он не выбирает площадку: ваш ордер всё равно указывает конкретную. Торговые комиссии, глубина стакана и проскальзывание перечислены в basis.not_measured и никогда не оцениваются, а площадка, не публикующая bid/ask, попадает в not_comparable_on_spread, а не ранжируется так, будто её спред равен нулю. Поэтому cheapest_measured означает “наименьший измеренный спред”, а не “самая дешёвая в целом”.

list_strategies

Без параметров. Возвращает ваши стратегии TradingView с их настройками, plan_limit и can_create_more. auto_trade указывается для каждой стратегии, чтобы ассистент мог сказать вам, какие из них работают на реальные деньги. URL вебхука, демо-URL и секрет HMAC исключены из ответа — раскрываются только webhook_url_configured и has_hmac_secret, потому что сам URL является учётными данными.

create_strategy

Опционально: name. Обязательно: idempotency_key. Создаёт стратегию TradingView с выключенным auto_trade; это поле недоступно для записи через MCP, поэтому только что созданная стратегия не может выставлять реальные ордера, пока вы сами не активируете её в панели. Подчиняется квоте стратегий вашего тарифа — при превышении лимита возвращается кодированная ошибка лимита тарифа, а не молчаливое бездействие.

update_strategy

Обязательно: strategy_id, changes, idempotency_key. Изменяет плечо (ограничено диапазоном 1–20), процент риска (0.1–50), проценты стоп-лосса и тейк-профита, настройки трейлинга и безубытка, разрешённые символы, целевой счёт и принимает ли стратегия сигналы. auto_trade, status и ip_allowlist отклоняются и возвращаются в refused_fields; удаление возможно только из панели. Включение reverse_enabled возвращает warning, потому что с этого момента сигнал BUY открывает SHORT.

backtest_my_signals

Необязательно: days (1–90), source, symbols, margin_usd, leverage, sl_pct, tp_pct, max_hold_minutes, taker_fee_bps, partial_tp. Прогоняет сигналы, которые вы действительно получали, по реальным историческим минутным барам mainnet дважды: один раз с исходными стопом, тейком и плечом сигнала, другой — с вашими настройками. Сразу возвращает job_ref; результат забирается через get_job_status. В каждом результате есть coverage (сколько сигналов удалось смоделировать и почему остальные нет) и assumptions (комиссии, проскальзывание, частичный тейк и что не моделируется). Сигналы без стопа, со стопом не с той стороны от входа или без исторических данных считаются и пропускаются, а не угадываются.

simulate_policy

Необязательно: policy_text (обычный язык), rules (уже скомпилированные), days (1–365). Применяет правила риска к вашим реально закрытым сделкам и показывает, какие были бы отклонены, каким правилом и какова разница в PnL. Возвращает job_ref. Два ограничения указываются всегда: правила, зависящие от состояния счёта в момент ордера (открытые позиции, дневной убыток, баланс), оцениваются нулями, потому что это состояние невозможно восстановить по закрытым сделкам — такие правила НЕДОсчитываются, а не пересчитываются; PnL берётся из ваших зафиксированных результатов, приводится по каждой валюте и никогда не складывается между валютами.

import_tradingview_backtest

Обязательно: csv_text. Необязательно: taker_fee_bps, slippage_bps, leverage. Берёт CSV, выгруженный из Strategy Tester TradingView (List of Trades), и пересчитывает его с реальными издержками: комиссия тейкера и измеренное проскальзывание на входе и на выходе. Pine Script никогда не выполняется и не интерпретируется — пересчитывается только ваш выгруженный список сделок — а цены остаются такими, какими их сообщил TradingView. К строкам без колонки количества нельзя применить комиссию, поэтому они остаются оптимистичными, и их число сообщается. Возвращает job_ref.

get_job_status

Необязательно: job_ref. Со ссылкой возвращает состояние задачи и, когда она готова, её результат; без аргумента перечисляет ваши недавние задачи. status — одно из PENDING, RUNNING (с процентом в progress), DONE, FAILED (запланирована повторная попытка), DEAD или CANCELLED. Задачи выполняются по одной, поэтому queue_position показывает, сколько задач впереди. На чужую ссылку приходит ТОТ ЖЕ ответ “не найдено”, что и на несуществующую, поэтому перебрать их нельзя.

Результаты не хранятся вечно, и эти ограничения стоит знать заранее, прежде чем полагаться на них. Полный результат сохраняют только 20 последних завершённых задач; более старые сокращаются до сводки и возвращаются с result_pruned: true, то есть подробные строки удалены, и задачу нужно запустить заново, чтобы их восстановить. Всё удаляется через 30 дней. Запуски бэктестов и политик также записываются в историю бэктестов вашего аккаунта, и результат несёт run_id, под которым они были сохранены.

Стена политик

Именно эта часть делает передачу инструментов языковой модели оправданной. Ваши правила один раз компилируются в JSON, проверяются по фиксированной схеме, а затем оцениваются на сервере и детерминированно для каждого ордера. Модель никогда их не оценивает, никогда не видит способа их обойти, и её нельзя уговорить их ослабить — ни вам самим в момент нетерпения, ни промптом, внедрённым через веб-страницу или сообщение в Telegram, которое она случайно прочитала. Нарушение считается жёстким отказом с записью в журнал аудита.

Правило Тип Значение
max_risk_per_trade_pctчисло, 0–100Верхний предел доли одной сделки’ от счёта
max_order_size_usdчисло > 0Абсолютный предел на стоимость ордера
max_daily_loss_usdчисло > 0Остановить торговлю на день после превышения этого убытка
max_open_positionsцелое числоЛимит одновременных позиций
leverage_capчисло, 1–1000Ваш собственный предел плеча
venue_scopeмассивОграничить ИИ указанными площадками
symbol_whitelistмассивТорговать можно только этими символами
symbol_blacklistмассивЭтими символами никогда не торговать
allowed_sidesмассивТолько лонг, только шорт или оба варианта
notesстрокаВаша собственная пометка

Скомпилированная политика, не прошедшая проверку схемы, вообще не может быть активирована. Частично действительной политики не бывает.

Модель безопасности

По умолчанию paper-режимКаждый новый ключ начинает работу в области paper с виртуальным балансом $5,000. Доступ к реальным деньгам является явным, отдельным действием.
Стоп-лосс обязателенЕсли нет ни явного стоп-лосса, ни сохранённого значения по умолчанию, ордер отклоняется. Позже его тоже нельзя убрать.
ИдемпотентностьКаждый инструмент записи требует сгенерированный клиентом ключ длиной не менее 8 символов. Повторы возвращают сохранённый ответ вместо повторного действия.
Kill switchPOST /api/mcp/freeze останавливает всё сразу; после этого каждый инструмент возвращает user_frozen. /unfreeze отменяет это.
Отзыв по отдельному ключуОтзовите одного клиента, не затрагивая остальных. Открытые потоки событий обрываются за считаные секунды.
Подписанные квитанцииПодпись ed25519 плюс хэш-цепочка по каждому пользователю для каждого действия, проверяемая по публичному ключу.
Журнал аудитаКаждый вызов записывается с именем инструмента, аргументами, результатом и задержкой, доступен для чтения по адресу GET /api/mcp/audit и в панели.
Изоляция клиентов (tenant)Инструменты не могут принимать ID пользователя; идентичность определяется только аутентифицированным соединением.
Ключи только для торговлиВаши API-ключи биржи создаются без права на вывод средств и хранятся зашифрованными по AES-256. Ордера отправляются с фиксированных торговых IP-адресов AlgoVesta, которые вы добавляете в белый список на бирже.

О плече, прямо: AlgoVesta не устанавливает предел плеча для вашего собственного счёта — это делает ваша биржа, а свой собственный предел вы можете задать с помощью правила leverage_cap политики. Форекс через MetaTrader 5 в этом пути торгуется без плеча, размер задаётся лотами. Если кто-то говорит вам, что платформа здесь “ограничивает плечо 20x”, он описывает то, чего не существует.

Ошибки

Код HTTP Когда возникает
unauthorized401Ключ отсутствует, недействителен или отозван
insufficient_scope401Инструменту требуется более высокая область действия, чем у ключа
forbidden403Не разрешено для этого счёта
user_frozen403Активен kill switch
policy_violation403Правило отклонило ордер; в ответе указано, какое именно
idempotency_conflict409Один и тот же ключ был повторно использован с другими аргументами
validation_failed422Некорректные или противоречивые аргументы
rate_limited429Слишком много вызовов; retry_after включается в ответ

Отказы на уровне бизнес-логики приходят как структурированные результаты, а не как транспортные ошибки, поэтому ассистент может на них реагировать: VENUE_NOT_CONNECTED, ACCOUNT_REQUIRED, ACCOUNT_AMBIGUOUS, ACCOUNT_NOT_FOUND, POSITION_NOT_FOUND, MISSING_FIELDS, INVALID_SIDE, SL_REMOVAL_FORBIDDEN. Сообщения об ошибках никогда не раскрывают внутренние детали и никогда не сообщают ничего о чужом счёте.

Лимиты частоты запросов

Область действия лимита Лимит
Все вызовы инструментов, на ключ60 в минуту
place_order10 в минуту
replay_channel5 в час (результаты кэшируются на 24 часа)
Письмо подтверждения области live1 в минуту

События в реальном времени

Изолированный по клиенту (tenant) поток server-sent событий доступен по адресу /mcp/events (OAuth) и /u/<key>/events (секретная ссылка), с Last-Event-ID переподключением, поэтому оборвавшееся соединение возобновляется, а не начинается заново. Типы событий: fill, policy_rejected, position_closed, sl_hit, tp_hit, и replay_progress во время воспроизведения канала.

Площадки — 16 бирж и MetaTrader 5

Одно подключение даёт доступ ко всем ним. Площадка становится доступна ИИ только после того, как вы подключите её в AlgoVesta; запрос к неподключённой площадке возвращает VENUE_NOT_CONNECTED вместо угадывания.

Биржа venue значение Рынки Нужен ли passphrase
BinancebinanceСпот, фьючерсыНет
BybitbybitСпот, фьючерсыНет
OKXokxСпот, фьючерсыДа
KuCoinkucoinСпот, фьючерсыДа
Gate.iogateioСпот, фьючерсыНет
BitgetbitgetСпот, фьючерсыДа
KrakenkrakenСпот, фьючерсыНет
CoinbasecoinbaseСпотНет
BingXbingxСпот, фьючерсыНет
HyperliquidhyperliquidФьючерсыНет
BackpackbackpackСпот, фьючерсыНет
HTXhtxСпот, фьючерсыНет
BloFinblofinСпот, фьючерсыДа
PhemexphemexСпот, фьючерсыНет
WOO XwooСпот, фьючерсыДа (Application ID)
CoinExcoinexСпот, фьючерсыНет
MetaTrader 5 (форекс, металлы, индексы)mt5Лоты, путь без плечаЛогин у брокера
Paper-движокpaper$5,000 виртуальных

Шесть из них — Binance, Bybit, OKX, Gate.io, KuCoin и Bitget — проверены от начала до конца на реальных деньгах как на фьючерсах, так и на споте: подтверждено, что стоп-лосс и тейк-профит существуют на самой бирже и в точности совпадают с записанными значениями. У каждой биржи свои особенности, и эти различия сделаны намеренно, а не являются пробелами: Bybit и Bitget не принимают вторую ногу тейк-профита на споте, спот OKX маршрутизируется через низкоуровневый (raw) API, чтобы кассовый счёт незаметно не превратился в маржинальный, спот Binance требует минимальный номинал перед покупкой, а рыночные покупки на KuCoin выставляются в режиме cost.

Спот и фьючерсы всегда разделены. Один и тот же символ на этих двух рынках представляет собой отдельную строку, отдельный поток цен и отдельный ключ — один никогда не смешивается с другим.

MetaTrader 5 без какой-либо установки

Для форекса вам не нужно ничего устанавливать. Не нужно арендовать VPS, поддерживать работу терминала MetaTrader на своей машине, подключать Expert Advisor или покупать сторонний bridge-аккаунт. AlgoVesta запускает терминалы MetaTrader 5 на собственных управляемых серверах и держит их круглосуточно подключёнными к вашему брокеру. Вы один раз вводите учётные данные счёта, и с этого момента ваш ИИ-ассистент может торговать этим счётом. Данные о позициях, возвращаемые ассистенту, сверяются с терминалом, а когда сверка невозможна, инструмент прямо говорит об этом, а не намекает на пустой счёт.

Дорожная карта — глобальные акции

Запланировано — пока недоступно

Планируется торговля глобальными акциями через Interactive Brokers (IBKR), с целью охватить 170 мировых акций доступных через то же самое MCP-подключение, что и крипта с форексом. Это пункт дорожной карты, и он пока не работает; ничто на этой странице, кроме этого абзаца, его не описывает, и ни один текущий инструмент не может торговать акциями. Когда функция выйдет, она появится как дополнительные значения venue в рамках тех же инструментов, той же стены политик и тех же квитанций.

Измеренная задержка

Это реальные измерения, а не маркетинговые цифры.

Этап Измерено
Приём и разбор запроса17–67 мс (медиана 38 мс)
От начала до конца на MetaTrader 5Около 1 секунды (измерено 849 мс; 702 мс на закрытие)
От начала до конца на криптобиржеОколо 3 секунд (измерено 2 785 мс)
Paper-движокМедиана 318 мс — без обращения к бирже

Время, проведённое внутри вашего ИИ-клиента — на размышления модели и на ваше подтверждение — в эти цифры не входит и обычно преобладает над ними. Этот сервер не является площадкой исполнения с низкой задержкой и не позиционируется как таковая.

REST-эндпоинты панели

Всё, что ИИ не может и не должен делать самостоятельно, находится за вашей обычной авторизованной сессией.

POST   /api/mcp/keys                            create a key (live requires 2FA)
GET    /api/mcp/keys                            list keys
DELETE /api/mcp/keys/{key_id}                   revoke a key
POST   /api/mcp/live-code                       send the live-scope confirmation code
POST   /api/mcp/freeze  |  /api/mcp/unfreeze    kill switch
GET    /api/mcp/status                          connection status
GET    /api/mcp/policies                        list policies
POST   /api/mcp/policies/compile                compile without activating
POST   /api/mcp/policies/{id}/activate          activate
POST   /api/mcp/policies/{id}/deactivate        deactivate
GET    /api/mcp/audit                           audit log
GET    /api/mcp/receipts                        receipts
GET    /api/mcp/receipts/{receipt_id}/verify    verify one receipt
GET    /api/mcp/pubkey                          receipt public key
GET    /api/mcp/paper  |  POST /api/mcp/paper/reset

Что вам нужно иметь

Само MCP-подключение является частью продукта и отдельно не продаётся. На практике ограничивает то, к чему должен получить доступ ИИ: для paper-торговли нужен только аккаунт, а для live-торговли нужен активный платный тариф и подключённые счета, которые этот тариф разрешает — а для live-торговли на реальные деньги через MetaTrader 5 дополнительно требуется явно включить это для данного счёта. Лимиты тарифов на количество ключей бирж и счетов MetaTrader указаны на странице тарифов. Вы можете опробовать всё на виртуальном балансе $5,000 ещё до того, как всё это станет актуальным.

Часто задаваемые вопросы

Да, как только вы дадите ему ключ с областью live , а эта область выдаётся только после прохождения второго фактора. До этого тот же ассистент работает с виртуальным балансом $5,000 с теми же самыми инструментами, поэтому вы можете отрепетировать весь процесс до того, как станут доступны реальные деньги.
Нет, и вы никогда не должны делать этого ни с одним инструментом. Ваши API-ключи остаются внутри AlgoVesta, зашифрованными, созданными без права на вывод средств. У ассистента есть только MCP-ссылка, ограниченная по правам, лимитированная по частоте запросов, проверяемая политиками, отзываемая индивидуально и бесполезная для вывода средств с биржи.
Оно может заставить модель попытаться. Оно не может сделать попытку успешной. Правила компилируются в JSON и оцениваются на сервере, уже после того как запрос покинул модель, поэтому убеждению попросту не на что воздействовать. Нарушение отклоняется и записывается в журнал аудита, где можно увидеть в точности, что пытались сделать.
Дважды ничего не произойдёт. Каждый инструмент записи требует ключ идемпотентности, и повтор того же ключа возвращает сохранённый ответ вместо повторного действия. Именно это же делает безопасным повторный запрос клиента после сетевого таймаута.
Да. В этом и есть смысл. Одно подключение охватывает все подключённые вами биржевые счета и все счета MetaTrader 5, и get_portfolio_context возвращает их все за один вызов. Если у вас больше одного счёта на одном и том же рынке, параметр account становится обязательным, а неоднозначный запрос отклоняется, а не отправляется на счёт по умолчанию.
Больше нет, и это был реальный баг, а не гипотетический. Раньше эти поля были обязательными, что заставляло модель придумывать значения, и измерения показали, что настройки клиентов молча перезаписывались. Теперь ассистенту предписано оставлять неуказанные поля пустыми, а сервер заполняет их из ваших сохранённых настроек панели, сообщая, какие из них были использованы.
Ничего из этого. AlgoVesta запускает MetaTrader 5 на собственных управляемых серверах, подключённых к вашему брокеру 24/7. Вы один раз вводите данные своего счёта; устанавливать, арендовать или перезапускать ничего не нужно.
Нет. Здесь ничего ни от кого не копируется. Вы сами управляете своим ассистентом, каждый ордер проверяется по вашим собственным правилам, и впоследствии вы можете проверить и подтвердить каждое действие через журнал аудита и цепочку подписанных квитанций.
Используйте kill switch в панели или POST /api/mcp/freeze. После этого каждый инструмент возвращает user_frozen до тех пор, пока вы не снимете блокировку. Чтобы отключить только одного клиента, отзовите именно его ключ — остальные продолжат работать.
Потому что эти продукты не предлагают пользовательские MCP-коннекторы. Gemini поддерживает их только в CLI, а ChatGPT предлагает их на платных тарифах через режим разработчика. Оба этих ограничения относятся к самому ИИ-продукту и применяются к любому MCP-серверу, а не только к этому. У Claude, Claude Code и Cursor такого ограничения нет.
Да. Каждое действие возвращает квитанцию, подписанную ed25519 и связанную хэш-цепочкой с предыдущей. Проверьте её с помощью инструмента verify_receipt , либо независимо, по публичному ключу по адресу /mcp/receipts/pubkey. Изменение старой квитанции ломает цепочку для всех последующих квитанций, и именно это делает подделку обнаружимой.
Нет, и не из-за проверки прав, которую можно было бы неправильно настроить. У инструментов вообще нет параметра для идентичности — счёт определяется исключительно самим аутентифицированным соединением, поэтому не существует аргумента, который злоумышленник или запутавшаяся модель могли бы передать, чтобы добраться до чужого счёта.
Пока нет. Сейчас доступны крипта и форекс через MetaTrader 5. Глобальные акции через Interactive Brokers, с целью охватить 170 акций, запланированы и появятся как дополнительные значения площадок в рамках тех же инструментов и той же стены политик.

Подключите ИИ-ассистента к своим счетам

Начните с виртуального баланса $5,000. Без карты, без установки, а граница live остаётся закрытой, пока вы намеренно её не откроете.

Создать бесплатный аккаунт Смотреть обзор

Похожие материалы: MCP для ИИ-ассистентов · MCP-сервер для торговли: Claude и ChatGPT — 16 бирж + MT5 · поддерживаемые биржи · форекс через MetaTrader 5 · автоматизация TradingView · что такое торговый MCP-сервер · безопасность · тарифы.

Торговля сопряжена с риском. Автоматизация его не устраняет, а ИИ-ассистент не является инвестиционной консультацией. Начните с paper-режима.