Перейти к содержимому

Инструменты 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 | Nonespot или 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 | Noneglobal (по умолчанию) или 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обязательныйstrbuy или sell
order_typeобязательныйstrlimit (нужна 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 | Nonegtc, 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обязательныйstrstop_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обязательныйstrstop_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 | Nonemax или smart (режимы терминала); либо передайте leverage

set_margin_mode

меняет состояние

Задать режим маржи фьючерсного инструмента. Отвечает «accepted».

Биржа отклоняет смену, пока позиция открыта, как и в окне; ответ «accepted» этого ещё не знает.

ПараметрТипОписание
connection_idобязательныйintИдентификатор подключения из terminal_status; оно должно торговать (ключи, включено)
instrumentобязательныйstrАдрес инструмента exchange:market:symbol
margin_modeобязательныйstrcross или isolated

Рабочее пространство

workspace

только чтение

Все окна терминала с их вкладками, стеками (стаканами) и графиками.

Главное окно закрыть нельзя; вкладки нумеруются в каждом окне; id виджетов стеков и графиков глобальные. Читайте это перед любой командой рабочего пространства: id меняются с каждым запуском терминала.

open_stack

меняет состояние

Открыть стек инструмента в новой вкладке или новом окне, при желании с графиком.

Отвечает окном, новой вкладкой и id новых виджетов. Инструмент, которого нет в справочнике терминала, — invalid_request.

ПараметрТипОписание
instrumentобязательныйstrАдрес инструмента exchange:market:symbol
connection_idнеобязательныйint | NoneПодключение; без него выбирается по общему правилу
chartнеобязательныйboolОткрыть график над стеком По умолчанию: False.
targetнеобязательныйstrnew_tab (в window_id или в окне в фокусе) или new_window По умолчанию: 'new_tab'.
window_idнеобязательныйint | NoneОкно для новой вкладки
activateнеобязательныйboolFalse открывает вкладку в фоне; новое окно всегда получает фокус По умолчанию: 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необязательныйstrnew_tab (в window_id или в окне в фокусе) или new_window По умолчанию: 'new_tab'.
window_idнеобязательныйint | NoneОкно для новой вкладки
activateнеобязательныйboolFalse открывает вкладку в фоне; новое окно всегда получает фокус По умолчанию: True.

add_stacks

меняет состояние

Добавить инструменты в существующую вкладку: колонка на каждый элемент после последней колонки вкладки.

Вкладка сохраняет имя и ширины колонок. Отвечает только id добавленных стеков и графиков. Нет такого окна или вкладки — not_found.

ПараметрТипОписание
window_idобязательныйintId окна из инструмента workspace
tab_idобязательныйintId вкладки из инструмента 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 | Nonenew_tab или new_window; None следует настройке терминала
window_idнеобязательныйint | NoneОкно для новой вкладки
activateнеобязательныйboolFalse открывает вкладку в фоне; новое окно всегда получает фокус По умолчанию: True.

set_stack_instrument

меняет состояние

Переключить стек (и графики, которые за ним следуют) на другой инструмент.

ПараметрТипОписание
widget_idобязательныйintwidget_id стека из инструмента workspace
instrumentобязательныйstrАдрес инструмента exchange:market:symbol
connection_idнеобязательныйint | NoneПодключение; без него выбирается по общему правилу

close_stack

меняет состояние

Закрыть один стек, как это делает его кнопка закрытия. Id виджета графика — invalid_request.

ПараметрТипОписание
widget_idобязательныйintwidget_id стека из инструмента workspace

close_tab

меняет состояние

Закрыть вкладку окна. Единственную вкладку окна закрыть нельзя.

ПараметрТипОписание
window_idобязательныйintId окна из инструмента workspace
tab_idобязательныйintId вкладки из инструмента workspace; вкладки нумеруются в каждом окне

activate_tab

меняет состояние

Выбрать вкладку в её окне; фокус окна не меняется (см. activate_window).

ПараметрТипОписание
window_idобязательныйintId окна из инструмента workspace
tab_idобязательныйintId вкладки из инструмента workspace; вкладки нумеруются в каждом окне

close_window

меняет состояние

Закрыть окно. Главное окно отклоняется: его закрытие завершило бы терминал.

ПараметрТипОписание
window_idобязательныйintId окна из инструмента workspace

activate_window

меняет состояние

Развернуть окно, если оно свёрнуто, и вывести его на передний план.

ПараметрТипОписание
window_idобязательныйintId окна из инструмента workspace

Собрано из кода spectre-terminal-mcp, коммит 2d1c324.

На этой странице