Инструменты MCP
Все инструменты сервера spectre-terminal-mcp: что делает каждый, что принимает и меняет ли что-нибудь.
Все инструменты
| Инструмент | Доступ | Что делает |
|---|---|---|
account_overview | только чтение | Балансы, открытые позиции с PnL и число открытых заявок по одному подключению. |
leverage | только чтение | Плечо, его максимум, режим плеча терминала и режим маржи инструмента. |
open_orders | только чтение | Открытые заявки и триггерные заявки подключения, с ключом и биржевым id каждой. |
recent_fills | только чтение | Последние исполнения подключения, от старых к новым, с итогами объёма покупок и продаж. |
find_instrument | только чтение | Найти точный адрес инструмента по монете или символу. |
market_snapshot | только чтение | Последняя цена, лучшие bid и ask со спредом, цена маркировки (mark), изменение и объём за 24 ч. |
order_book_top | только чтение | Верхние уровни стакана с объёмом по каждой стороне и дисбалансом. |
recent_trades_summary | только чтение | Объём покупок и продаж, дельта, VWAP, диапазон цен и крупнейшая сделка среди последних сделок. |
cluster_summary | только чтение | Кластеры объёма по бакетам. |
candles | только чтение | Бары OHLCV за интервал. |
settings | только чтение | Строки настроек, как они хранятся, с признаком, пишется ли каждая через update_settings. |
orderbook_settings | только чтение | Настройки стека одного инструмента так, как их видит его стек на подключении. |
update_settings | меняет состояние | Записать настройки так, как это делает окно настроек терминала. |
terminal_status | только чтение | Проверить, что Spectre Terminal запущен, и перечислить его подключения к биржам. |
place_order | меняет состояние | Поставить лимитную или рыночную заявку на подключении. |
cancel_order | меняет состояние | Снять одну заявку по ключу терминала или биржевому id. |
cancel_all_orders | меняет состояние | Снять все открытые заявки инструмента на этом подключении. |
close_position | меняет состояние | Закрыть позицию по инструменту так, как это делает окно терминала. |
place_trigger | меняет состояние | Поставить стоп-лосс, тейк-профит или стоп так, как это делает окно. |
cancel_trigger | меняет состояние | Снять одну триггерную заявку по её числовому id из open_orders. |
cancel_all_triggers | меняет состояние | Снять все триггерные заявки инструмента; обычные заявки остаются. |
amend_trigger | меняет состояние | Перенести триггер на новую цену (снять, затем поставить). |
set_leverage | меняет состояние | Задать плечо фьючерсного инструмента так, как это делает окно. |
set_margin_mode | меняет состояние | Задать режим маржи фьючерсного инструмента. |
workspace | только чтение | Все окна терминала с их вкладками, стеками (стаканами) и графиками. |
open_stack | меняет состояние | Открыть стек инструмента в новой вкладке или новом окне, при желании с графиком. |
open_tab | меняет состояние | Открыть одну вкладку с несколькими инструментами. |
add_stacks | меняет состояние | Добавить инструменты в существующую вкладку. |
open_multiview | меняет состояние | Открыть монету на всех биржах «Раскладки бирж», как это делает кнопка «Мультивью». |
set_stack_instrument | меняет состояние | Переключить стек (и графики, которые за ним следуют) на другой инструмент. |
close_stack | меняет состояние | Закрыть один стек, как это делает его кнопка закрытия. |
close_tab | меняет состояние | Закрыть вкладку окна. |
activate_tab | меняет состояние | Выбрать вкладку в её окне; фокус окна не меняется (см. |
close_window | меняет состояние | Закрыть окно. |
activate_window | меняет состояние | Развернуть окно, если оно свёрнуто, и вывести его на передний план. |
Счёт
account_overview
только чтение
Балансы, открытые позиции с PnL и число открытых заявок по одному подключению.
Самый дешёвый способ ответить на вопрос «что держит этот счёт». Балансы и исполнения — то, что терминал накопил с момента включения его API; позиции и заявки — живое состояние.
| Параметр | Тип | Описание |
|---|---|---|
connection_idобязательный | int | Идентификатор подключения из terminal_status; оно должно торговать (ключи, включено) |
leverage
только чтение
Плечо, его максимум, режим плеча терминала и режим маржи инструмента.
Читается из кэша терминала: инструмент, которого терминал ещё не
касался, отвечает not_active — откройте его в терминале или задайте
плечо через set_leverage.
| Параметр | Тип | Описание |
|---|---|---|
connection_idобязательный | int | Идентификатор подключения из terminal_status; оно должно торговать (ключи, включено) |
instrumentобязательный | str | Адрес фьючерсного инструмента exchange:market:symbol |
open_orders
только чтение
Открытые заявки и триггерные заявки подключения, с ключом и биржевым id каждой.
Используйте key (t-…), чтобы снять заявку, поставленную через API,
и чтобы узнать её после place_order.
| Параметр | Тип | Описание |
|---|---|---|
connection_idобязательный | int | Идентификатор подключения из terminal_status; оно должно торговать (ключи, включено) |
instrumentнеобязательный | str | None | Только этот инструмент (exchange:market:symbol); без него — все |
recent_fills
только чтение
Последние исполнения подключения, от старых к новым, с итогами объёма покупок и продаж.
Терминал хранит исполнения с момента включения его API (последние 1000 на подключение); более старая история здесь недоступна.
| Параметр | Тип | Описание |
|---|---|---|
connection_idобязательный | int | Идентификатор подключения из terminal_status; оно должно торговать (ключи, включено) |
limitнеобязательный | int | Сколько последних исполнений вернуть По умолчанию: 20. |
since_tsнеобязательный | int | None | Только исполнения с этой отметкой времени (миллисекунды UTC) или позже |
Инструменты
find_instrument
только чтение
Найти точный адрес инструмента по монете или символу.
Ищет в справочнике подключений терминала — одного подключения, одной
биржи или всех — и возвращает совпадения, лучшие первыми: точный символ
или базовая монета, затем та же база за числовым префиксом (1000PEPE),
затем префиксы. Поле instrument совпадения передавайте во все
остальные инструменты MCP.
| Параметр | Тип | Описание |
|---|---|---|
queryобязательный | str | Монета или часть символа, регистр не важен: BTC, ETHUSDT, SOL-USDT |
exchangeнеобязательный | str | None | Биржа строчными буквами: binance, bybit, okx, …; без неё — все |
marketнеобязательный | str | None | spot или futures; без него — оба |
connection_idнеобязательный | int | None | Искать только в одном подключении (из terminal_status) |
limitнеобязательный | int | Сколько совпадений вернуть По умолчанию: 10. |
Рыночные данные
market_snapshot
только чтение
Последняя цена, лучшие bid и ask со спредом, цена маркировки (mark), изменение и объём за 24 ч.
Самый дешёвый способ ответить на вопрос «где сейчас торгуется X». Поля, которых терминал ещё не получил, равны null; для инструмента, не открытого в терминале, вызов один раз ненадолго ждёт, чтобы их заполнить.
| Параметр | Тип | Описание |
|---|---|---|
instrumentобязательный | str | Адрес инструмента exchange:market:symbol |
connection_idнеобязательный | int | None | Идентификатор подключения из terminal_status; оно должно торговать (ключи, включено) |
order_book_top
только чтение
Верхние уровни стакана с объёмом по каждой стороне и дисбалансом.
imbalance — это (объём бидов - объём асков) / (объём бидов + объём асков)
по возвращённым уровням: +1 — одни биды, -1 — одни аски. Уровни — пары
[price, size], биды от лучшей цены вниз, аски от лучшей цены вверх.
| Параметр | Тип | Описание |
|---|---|---|
instrumentобязательный | str | Адрес инструмента exchange:market:symbol |
depthнеобязательный | int | Уровней с каждой стороны По умолчанию: 10. |
connection_idнеобязательный | int | None | Идентификатор подключения из terminal_status; оно должно торговать (ключи, включено) |
recent_trades_summary
только чтение
Объём покупок и продаж, дельта, VWAP, диапазон цен и крупнейшая сделка среди последних сделок.
Сводит последние limit сделок, которые терминал хранит по инструменту
(он держит последние 1000). Сами сделки не возвращаются; span_ms
говорит, сколько времени покрывает пачка.
| Параметр | Тип | Описание |
|---|---|---|
instrumentобязательный | str | Адрес инструмента exchange:market:symbol |
limitнеобязательный | int | Сколько последних сделок свести По умолчанию: 200. |
connection_idнеобязательный | int | None | Идентификатор подключения из terminal_status; оно должно торговать (ключи, включено) |
cluster_summary
только чтение
Кластеры объёма по бакетам: объём по сторонам, дельта, VWAP, диапазон, самые активные ценовые уровни.
Бакеты идут с интервалом, который трейдер выбрал для этого инструмента
в терминале (по умолчанию 5m); новейший бакет обычно ещё открыт
(completed false). Инструмент, который терминал ещё не считал,
запускается по запросу и засевается историей; вызов один раз ждёт
засева.
| Параметр | Тип | Описание |
|---|---|---|
instrumentобязательный | str | Адрес инструмента exchange:market:symbol |
bucketsнеобязательный | int | Сколько последних бакетов вернуть По умолчанию: 3. |
top_levelsнеобязательный | int | Ценовых уровней на бакет, по объёму По умолчанию: 5. |
connection_idнеобязательный | int | None | Идентификатор подключения из terminal_status; оно должно торговать (ключи, включено) |
candles
только чтение
Бары OHLCV за интервал: последние limit баров, от старых к новым.
Строки — компактные массивы под columns. ts — время открытия бара;
closed false отмечает бар, который ещё формируется. Листайте назад,
передавая ts первой строки как end.
| Параметр | Тип | Описание |
|---|---|---|
instrumentобязательный | str | Адрес инструмента exchange:market:symbol |
intervalнеобязательный | str | Интервал бара: 1m, 5m, 15m, 30m, 1h, 4h, 1d, 1w, 1M По умолчанию: '1m'. |
limitнеобязательный | int | Сколько последних баров вернуть По умолчанию: 50. |
endнеобязательный | int | None | Правая граница в миллисекундах UTC; без неё — сейчас |
connection_idнеобязательный | int | None | Идентификатор подключения из terminal_status; оно должно торговать (ключи, включено) |
Настройки
settings
только чтение
Строки настроек, как они хранятся, с признаком, пишется ли каждая через update_settings.
Без аргументов — строки всего терминала (мультивью, график, звуки,
горячие клавиши, …). Настройки одного стека, разрешённые так, как их
видит стек, — это orderbook_settings.
| Параметр | Тип | Описание |
|---|---|---|
scopeнеобязательный | str | None | global (по умолчанию) или order_book |
categoryнеобязательный | str | None | Фильтр по категории |
keyнеобязательный | str | None | Фильтр по ключу |
connection_idнеобязательный | int | None | Строки этого подключения; без него — строки всего приложения |
instrumentнеобязательный | str | None | Строки этой пары (область order_book) |
orderbook_settings
только чтение
Настройки стека одного инструмента так, как их видит его стек на подключении.
У каждого ключа назван уровень, с которого взято значение: строка самой пары, умолчание подключения, строка пары без подключения или глобальное умолчание.
| Параметр | Тип | Описание |
|---|---|---|
connection_idобязательный | int | Идентификатор подключения из terminal_status |
instrumentобязательный | str | Адрес инструмента exchange:market:symbol |
update_settings
меняет состояние
Записать настройки так, как это делает окно настроек терминала.
Изменение с instrument пишет строку пары; scope order_book с
connection_id — умолчание подключения; без того и другого —
глобальное умолчание. Каждое изменение сначала проверяется —
неизвестный ключ, неверный тип, значение вне диапазона, неверная форма —
и отклоняется с указанием номера, при этом не записывается ничего;
плечо отклоняется (используйте set_leverage). Первое не применившееся
изменение останавливает список; предыдущие остаются применёнными.
| Параметр | Тип | Описание |
|---|---|---|
changesобязательный | list[dict[str, Any]] | Изменения по порядку; у каждого есть category, key, value и, необязательно, scope (global или order_book), instrument и connection_id |
Состояние
terminal_status
только чтение
Проверить, что Spectre Terminal запущен, и перечислить его подключения к биржам.
Возвращает версию терминала, состояние API, топики стрима, которые он отдаёт, важные для агента лимиты и каждое подключение с его id, биржей, рынком и состоянием. Вызывайте его первым в начале сессии или когда другой инструмент сообщает, что терминал недоступен.
Торговля
place_order
меняет состояние
Поставить лимитную или рыночную заявку на подключении. Отвечает «accepted», а не «filled».
Передайте ровно одно из size (базовая монета) и notional (сумма в
валюте котировки). Цены и суммы — десятичные строки; терминал проверяет
минимумы и шаги биржи перед отправкой и отклоняет заявку с указанием
причины. Следите в open_orders за возвращённым key.
| Параметр | Тип | Описание |
|---|---|---|
connection_idобязательный | int | Идентификатор подключения из terminal_status; оно должно торговать (ключи, включено) |
instrumentобязательный | str | Адрес инструмента exchange:market:symbol |
sideобязательный | str | buy или sell |
order_typeобязательный | str | limit (нужна price) или market (без price) |
client_keyобязательный | str | Ваш ключ идемпотентности для этого намерения, например 'rebalance-2026-11-03-1'. Повтор с тем же ключом возвращает прежний ответ и ничего не ставит. |
priceнеобязательный | str | None | Лимитная цена десятичной строкой |
sizeнеобязательный | str | None | Количество в базовой монете десятичной строкой |
notionalнеобязательный | str | None | Сумма в валюте котировки десятичной строкой |
reduce_onlyнеобязательный | bool | Только уменьшать существующую позицию По умолчанию: False. |
post_onlyнеобязательный | bool | Отклонить вместо того, чтобы забрать ликвидность По умолчанию: False. |
time_in_forceнеобязательный | str | None | gtc, ioc, fok или post_only; без него — умолчание биржи |
cancel_order
меняет состояние
Снять одну заявку по ключу терминала или биржевому id. Отвечает «accepted».
| Параметр | Тип | Описание |
|---|---|---|
connection_idобязательный | int | Идентификатор подключения из terminal_status; оно должно торговать (ключи, включено) |
instrumentобязательный | str | Адрес инструмента exchange:market:symbol |
order_idобязательный | str | Ключ терминала (t-…) из open_orders или биржевой id заявки |
cancel_all_orders
меняет состояние
Снять все открытые заявки инструмента на этом подключении. Отвечает «accepted».
| Параметр | Тип | Описание |
|---|---|---|
connection_idобязательный | int | Идентификатор подключения из terminal_status; оно должно торговать (ключи, включено) |
instrumentобязательный | str | Адрес инструмента exchange:market:symbol |
close_position
меняет состояние
Закрыть позицию по инструменту так, как это делает окно терминала. Отвечает «accepted».
Фьючерсы: рыночная заявка на всю позицию. Спот: снятие всех заявок и продажа одной атомарной командой. Отклоняется, если открытой позиции нет.
| Параметр | Тип | Описание |
|---|---|---|
connection_idобязательный | int | Идентификатор подключения из terminal_status; оно должно торговать (ключи, включено) |
instrumentобязательный | str | Адрес инструмента exchange:market:symbol |
place_trigger
меняет состояние
Поставить стоп-лосс, тейк-профит или стоп так, как это делает окно. Отвечает «accepted».
Возвращённый key (sl_…, tp_…, stop_…) появляется как
client_id триггера в open_orders; снимайте или переносите его по
числовому id оттуда. Отклоняется без открытой позиции для
stop_loss/take_profit и с unsupported на бирже, для которой в
терминале нет триггерных заявок.
| Параметр | Тип | Описание |
|---|---|---|
connection_idобязательный | int | Идентификатор подключения из terminal_status; оно должно торговать (ключи, включено) |
instrumentобязательный | str | Адрес инструмента exchange:market:symbol |
kindобязательный | str | stop_loss или take_profit (ставятся на открытую позицию: сторона, размер и правило берутся из неё) или stop (своя сторона и своя сумма) |
trigger_priceобязательный | str | Цена срабатывания десятичной строкой |
client_keyобязательный | str | Ваш ключ идемпотентности для этого намерения. Повтор с тем же ключом возвращает прежний ответ и ничего не ставит. |
sideнеобязательный | str | None | только для stop: buy или sell |
notionalнеобязательный | str | None | только для stop: сумма в валюте котировки, десятичная строка |
ruleнеобязательный | str | None | только для stop: price_above_or_equal или price_below_or_equal; без него — выше рынка для покупки, ниже для продажи |
cancel_trigger
меняет состояние
Снять одну триггерную заявку по её числовому id из open_orders. Отвечает «accepted».
| Параметр | Тип | Описание |
|---|---|---|
connection_idобязательный | int | Идентификатор подключения из terminal_status; оно должно торговать (ключи, включено) |
instrumentобязательный | str | Адрес инструмента exchange:market:symbol |
trigger_idобязательный | str | Числовой id триггера из open_orders |
cancel_all_triggers
меняет состояние
Снять все триггерные заявки инструмента; обычные заявки остаются. Отвечает «accepted».
| Параметр | Тип | Описание |
|---|---|---|
connection_idобязательный | int | Идентификатор подключения из terminal_status; оно должно торговать (ключи, включено) |
instrumentобязательный | str | Адрес инструмента exchange:market:symbol |
amend_trigger
меняет состояние
Перенести триггер на новую цену (снять, затем поставить). Отвечает «accepted».
| Параметр | Тип | Описание |
|---|---|---|
connection_idобязательный | int | Идентификатор подключения из terminal_status; оно должно торговать (ключи, включено) |
instrumentобязательный | str | Адрес инструмента exchange:market:symbol |
trigger_idобязательный | str | Числовой id триггера из open_orders |
kindобязательный | str | stop_loss, take_profit или stop — тип триггера |
trigger_priceобязательный | str | Новая цена срабатывания десятичной строкой |
sideнеобязательный | str | None | только для stop: buy или sell |
ruleнеобязательный | str | None | только для stop: price_above_or_equal или price_below_or_equal |
set_leverage
меняет состояние
Задать плечо фьючерсного инструмента так, как это делает окно. Отвечает «accepted».
Ровно одно из leverage и mode. Применённое значение читайте через
leverage после ответа биржи.
| Параметр | Тип | Описание |
|---|---|---|
connection_idобязательный | int | Идентификатор подключения из terminal_status; оно должно торговать (ключи, включено) |
instrumentобязательный | str | Адрес инструмента exchange:market:symbol |
leverageнеобязательный | int | None | Плечо целым числом не меньше 1; либо передайте mode |
modeнеобязательный | str | None | max или smart (режимы терминала); либо передайте leverage |
set_margin_mode
меняет состояние
Задать режим маржи фьючерсного инструмента. Отвечает «accepted».
Биржа отклоняет смену, пока позиция открыта, как и в окне; ответ «accepted» этого ещё не знает.
| Параметр | Тип | Описание |
|---|---|---|
connection_idобязательный | int | Идентификатор подключения из terminal_status; оно должно торговать (ключи, включено) |
instrumentобязательный | str | Адрес инструмента exchange:market:symbol |
margin_modeобязательный | str | cross или isolated |
Рабочее пространство
workspace
только чтение
Все окна терминала с их вкладками, стеками (стаканами) и графиками.
Главное окно закрыть нельзя; вкладки нумеруются в каждом окне; id виджетов стеков и графиков глобальные. Читайте это перед любой командой рабочего пространства: id меняются с каждым запуском терминала.
open_stack
меняет состояние
Открыть стек инструмента в новой вкладке или новом окне, при желании с графиком.
Отвечает окном, новой вкладкой и id новых виджетов. Инструмент,
которого нет в справочнике терминала, — invalid_request.
| Параметр | Тип | Описание |
|---|---|---|
instrumentобязательный | str | Адрес инструмента exchange:market:symbol |
connection_idнеобязательный | int | None | Подключение; без него выбирается по общему правилу |
chartнеобязательный | bool | Открыть график над стеком По умолчанию: False. |
targetнеобязательный | str | new_tab (в window_id или в окне в фокусе) или new_window По умолчанию: 'new_tab'. |
window_idнеобязательный | int | None | Окно для новой вкладки |
activateнеобязательный | bool | False открывает вкладку в фоне; новое окно всегда получает фокус По умолчанию: True. |
open_tab
меняет состояние
Открыть одну вкладку с несколькими инструментами: колонка на каждый элемент, в новой вкладке или окне.
Каждый элемент — стек и, с chart, график над ним. От одного до
пятидесяти элементов. Отвечает окном, новой вкладкой и id новых
виджетов в порядке колонок. Отказ называет элемент (items[1]: …), и
не открывается ничего.
| Параметр | Тип | Описание |
|---|---|---|
itemsобязательный | list[dict[str, Any]] | Колонки по порядку; у каждой есть instrument (exchange:market:symbol) и, необязательно, connection_id и chart (true открывает график над стеком) |
nameнеобязательный | str | None | Имя вкладки, до 64 символов; None называет её по инструментам |
targetнеобязательный | str | new_tab (в window_id или в окне в фокусе) или new_window По умолчанию: 'new_tab'. |
window_idнеобязательный | int | None | Окно для новой вкладки |
activateнеобязательный | bool | False открывает вкладку в фоне; новое окно всегда получает фокус По умолчанию: True. |
add_stacks
меняет состояние
Добавить инструменты в существующую вкладку: колонка на каждый элемент после последней колонки вкладки.
Вкладка сохраняет имя и ширины колонок. Отвечает только id добавленных
стеков и графиков. Нет такого окна или вкладки — not_found.
| Параметр | Тип | Описание |
|---|---|---|
window_idобязательный | int | Id окна из инструмента workspace |
tab_idобязательный | int | Id вкладки из инструмента workspace; вкладки нумеруются в каждом окне |
itemsобязательный | list[dict[str, Any]] | Колонки по порядку; у каждой есть instrument (exchange:market:symbol) и, необязательно, connection_id и chart (true открывает график над стеком) |
open_multiview
меняет состояние
Открыть монету на всех биржах «Раскладки бирж», как это делает кнопка «Мультивью».
not_found, если монеты нет ни в одной включённой строке раскладки.
| Параметр | Тип | Описание |
|---|---|---|
baseобязательный | str | Монета (BTC) или пара (BTC/USDT) |
targetнеобязательный | str | None | new_tab или new_window; None следует настройке терминала |
window_idнеобязательный | int | None | Окно для новой вкладки |
activateнеобязательный | bool | False открывает вкладку в фоне; новое окно всегда получает фокус По умолчанию: True. |
set_stack_instrument
меняет состояние
Переключить стек (и графики, которые за ним следуют) на другой инструмент.
| Параметр | Тип | Описание |
|---|---|---|
widget_idобязательный | int | widget_id стека из инструмента workspace |
instrumentобязательный | str | Адрес инструмента exchange:market:symbol |
connection_idнеобязательный | int | None | Подключение; без него выбирается по общему правилу |
close_stack
меняет состояние
Закрыть один стек, как это делает его кнопка закрытия. Id виджета графика — invalid_request.
| Параметр | Тип | Описание |
|---|---|---|
widget_idобязательный | int | widget_id стека из инструмента workspace |
close_tab
меняет состояние
Закрыть вкладку окна. Единственную вкладку окна закрыть нельзя.
| Параметр | Тип | Описание |
|---|---|---|
window_idобязательный | int | Id окна из инструмента workspace |
tab_idобязательный | int | Id вкладки из инструмента workspace; вкладки нумеруются в каждом окне |
activate_tab
меняет состояние
Выбрать вкладку в её окне; фокус окна не меняется (см. activate_window).
| Параметр | Тип | Описание |
|---|---|---|
window_idобязательный | int | Id окна из инструмента workspace |
tab_idобязательный | int | Id вкладки из инструмента workspace; вкладки нумеруются в каждом окне |
close_window
меняет состояние
Закрыть окно. Главное окно отклоняется: его закрытие завершило бы терминал.
| Параметр | Тип | Описание |
|---|---|---|
window_idобязательный | int | Id окна из инструмента workspace |
activate_window
меняет состояние
Развернуть окно, если оно свёрнуто, и вывести его на передний план.
| Параметр | Тип | Описание |
|---|---|---|
window_idобязательный | int | Id окна из инструмента workspace |
Собрано из кода spectre-terminal-mcp, коммит 2d1c324.