TVControl
TVControl
TradingView MCP System · by Ferrox Labs
Расскажите своему ИИ, что вы хотите от графика TradingView, — и наблюдайте, как это происходит на экране.
TVControl превращает ваш TradingView Desktop в нечто, с чем можно разговаривать. Вы вводите предложение («суммируй этот график», «прогони эту стратегию по SPY, QQQ и IWM на 5m и 15m», «пройди по марту прошлого года бар за баром и отметь пробой») — и ИИ читает, кликает, печатает, компилирует и делает скриншоты прямо в приложении TradingView на вашей машине. Никакого копирования и вставки и никакого облачного бэкенда под управлением TVControl. TradingView Desktop и явно выбранные помощники с публичным API по-прежнему общаются с TradingView так, как задокументировано.
Это работает потому, что каждое Chromium-приложение, включая TradingView Desktop, поставляется со встроенным интерфейсом отладки (тем самым, с помощью которого Chrome отлаживает сам себя). TVControl говорит на этом интерфейсе от вашего имени, открывая 109 инструментов управления графиком и диагностики любому ИИ-агенту, поддерживающему Model Context Protocol (Claude Code, Codex, Gemini CLI, Cursor и другие). Парное программирование на Pine Script. Оптимизация сеток параметров. Снимки и восстановление целых конфигураций графиков. Управление макетами из 4 панелей. Проход по реплею. Сканирование списка наблюдения. Всё — от речи к действию.
109 MCP-инструментов · 736 детерминированных офлайн-тестов · 10 скриптов проверки · 8 рабочих процессов в библиотеке промптов · без облачного бэкенда TVControl. Всё в этом репозитории реально, протестировано и используется ежедневно.
Что нового в 2.3.0
Версия 2.3.0 — о том, чтобы сделать что-то один раз для всего, за чем вы наблюдаете, а не для каждого символа по отдельности.
Установка алертов на весь список наблюдения одним вызовом.
alert_create_bulkпринимает список символов или не принимает его вовсе и использует ваш активный список наблюдения. Направьте их все на одинwebhook_url— и уведомления пойдут в ваше приложение вместо 74 отдельных писем. Оцените каждый алерт относительно последней сделки своего символа с помощьюpercent_from_last, так что «на 5% выше текущей цены» означает разное для каждого символа, и вам не нужно вводить числа.dry_run: trueсначала печатает весь пакет. Замер на списке из 29 символов: пробный прогон занимает около полсекунды, и график не двигается.Котировки целого списка за один раз.
quote_batchвозвращает последнюю цену, OHLC, изменение и объём для многих символов одним серверным вызовом. 29 символов за 272 мс. Он называет символы, которые не смог найти, а не молча возвращает более короткий список.Исправлена разрушительная ошибка Pine.
pine_newзаменял всё, что было в редакторе, шаблоном и сообщалnew_script_created. Он ничего не создавал — именно так и уничтожается настоящий скрипт. Теперь он отказывается перезаписывать нетривиальный буфер, если вы не передадитеconfirm_overwrite: true, и завершается с ошибкой в безопасную сторону, если не может прочитать буфер для проверки.Тихий успех исчез из инструментов изменения. Инструмент, который что-то меняет, теперь строит свой ответ на основе независимого чтения, а не ответа того, что он только что сделал. Удаление несуществующего id алерта раньше возвращало
success: true, verified: true. Добавление голого тикера в список наблюдения раньше сохраняло буквальную строку.draw_clearраньше возвращал захардкоженныйall_shapes_removed, не глядя.Сломанная панель теперь обнаруживается и чинится. Панель графика могла застрять в бесконечном цикле переподключения, и ручная пересборка макета казалась единственным решением. Это была гонка в TVControl: TradingView возвращает Promise из
createStudyи подобных функций, и чтение результата после фиксированной задержки вместо ожидания этих Promise могло оставить индикатор без серверного id, что с тех пор разрушает сессию данных этой панели при каждом переподключении. Теперь Promise ожидаются, незарегистрированный индикатор никогда не остаётся, аtv_chart_healthиtv_repair_chartнаходят и чинят панель, которая уже находится в таком состоянии, не трогая ваш макет.Офлайн-набор тестов действительно офлайн. Раньше он открывал живое CDP-соединение и вызывал
removeAllShapes()на реальном графике при каждом запуске. Теперь он изолирован, а защита превращает следующий побег в красный тест, а не в потерянный рисунок.Сервер больше не описывает себя неверно. Версия и количество инструментов вычисляются при запуске и проверяются при передаче, после того как в релизе сервер объявил себя версией 2.2.1 со 102 инструментами, зарегистрировав при этом 103.
См. журнал изменений и руководство по обновлению.
Related MCP server: TradingView MCP Jackson
Что он реально делает (с промптами, которые работают)
Вставьте любой из этих промптов в Claude Code (или в вашего MCP-совместимого агента) после подключения TVControl.
Чтение графика одним промптом.
Используй
chart_vision_read, чтобы суммировать мой график: символ, таймфрейм, последняя цена, видимые индикаторы с их текущими значениями, пользовательские уровни и метки Pine, а также движение за последние 100 баров.
Один вызов инструмента возвращает символ, таймфрейм, значения индикаторов, пользовательские рисунки Pine, сводку OHLCV и скриншот. Примерно 5–10 КБ вместо ~80 КБ при пяти отдельных вызовах.
Парное программирование на Pine Script.
Напиши мне индикатор Pine v6, который рисует EMA за 20 периодов синим и EMA за 50 периодов оранжевым, затем скомпилируй его на моём графике. Исправь все ошибки. Сохрани его как «EMA Cross».
Внедрение, компиляция на сервере, чтение ошибок, исправление, сохранение. Ошибки компилятора возвращаются агенту напрямую, поэтому итерация занимает секунды, а не минуты.
Оптимизация сетки параметров.
Используй
strategy_sweep, чтобы протестировать мою текущую стратегию на [SPY,QQQ,IWM] на5и15сlength10, 14, 20 иmultiplier1.5, 2, 2.5. Отранжируй по чистой прибыли.
Декартово произведение, дисковый кэш с TTL 24 часа (повторные запуски почти мгновенны), опциональные рабочие вкладки parallelism: N, возобновление с частичного результата. Максимум 500 комбинаций.
Снимок конфигурации. Восстановление позже.
Сделай снимок моего текущего графика как «morning-prep». Переключись на BTCUSDT 4h с VWAP и Bollinger Bands. Готово? Восстанови «morning-prep».
Захватывает символ, таймфрейм, все индикаторы и их входные параметры, рисунки и полный blob metaInfo для опубликованных скриптов Pine, даже тех, которые обычно не перезагружаются.
Практика с реплеем.
Запусти реплей с 2025-03-10 09:30 ET. Пройди по шагам открытие. Отмечай любые пробои на 1-минутном графике и имитируй вход. Покажи мне текущий P&L.
Сканирование списка наблюдения.
Для каждого символа в моём списке наблюдения сделай скриншот дневного графика, прочитай RSI(14) и отранжируй по шкале от перекупленности к перепроданности.
Алерты на всё, за чем вы наблюдаете, без установки по одному.
Установи алерт на 5% выше последней цены для каждого символа в моём списке наблюдения, все указывают на
https://my-app.example/tv-hook, на закрытии бара, 1h. Сначала покажи пробный прогон.
Один вызов. alert_create_bulk читает ваш активный список наблюдения, оценивает каждый алерт относительно последней сделки этого символа и проверяет весь пакет одним чтением списка алертов после этого. Всё попадает на ваш webhook, поэтому фильтрация, группировка и дедупликация происходят в вашем коде, а не в почтовом ящике.
Полная библиотека промптов (все описанные выше рабочие процессы плюс анализ графиков, список наблюдения и алерты, скрининг и советы по промптам для агентов) находится в examples/prompts/. Восемь файлов. Можно копировать и вставлять.
Как это подтверждается (доказательства)
Это не демо. В комплекте идёт набор тестов.
732 офлайн-теста: анализатор Pine, санитизация, реплей, границы панелей и индикаторов, список наблюдения, алерты, снимки состояния, планирование прогонов, обёртка для зрения, телеметрия, ограничение возможностей, приватные безопасные пакеты, очистка после хаоса, границы длительных тестов, золотые рабочие процессы, нативные службы наблюдения, безопасность обновлений, регистрация инструментов и маршрутизация CLI. Живые проверки Pine-сервиса изолированы в
tests/pine_api.test.js.10 скриптов сквозной проверки в
examples/verify/, которые управляют теми же MCP-инструментами через CLItvпротив живого TradingView. Запуститеexamples/verify/run-all.sh— и он автоматически пропустит проверки, если TV не запущен.GitHub Actions CI запускает линтер, офлайн-тесты, аудит зависимостей и проверки пакетов на Node 18 и 22 в Linux, macOS и Windows.
CDP smoke (
scripts/smoke.sh): контрольная проверка живого соединения с вашим локальным TradingView.
npm test # offline suite
./examples/verify/00-verify-install.sh # offline install check
./examples/verify/run-all.sh # full live batteryЕсли ваша версия TradingView меняет какой-то внутренний API, набор проверок даст вам знать об этом в течение секунд.
Быстрый старт
Установите текущий публичный релиз из npm:
npm install -g @ferroxlabs/tvcontrol
tv --helpПакет устанавливает и tv, и tvcontrol. Для конфигурации MCP-сервера используйте установленный src/server.js или один из путей репозитория ниже.
Вариант A. Claude Code, один промпт для установки
Вставьте это в Claude Code один раз — и он сделает всё остальное.
Установи TVControl MCP-сервер. Клонируй https://github.com/ferroxlabs/tvcontrol.git в ~/tvcontrol, выполни
npm install, добавь его в мой MCP-конфиг Claude Code в~/.claude/.mcp.jsonкак сервер с именемtvcontrol, указывающий на~/tvcontrol/src/server.js, затем запустиtv_launch, чтобы запустить TradingView в режиме отладки, иtv_health_check, чтобы подтвердить соединение.
Claude Code клонирует, установит, зарегистрирует сервер и проверит. Перезапустите Claude Code после завершения, чтобы новый MCP-сервер загрузился.
Вариант B. Вручную, любой MCP-клиент
# 1. Clone and install
git clone https://github.com/ferroxlabs/tvcontrol.git
cd tvcontrol
npm install
# 2. Launch TradingView with the debug port enabled (one-time, per platform)
./scripts/launch_tv_debug_mac.sh # macOS
./scripts/launch_tv_debug_linux.sh # Linux
scripts\launch_tv_debug.bat # Windows
# Or by hand on any platform:
/path/to/TradingView --remote-debugging-port=9222В установках Windows Store/MSIX tv_launch также обнаруживает пакет с помощью Get-AppxPackage. Если Windows блокирует CDP из защищённого каталога WindowsApps, он запускает версионированную локальную копию в %LOCALAPPDATA%\tvcontrol\desktop-cache и сообщает msix_local_copy: true.
Затем добавьте это в конфиг вашего MCP-клиента (~/.claude/.mcp.json для Claude Code, аналогичное расположение для Codex / Gemini CLI / Cursor), заменив путь на ваш абсолютный путь.
{
"mcpServers": {
"tvcontrol": {
"command": "node",
"args": ["/absolute/path/to/tvcontrol/src/server.js"]
}
}
}Перезапустите клиент. Готовый пример конфига находится в examples/mcp-config.example.json.
Проверьте:
Используй
tv_health_check, затемchart_vision_read, чтобы суммировать мой график.
Если вы получили абзац с описанием вашего реального графика — всё работает.
Вариант C. Только CLI (агент не требуется)
Каждый MCP-инструмент — это также команда tv с JSON-выводом, удобная для jq. Пропустите ИИ-клиент полностью, если вам нужен просто программируемый доступ к вашему TradingView.
git clone https://github.com/ferroxlabs/tvcontrol.git
cd tvcontrol
npm install
npm link # optional: puts `tv` on your PATH
# launch TV with debug port (see Path B), then:
tv status # connection check
tv quote # latest price
tv ohlcv --summary # compact stats
tv pine compile # compile current Pine on chart
tv stream quote | jq '.close' # tick-by-tick price streamКарта каталога примеров
Рабочий процесс | Файл |
Первые 5 минут | |
Анализ графика | |
Разработка на Pine Script | |
Снимок и восстановление состояния графика | |
Прогоны параметров стратегии | |
Практика исторического реплея | |
Список наблюдения и алерты | |
Скрининг и оптимизация | |
Советы по промптам для агентов |
Каждый файл промптов перечисляет инструменты, которые срабатывают, чего ожидать и типичные подводные камни, так что вы можете читать его как инструкцию перед вставкой или использовать в своей автоматизации.
CLI-интерфейс
tv status / launch / state / symbol / timeframe / type / info / search
tv quote / ohlcv / values
tv data lines / labels / tables / boxes / strategy / trades / equity / depth / indicator
tv pine get / set / compile / analyze / check / save / new / open / list / errors / console
tv draw shape / list / get / remove / clear
tv alert list / create / delete
tv watchlist get / add / remove / export / import
tv indicator add / remove / toggle / set / get
tv layout list / switch
tv pane list / layout / focus / symbol
tv tab list / new / close / switch
tv replay start / step / stop / status / autoplay / trade
tv stream quote / bars / values / lines / labels / tables / all
tv ui click / keyboard / hover / scroll / find / eval / type / panel / fullscreen / mouse
tv screenshot / discover / ui-state / range / scroll
tv capabilities / support
tv chaos / soak / golden
tv compatibility / watchdog sample / watchdog history / watchdog service-planВсе команды возвращают JSON. Основные инструменты управления графиками имеют CLI-аналоги; длительные или разрушительные средства проверки надёжности намеренно реализованы в первую очередь как CLI.
Инструментарий надёжности
Слой совместимости перед выполнением проверяет API TradingView, необходимые каждому инструменту. Инструмент блокируется только тогда, когда живой канареечный тест явно подтверждает отсутствие требуемого API; если сам канареечный тест недоступен, инструменты восстановления по-прежнему могут выполняться.
tv capabilities # per-tool live capability matrix
tv support # redacted .json.gz support bundle
tv chaos # dry-run fault plan
tv chaos --allow-live-faults # bounded disconnect/stall/tab recovery checks
tv soak --duration-ms 3600000 # health + stream + watchdog soak
tv golden # six receipt-producing live workflows
tv watchdog service-plan # native service definition, no changes
tv watchdog install --apply # launchd/systemd-user/Task SchedulerХаос-тестирование выполняется в режиме dry-run, если не указан --allow-live-faults. Сценарии длительного тестирования restore/sweep и эталонные проверки snapshot/replay требуют --allow-mutations. Установка и удаление watchdog выполняются в режиме dry-run, если не указан --apply. Квитанции имеют ограниченный объём и не содержат символов, URL, идентификаторов, связанных с учётной записью, исходного кода и необработанных сообщений об ошибках.
Потоковая передача
tv stream опрашивает ваш локальный TradingView Desktop через CDP и выводит JSONL. У TVControl нет облачного бэкенда для потоковой передачи; TradingView Desktop продолжает обычное взаимодействие с TradingView.
tv stream quote # tick-by-tick price
tv stream bars # bar-by-bar updates
tv stream values # indicator values
tv stream lines --filter "NY Levels" # custom Pine levels
tv stream tables --filter Profiler # Pine table rows
tv stream all # all panes at once[!WARNING] Программное потребление данных TradingView может противоречить их Условиям использования независимо от способа доступа. Вы несёте единоличную ответственность за соблюдение.
Архитектура
AI Agent <-> MCP Server (stdio) <-> CDP (localhost:9222) <-> TradingView Desktop (Electron)Транспорт: MCP через stdio плюс CLI
tv, предоставляющий тот же набор возможностей.Подключение: Chrome DevTools Protocol на
localhost:9222.Потоковая передача: цикл опроса и сравнения (poll-and-diff) с дедупликацией, JSONL в stdout.
Рантайм-зависимости:
@modelcontextprotocol/sdk,chrome-remote-interface. И всё.
Полное дерево решений по каждому инструменту (какой инструмент вызывать для какого вопроса) находится в CLAUDE.md. Прочтите его один раз, если хотите понять, как агент выбирает инструменты.
Как это остаётся безопасным для запуска
Отладочный порт в TradingView выключен, пока вы не включите его с помощью стандартного флага
--remote-debugging-port=9222.Модуль управления графиками TVControl общается по CDP с уже запущенным на вашей машине Electron-приложением. TradingView Desktop и явно задокументированные публичные вспомогательные функции по-прежнему взаимодействуют с TradingView.
TVControl не использует облачный бэкенд. Локальные снимки, телеметрия, квитанции о надёжности и пакеты поддержки записываются только при использовании соответствующих функций.
Никаких реальных сделок не выполняется. Только графики, рисунки, индикаторы и код Pine.
TV_MCP_READONLY=1регистрирует только те инструменты, которые не могут изменить состояние вашего TradingView. Для работы без присмотра — запланированная утренняя сводка, cron-задача, CI-агент — когда рядом нет никого, кто мог бы одобрить вызов. Грант MCP действует на уровне сервера, поэтому хост, имеющий доступ к TVControl, может получить доступ к каждому зарегистрированному им инструменту; при этом флаге изменяющие состояние инструменты никогда не регистрируются, так что их вызов — это ошибка «неизвестный инструмент», а не обещание, которое модель должна сдержать. Чтение, диагностика, скриншоты и навигация по графикам (переключение символа, таймфрейма, диапазона, панели/вкладки/макета) остаются доступными; редактирование списка наблюдения, создание/удаление оповещений, запись рисунков, изменение индикаторов, сохранение Pine, replay,state_restoreиtv_launch— нет.ui_evaluateостаётся выключенным, даже если также установленTV_MCP_ADVANCED=1.
Тот же интерфейс CDP встроен в каждое Chromium-приложение: VS Code, Slack, Discord, сам Chrome. Это не лазейка; это стандартный интерфейс отладки, который Google поставляет вместе с рантаймом.
Совместимость
TVControl взаимодействует с недокументированными внутренними API TradingView через интерфейс отладки Electron. Они могут измениться в любом обновлении TradingView без предупреждения. Закрепите версию TradingView Desktop, если для вас важна стабильность.
Протестировано на macOS, Windows и Linux на момент релиза.
Требуется Node.js 18+.
Отказ от ответственности
Этот проект предоставляется только для личных, образовательных и исследовательских целей.
Используя данное программное обеспечение, вы подтверждаете, что:
Вы несёте единоличную ответственность за то, чтобы ваше использование соответствовало Условиям использования TradingView и всем применимым законам.
Условия использования TradingView ограничивают автоматический сбор данных, скрейпинг и использование платформы и данных не для отображения. TVControl использует Chrome DevTools Protocol для программного взаимодействия с приложением TradingView Desktop, что может противоречить этим условиям.
Вы принимаете на себя весь риск. Ferrox Labs и её участники не несут ответственности за блокировку аккаунтов, приостановки, судебные иски или любые последствия, возникшие в результате использования этого инструмента.
Этот инструмент не должен использоваться для: распространения или коммерческой эксплуатации рыночных данных TradingView; обхода средств контроля доступа или платного доступа TradingView; совершения автоматизированной реальной торговли; или нарушения прав интеллектуальной собственности авторов Pine Script.
Функция потоковой передачи опрашивает только ваш локальный экземпляр TradingView Desktop; приложение Desktop по-прежнему отвечает за своё обычное сетевое соединение с TradingView.
Рыночные данные, полученные через этот инструмент, остаются под действием лицензионных условий бирж и провайдеров. Не распространяйте, не храните и не используйте их в коммерческих целях.
TVControl не аффилирован с TradingView Inc., не одобрен ею и не связан с ней. TradingView является товарным знаком TradingView Inc.
Если вы не уверены, что ваше предполагаемое использование соответствует условиям TradingView, не используйте TVControl.
Благодарности
TVControl начинался как форк tradingview-mcp от tradesdontlie. Этот проект заложил основной подход с CDP-мостом и исходный набор инструментов, а также доказал жизнеспособность всей схемы «управление TradingView Desktop из MCP-агента».
TVControl развивает эту основу, добавляя полные снимки и восстановление состояния (включая blob metaInfo для опубликованного Pine), декартовы переборы стратегий с мемоизацией на диске и параллельными вкладками-воркерами, комбинированный одноразовый вызов chart_vision_read, обработку классифицированных ошибок с подсказками по устранению, опциональную телеметрию в формате JSONL, рантайм-гейты с учётом возможностей, безопасную для приватности диагностику, службы watchdog, проверки chaos/soak/golden, расширенный набор офлайн-тестов, скрипты сквозной проверки, кроссплатформенный CI на GitHub Actions и курируемую библиотеку промптов.
За основу следует благодарить автора исходного проекта. Если вы пришли сюда в поисках оригинала, он здесь.
Лицензия
MIT. См. LICENSE.
Лицензия MIT распространяется только на исходный код этого проекта. Она не предоставляет прав на программное обеспечение, данные, товарные знаки или иную интеллектуальную собственность TradingView.
Available Tools
105 toolsalert_createB
Create a price alert on the current chart using TradingView's authenticated alert API
| Name | Required | Description | Default |
|---|---|---|---|
| price | Yes | Price level for the alert | |
| message | No | Alert message | |
| condition | Yes | Condition: crossing, greater_than, or less_than | |
| frequency | No | on_first_fire fires once then deactivates. on_bar_close fires on every bar close where the condition holds, which is what you want for a level you keep watching. These are the only two values the API accepts (verified live). | on_first_fire |
| resolution | No | Series the condition is evaluated on: minutes as a bare number (1, 5, 15, 60, 240) or D, W, M. Must match the timeframe you actually trade. | 1 |
| mobile_push | No | Enable TradingView mobile push notification | |
| expiration_days | No | Days until expiration |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'authenticated' (a useful hint about auth requirements), but does not disclose side effects (e.g., whether it overwrites existing alerts, deactivates after first fire, requires specific permissions, or what the response format is). For a mutation tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that efficiently states the purpose. No filler or redundancy; every word contributes to the core meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters, no output schema, and no annotations, the description is too sparse. It does not explain what a successful creation returns (e.g., alert ID), error possibilities, or how the alert interacts with the chart state. For a moderately complex tool, this is inadequate for an agent to fully understand the operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters already have detailed descriptions (notably frequency and resolution). The description itself adds no extra parameter context, so it stays at the baseline 3. It does not need to compensate for schema gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a price alert') and the target ('on the current chart'), distinguishing it from sibling tools like alert_create_bulk (bulk creation) and alert_list/delete (management). Even without explicit differentiation, the verb and resource are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies single-alert creation by its name and contrasts with the obvious bulk sibling, but it never explicitly says when to use this tool over alternatives or provides exclusion conditions. The usage context is inferred rather than stated, so it earns a 3 (implied) rather than 2 (no guidance) because the sibling names make the distinction reasonably clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alert_create_bulkA
Create price alerts across MANY symbols, or the whole watchlist, in one call. Does NOT touch the chart. Each alert can carry a webhook URL so every fire posts to your own endpoint instead of your inbox. Use percent_from_last to set a level per symbol from its live price, which is the only thing that makes sense across a mixed watchlist.
| Name | Required | Description | Default |
|---|---|---|---|
| price | No | One fixed level for every symbol. Give this OR percent_from_last, not both. | |
| dry_run | No | Compute every level and return the plan without creating anything. Do this first on a large set. | |
| message | No | Alert text. Supports TradingView placeholders: {{ticker}}, {{close}}, {{time}}, {{exchange}}, {{interval}}. This is the payload your webhook receives. | |
| symbols | No | Exchange-prefixed symbols. OMIT to use every symbol in the active watchlist (section headers are skipped). | |
| condition | No | crossing, greater_than, or less_than | crossing |
| frequency | No | on_bar_close keeps watching; on_first_fire stops after one trigger. | on_bar_close |
| resolution | No | Series the condition is evaluated on: 1, 5, 15, 60, 240, D, W, M. | 60 |
| webhook_url | No | http(s) URL that every alert in this batch posts to when it fires. | |
| expiration_days | No | ||
| percent_from_last | No | Level per symbol as a percent from its live price, e.g. 5 for 5%% above, -3 for 3%% below. Quotes for the whole set are fetched in one request. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It discloses that webhook URLs redirect alert posts, that quotes are fetched in one request for the whole set, and that the tool avoids chart interactions. However, it doesn't mention error handling, rate limits, or what happens if some symbols fail, leaving some uncertainty for a bulk operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loading the core action and scope in the first sentence. Subsequent sentences efficiently address key behavioral aspects (webhook, percent_from_last) without redundancy. It avoids unnecessary detail and remains focused on what an agent needs to know before invoking the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a bulk-alert tool with 10 parameters and no output schema, the description covers primary use cases and parameter selection guidance. However, it omits potential pitfalls like partial failures, idempotency, or how results are returned (e.g., whether created alerts are listed). Given the complexity, a bit more context would improve completeness, though the schema fills many gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 90%, so the baseline is 3, but the description adds meaningful context beyond the schema. It explains the price vs. percent_from_last trade-off, describes webhook functionality, and clarifies that percent_from_last is per-symbol based on live prices. This supplemental information helps agents choose parameters correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: creating price alerts across many symbols or the whole watchlist in one call. It distinguishes itself from the singular alert_create sibling by emphasizing 'MANY symbols' and explicitly notes it does not touch the chart, making the function's scope unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives practical guidance on parameter selection, notably advising percent_from_last as the only sensible approach for a mixed watchlist. It also clarifies the tool is for bulk operations, implicitly steering single-alert needs to alert_create, though it doesn't explicitly name the alternative. The 'Does NOT touch the chart' note further contextualizes use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alert_deleteC
Delete all alerts or open context menu for deletion
| Name | Required | Description | Default |
|---|---|---|---|
| alert_id | No | One alert ID to delete | |
| alert_ids | No | Several alert IDs to delete | |
| delete_all | No | Delete all alerts |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the destructive action ('delete') but does not explain the context menu behavior, what happens to specific alerts, or any required confirmation/permissions. The dual nature ('delete all' or 'open context menu') is under-specified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with the primary action front-loaded. It contains no fluff, but the second clause is vague and could be seen as under-specification rather than true conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a deletion tool with no annotations and no output schema, the description is incomplete. It does not clarify the difference between 'delete all' and 'open context menu', nor how the parameters map to these behaviors. Sibling tools like 'alert_delete_by_id' exist, making the lack of usage context a significant gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with clear descriptions for each parameter, so the description does not need to add parameter details. However, the description's 'or open context menu for deletion' does not align with the parameter-based deletion paths, adding slight confusion rather than value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the action ('Delete all alerts') and resource ('alerts'), but the 'or open context menu for deletion' clause is ambiguous and does not cover the schema's support for deleting specific alert IDs via 'alert_id' and 'alert_ids'. It also fails to distinguish this tool from the sibling 'alert_delete_by_id'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use 'delete_all' versus individual IDs, nor when to prefer 'alert_delete' over 'alert_delete_by_id'. The phrase 'open context menu for deletion' hints at a UI interaction but does not explain conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alert_delete_by_idA
Delete a single alert by ID
| Name | Required | Description | Default |
|---|---|---|---|
| alert_id | Yes | Alert ID from alert_list |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden of behavioral disclosure. It only states the action without mentioning side effects, error handling, or return value. For a destructive delete operation, the lack of such context is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that immediately conveys the action and scope. There is no redundant wording or unnecessary detail, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (one parameter, no output schema, no annotations), the description is adequate but incomplete. It does not explain the response/error behavior or differentiate from 'alert_delete', which would be valuable context for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: the single parameter alert_id is already documented as 'Alert ID from alert_list'. The description adds no extra meaning beyond this, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Delete a single alert by ID' uses a specific verb (Delete) and resource (alert), and explicitly notes both 'single' and 'by ID'. This clearly distinguishes it from the sibling tool 'alert_delete', which likely handles batch or filter-based deletion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied: the parameter description 'Alert ID from alert_list' suggests a workflow of listing alerts first. However, the description does not explicitly state when to use this tool versus the sibling 'alert_delete', nor does it provide when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alert_listA
List active alerts
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action and the 'active' filter, which implies a read-only operation, but it does not explicitly mention that it is non-destructive, nor does it describe the output format or any limitations. This is minimal but not misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise—just three words—with every word contributing meaning. It is front-loaded and free of any wasted text, embodying ideal conciseness for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (zero parameters, no output schema), the description is adequate for basic understanding. However, it does not clarify what constitutes an 'active' alert, what fields are returned, or whether there are any pagination or sorting defaults. It is sufficient for a simple list but leaves minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so per the rubric the baseline is 4. The description adds contextual meaning by specifying 'active alerts', which scopes the listing operation. There are no parameter details needed since the schema is already empty and complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List active alerts' clearly states the operation (list) and the resource (active alerts), distinguishing it from sibling tools like alert_create and alert_delete that handle alert mutations. The specific scope 'active alerts' adds precision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving current alerts, but it does not explicitly state when to use this tool versus alternatives such as alert_create or alert_delete. No when-not-to-use or alternative guidance is provided, leaving the usage context implied by the verb and resource.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_runC
Run an action across multiple symbols and/or timeframes
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to run for each symbol/timeframe. get_study_values reads every visible indicator per symbol and is the one to use for universe scans. | |
| symbols | Yes | Array of symbols to iterate (e.g., ["BTCUSD", "ETHUSD", "AAPL"]) | |
| delay_ms | No | Delay between iterations in ms (0-60000, default 2000) | |
| entity_id | No | Exact strategy entity ID for get_strategy_results; recommended when more than one strategy is present | |
| timeframes | No | Array of timeframes (e.g., ["D", "60", "15"]) | |
| ohlcv_count | No | Bar count for get_ohlcv action (1-500, default 100) | |
| restore_start_state | No | Restore the starting chart symbol/timeframe in a guaranteed cleanup path (default true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the basic function without revealing side effects (e.g., that it likely changes the chart symbol/timeframe during iteration, as hinted by the restore_start_state parameter) or the sequential execution with delay. These are only visible in parameter descriptions, not in the main tool description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, unambiguous sentence that is front-loaded with the core action. It is appropriately concise and contains no fluff, though it omits details that would improve other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 parameters, 2 required, no output schema, and no annotations, a one-sentence description is insufficient. It does not explain what the tool returns, how iterations behave (delays, state restoration), or any prerequisites. An agent would need to rely heavily on the schema and context to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so a baseline of 3 is appropriate. The description itself adds no parameter detail; however, the schema already provides rich semantics, including the action enum with a note about get_study_values for universe scans. The description adds no extra value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb ('Run') and resource ('an action across multiple symbols and/or timeframes'), which distinguishes it from the single-symbol/timeframe sibling tools like data_get_ohlcv and data_get_study_values. It does not enumerate the specific actions, but the schema names them, so the purpose is reasonably clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to prefer batch_run over calling the underlying single-action tools repeatedly, nor does it mention any trade-offs, such as rate limiting or the sequential delay. The intended context is only inferred from the name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
capture_screenshotA
Take a screenshot of the TradingView chart
| Name | Required | Description | Default |
|---|---|---|---|
| method | No | Capture method: cdp (Page.captureScreenshot) or api (chartWidgetCollection.takeScreenshot) (default cdp) | |
| region | No | Region to capture: full, chart, strategy_tester (default full) | |
| filename | No | Custom filename (without extension) | |
| wait_for_render | No | Wait for the chart canvas to stabilize before capture |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Take a screenshot' implies a non-destructive read operation, but it does not explain what happens to the image (e.g., saved to disk, returned as base64), whether it blocks until complete, or how the wait_for_render parameter affects the outcome. This is a significant gap for an agent invoking the tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no unnecessary words. It conveys the core action efficiently and is easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description leaves out critical details such as return format, file saving behavior, and potential side effects. For a tool with four parameters and a rendering wait option, more context is needed for an agent to fully understand the tool's impact and output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema describes all four parameters (method, region, filename, wait_for_render) with clear descriptions, giving 100% coverage. The tool description adds no additional meaning beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'take' with a clear resource 'screenshot of the TradingView chart'. It clearly distinguishes from sibling tools like chart_get_state (state reading) and chart_vision_read (visual analysis), which are not capture tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the intended usage obvious: use this tool to capture a chart screenshot. No exclusions or alternatives are mentioned, but since no other sibling tool serves this exact purpose, the context is clear enough for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chart_get_stateA
Get current chart state (symbol, timeframe, chart type, indicators)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It clearly implies a read-only operation via the verb 'Get', which is a behavioral disclosure, but it does not mention potential errors (e.g., no chart open), performance characteristics, or side effects. For a zero-parameter getter, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. Every element (resource and fields) earns its place, making it highly efficient and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (no parameters, no output schema), the description covers the key return values at a high level. However, it does not state whether the chart must be open or whether indicator details include settings/how they are returned, leaving minor ambiguity for invocation contexts.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so no parameter syntax is needed. The description adds value by conceptually defining what the returned state includes (symbol, timeframe, chart type, indicators), which helps the agent interpret results even without an output schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses a specific verb ('Get') and resource ('current chart state') and enumerates the returned fields (symbol, timeframe, chart type, indicators). This clearly distinguishes it from sibling setter tools like chart_set_symbol and chart_set_timeframe, and from the more specific chart_get_visible_range.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives. It implies a read operation, but does not differentiate from other getter tools such as tv_ui_state or chart_get_visible_range, nor does it give context like 'use when you need current chart settings before modifying them'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chart_get_visible_rangeB
Get the visible date range (unix timestamps) and bars range on the chart
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the core behavior (retrieving date and bars ranges) and implies a read-only operation through the verb 'Get.' However, it omits specifics such as whether unix timestamps are in seconds or milliseconds, whether the bars range is inclusive, and whether the returned values are in a particular format. These gaps limit the agent's ability to anticipate the exact output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that directly states the tool's purpose without any redundant phrasing. Every word contributes to the meaning, making it highly efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema and no annotations, so the description must fully explain what the agent can expect. It states the two key pieces of data (date range and bars range) but does not describe the return structure, such as whether it is an object with specific field names. This ambiguity could lead to incorrect assumptions about the response format, making it only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema coverage is 100% by default. The description does not need to explain parameter meanings since none exist. The baseline of 4 is appropriate here because there is no parameter information to add beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb 'Get' and specifies the resource as 'visible date range (unix timestamps) and bars range on the chart.' This clearly conveys the tool's function as a getter for chart visible range data. It implicitly differentiates from sibling tools like chart_set_visible_range (which sets) and chart_scroll_to_date (which scrolls), though it does not explicitly name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It only states what it does, with no context about typical use cases, prerequisites, or exclusions. For example, it does not mention that this tool is useful for capturing the current view before making changes or that it should be used instead of chart_get_state for range-specific queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chart_manage_indicatorB
Add or remove an indicator/study on the chart
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action: add or remove | |
| inputs | No | JSON string of input overrides for the indicator (e.g., '{"length": 20}') | |
| entity_id | No | Entity ID to remove (from chart_get_state). Required for remove. | |
| indicator | No | Full indicator name (required for add): "Relative Strength Index", "MACD", "Volume", "Moving Average", "Bollinger Bands", "Moving Average Exponential". Short names like RSI/EMA do NOT work. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, yet it only states the action without mentioning side effects, prerequisites, or failure modes. It does not disclose that removal requires an entity_id from chart_get_state or that indicator names must be full names, leaving critical behavioral details to the schema descriptions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that immediately conveys the tool's purpose. It is front-loaded and contains no unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is sufficient for a basic understanding but lacks context about prerequisites and the source of entity_id. Since there is no output schema, a brief note about expected behavior or return values would improve completeness, but the schema partially compensates.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description itself adds no parameter semantics, but the schema effectively explains the parameters including enums, required fields, and naming constraints. The tool description adds no additional meaning beyond that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (add or remove) and the resource (indicator/study on the chart). It is specific enough to convey the tool's core function, though it does not explicitly distinguish it from sibling tools like indicator_add_from_search or indicator_toggle_visibility.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives such as indicator_add_from_search or indicator_set_inputs. The schema hints at usage (e.g., entity_id for remove, indicator for add), but the description itself provides no context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chart_scroll_to_dateA
Jump the chart view to center on a specific date
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ISO date string (e.g., "2024-01-15") or unix timestamp as a string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It states that the chart view is centered on a date, implying a view mutation, but does not detail edge cases, prerequisites, or whether the visible range is adjusted. For a simple navigation action, this provides some transparency but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no unnecessary words, perfectly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (1 parameter, no output schema), the description sufficiently explains the tool's function. It could benefit from noting prerequisites or behavior relative to sibling tools but is adequate for this scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'date' is fully documented in the schema with formats (ISO string or unix timestamp). The description does not add additional information about parameter semantics, so it meets the baseline for 100% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'jump' and 'center' with the resource 'chart view', clearly indicating the action of navigating to a date. This distinguishes it from other chart_* tools like chart_set_symbol or chart_set_timeframe.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for when the user wants to navigate the chart to a specific date but does not explicitly mention alternatives or exclusions. Context from sibling tools (e.g., chart_set_visible_range) might help but is not referenced in the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chart_set_symbolC
Change the chart symbol
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Symbol to set (e.g., BTCUSD, AAPL, ES1!, NYMEX:CL1!) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It offers none—no mention of side effects, chart state changes, symbol validation, or whether the chart must be open. This is a complete lack of behavioral information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words, front-loading the action clearly. It is appropriately concise for a simple tool with a single parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the tool's simplicity, the description lacks essential context: it does not mention that a chart must be active, what happens to the current symbol, or how the change affects other chart state. With no output schema or annotations, the description leaves notable gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents the 'symbol' parameter with examples, so schema description coverage is 100%. The description text adds no additional parameter semantics beyond the schema, which is acceptable given the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: changing the chart symbol. It uses a specific verb and resource, and is distinguishable from sibling tools like chart_set_timeframe and chart_set_type, though it closely mirrors the tool name itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as symbol_search or pane_set_symbol. There are no prerequisites, exclusions, or context about when a symbol change is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chart_set_timeframeB
Change the chart timeframe/resolution
| Name | Required | Description | Default |
|---|---|---|---|
| timeframe | Yes | Timeframe (e.g., 1, 5, 15, 60, D, W, M) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility for behavioral disclosure. It indicates a mutating action ('Change') but does not mention potential side effects, idempotency, or whether the chart must be loaded or active. This is a significant gap for a tool with no annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no redundancy. It is front-loaded with the core action, efficient, and easily parsed. However, it could be slightly more informative without sacrificing brevity, so it does not earn a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one well-documented parameter, so the minimal description is somewhat adequate. However, there are no annotations and no output schema, and the description does not mention any prerequisites (e.g., chart must be open) or confirm the absence of return values. For a mutating tool in a large sibling set, this is a moderate gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers the single parameter 'timeframe' with examples (1, 5, 15, 60, D, W, M), and schema coverage is 100%. The description adds no extra meaning beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: 'Change the chart timeframe/resolution'. It uses a specific verb ('Change') and resource ('chart'), and the object (timeframe/resolution) distinguishes it from sibling tools like chart_set_symbol or chart_set_type. The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (when you want to alter the chart's timeframe), but it provides no explicit guidance on when to use this tool versus alternatives, nor any prerequisites or exclusions. It is minimally adequate but lacks clear context for when to invoke it among related chart tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chart_set_typeC
Change chart type
| Name | Required | Description | Default |
|---|---|---|---|
| chart_type | Yes | Chart type: Bars(0), Candles(1), Line(2), Area(3), Renko(4), Kagi(5), PointAndFigure(6), LineBreak(7), HeikinAshi(8), HollowCandles(9) — pass name or number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states 'Change chart type' without detailing side effects, validation behavior, or persistence of changes, which is insufficient for a tool that modifies chart state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, but this borders on under-specification rather than effective brevity. While it is front-loaded and to the point, it omits useful context that could be conveyed in a single additional sentence without sacrificing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (single parameter with rich schema) and absence of an output schema, the description is minimally sufficient but not complete. It lacks details on expected outcomes or interaction with chart state, though the parameter schema mitigates some ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides comprehensive documentation for the single parameter, including accepted names and numbers with 100% coverage. The description itself does not add any additional meaning beyond what the schema conveys, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Change chart type' clearly states the action (change) and the resource (chart type), distinguishing it from sibling tools like chart_set_symbol and chart_set_timeframe. It is specific enough to understand the tool's primary function, though it lacks elaboration on what 'chart type' entails.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not mention prerequisites, conditions, or references to other tools, leaving the user to infer usage from the tool name and sibling context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chart_set_visible_rangeA
Zoom the chart to a specific date range (unix timestamps)
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | End of range (unix timestamp in seconds) | |
| from | Yes | Start of range (unix timestamp in seconds) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It only restates the basic action without disclosing side effects, reversibility, return values, or whether any prior conditions are needed. 'Zoom' implies a view change, but it adds little beyond the name and schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that conveys the core action efficiently. Every word is necessary and no redundant information is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has only two simple parameters and no output schema, so the description is mostly sufficient. However, it lacks any mention of behavioral context (e.g., side effects) and does not differentiate itself from chart_scroll_to_date, making it slightly incomplete for an agent choosing among sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter documented as 'Start of range' and 'End of range' in unix timestamps. The tool description adds no additional parameter semantics, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Zoom the chart to a specific date range (unix timestamps)'. It uses a specific verb ('Zoom') and resource ('chart'), and the scope ('specific date range') distinguishes it from related tools like chart_scroll_to_date and chart_get_visible_range.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used to set the visible range, but it does not explicitly state when to use it versus alternatives like chart_scroll_to_date or chart_get_visible_range. No when-not or alternative tools are mentioned, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chart_vision_readA
Take a screenshot and read all chart data in one call (quote, indicators, Pine graphics, OHLCV). Returns mixed content: inline image when <= max_image_bytes, else file_path only.
| Name | Required | Description | Default |
|---|---|---|---|
| include | No | Sections to include: image, quote, study_values, pine_lines, pine_labels, pine_tables, pine_boxes, ohlcv_summary, state. Default: all. | |
| study_filter | No | Filter Pine graphics by indicator name substring. | |
| max_image_bytes | No | Max bytes for inline image. Default 1500000 (1.5MB). Exceeded → file_only mode. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses the return mode behavior (inline image vs file_path based on max_image_bytes) and implicitly signals a read-only operation via 'read'. It does not discuss permissions or error cases, but the core behavioral trait is covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the primary purpose, then a concise note on return behavior. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should explain return values more thoroughly. It explains the image mode but does not describe the structure or format of the other returned data (quote, indicator, OHLCV). For a tool that aggregates many data types, this is a notable gap, though the core behavior is clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds minimal extra parameter meaning: the parenthetical list of content types aligns with the 'include' parameter, and the max_image_bytes threshold is already described in the schema ('Exceeded → file_only mode'). No new parameter context is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Take a screenshot and read all chart data in one call' and enumerates the content types (quote, indicator, Pine graphics, OHLCV). This distinguishes it from sibling tools like capture_screenshot or individual data_get_* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'in one call' implies a convenience aggregator, suggesting when to use it, but there is no explicit guidance on when not to use it or how it compares to alternatives like capture_screenshot plus data_get_* tools. Usage context is inferred, not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
data_get_equityA
Get equity curve data from Strategy Tester. Pass entity_id when more than one strategy is loaded.
| Name | Required | Description | Default |
|---|---|---|---|
| entity_id | No | Exact strategy entity ID from chart_get_state. Strongly recommended when more than one strategy is loaded. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry transparency. It does disclose one behavioral requirement (entity_id needed when multiple strategies loaded), but omits details like return format, error behavior, or any side effects. This is a minimal disclosure, hence a middle score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the primary purpose. The second sentence adds a necessary usage condition. No redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple getter with one optional parameter and full schema coverage, the description is largely sufficient. It lacks an explicit statement about output structure, but the tool name and first sentence strongly imply the return value is the equity curve. Slight gap due to no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already thoroughly describes entity_id with exact instructions and recommendation. The description's mention of entity_id adds no new information beyond the schema. With 100% schema coverage, baseline is 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Get equity curve data from Strategy Tester' – a specific verb, resource, and source. This distinguishes it from sibling data tools like data_get_trades and data_get_strategy_results.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides context for the entity_id parameter: 'Pass entity_id when more than one strategy is loaded.' This clarifies when to supply the parameter, though it does not explicitly name alternatives or state when NOT to use this tool. Still, the guidance is useful and situational.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
data_get_indicatorC
Get indicator/study info and input values
| Name | Required | Description | Default |
|---|---|---|---|
| entity_id | Yes | Study entity ID (from chart_get_state) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. 'Get' implies a read-only operation, but the description does not mention potential edge cases (e.g., what happens if entity_id is invalid), return format, permissions, or any side effects. It adds no behavioral context beyond the verb itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It efficiently communicates the core operation without extraneous content. This is well-structured for a simple getter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, the description is still incomplete. It does not explain what 'info' includes, how this relates to chart state, or how it differs from similar tools like data_get_study_values. With no output schema and no annotations, the agent lacks enough context to invoke this tool confidently in all scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% since the single parameter entity_id has a description ('Study entity ID (from chart_get_state)'). The tool description itself does not elaborate on the parameter, but because the schema already provides sufficient meaning, a baseline score of 3 is appropriate. No additional value is added by the description for parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Get' and clearly identifies the resource: 'indicator/study info and input values'. This distinguishes it from tools like data_get_study_values (which likely returns computed values) but does not explicitly mention that distinction. It is clear and non-tautological, though it could be more explicit in naming the tool's purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as data_get_study_values or chart_get_state. The description simply states what it does without context for selection. The only contextual clue comes from the parameter description in the schema, but the tool description itself fails to offer usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
data_get_ohlcvA
Get OHLCV bar data from the chart. Use summary=true for compact stats instead of all bars (saves context).
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of bars to retrieve (1-500, default 100) | |
| summary | No | Return summary stats (high, low, open, close, avg volume, range) instead of all bars — much smaller output |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility for behavioral disclosure. It does reveal that summary=true returns 'compact stats instead of all bars' and that using it 'saves context,' which is a significant behavioral trait. However, it does not describe other behaviors such as return format, potential errors, or the fact that it might be a read-only operation. This is a moderate level of transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise—one sentence plus a targeted tip. It front-loads the core purpose and immediately follows with actionable guidance. No wasted words or irrelevant details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two well-documented parameters and no output schema, the description is mostly complete. It covers what the tool does and offers advice on a key parameter. However, it could be more complete by mentioning what the output looks like (e.g., a list of OHLCV bars) or clarifying that it reads from the currently active chart, but these are somewhat implied. Good overall.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters are already fully described in the schema (count with range and default, summary with details about what it returns). The description adds practical value by emphasizing the context-saving benefit of summary=true, which goes beyond the schema's 'much smaller output' wording. This enhances the agent's ability to choose the right parameter mode.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb and resource: 'Get OHLCV bar data from the chart.' This distinguishes it from sibling data tools like data_get_indicator or data_get_trades, as it specifically targets OHLCV bars. No ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides useful context on how to use the tool, specifically recommending summary=true for compact stats to save context. However, it does not explicitly mention when to use this tool versus alternative data retrieval tools, though the purpose makes the primary use case clear. It lacks exclusions or alternative tool references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
data_get_pine_boxesA
Read box/zone boundaries drawn by Pine Script indicators (box.new). Returns deduplicated {high, low} price zones. Use study_filter to target a specific indicator.
| Name | Required | Description | Default |
|---|---|---|---|
| verbose | No | Return all boxes with IDs and coordinates (default false — returns unique price zones) | |
| study_filter | No | Substring to match study name. Omit for all. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It states the read-only nature ('Read'), the deduplication behavior, and the return format ({high, low} price zones). It does not cover edge cases like empty results or error conditions, but it provides solid transparency for a simple read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loaded with the primary verb 'Read'. It avoids redundancy and every sentence contributes meaningful information: what it reads, what it returns, and how to filter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter read tool with no output schema or annotations, the description is sufficiently complete. It covers purpose, return type, deduplication, and filtering. It does not mention sorting or empty-result behavior, but these are not critical for task selection. The sibling context confirms this is part of a family of data_get tools, and the description clearly differentiates the box focus.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers both parameters fully (verbose and study_filter). The description adds a brief note to use study_filter for targeting an indicator, which slightly reinforces the schema's existing description. Since schema coverage is 100%, the description does not need to compensate, and it adds only marginal semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the explicit verb 'Read' and identifies the resource as 'box/zone boundaries drawn by Pine Script indicators (box.new)', making it clear this tool is for reading box objects. It also clarifies the output as deduplicated {high, low} price zones, which distinguishes it from sibling tools like data_get_pine_lines (lines) and data_get_pine_labels (labels).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete usage context: it is for reading box zones and mentions the study_filter parameter to target a specific indicator. However, it does not explicitly name alternatives or say when not to use this tool, which would push it to a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
data_get_pine_labelsA
Read text labels drawn by Pine Script indicators (label.new). Returns text and price pairs. Use study_filter to target a specific indicator.
| Name | Required | Description | Default |
|---|---|---|---|
| verbose | No | Return raw label data with IDs, colors, positions (default false — returns only text + price) | |
| max_labels | No | Max labels per study (default 50). Set higher if you need all. | |
| study_filter | No | Substring to match study name. Omit for all. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It clearly identifies the operation as reading (non-mutating) and describes the output as 'text and price pairs'. However, it does not disclose edge cases like empty results, behavior when study_filter matches nothing, or whether it requires a chart with loaded indicators. The behavior is adequately but not richly described.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loaded with the action and resource, and includes a practical usage hint. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with three simple optional parameters and no output schema, the description provides enough context: it states purpose, return format, and how to target specific indicators. It could mention what happens when no labels are found or clarify multi-study behavior, but overall it is reasonably complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers all three parameters with clear descriptions (verbose, max_labels, study_filter), and the schema description coverage is 100%. The description mentions study_filter but adds no new meaning beyond the schema. Baseline of 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'Read' and names the exact resource: 'text labels drawn by Pine Script indicators (label.new)'. It also states the return format ('text and price pairs'), which distinguishes it from sibling tools like data_get_pine_lines and data_get_pine_boxes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a usage hint: 'Use study_filter to target a specific indicator.' This implies the tool can read from all indicators when no filter is applied. However, it does not explicitly contrast with alternatives such as data_get_pine_lines or data_get_indicator, so while context is present, exclusions or alternative selection guidance are missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
data_get_pine_linesA
Read horizontal price levels drawn by Pine Script indicators (line.new). Returns deduplicated price levels per study. Use study_filter to target a specific indicator.
| Name | Required | Description | Default |
|---|---|---|---|
| verbose | No | Return raw line data with IDs, coordinates, colors (default false — returns only unique price levels) | |
| study_filter | No | Substring to match study name (e.g., "Profiler", "NY Levels"). Omit for all. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It explicitly states the read-only nature ('Read') and discloses the deduplication behavior and per-study grouping. It stops short of detailing edge cases (e.g., empty results, filtering of only horizontal lines), but the core non-obvious behavior is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences, each earning its place: purpose, key output behavior, and a parameter usage tip. It is front-loaded with the verb and resource, with no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 optional params, no output schema), the description covers the essential behavior and filtering. It does not detail the exact return format (e.g., array of objects with study names), but the schema and description together provide enough for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds a brief usage hint for study_filter ('Use study_filter to target a specific indicator') but does not explain verbose or add semantic depth beyond what the schema provides. This is adequate but not extra informative.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Read') and resource ('horizontal price levels drawn by Pine Script indicators (line.new)'), clearly distinguishing it from sibling tools like data_get_pine_labels, data_get_pine_tables, and data_get_pine_boxes. The mention of 'deduplicated price levels per study' further refines the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on what the tool does and how to target a specific indicator via study_filter. However, it does not explicitly name alternatives or exclusions, e.g., 'use data_get_study_values for time-series data', so the guidance is clear but not exclusionary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
data_get_pine_tablesA
Read table data drawn by Pine Script indicators (table.new). Returns formatted text rows per table. Use study_filter to target a specific indicator.
| Name | Required | Description | Default |
|---|---|---|---|
| study_filter | No | Substring to match study name. Omit for all. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavior. It explicitly states 'Read' (non-destructive), mentions the return format ('formatted text rows per table'), and indicates this is data from Pine Script tables. While it doesn't detail error cases or multi-table behavior, it adequately covers the core behavior for a simple read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary action, and every clause adds value—purpose, output format, and filter guidance. No redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one optional parameter and no output schema, the description covers the essential aspects: what it does, return type, and filtering. It is complete enough for an agent to invoke correctly without additional clarification.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the description's 'Use study_filter to target a specific indicator' largely repeats the schema's 'Substring to match study name.' It adds minimal semantic value beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads table data drawn by Pine Script indicators (table.new) and returns formatted text rows per table. This distinguishes it from sibling tools like data_get_pine_lines, data_get_pine_labels, and data_get_pine_boxes, which target other drawing types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context by specifying that study_filter targets a specific indicator, and the schema notes 'Omit for all.' It does not explicitly name alternative tools for other data types, but the purpose is self-evident given the tool name and siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
data_get_strategy_resultsA
Get strategy performance metrics. Pass entity_id when more than one strategy is loaded. Auto-opens Strategy Tester and unhides the selected strategy so TradingView computes its report.
| Name | Required | Description | Default |
|---|---|---|---|
| entity_id | No | Exact strategy entity ID from chart_get_state. Strongly recommended when more than one strategy is loaded. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the side effects: 'Auto-opens Strategy Tester and unhides the selected strategy so TradingView computes its report.' This is a meaningful behavioral disclosure beyond a simple read. It does not mention return format or potential errors, but the side effect is the most critical behavioral trait.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exactly two sentences, front-loaded with the main purpose. The first sentence states what the tool does; the second gives a conditional parameter hint and the all-important side effect. Every sentence earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one optional parameter and no output schema, the description covers the essential context: what it retrieves, when to pass the parameter, and the side effect of opening the Strategy Tester. It might benefit from hinting at the nature of the returned metrics, but the tool is simple enough that this is not a critical gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers the entity_id parameter with a detailed description including where to get it and when it is recommended. The tool description adds the same advice ('Pass entity_id when more than one strategy is loaded') but does not introduce new semantics. With 100% schema coverage, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Get strategy performance metrics', which clearly states the verb and resource (strategy performance report). It distinguishes from sibling tools like data_get_trades and data_get_equity by focusing on the Strategy Tester report. The context about entity_id and auto-opening the Strategy Tester further clarifies the tool's unique role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides concrete usage guidance: 'Pass entity_id when more than one strategy is loaded.' It also explains that the tool auto-opens the Strategy Tester and unhides the strategy, which informs the user of prerequisite behavior. However, it does not explicitly name alternatives or state when not to use this tool, so it stays at 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
data_get_study_valuesA
Get current indicator values from the data window for all visible studies (RSI, MACD, Bollinger Bands, EMAs, custom indicators with plot()).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of disclosing behavior. It indicates a read-only 'get' operation, which is helpful, but it does not mention return format, potential empty results, or side effects. It adds some context ('current', 'visible', 'data window') but not deep behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that clearly states the action and scope. It includes useful examples in parentheses without being verbose. Every word adds value, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, zero-parameter getter, the description covers the main purpose but lacks return value details. Since there is no output schema, the description should ideally explain the shape or type of 'indicator values' returned. It is adequate but not fully complete for an agent that needs to know how to consume the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the baseline for 0 params is 4. There is no parameter documentation needed, and the description correctly focuses on the output behavior rather than input details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Get' and clearly identifies the resource ('current indicator values from the data window') and scope ('all visible studies'). It also lists examples (RSI, MACD, Bollinger Bands, EMAs) and distinguishes from sibling tools by emphasizing 'all visible studies' versus single-indicator tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: use this when you need values for all visible studies. However, it does not explicitly state when to prefer this over alternatives like data_get_indicator, nor does it provide exclusions. The context is clear but not reinforced with alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
data_get_tradesA
Get the most recent strategy orders. Pass entity_id when more than one strategy is loaded. Auto-opens Strategy Tester and unhides the selected strategy.
| Name | Required | Description | Default |
|---|---|---|---|
| entity_id | No | Exact strategy entity ID from chart_get_state. Strongly recommended when more than one strategy is loaded. | |
| max_trades | No | Maximum trades to return (1-20, default 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explicitly mentions the side effect: 'Auto-opens Strategy Tester and unhides the selected strategy.' This is valuable transparency for a tool that might otherwise appear purely read-only. It does not disclose any other potential side effects or permission requirements, but it covers the most significant behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, consisting of two sentences, and front-loads the core purpose. Each sentence adds essential information: what the tool does, when to pass entity_id, and the side effect. No filler or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is relatively simple with no output schema, and the description covers the main function and a key side effect. However, it does not specify prerequisites like whether at least one strategy must be loaded, or what happens if no strategy is available. This is a minor gap but not critical for understanding the tool's primary use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, meaning the schema already fully documents both parameters. The description adds no new parameter meaning beyond what the schema provides (e.g., the schema already says entity_id is 'Strongly recommended when more than one strategy is loaded'). Thus, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get the most recent strategy orders.' The verb 'get' and resource 'strategy orders' are specific, distinguishing it from sibling tools like data_get_strategy_results. The additional detail about opening the Strategy Tester further differentiates it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to pass entity_id: 'Pass entity_id when more than one strategy is loaded.' This is helpful usage guidance. However, it does not explicitly state when this tool should be used over alternatives or when not to use it, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
depth_getA
Get order book / DOM (Depth of Market) data from the chart
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It states the tool retrieves order book data from the chart, indicating it is a read-only operation tied to the chart's context. It does not detail the return structure or number of levels, but for a simple getter this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. Every word is informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and no output schema, the description provides the essential information that the tool retrieves order book/DOM data from the chart. It could be marginally richer (e.g., mentioning that it reflects the current chart symbol), but it is sufficient for a tool of this simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema is empty, so the baseline is 4. The description adds no parameter semantics, but no parameters exist to document.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Get' and clearly identifies the resource as 'order book / DOM (Depth of Market) data'. This distinguishes it from sibling data tools like data_get_trades and quote_get.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use guidance or alternative tool comparisons are provided. However, the description's specificity implies it should be used when order book depth data is needed, giving an implied usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
draw_clearA
Remove ALL drawings from the ACTIVE PANE. On a multi-pane layout this is NOT the whole chart: use pane_list to see the panes and pane_focus to pick one first. DESTRUCTIVE and there is no undo through this API: every trendline, level and annotation on the active chart is deleted, not just ones you added. Use draw_remove_one with an entity_id to remove a single drawing.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It discloses that the operation is destructive, irreversible via this API, and removes all drawings regardless of origin. It also clarifies that the scope is the active pane, not the whole chart, preventing a dangerous misinterpretation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the primary action, immediately followed by scope clarification, then destructive warnings and the pointer to the safer alternative. Every sentence earns its place; no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is fully self-contained for a mutation tool with no output schema: it covers what happens, the target scope, side effects, usage caveats (multi-pane), and how to achieve a more targeted outcome. Nothing an agent needs is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters in the schema, so the description adds critical meaning by clarifying the implicit target (active pane) and that no other input is needed. This goes beyond the empty schema and fully explains the tool's input expectations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb-resource pair ('Remove ALL drawings') and scopes it precisely to the ACTIVE PANE, distinguishing it from the whole chart. It also contrasts with draw_remove_one, so an agent can immediately tell which tool fits the intent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly explains when to use (clear everything on the active pane), when not to (single drawing removal via draw_remove_one), and how to set the target pane using pane_list and pane_focus. This is textbook usage guidance with named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
draw_get_propertiesA
Get properties and points of a specific drawing
| Name | Required | Description | Default |
|---|---|---|---|
| entity_id | Yes | Entity ID of the drawing (from draw_list) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only says 'Get properties and points', which implies a read-only operation, but it does not disclose behavior such as whether the drawing must exist, what happens on invalid ID, or if any state changes occur. The lack of explicit safety or error context leaves transparency gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that efficiently conveys the tool's purpose. Every word contributes value, and it is front-loaded with the action verb.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter getter, this is minimally viable. However, without an output schema, the description does not specify what 'properties and points' include, nor how they are structured. It could mention return format or error behavior, but given the tool's simplicity, the current level is acceptable but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage for the single parameter entity_id, with a description that says 'Entity ID of the drawing (from draw_list)'. The tool description adds no additional parameter semantics beyond that. Since the schema fully documents the parameter, a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and the specific resource ('properties and points of a specific drawing'). It distinguishes itself from siblings like draw_list (which lists drawings) and draw_remove_one (which removes) by focusing on a single drawing's data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Though the description itself doesn't explicitly mention alternatives, the parameter schema instructs that entity_id comes from draw_list, providing a clear prerequisite. The context of sibling tools makes the intended usage obvious: use draw_list to obtain an ID, then this tool to fetch its details. No exclusions are stated, but the guidance is sufficient for a simple getter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
draw_listA
List shapes/drawings on the ACTIVE PANE ONLY. On a multi-pane layout the other panes are not included and a count of 0 does NOT mean the chart is empty: use pane_list to see every pane and pane_focus to switch.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It warns about the non-obvious active-pane-only behavior and the misleading zero-count scenario, which are the key traps an agent could fall into. It does not describe the return format, but the core behavioral risks are transparently covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences with no filler. The core scope is front-loaded in capital letters, and the caveat-plus-remedy structure delivers maximum useful information in minimal space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool, the description covers the essential contextual warnings and directs the agent to the correct sibling tools. It lacks only a brief note on what the returned list contains or its format, but this is not critical for invoking the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema already documents this with 100% coverage. There is nothing for the description to add about parameters, so the baseline of 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('shapes/drawings') and adds a precise scope restriction: 'ACTIVE PANE ONLY'. This differentiates the tool from sibling tools like draw_get_properties and from pane-level operations by making its exact domain clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent when the tool is insufficient: in a multi-pane layout, other panes are not included, and a count of 0 does not mean the chart is empty. It names the exact alternatives, pane_list and pane_focus, for broader inspection. This is clear, actionable routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
draw_remove_oneA
Remove a specific drawing by entity ID
| Name | Required | Description | Default |
|---|---|---|---|
| entity_id | Yes | Entity ID of the drawing to remove (from draw_list) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It states the removal action but does not disclose irreversibility, possible side effects (e.g., chart redraw), error behavior for invalid IDs, or any prerequisites like an open chart. This is a significant gap for a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with a fully described parameter, but the absence of annotations and any behavioral detail (e.g., error handling, undo possibility) makes this minimally complete. It covers what it does but not the full context a careful agent might need.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% because the only parameter (entity_id) has a description indicating it comes from draw_list. The description adds no extra param details, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Remove'), resource ('drawing'), and method ('by entity ID'). It clearly distinguishes from siblings like draw_clear (which likely clears all drawings) and draw_list (which lists them).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly mention alternatives or when-not-to-use. However, the schema's parameter description ('from draw_list') implies you should first list drawings to obtain the entity ID, providing some usage context. No explicit exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
draw_shapeC
Draw a shape/line on the chart
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | Text content for text shapes | |
| point | Yes | { time: unix_timestamp, price: number } | |
| shape | Yes | Shape type: horizontal_line, vertical_line, trend_line, rectangle, text | |
| point2 | No | Second point for two-point shapes (trend_line, rectangle) | |
| overrides | No | JSON string of style overrides (e.g., '{"linecolor": "#ff0000", "linewidth": 2}') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It provides no information about side effects, whether shapes are overwritten, validation rules, or the response format. This is a critical gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no wasted words. It is front-loaded and immediately conveys the core purpose. However, it is extremely terse and lacks any supporting details, which slightly reduces the score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters with nested objects, no annotations, and no output schema, the description is severely incomplete. It fails to mention return values, error conditions, prerequisites, or how to construct valid point objects. This is inadequate for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, as every property in the input schema has a description. The description itself adds no parameter-specific meaning, but since the schema already documents parameters thoroughly, the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Draw') and the resource ('shape/line on the chart'). It distinguishes from sibling tools like draw_clear or draw_remove_one by identifying this as the drawing operation. However, it does not enumerate the specific shape types, relying on the schema for that detail.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of how this relates to sibling draw tools (e.g., draw_clear, draw_remove_one) or any prerequisites such as having a chart open. The usage is only implicitly understood from the action verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
indicator_add_from_searchA
Search the TradingView Indicators dialog and add a matching built-in, strategy, community, or saved study
| Name | Required | Description | Default |
|---|---|---|---|
| match | No | Exact or partial result title to add (defaults to query) | |
| query | Yes | Search query | |
| section | No | Optional result section such as Technicals, My scripts, or Community Scripts |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes the action but does not disclose potential side effects, failure modes (e.g., no match found), whether the indicator is added to the active chart, or any authentication requirements. The mention of types (built-in, strategy, community, saved) adds context, but important behavioral details are absent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that immediately states the action and the target. Every word contributes to understanding the tool's purpose. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a relatively simple tool with three parameters and no output schema, the description provides a basic understanding. However, it lacks specifics about what happens after adding (e.g., does it open the dialog, require a chart), how the 'match' parameter interacts with 'query', or the behavior when multiple matches exist. These gaps are notable, but the description is adequate for a basic use case.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description mentions 'matching' and result types, but it does not add substantive meaning beyond the schema. The schema already documents query, match, and section with clear descriptions, so the description neither enhances nor compensates for parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Search the TradingView Indicators dialog and add a matching built-in, strategy, community, or saved study'. It specifies the action (search and add), the resource (TradingView Indicators dialog), and the scope (built-in, strategy, community, saved study), which distinguishes it from sibling tools like indicator_search (search only) and chart_manage_indicator (manage added indicators).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case: adding an indicator by searching. However, it does not explicitly state when to use this tool versus alternatives like indicator_search (which only searches without adding) or chart_manage_indicator (manages existing indicators). No exclusions or prerequisites are mentioned, leaving the guidance implicit rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
indicator_searchB
Search TradingView built-in, community, strategy, and saved-script studies
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum results to return (default 25, max 100) | |
| query | Yes | Search text entered in the TradingView Indicators dialog |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It only states the search action without disclosing return format, pagination behavior, or query matching semantics. Additional context like default limit is left to the schema, and no behavioral traits are surfaced.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence listing the search scope with no fluff. It is appropriately concise for the simplicity of the tool, though it provides no additional structural benefits like examples or context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 params, no output schema), the description covers the core purpose but omits return value details and usage context. It is minimal viable, adequate for selection, but leaves room for clarification about what the search returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for both parameters (query and limit), so the schema already provides adequate parameter meaning. The tool description adds no extra semantic value beyond the schema, keeping the baseline at 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Search' and clearly identifies the resource as TradingView studies (built-in, community, strategy, saved-script). This distinguishes it from symbol_search and other search-like tools, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It does not mention that results could feed into indicator_add_from_search, nor does it state any exclusions or prerequisites. The context for use is only implied by the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
indicator_set_inputsA
Change indicator/study input values (e.g., length, source, period)
| Name | Required | Description | Default |
|---|---|---|---|
| inputs | Yes | JSON string of input overrides, e.g. '{"length": 50, "source": "close"}'. Keys are input IDs, values are the new values. | |
| entity_id | Yes | Entity ID of the study (from chart_get_state) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose side effects and requirements. It merely states the action without mentioning possible side effects (e.g., chart refresh), validation behavior, or what happens if the entity_id is invalid. The lack of any behavioral context beyond the mutation itself is a significant gap for a mutating tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, front-loading the verb and object. It includes useful examples without unnecessary verbosity. Every word contributes to understanding the tool's core function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter mutation tool with no output schema, the description captures the core action but leaves out important operational context such as prerequisite indicator existence, error behavior, or reversibility. While the low complexity doesn't demand extensive detail, the absence of annotations raises the bar for completeness, which this description only partially meets.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers both parameters with descriptions, including the JSON format for 'inputs' and the source of 'entity_id'. The description adds modest value by giving examples of input keys, but this is largely redundant with the schema's example. Baseline 3 is appropriate given 100% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Change') and the target ('indicator/study input values') with concrete examples ('length, source, period'). This unambiguously differentiates it from sibling tools like chart_manage_indicator or indicator_toggle_visibility, which handle indicator lifecycle and visibility rather than input parameter modifications.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for adjusting study inputs, and the required entity_id from chart_get_state in the schema suggests a prerequisite. However, it does not explicitly state when to use this tool versus alternatives, nor does it mention any constraints like the indicator needing to exist or how to obtain the entity_id beyond the schema hint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
indicator_toggle_visibilityA
Show, hide, or flip an indicator on the chart. Omit visible to toggle. Confirms the result by reading the study back rather than trusting setVisible().
| Name | Required | Description | Default |
|---|---|---|---|
| visible | No | true to show, false to hide. OMIT to flip whatever the current state is. | |
| entity_id | Yes | Entity ID of the study (from chart_get_state) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden. It does add genuine value by revealing that the tool verifies its work by reading the study back rather than trusting setVisible(), which tells the agent the result is confirmed. But it doesn't disclose other behavioral traits such as failure modes, reversibility, or side effects for a mutation operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, no filler. The core purpose is front-loaded, followed by the toggle nuance, then the verification note. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter tool with full schema coverage, the description covers the core action, the parameter nuance, and the verification behavior. It's near-complete; only failure/return behavior is unaddressed, which is minor given the tool's simplicity and lack of output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters. The description restates the 'omit visible to toggle' behavior that is also in the schema, adding only marginal value. Baseline 3 is appropriate since the structured schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states specific verbs (show, hide, flip) applied to a specific resource (indicator on the chart). The dual mode — explicit set versus toggle — is unambiguous and the 'flip' behavior distinguishes this from general indicator-management siblings like chart_manage_indicator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it (manipulating an indicator's visibility on the chart) and the toggle-vs-set distinction is clear. However, it names no alternatives and gives no explicit when-not-to-use context, even though chart_manage_indicator could plausibly overlap with visibility control.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
layout_listB
List saved chart layouts with bounded pagination
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| include_details | No | Include symbol, resolution, and modification metadata |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for behavioral disclosure. It only states 'List' and 'bounded pagination,' which largely mirrors the schema's limit/offset fields. It does not mention side effects, return structure, or any caveats, leaving the agent without essential context for a read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the primary action and object. Every word earns its place, with no filler or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, but with no output schema and no annotations, the description should provide more context about expected results. It does not indicate what fields will be returned, how layouts are identified, or ordering behavior, leaving the agent partially uninformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is only 33%, with only include_details described. The tool description provides no parameter-level detail, failing to compensate for the gap. The phrase 'bounded pagination' hints at limit/offset but does not explain their semantics or defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and identifies the resource ('saved chart layouts'), making the tool's function immediately clear. It also adds 'with bounded pagination,' which distinguishes it from related tools like layout_switch that perform a different operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is given on when to use this tool versus alternatives. The usage is implied by the verb 'List,' but there is no mention of exclusions or when to prefer another tool such as layout_switch or chart_get_state.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
layout_switchA
Switch to a saved chart layout by name or ID. Stops rather than discarding unsaved changes on the current chart unless discard_unsaved is set.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name or ID of the layout to switch to | |
| discard_unsaved | No | Throw away unsaved changes on the current chart. Without this, a chart with unsaved work stops the switch instead of losing it. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explicitly discloses a critical behavioral trait: it 'stops rather than discarding unsaved changes' unless discard_unsaved is set. This communicates a safety mechanism and the destructive consequence of setting the flag. Since no annotations are provided, the description carries the burden, and it does so well, though it could be more explicit about affecting the current chart.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the primary action and then explains the key edge case. There is no redundant or filler content; every word contributes to understanding the tool's behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core functionality and the most important safety behavior. It doesn't mention error handling or return values (though no output schema exists), and it doesn't explicitly state that the layout applies to the current chart, but this is implied by the context. Overall, it is sufficiently complete for a tool of this simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already fully describes both parameters (name and discard_unsaved) with clear descriptions. The tool description doesn't add any additional meaning beyond what the schema conveys, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Switch to a saved chart layout'), the resource type ('chart layout'), and the selection method ('by name or ID'). This is clear and differentiates from sibling tools like layout_list (which lists layouts) and tab_switch (which switches tabs).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly conveys when to use this tool—to switch chart layouts—and provides context on the discard_unsaved parameter, indicating when to set it (when you want to discard unsaved changes). It doesn't explicitly mention alternatives or exclusions, but the intended use is obvious from the wording.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pane_focusB
Focus a specific chart pane by index (0-based)
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | Pane index (0-based, from pane_list) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states 'Focus a specific chart pane' without explaining side effects (e.g., which pane becomes active, whether the UI scrolls, or what happens if the index is invalid). The '0-based' indexing and reference to pane_list are helpful but do not disclose the underlying behavioral semantics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that immediately states the action and parameter. It is front-loaded with the verb and resource, contains no filler or redundant wording, and is appropriately concise for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one parameter and no output schema, the description conveys the basic operation and references the index source via the schema. However, it lacks broader context such as when to use this tool, how it fits into the pane-management workflow, and what the expected result is (e.g., active pane selection). This makes it minimally viable but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage with a clear description of the 'index' parameter ('Pane index (0-based, from pane_list)'). The tool description repeats this information ('by index (0-based)') without adding additional meaning. Since the schema already documents the parameter effectively, the description meets the baseline but does not go beyond it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Focus') and the resource ('specific chart pane'), with the index parameter specifying the target. It is distinct from sibling tools like pane_set_layout or pane_set_symbol, which perform different operations on panes. However, 'focus' could be more explicit about the resulting behavior (e.g., making the pane active for subsequent commands), so it stops short of a perfect 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites like calling pane_list first, or how this relates to pane_set_layout or pane_set_symbol. There is no context on whether this is needed before other pane operations. The user must infer usage from the tool name and schema alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pane_listA
List all chart panes in the current layout with their symbols and active state
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the responsibility for behavioral disclosure. It clearly states what is returned (symbols and active state) and implies a read-only, side-effect-free operation. However, it does not address edge cases such as behavior when no panes exist or whether hidden panes are included. For a simple list tool, this is adequate but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the action 'List', and contains no filler. Every word contributes to the meaning, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only list tool with no output schema, the description sufficiently captures the purpose and return content. It lacks explicit edge-case details, but given the tool's simplicity, it is complete enough for successful invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool accepts zero parameters and the schema is an empty object. With no parameters to describe, the baseline score of 4 applies. The description adds no parameter-specific information because there are none.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'List', identifies the resource 'chart panes', and specifies the scope 'current layout' plus the included details 'symbols and active state'. This clearly distinguishes it from sibling tools like tab_list (tabs) and layout_list (layouts).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. For example, it does not mention that this is the appropriate tool for enumerating panes as opposed to using chart_get_state. The description only states what it does, leaving usage context entirely implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pane_set_layoutC
Change the chart grid layout (e.g., single, 2x2, 2h, 3v)
| Name | Required | Description | Default |
|---|---|---|---|
| layout | Yes | Layout code: s (single), 2h, 2v, 2-1, 1-2, 3h, 3v, 4 (2x2), 6, 8. Also accepts: single, 2x1, 1x2, 2x2, quad |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description alone must convey safety and behavior. It only says 'change the chart grid layout' without mentioning side effects, whether it resets existing panes, or if it requires any preconditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one parameter and no output schema or annotations, the description is too minimal to be fully complete. It doesn't explain the behavior of layout changes on existing content, nor what the tool returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents the layout parameter with all accepted codes. The description's examples ('single, 2x2, 2h, 3v') overlap with the schema but don't add additional meaning or clarify ambiguous codes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool changes the chart grid layout, with examples of layout codes. This distinguishes it from pane_focus (focusing a pane) and pane_set_symbol (setting a symbol), though it doesn't explicitly differentiate from layout_switch.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives. The description simply states the action; an agent must infer from sibling names that this handles specific grid codes while layout_switch may handle saved layouts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pane_set_symbolB
Set the symbol on a specific pane by index
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | Pane index (0-based) | |
| symbol | Yes | Symbol to set (e.g., NQ1!, ES1!, AAPL) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must disclose behavioral traits. It mentions only the action and doesn't address side effects, prerequisites, validity of index, or post-conditions. For a mutating operation, this is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that delivers the essential meaning without wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The simple operation is reasonably well-specified by the description and schema, but lacks information about error handling, valid pane indices, and how it relates to chart_set_symbol. No output schema means the return value is also unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema provides 100% description coverage for both parameters (index and symbol). The description clarifies their roles ('set symbol on pane by index') but adds no additional formatting or constraints beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('set'), identifies the resource ('symbol on a specific pane'), and specifies the mechanism ('by index'). It clearly distinguishes from sibling tool chart_set_symbol by targeting panes rather than the chart itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like chart_set_symbol. The description only states what it does, leaving the agent to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pine_analyzeA
Run static analysis on Pine Script code WITHOUT compiling — catches array out-of-bounds, unguarded array.first()/last(), bad loop bounds, and implicit bool casts. Works offline, no TradingView connection needed.
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | Pine Script source code to analyze |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the responsibility of disclosing behavior. It clearly states that the tool does not compile, works offline, and catches specific error types. However, it does not describe the return value or output format, leaving some ambiguity about how results are presented to the caller.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with two sentences that front-load the core purpose and then add a key operational detail (offline, no connection). Every word contributes value, with no redundancy or irrelevant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema and no annotations, the description provides a solid understanding of the tool's function, behavior, and use case. It could be more complete by specifying the return format or providing an example, but given the tool's simplicity, it covers the essentials well.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides a full description for the sole parameter 'source' ('Pine Script source code to analyze'), giving 100% schema coverage. The tool description adds context about the analysis itself but does not add new parameter-specific meaning beyond the schema, matching the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Run static analysis on Pine Script code') with concrete detection categories (e.g., array out-of-bounds, unguarded array.first()/last()). It explicitly distinguishes from compilation ('WITHOUT compiling') and indicates offline operation, setting it apart from sibling tools like pine_compile.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use this tool: for static analysis without compiling, with the added benefit of working offline and requiring no TradingView connection. It implies that compilation is not needed, but does not explicitly name alternatives or state when not to use it, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pine_checkA
Compile Pine Script via TradingView's server API without needing the chart open. Returns compilation errors/warnings. Useful for validating code before injecting into the chart.
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | Pine Script source code to compile/validate |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that compilation happens remotely via the server API and that errors/warnings are returned. It also implies a non-destructive validation action. It does not mention side effects, but the nature of compilation makes this less critical.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences. The first sentence states the core function, and the second provides the return value and a use case. No redundant words or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description is largely complete. It explains the action, the return, and the use case. It could optionally mention what happens on successful compilation, but that is not essential for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes the single parameter 'source' as the Pine Script source code. The description adds no new detail about the parameter's format or constraints. With 100% schema coverage, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's specific action: compiling Pine Script via TradingView's server API. It also distinguishes itself from sibling tools by noting that the chart doesn't need to be open, and it indicates the output (compilation errors/warnings). This goes beyond a vague purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear use case: validating code before injecting it into the chart. This implies when to use the tool, though it does not explicitly mention alternative tools or exclusion scenarios. The guidance is sufficient for basic selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pine_compileA
Compile the current Pine Script and add it to the chart. WARNING: this SAVES first, clicking Save and add to chart, which persists the current editor buffer to the saved script it is bound to.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does disclose the critical side effect that it saves the editor buffer before compiling (persisting to the bound script). This is a non-obvious behavior that significantly affects outcomes. However, it does not mention what happens on compilation errors, whether chart state changes beyond adding the script, or if any return value is produced. The warning adds substantial value but leaves some behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with zero redundancy. The primary action is front-loaded ('Compile the current Pine Script and add it to the chart.'), and the warning follows as a clearly marked caution. Every sentence earns its place; the warning is essential and the structure makes it easy to parse. This is a model of concise, effective communication.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no output schema, the description is mostly complete. It specifies the action and the key side effect (saving). However, it does not mention how the agent should check for compilation errors (e.g., via pine_get_errors) or whether a script must be active in the editor. These are minor gaps given the tool's simplicity, but an agent might benefit from a hint about post-compile error checking.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are 0 parameters, so the baseline is 4 per the rubric. The schema is empty and the description does not need to explain parameter semantics. No additional meaning is required or provided, but the baseline holds because the tool takes no input and the schema coverage is effectively 100%.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Compile the current Pine Script and add it to the chart.' This is a distinct verb-resource pair that differentiates from siblings like pine_save (saves only) and pine_smart_compile (likely compile without adding). The specific wording leaves no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The description does not mention pine_smart_compile, pine_get_errors, or other related tools, nor does it state conditions for use. The warning implies it saves, but there is no direct 'use this when...' or 'use X instead when...' guidance. The agent is left to infer usage from the action alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pine_get_consoleA
Read Pine Script console/log output (compile messages, log.info(), errors)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It uses the verb 'Read', which implies a non-destructive, read-only operation, but it does not disclose whether the tool returns a single string, a list, or whether it requires a prior compilation or open console. It lacks explicit statements about side effects, auth requirements, or failure modes, leaving the agent with only partial information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that states the main action and resource, followed by parenthetical examples. Every element earns its place, with no wasted words or redundant information. It is appropriately sized for a zero-parameter read tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, zero-parameter read-only tool, the description is mostly complete. It clearly names the output types (compile messages, log.info(), errors). However, without an output schema, it does not specify the exact return shape (e.g., raw string vs. array of messages), which would be helpful. Still, given the tool's low complexity, this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description does not need to explain parameter semantics, and the schema's empty properties object confirms there are none. No additional meaning is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Read') and resource ('Pine Script console/log output') and gives concrete examples of content (compile messages, log.info(), errors). It clearly distinguishes from siblings like pine_get_errors (which likely returns only errors) and pine_get_source (which returns source code), making the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives such as pine_get_errors or pine_compile. The description implies it is for reading console output, but it does not explicitly state prerequisites, whether it should be called after compilation, or which scenarios would warrant using a different tool. This is a clear gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pine_get_errorsA
Get Pine Script compilation errors from Monaco markers
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds the source 'Monaco markers,' which provides context beyond the name. However, with no annotations, it does not disclose whether this is a read-only operation, whether it requires a prior compile, or what happens if no errors exist. The word 'Get' implies safety but is not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence. It is concise and free of unnecessary words, perfectly sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is clear but incomplete due to the lack of an output schema. It does not mention the return format (e.g., an array of error strings or structured objects), which is significant for an agent deciding how to use the result. The overall simplicity of the tool keeps it from being a lower score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema trivially covers 100%. Per the baseline for 0-parameter tools, the description does not need to elaborate on parameters, and it adds no contradictions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets Pine Script compilation errors from Monaco markers. It distinguishes from sibling tools like pine_get_console and pine_compile by specifying the exact source and purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites (e.g., after compilation) or when not to use it, leaving the agent to infer from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pine_get_sourceA
Get current Pine Script source code from the editor
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the primary operation ('Get...source code') and context ('from the editor'), which clearly is a read-only operation, but it does not disclose edge cases such as behavior when no editor is open or whether the tool can return errors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It states the action and resource precisely, making it exceptionally concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, no-output-schema tool, the description is adequate. It identifies the source ('from the editor') and the action ('Get'), which is sufficient for a simple getter. It does not explicitly mention the return value, but that is strongly implied by 'Get source code'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the input schema has no properties, so the baseline is 4. The description does not need to explain parameters since there are none.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('current Pine Script source code from the editor'), clearly distinguishing it from siblings like pine_set_source (which writes) and pine_compile (which compiles). There is no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for reading the active editor's Pine Script source, but it does not explicitly state when to use this tool versus alternatives. There are no exclusions or prerequisites mentioned, so guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pine_list_scriptsA
List saved Pine Scripts. Returns a page, not the whole library — pass name_filter to find one by name.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max scripts to return (default 50, max 200) | |
| offset | No | Skip this many matches, for paging | |
| name_filter | No | Case-insensitive substring match on script name/title. Use this when you know roughly what you are looking for. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral disclosure burden. It reveals the pagination behavior (returns a page) and hints at filtering, which is useful. But it does not disclose return format, ordering, or potential side effects. For a read-only listing tool, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose, no filler. The pagination caveat and name_filter hint are packed efficiently. This is ideal conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with fully documented parameters, but there is no output schema and the description does not describe the expected response structure. It also doesn't mention ordering or error behavior. For a listing tool, an agent might infer the result shape, but it's not fully specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers all three parameters with descriptions, so the baseline is 3. The description adds the insight that the tool returns a page, which reinforces the purpose of limit and offset, and mentions name_filter for finding by name. This is a modest addition over the schema but not substantial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and the resource ('saved Pine Scripts'), making the tool's purpose unambiguous. It also notes pagination behavior, but does not explicitly name or differentiate from sibling list tools like draw_list or alert_list, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides context on pagination ('Returns a page') and hints at the name_filter parameter for searching by name. However, it does not explicitly state when to use this tool instead of alternatives or mention any exclusions, so it lacks explicit routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pine_newA
Replace the Pine editor buffer with a blank template. WARNING: this does NOT create a new saved script. It overwrites whatever script the editor currently has open, and a following pine_save or pine_compile persists that overwrite to the cloud. It refuses to run when the buffer holds real content unless confirm_overwrite is set.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Template to write into the editor | |
| confirm_overwrite | No | Required when the editor already holds real content. Read it with pine_get_source first. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the overwrite behavior, the lack of a new-script creation, the persistence through subsequent saves/compiles, and the refusal when real content exists unless confirm_overwrite is set. This is strong transparency, though it doesn't mention potential side effects like clearing undo history or console state, which keeps it at a 4 rather than a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences front-load the core action and then deliver the critical warning. Every word earns its place; there's no redundancy or filler. The warning is strategically placed immediately after the purpose statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description covers the essential context: what it does, the destructive risk, the condition under which it refuses, and the downstream effect of save/compile. The only minor gap is that it doesn't explain what the template content looks like for each type, but that's a parameter-level detail not essential to correct invocation. The confirmation guidance is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The schema documents both parameters well, including the confirm_overwrite condition and the 'Read it with pine_get_source first' guidance. The description adds little beyond repeating this, though it clarifies that 'type' selects a template variant. It doesn't enrich the parameter meanings beyond the schema, so a 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is explicit: 'Replace the Pine editor buffer with a blank template.' It uses a specific verb, names the resource (Pine editor buffer), and clarifies it does not create a new saved script, distinguishing it from pine_open or pine_save. The warning about overwriting further sharpens the intent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states the destructive nature and that a following pine_save or pine_compile persists the overwrite, giving context on when to use it (when you intend to wipe the buffer). It also mentions the refusal condition and the confirm_overwrite requirement, and the schema adds 'Read it with pine_get_source first.' However, it doesn't explicitly compare against siblings like pine_open for creating new scripts, so it falls just short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pine_openA
Open a saved Pine Script by name
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the saved script to open (case-insensitive match) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does not explain what happens on success/failure, whether the script is loaded into the editor, or any side effects or prerequisites, leaving a significant transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence of seven words that front-loads the action and object. It contains no unnecessary words or repetition, making it optimally concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one fully documented parameter, and the description adequately states the core action. However, the lack of annotations and output schema means the description does not convey the operational outcome, potential errors, or any special behavior, leaving it only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage of the single parameter 'name', including the case-insensitive matching detail. The description adds no additional parameter semantics beyond what the schema documents, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Open') with a clear resource ('saved Pine Script') and the means of identification ('by name'), effectively distinguishing it from sibling tools like pine_new, pine_save, and pine_get_source.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended usage is implied—opening an existing saved script by name—but there is no explicit guidance on when to use this tool versus alternatives, nor any exclusions. The context is clear but limited.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pine_saveA
Save the current Pine Script buffer to the saved script the editor is bound to. WARNING: this persists to the cloud and overwrites that script. Verified by reading the editor Save/Saved state; an unverified save is never reported as success.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations available, the description carries full responsibility and does so well. It warns that the action persists to the cloud, overwrites the existing script, and honestly discloses that success is only reported after verification.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences with no wasted words: the first states the action, the second warns of the destructive cloud persistence, and the third explains the verification guarantee. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, destructive operation, the description is complete: it explains what is saved, where it is saved, what risk is involved, and how success is determined. No output schema is present, but no return-value claims are required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema coverage is 100%, so there are no parameter semantics to document. The description usefully contextualizes the implicit subject, the current Pine Script buffer.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action, resource, and destination: Save the current Pine Script buffer to the saved script the editor is bound to. This clearly distinguishes it from sibling tools like pine_compile or pine_set_source by emphasizing persistence to the cloud.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied by the action ('Save the current Pine Script buffer'), but there is no explicit guidance about when to choose this over alternatives such as pine_compile or pine_set_source. No usage conditions or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pine_set_sourceA
Set Pine Script source code in the editor. Refuses to overwrite a buffer holding real content unless confirm_overwrite is set.
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | Pine Script source code to inject | |
| confirm_overwrite | No | Required when the editor already holds real content. Read it with pine_get_source first. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full behavioral burden. It does disclose the overwrite protection and the confirm_overwrite condition, which is valuable. However, it does not mention return values, failure modes, or side effects beyond overwriting, leaving some behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. The primary action is front-loaded, and the critical overwrite caveat follows immediately. Efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter setter with no output schema, the description covers the core behavior and the safety guard. It lacks explicit return/error details, but these are minor given the tool's simplicity and the schema's completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema already describes both parameters, including the condition for confirm_overwrite. The description essentially repeats the overwrite condition without adding new meaning, so it meets the baseline for high schema coverage but adds little extra.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Set Pine Script source code') on a clear resource ('the editor'), and the overwrite-refusal detail further specifies its scope. Among sibling tools like pine_get_source, pine_compile, and pine_new, this is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explain when to use this tool versus alternatives (e.g., pine_new, pine_open). It only implies that reading with pine_get_source is needed before confirming overwrite, but does not provide explicit routing or exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pine_smart_compileB
Intelligent compile: detects button, compiles, checks errors, reports study changes WARNING: like pine_compile this SAVES the current buffer to the bound saved script before compiling.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the critical side effect of saving the current buffer before compiling, which is a key behavioral trait. However, it does not explain what 'reports study changes' means in terms of output or side effects, nor does it describe any other potential mutations or prerequisites. The disclosure of saving is significant but incomplete overall.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single long sentence that mixes the core function with a warning. It is front-loaded with 'Intelligent compile' but the phrase 'detects button' is vague and not explained. The structure is adequate but could be clearer if broken into separate sentences for the warning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no annotations and no output schema, so the description must convey all necessary context. It mentions saving and error-checking, but does not explain what the tool returns, what 'reports study changes' means, or under what conditions it should be invoked. For a tool that performs multiple actions, this is insufficient for an agent to call it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema is empty with 100% coverage. The baseline for 0 parameters is 4, and the description correctly adds no parameter-related information since there are none to explain.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool compiles, checks errors, and reports study changes, which clearly indicates its primary function. It distinguishes from sibling pine_compile by adding intelligence and error-checking, though 'detects button' is ambiguous. Overall, the purpose is clear enough for an agent to understand what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions 'like pine_compile' but does not explicitly explain when to choose this tool over pine_compile or other compile-related tools. There is no guidance on prerequisites, scenarios, or when this is preferable. The warning about saving is helpful but not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quote_batchA
Get live quotes for MANY symbols in ONE request without touching the chart. Use this for watchlist and universe sweeps: 29 symbols return in about 270ms. quote_get switches the chart symbol and takes ~20s each, so never loop it.
| Name | Required | Description | Default |
|---|---|---|---|
| symbols | Yes | Exchange-prefixed symbols, e.g. ["NASDAQ:AAPL","BINANCE:BTCUSDT"]. Duplicates are collapsed. Symbols the endpoint does not know are reported in not_found rather than silently dropped. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It discloses the key side-effect boundary ('without touching the chart'), gives a concrete performance measurement (29 symbols ~270ms), and warns about the sibling's slow behavior. It does not detail output shape or error behavior, but these are partly covered by the schema's not_found note.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences with no filler. The core differentiators (MANY symbols, ONE request, no chart touch) are front-loaded, followed by a concrete use case, a performance benchmark, and a warning about the alternative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema, this is complete: it explains what the tool does, when to prefer it, why it is fast, and what side effects it avoids. The schema handles invocation details, and the not_found behavior in the schema plus the description's focus on batch quoting give an agent enough to select and call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description reinforces the batch nature of the symbols parameter but adds no syntax or constraint details beyond the schema, which already documents exchange-prefixed symbols, duplicate collapsing, and not_found reporting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Get live quotes for MANY symbols in ONE request'. It immediately distinguishes itself from quote_get, which is the key sibling it could be confused with, by noting it does not touch the chart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says 'Use this for watchlist and universe sweeps' and warns against looping quote_get, stating that quote_get switches the chart symbol and takes ~20s each. This gives the agent a clear when-to-use and when-not-to-use rule with a named alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quote_getA
Get quote data. A different symbol briefly switches the chart, serializes concurrent quote calls, and restores the original chart.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | No | Symbol to quote (blank = current chart). Non-blank values cause a temporary chart switch and restore. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It proactively discloses that a non-blank symbol causes a temporary chart switch, serializes concurrent calls, and restores the original chart. This is valuable beyond what the schema explains. It does not cover all possible side effects (e.g., errors, rate limits), but the key structural behavior is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: first states the purpose, second packs the critical side effects. Every word earns its place, with no filler or repetition. It is front-loaded and appropriately sized for a simple one-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one parameter and no output schema, but the description does not explain what data is actually returned (e.g., bid, ask, volume). Since there is no output schema to fill that gap, the description should provide some indication of the response structure. The side effects are well-documented, but the return value is left ambiguous, making the description slightly incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides full coverage of the 'symbol' parameter, including the blank-means-current-chart behavior. The description adds one extra detail not in the schema—serialization of concurrent calls—which is useful. However, most of the description's parameter-related content is redundant with the schema, so it only marginally exceeds the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get quote data' with a specific verb and resource, making the core purpose evident. It also adds a distinguishing behavioral note about temporary chart switching, which differentiates it from generic data tools. However, 'quote data' is somewhat broad and does not explicitly contrast with siblings like symbol_info, so it's not a perfect 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is given on when to use this tool vs alternatives. The behavioral note about symbol changes is useful but does not address selection criteria, prerequisites, or exclusions. An agent must infer usage context solely from the phrase 'Get quote data'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replay_autoplayA
Turn autoplay on or off in replay mode, optionally setting the speed. Pass enabled to say which state you want; omit it to flip whatever the current state is. Confirms the result by reading autoplay back.
| Name | Required | Description | Default |
|---|---|---|---|
| speed | No | Autoplay delay in ms (lower = faster). Valid values: 100, 143, 200, 300, 1000, 2000, 3000, 5000, 10000. Note this is a DELAY, not a multiplier: 1 is rejected. | |
| enabled | No | true to start autoplay, false to stop it. Omit to flip the current state. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits itself. It mentions the toggle behavior and the confirmation step ('Confirms the result by reading autoplay back'), which adds value. However, it does not describe potential side effects (e.g., dependencies on replay being active) or any failure modes, leaving gaps in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences, front-loaded with the primary action and resource. Every sentence contributes: the action, the parameter semantics, and the confirmation behavior. No fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the rich parameter descriptions in the schema, the description covers the essential aspects: action, optional parameters, and confirmation. It lacks explicit preconditions (e.g., whether replay must be active), but for a simple toggle this is a minor gap. The absence of an output schema means the confirmation statement partially compensates for return-behavior expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds meaning beyond the schema by explaining the optional 'enabled' parameter's flip behavior and that speed is optional and combined with state change. This clarifies usage semantics that the schema alone does not fully convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Turn autoplay on or off in replay mode'), specifies the resource (autoplay within replay mode), and mentions optional speed setting. This distinguishes it from sibling tools like replay_start/stop, which control replay playback itself rather than autoplay state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit instructions on parameter use: 'Pass enabled to say which state you want; omit it to flip whatever the current state is.' This tells the agent exactly how to invoke the tool for desired outcomes. However, it does not explicitly contrast with alternatives or state when not to use it, though the context of replay-autoplay vs replay-start/stop is implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replay_startA
Start bar replay mode, optionally at a specific date
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Date to start replay from (YYYY-MM-DD format). If omitted, selects first available date. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It states the primary behavior (starting replay mode) and mentions the optional date, but does not disclose side effects, state changes, or requirements like having a chart open. This is acceptable for a simple mode-toggle tool but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of nine words, front-loaded with the action verb 'Start' and the resource. Every word earns its place, with no redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one optional parameter and no output schema, the description is mostly complete. It covers the primary function and the optional parameter. It does not place the tool within the replay workflow (e.g., suggesting replay_step for advancing), but that is not essential for executing the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single optional 'date' parameter, which is fully documented. The description's mention of 'optionally at a specific date' merely reiterates the schema, adding no extra semantic value beyond the structured data.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Start' with a clear resource 'bar replay mode', distinguishing it from siblings like replay_stop, replay_status, and replay_step. It unambiguously states the tool's function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context (entering replay mode) but does not explicitly contrast with siblings such as replay_autoplay, replay_step, or replay_trade, nor does it state prerequisites or follow-up actions. It provides only implied guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replay_statusA
Get current replay mode status
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It implies a safe read operation via 'get', but does not describe what the returned status looks like, whether it can fail, or any side effects. It is minimally transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entire description is a single, front-loaded sentence with no filler words. It clearly communicates the tool's function in just six words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple getter with no parameters and no output schema. The description is adequate for the core function but omits information about the return value format or possible statuses, which would be useful given the output schema is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the input schema is empty. The baseline score of 4 applies, as there is nothing to document and the description adds no parameter information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'get' with a resource 'replay mode status', clearly indicating this tool queries the current replay mode state. It distinguishes from sibling tools like replay_start, replay_stop, and replay_step, which are actions rather than status queries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives. It does not mention whether it should be called before starting replay, or how it relates to replay_autoplay or other replay tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replay_stepA
Advance one bar in replay mode
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral disclosure. It explains the step increment ('one bar') but omits important details such as whether replay must be active, what happens if called outside replay mode, or any side effects on the chart view.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no redundant words. It efficiently conveys the action and resource, fitting the simple nature of the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is minimally sufficient for a parameterless step action, but it lacks contextual details about replay state requirements and how it fits into the broader replay workflow. Given the simplicity of the tool, it is adequate but not rich.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the input schema is empty, so there is no parameter semantics to explain. The baseline score of 4 applies because the schema coverage is trivially complete and the description needs no compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Advance') and the resource ('one bar in replay mode'), making the tool's purpose specific and unambiguous. It also distinguishes from siblings like replay_autoplay by emphasizing the manual single-bar step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as replay_autoplay or replay_stop. It does not mention any prerequisites like replay mode being active or the expected context for invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replay_stopA
Stop replay and return to realtime
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the primary effect and result, but does not disclose edge cases (e.g., behavior if no replay is active) or side effects beyond the immediate action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no unnecessary words. Every word contributes to clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (no params, no output schema, no annotations), the description is fully sufficient to understand its purpose and effect. It covers the required information for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and an empty input schema. Per the rubric, this warrants a baseline of 4 since there is no parameter meaning to add.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Stop'), identifies the resource ('replay'), and states the outcome ('return to realtime'). This clearly distinguishes it from sibling tools like replay_start and replay_step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly conveys when to use the tool: to exit replay mode and resume realtime data. While it does not explicitly mention alternatives or exclusions, the context is unambiguous for an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replay_tradeA
Execute a trade action in replay mode (buy, sell, or close position)
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Trade action: buy, sell, or close |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only states the action and does not reveal what happens after execution, whether it requires an active replay session, what side effects occur on position state, or potential errors. This is a significant transparency gap for a mutation-like tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, front-loaded with the core verb 'Execute' and resource 'trade action in replay mode'. It contains no filler and every phrase earns its place, including the parenthetical list of actions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one parameter and no output schema, the description conveys the core purpose adequately. However, it omits important context such as the requirement for an active replay session and the outcome of the trade action, leaving some gaps for the agent to infer. More detail would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% coverage for the single 'action' parameter with a description listing buy, sell, close. The tool description repeats the same values without adding new meaning, so it meets the baseline but does not enhance parameter understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Execute a trade action in replay mode' and explicitly lists the allowed actions (buy, sell, or close position). It distinguishes itself from replay control siblings like replay_start and replay_step by focusing on trade execution, not replay navigation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description establishes clear usage context: this is for trade actions during replay mode. It implies the tool is used when the user wants to simulate a trade in a replay session. However, it does not explicitly exclude alternatives or mention prerequisites (e.g., replay must be active), so it lacks the full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
state_deleteB
Delete a named chart state snapshot
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Snapshot name to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It conveys the destructive nature via 'Delete', but does not disclose permanence, side effects, or failure conditions. The agent is left to infer that deletion is irreversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It efficiently captures the essential action and object.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter delete operation with no output schema, the description covers the core functionality. However, it omits any mention of return behavior, error handling, or precondition that the snapshot must exist, leaving minor gaps. The tool's simplicity keeps the impact low, so a 3 is appropriate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with 'name' described as 'Snapshot name to delete'. The description echoes this by saying 'named chart state snapshot', adding no further meaning. The baseline of 3 applies because the schema already fully documents the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Delete' and the resource 'named chart state snapshot', making the tool's purpose unambiguous. It distinguishes from sibling tools like state_snapshot (create) and state_restore (restore) through the action word, though it does not explicitly contrast them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The description only states what it does, with no mention of prerequisites, exclusions, or alternative tools like state_list for listing snapshots.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
state_listA
List all saved chart state snapshots sorted by capture date
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden, and it does disclose key behavioral traits: it lists 'all' saved snapshots and the sort order ('by capture date'). This implicitly confirms it is a read-only operation. However, it does not explicitly mention the return format or error behavior, keeping it from a perfect score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence with no wasted words. It leads with the verb 'List' and includes only essential information about scope and ordering.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite lacking an output schema or annotations, the tool is simple and the description is sufficient for an agent to understand what it does and when to invoke it. It could be improved by specifying the return format (e.g., array of snapshot IDs), but overall it is complete enough given the low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the schema provides complete coverage. The description adds no parameter details, but since there are none, the baseline of 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'List' with a resource 'saved chart state snapshots' and adds detail about sorting by capture date. This clearly distinguishes it from sibling state_* tools like state_snapshot, state_restore, and state_delete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use it (when you need to see saved snapshots), providing clear context without explicitly excluding alternatives. It does not state when not to use it, but for a simple list tool, the implied usage is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
state_restoreA
Restore a saved chart state snapshot by name. DESTRUCTIVE: this makes the chart MATCH the snapshot, which removes every study and every drawing that is not in it. Take a state_snapshot of the current chart first if you might want it back.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Snapshot name to restore |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It explicitly labels the operation as DESTRUCTIVE and details the exact consequence: 'this makes the chart MATCH the snapshot, which removes every study and every drawing that is not in it.' It also advises a precautionary action (take a snapshot first), providing thorough behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded: the first sentence states the purpose, the second explains the destructive behavior. Every word earns its place, with no fluff or redundancy. It effectively communicates the key warning without excessive detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a single parameter, no output schema, and the destructive nature, the description covers all essential aspects: what it does, what it destroys, and how to protect against loss. An agent has enough to call it correctly and understand consequences. There is no missing information that would affect invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes the 'name' parameter as 'Snapshot name to restore' with 100% coverage. The description adds no additional semantics about the parameter, only restating that it is restored by name. This meets the baseline for full schema coverage without adding extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Restore a saved chart state snapshot by name.' It specifies the resource (chart state snapshot) and the verb (restore). It also distinguishes itself from siblings like state_snapshot (create) and state_delete by focusing on applying a snapshot, and the destructive effect further clarifies its unique role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly name alternatives, but it provides a clear warning to take a snapshot first if the current state is needed, which guides when to use this tool versus state_snapshot. It implies usage context—when you have a saved snapshot and want to apply it—but does not state explicit 'use when' or 'use instead' scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
state_snapshotA
Capture full chart state (symbol, timeframe, studies, drawings, visible range) to a named snapshot file
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Snapshot name (e.g., "my-setup"). No slashes or ".." | |
| overwrite | No | Overwrite existing snapshot with the same name (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description discloses the scope of state captured (symbol, timeframe, studies, drawings, visible range) and that it writes to a named file. However, it does not describe behavior when a snapshot with the same name exists (despite overwrite parameter in schema) or any potential errors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, focused sentence that is front-loaded with the action and lists included components without repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the tool's basic function and scope, but lacks a pointer to companion tools like state_restore and does not clarify the outcome when a snapshot already exists without overwrite.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds context about what is captured but does not elaborate on the 'name' or 'overwrite' parameters beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Capture' with a clear resource 'full chart state' and destination 'named snapshot file', listing included elements (symbol, timeframe, studies, drawings, visible range). This distinguishes it from siblings like state_restore and state_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus state_restore or state_list. The context is implied by the verb 'Capture', but there is no mention of alternatives or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
strategy_sweepB
Iterate a strategy across symbols × timeframes × indicator input combinations
| Name | Required | Description | Default |
|---|---|---|---|
| inputs | No | Input variations: { length: [20, 50], source: ["close", "hl2"] } | |
| symbols | Yes | Symbols to sweep (e.g. ["ES1!", "NQ1!"]) | |
| on_error | No | Error behavior (default "continue") | |
| entity_id | Yes | Strategy study entity ID (from chart_get_state) | |
| use_cache | No | Reuse cached per-combo metrics from ~/.tv-mcp/sweep-cache/ within TTL (default true) | |
| timeframes | Yes | Timeframes to sweep (e.g. ["15", "60"]) | |
| cooldown_ms | No | Cooldown between combos in ms (default 1500) | |
| parallelism | No | Spawn N worker tabs and run combos in parallel (default 1 = serial). Cap 6. | |
| cache_max_age_ms | No | Cache entry TTL in ms (default 86_400_000 = 24h). Set 0 to force fresh. | |
| max_combinations | No | Max combinations allowed (default 100, abs cap 500) | |
| resume_from_run_id | No | Continue from a partial sweep run_id | |
| restore_start_state | No | Snapshot chart before sweep, restore after (default true) | |
| timeout_per_combo_ms | No | Timeout per combo in ms (default 30000) | |
| same_symbol_cooldown_ms | No | Shorter cooldown when only inputs change (same symbol+timeframe). Default 200ms; clamped to [0, cooldown_ms]. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure, but it only states 'iterate'. It reveals nothing about side effects (e.g., chart modifications, caching, parallelism, restore behavior) or operational characteristics (e.g., long-running, error handling, resource usage). This is a significant transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that directly states the core function without filler. It is appropriately concise, though for a tool with 14 parameters it could arguably carry more contextual weight without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a complex sweep tool with 14 parameters, no annotations, and no output schema. The description only names the dimensions being swept, omitting crucial context about execution, side effects, caching behavior, error handling, result delivery, or how it integrates with the other chart/strategy tools. It is far from complete for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description itself adds no parameter semantics; it relies entirely on the detailed per-parameter descriptions in the input schema. No extra meaning is conveyed beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Iterate a strategy across symbols × timeframes × indicator input combinations' uses a specific verb (iterate) and identifies the exact resource (strategy) and the three sweep dimensions. This clearly distinguishes it from siblings like data_get_strategy_results (which retrieves results) and batch_run (generic execution).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies its usage for sweeping multiple parameter combinations but never explicitly states when to choose it over alternatives, nor does it mention exclusions or complementary tools. It offers only a terse purpose without contextual guidance on when to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
symbol_infoA
Get detailed metadata about the current symbol (name, exchange, type, description)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the burden of behavioral disclosure. It implies a non-mutating, read-only operation by using 'Get', and it lists what is returned. However, it does not mention possible failure states (e.g., if no symbol is currently set), error handling, or side effects. The behavior is mostly clear but not fully disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the action and resource, with no filler or repetition. It earns every word.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter getter, the description is complete: it states what the tool does (get metadata) and what to expect (name, exchange, type, description). There is no output schema, but the description enumerates the key return fields, making the tool's purpose and output clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool accepts zero parameters, so the baseline is 4. There is no parameter info needed in the description, and the schema already reflects that no input is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb ('Get') and resource ('detailed metadata about the current symbol'). It enumerates the included fields (name, exchange, type, description), which distinguishes it from sibling tools like symbol_search (which searches) and chart_set_symbol (which changes the chart's symbol).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The context is implied: it is a read-only getter for the current symbol. However, it does not explicitly compare with alternatives like symbol_search or chart_get_state, nor does it mention when not to use it. There is no guidance on when to prefer this tool over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
symbol_searchC
Search for symbols by name or keyword
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Filter by type (e.g., "stock", "futures", "crypto", "forex") | |
| query | Yes | Search query (e.g., "AAPL", "crude oil", "ES") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the function 'search' without mentioning return format, result limits, case sensitivity, wildcard behavior, or whether the search covers all symbol types. This leaves significant behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single succinct sentence that immediately conveys the core action. It is front-loaded and efficient, though somewhat sparse for a tool with two parameters and no output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, but without an output schema, the description should explain what the search returns and any constraints (e.g., supported symbol types, result ordering). This information is missing, making the description incomplete for an agent to fully understand the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (both parameters have descriptions). The description adds minimal extra meaning beyond 'by name or keyword' which maps to the query parameter, but it does not clarify the type parameter's role beyond the schema's existing explanation. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (search) and the resource (symbols) with a specified method (by name or keyword). It is specific enough to distinguish from related tools like symbol_info, though it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus other search-related tools like indicator_search or tv_discover. There are no usage contexts, prerequisites, or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tab_closeA
Close the currently active chart tab. Names the tab it is about to close and refuses when no tab is marked active. Closing a chart tab cannot be undone through this API, so pass expect_title when it matters which one goes.
| Name | Required | Description | Default |
|---|---|---|---|
| expect_title | No | The active tab title must contain this, otherwise nothing is closed. Use tab_list first to see the titles. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the operation is irreversible ('cannot be undone through this API') and notes a refusal condition ('refuses when no tab is marked active'). It also hints at output behavior ('Names the tab it is about to close'), though return format is unspecified. This is strong coverage for a destructive action, but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler. The primary action is front-loaded, and the critical caveat about irreversibility is placed immediately after. Every clause contributes value, making it efficient and easily scanable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter and no output schema, the description covers purpose, destructive nature, parameter usage, and a prerequisite (tab_list). It does not specify the return value verbatim, but 'Names the tab' implies some output. Given the low complexity, this is largely complete; only a minor gap exists regarding the exact response format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already explains expect_title thoroughly (must match to close, use tab_list); the description adds the strategic context 'pass expect_title when it matters which one goes,' which complements the schema by tying the parameter to a decision point. Since schema coverage is 100% and description adds meaningful guidance, this exceeds the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action ('Close') on a specific resource ('currently active chart tab'), clearly distinguishing it from sibling tab tools like tab_new, tab_switch, and tab_list. It also adds behavioral detail about refusing when no tab is active, which further clarifies intent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear usage context: tells the agent to use tab_list first to see titles and to pass expect_title when it matters which tab closes. However, it does not explicitly contrast with alternatives (e.g., 'use this instead of tab_switch'), so it lacks explicit when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tab_listA
List all open TradingView chart tabs
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. 'List' signals a read-only operation, implying no side effects. It does not detail return format or pagination, but for a simple listing tool that is likely acceptable. The description is honest and not misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that perfectly captures the tool's function without any unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, parameterless listing tool with no output schema, the description is fully sufficient. It states what the tool returns (list of tabs) and is unambiguous.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the rubric sets a baseline of 4 for zero-parameter tools. The description appropriately does not need to explain any parameters, and the schema is fully consistent with the empty parameter set.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('List') and resource ('all open TradingView chart tabs'). It is distinct from sibling tools like tab_new, tab_close, and tab_switch, which perform different actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use the tool (when you need to see all currently open charts). It does not provide explicit exclusions or alternative tool mentions, but the context is clear given the sibling tools and the straightforward nature of the listing operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tab_newA
Open a new TradingView tab, optionally loading a saved layout
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Symbol name to enter when layout is "new" | |
| layout | No | Saved layout name or "new" for a blank chart |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral disclosure. It does not mention side effects (e.g., whether the new tab becomes active, whether an existing TradingView session is required), permissions, or what happens when no layout is specified. For a tool that creates a tab, these details are important for successful invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that immediately states the main purpose and the optional capability. There is no redundant information or extraneous detail, making it easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool, the description covers the core action and optional layout loading. However, it lacks context about prerequisites (e.g., must TradingView be open?) and any expected behavior or return values. Since there is no output schema, some additional context would improve completeness, but the tool is relatively straightforward and the description is minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond the schema; it simply restates that a saved layout can be optionally loaded. The parameter descriptions in the schema already explain the values for 'layout' and the role of 'name'. Thus, the description adds minimal value here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action and resource: 'Open a new TradingView tab'. It also specifies the optional behavior of loading a saved layout. This differentiates it from sibling tools like tab_switch and tab_list, which handle switching and listing tabs, respectively.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool: to open a new tab. It does not explicitly mention alternatives or exclusions, but the purpose is straightforward and the optional layout parameter implies flexibility. The phrase 'Open a new' naturally implies this is not for switching or listing tabs, though it could be more explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tab_switchB
Switch to a chart tab by index
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | Tab index (0-based, from tab_list) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not state what happens with an invalid index, whether the tab must already exist, or any side effects of switching. This is a significant gap for a mutating UI action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clearly worded sentence with no wasted words. It is appropriately concise, though it could include a bit more context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one well-described parameter and no output schema, the description plus schema is mostly sufficient. However, the description alone does not mention the need to use tab_list to obtain a valid index, which is a relevant contextual gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (the 'index' parameter has a description indicating it is 0-based and from tab_list). The tool description adds nothing beyond the schema, so it meets the baseline but does not enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Switch to a chart tab by index' uses a specific verb ('Switch'), identifies the resource ('chart tab'), and specifies the method ('by index'). This clearly distinguishes it from sibling tools like tab_new, tab_close, and tab_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'by index' implies the agent must have a tab index, likely obtained from tab_list, but the description does not explicitly state when to use this tool versus alternatives or mention any prerequisites. It offers implied guidance rather than explicit instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tv_capability_matrixB
Map every TVControl tool to its required TradingView APIs and report which tools are currently available or blocked.
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | Bypass the short compatibility cache (default false) | |
| probe | No | Probe the live TradingView runtime (default true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for behavioral disclosure. It reveals the tool performs a mapping and reports availability, but does not mention potential side effects of probing the live runtime, whether it is read-only, or that it may be slow. The `probe` parameter implies runtime interaction, but the description omits this.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that conveys the core function and output without any filler or redundant phrasing. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has two optional parameters and no output schema. The description explains the purpose and outcome at a high level, but lacks detail about the returned matrix structure, the meaning of 'available or blocked', and any runtime behavior like caching or probing. It is adequate but leaves gaps for a diagnostic tool in a large sibling context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters `force` and `probe` are fully documented. The tool description adds no additional meaning beyond the schema, but given the high coverage, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Map every TVControl tool to its required TradingView APIs') and the output ('report which tools are currently available or blocked'). It distinguishes itself from sibling tools like tv_health_check by focusing on the tool-to-API capability matrix, though it doesn't explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as tv_compatibility_check or tv_discover. The description only states what the tool does, with no context for choosing it over other diagnostic tools or mention of prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tv_chart_healthA
Check whether each chart pane has a live data session. Finds the failure where ONE pane sits in a reconnect loop forever while the rest of the layout is fine: a study whose id never registered with the server kills that pane's session on every reconnect, and the pane cannot recover on its own. Read-only. Use tv_repair_chart to fix what this reports.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden. It explicitly claims 'Read-only,' naming the operation type, and explains the underlying cause of the failure it detects. It does not describe the output format or side effects, but for a read-only diagnostic, it adequately sets expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured: the essential purpose is the first sentence, followed by a concrete failure scenario, a read-only note, and a pointer to the repair sibling. Every sentence contributes distinct value, and there is no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of annotations, parameters, and an output schema, the description adequately covers what the tool does, why it exists (the specific failure it diagnoses), and how to follow up (tv_repair_chart). It is complete for an agent to decide when to call it and what to expect behaviorally.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema confirms an empty object. The baseline for a parameterless tool is 4, and the description appropriately adds no parameter-related information since none exist. It does not need to compensate for any schema gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Check whether each chart pane has a live data session.' It then pinpoints a distinct failure mode (the single-pane reconnect loop) and explicitly contrasts with the repair sibling ('Use tv_repair_chart to fix'), making it immediately distinguishable from related tools like tv_health_check.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states the intended pattern: run this to detect, then use tv_repair_chart to fix. It also describes the exact scenario (a pane stuck in reconnect due to an unregistered study id), giving an agent clear context for when to invoke it. It does not explicitly list when NOT to use it or compare to tv_health_check, but the guidance is strong enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tv_compatibility_checkB
Canary for critical TradingView internal APIs used by TVControl. Reports the Desktop version and exactly which required capabilities are missing.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states what the tool reports (Desktop version and missing capabilities) but does not mention whether it makes API calls that could fail, whether it requires specific permissions, whether any side effects occur, or what the output structure looks like. For a diagnostic tool, this lack of safety context is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long and uses no filler. The first sentence orients the tool as a canary for critical APIs, and the second precisely states the output (version + missing capabilities). Every word earns its place; it is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters, no output schema, and no annotations, the description gives a fundamental sense of what it does. However, it leaves out important contextual details: it does not explain the format of the report, how to interpret results, or how it differs from closely related tools like tv_capability_matrix and tv_compatibility_snapshot. The term 'Canary' and 'TVControl' are jargon that may confuse an agent unfamiliar with the system.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so the baseline is 4. The description does not need to explain parameters because there are none. It also makes sense that a compatibility check would take no input, relying on environment state. The description adds sufficient context about what the tool checks without needing parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool is a 'Canary for critical TradingView internal APIs' and that it 'Reports the Desktop version and exactly which required capabilities are missing.' This gives a specific verb ('Reports') and resource (TradingView internal APIs / TVControl). It is distinct enough from siblings like tv_health_check, but does not explicitly differentiate from tv_capability_matrix or tv_compatibility_snapshot.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Canary' implies it is used as an early check for compatibility before using TVControl, but there is no explicit when-to-use or when-not-to-use guidance. It does not name alternative tools for compatibility checks, leaving the choice among tv_compatibility_check, tv_capability_matrix, and tv_compatibility_snapshot ambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tv_compatibility_snapshotA
Record, compare, or list immutable per-version TradingView API compatibility baselines. Critical failures and informational method drift are reported separately.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | Action (default compare) | |
| overwrite | No | Replace an existing version baseline when recording (default false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the transparency burden. It discloses that baselines are immutable and that results are reported separately for critical failures and informational drift. However, it does not explain state-changing behavior (e.g., whether 'record' persists data, side effects, or reversibility), which is important for a tool with a 'record' action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences that immediately convey the tool's core function and a key reporting distinction. No filler or repetitive content; every phrase adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description adequately covers the high-level purpose but lacks details on expected return values, output structure, or when the 'overwrite' flag matters. Given the absence of an output schema, the description could be more complete about what 'reported separately' means in practice, though the tool is relatively simple with only two parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for both parameters ('action' and 'overwrite'), with clear descriptions in the schema. The tool description adds no additional parameter-level detail beyond what the schema already provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool records, compares, or lists immutable per-version TradingView API compatibility baselines, using specific verbs and resource. It distinguishes itself from siblings like tv_compatibility_check and tv_capability_matrix by emphasizing the snapshot/immutability aspect and separate reporting of critical failures vs informational drift.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies its usage for recording, comparing, or listing baselines, but provides no explicit guidance on when to choose this over related tools like tv_compatibility_check or tv_capability_matrix. There are no clear exclusions or alternatives mentioned, so the agent must infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tv_discoverA
Report which known TradingView API paths are available and their methods
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses that the tool is a reporting/inspection operation, implying a read-only nature, but it does not explicitly confirm safety, potential side effects, or response structure. The description is not contradictory but adds limited behavioral context beyond the functional statement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is 11 words in a single sentence, immediately stating the tool's purpose. Each word contributes to the meaning, with no filler or redundant phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity—no parameters and no annotations—the description sufficiently communicates the core function. It could be enhanced by explicitly stating the return format, but for a discovery report, the purpose is clear enough to be considered largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema is empty with zero parameters, so the description has no need to explain parameter semantics. According to the rubric, zero-parameter tools receive a baseline of 4; the description does not need to compensate for missing parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Report' and identifies the resource as 'known TradingView API paths', including the detail that it covers their availability and methods. This clearly distinguishes it from siblings like tv_health_check or tv_compatibility_check, which focus on health and compatibility.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool over alternatives such as tv_health_check or tv_capability_matrix, nor does it mention any exclusions or prerequisites. It simply states the action without contextual recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tv_health_checkB
Check CDP, TradingView market-data connection, compatibility, and current chart state
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears the full burden of behavioral disclosure. It says 'Check' but doesn't explain whether this is read-only, what network operations occur, what the output looks like, or whether any side effects (e.g., opening connections) are involved. The acronym 'CDP' is ambiguous and could lead to misinterpretation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence listing the key check areas. It's concise and transparent, though the term 'CDP' could be expanded for clarity. Every word contributes to the overall intent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a health check tool, the description lacks critical context: it doesn't explain what constitutes a healthy state, what output or status indicators to expect, how to interpret results, or how it relates to the many sibling diagnostic tools. No output schema exists, so the description must carry more, but it doesn't.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters and the schema coverage is 100% (empty schema). According to the baseline, no parameter explanation is needed. The description's mention of the checked areas adds some context but is not required for parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Check') and lists the resources: CDP, TradingView market-data connection, compatibility, and current chart state. This gives a clear general purpose, but it doesn't distinguish itself from specialized sibling tools like tv_compatibility_check or chart_get_state, and 'CDP' is an unexplained acronym.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like tv_compatibility_check, chart_get_state, or tv_watchdog_sample. It does not specify prerequisites, exclusions, or which scenarios favor this comprehensive check over individual checks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tv_launchA
Launch TradingView Desktop with Chrome DevTools Protocol (remote debugging) enabled. Auto-detects install location on Mac, Windows, and Linux.
| Name | Required | Description | Default |
|---|---|---|---|
| port | No | CDP port 1-65535 (default 9222) | |
| kill_existing | No | Explicitly kill existing TradingView instances first (default false). This can discard unsaved TradingView state. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions auto-detection of install location, but omits significant behavioral traits such as side effects (killing existing instances may discard unsaved state), what happens if TradingView is already running, or what the tool returns. The kill_existing warning is only in the schema, not the tool description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exactly two sentences, front-loaded with the primary action and resource, and includes only necessary detail. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a launcher tool, the core purpose is clear, but the description lacks context about behavior when an instance already exists, return values, and prerequisites like port availability. With no annotations or output schema, a bit more guidance would make it more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers both parameters with descriptions (100% coverage), so the baseline is 3. The tool description adds nothing about parameters, but that's acceptable because the schema already documents them adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool launches TradingView Desktop with Chrome DevTools Protocol enabled, using a specific verb and resource. It naturally distinguishes itself from siblings like tv_health_check or tv_update by describing the launch process, and adds cross-platform auto-detection detail.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is the entry point for launching TradingView with CDP, but it does not explicitly say when to use it relative to other tools, such as 'run before tv_health_check' or 'only if not already running.' No alternatives or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tv_repair_chartA
Repair a chart pane stuck in a reconnect loop, without rebuilding the layout. Removes the studies whose id never registered with the server (they are what kill the session on every reconnect) and reconnects the pane. Names every study it removes so you can add them back with indicator_add_from_search. Run tv_chart_health first, or pass dry_run to see the plan.
| Name | Required | Description | Default |
|---|---|---|---|
| pane | No | Pane index to repair (from tv_chart_health). Omit to repair every affected pane. | |
| dry_run | No | Report what would be removed without changing anything. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral disclosure. It clearly states actions: removes studies with unregistered ids, reconnects the pane, preserves layout, and names removed studies. The dry_run option signals destructiveness and provides a safe preview, making behavior fully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no redundancy. The primary purpose is front-loaded, followed by key details (studies removed, recovery via indicator_add_from_search, prerequisite health check, and dry_run option). Every phrase earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 2 optional parameters and no output schema, this description covers purpose, usage, destructive effects, safety preview, and recovery. It references related tools and provides actionable details. Nothing essential for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Even though schema coverage is 100%, the description adds meaningful context beyond the schema: pane is the index from tv_chart_health, and dry_run is for previewing without changes. This clarifies the source of the pane value and the exact effect of dry_run, adding value over raw schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb, resource, and problem: 'Repair a chart pane stuck in a reconnect loop, without rebuilding the layout.' It clearly distinguishes from siblings like tv_chart_health by describing the fix action and the condition it addresses. The purpose is unambiguous and specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit usage instructions are given: 'Run tv_chart_health first, or pass dry_run to see the plan.' It also explains when to use the tool (stuck in reconnect loop) and how to safely preview effects with dry_run. It even names a recovery path (add back with indicator_add_from_search), providing clear when and how guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tv_support_bundleA
Create a privacy-safe compressed diagnostics bundle with identifiers, source code, URLs, titles, and secret-like values removed.
| Name | Required | Description | Default |
|---|---|---|---|
| telemetry_lines | No | Recent bounded telemetry records to include (default 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does disclose an important behavioral trait: removal of 'identifiers, source code, URLs, titles, and secret-like values'. However, it does not explain what the bundle actually contains (beyond what is removed), whether it is returned as a file or path, or any side effects. The claim of 'compressed' adds some detail but lacks specifics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that leads with the action and resource, and immediately conveys the key privacy attribute. There is no wasted text or repetition. It is appropriately sized for a tool with one optional parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one optional parameter with good schema documentation and no output schema, the description is adequate but leaves gaps. It explains the purpose and a key behavioral aspect (privacy-safe), but does not describe what the resulting bundle looks like, how it is delivered, or any additional context needed to use the tool effectively. The lack of output schema means the description should have explained the return format, but it remains silent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with the single parameter 'telemetry_lines' documented as 'Recent bounded telemetry records to include (default 100)'. The description does not mention this parameter at all, but the schema already provides full semantics. Since coverage is high, a baseline of 3 is appropriate; the description adds no additional parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Create a privacy-safe compressed diagnostics bundle'. It uses the specific verb 'Create' and identifies the resource as a diagnostics bundle, with the added scope of privacy-safe removal of sensitive data. This distinguishes it from sibling tools like tv_health_check or tv_watchdog_sample, which focus on health checks or watchdog sampling rather than bundle creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for support/diagnostics via the phrase 'diagnostics bundle', but it does not explicitly state when to use this tool versus alternatives. There is no exclusion guidance or mention of alternative tools. The context of 'privacy-safe' hints at scenarios where sensitive data must be redacted, but this is not spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tv_ui_stateA
Get current UI state: which panels are open, what buttons are visible/enabled/disabled
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It implies a read-only query but does not explicitly state that it has no side effects, nor does it describe return format or any caveats. The examples give some idea but fall short of full behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one efficient sentence, front-loaded with the main verb and object. It wastes no words and is easily scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given it is a simple no-parameter getter without an output schema, the description provides sufficient conceptual detail about what is returned (panels, buttons, visibility/enabled state). While it might not enumerate every UI element, it is adequate for a tool of this simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, so the baseline is 4. The description does not need to explain parameters, and the schema is empty, leaving no ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states what the tool does: 'Get current UI state' and specifies the scope by listing examples (panels, buttons, enabled/disabled states). This is a specific verb+resource and distinguishes it from chart_get_state or tv_health_check, which cover other aspects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. It does not mention exclusions or indicate whether to use it over ui_find_element or other UI inspection tools. The agent is left to infer usage from the purpose, which is not explicit enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tv_updateA
Safely fast-forward a clean git checkout from its configured upstream. Refuses package installs, untracked branches, dirty trees, and diverged history.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses that it refuses certain operations, implying the tool performs safety checks before proceeding. The emphasis on 'safely' and 'clean' communicates prerequisite condition awareness, though it does not describe return values or side effects beyond the update.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with a clear main clause and a list of refusal conditions. Every word adds value, making it concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 0-parameter tool with no output schema, the description covers the primary purpose, usage conditions, and safety behavior. It does not detail post-update state or how to interpret results, but this is a minimal gap given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the description cannot add parameter-specific meaning. The empty schema is sufficient, and the description focuses on behavior rather than inputs, which is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb ('fast-forward') and resource ('clean git checkout'), and specifies the source ('configured upstream'). It also differentiates by focusing on safe updates, which is distinct from other sibling tools that handle UI, data, or compatibility checks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context: use when you want to safely update a git checkout, and it will refuse if certain unsafe conditions exist (package installs, untracked branches, dirty trees, diverged history). However, it does not explicitly name alternative tools or provide a clear 'when not to use' beyond the refusal conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tv_watchdog_historyC
Return bounded privacy-safe watchdog state-transition history
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Most recent transitions to return (default 100, max 500) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility. It mentions 'bounded privacy-safe' but gives no details about what the history contains, whether the watchdog must be running, or if the returned data is cleared or limited. This is insufficient for a history-retrieval tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the core action. It is not verbose, but its brevity may sacrifice necessary detail, making it slightly under-specified rather than optimally concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema and annotations, the description should explain the return format or semantics of state-transition history. It does not, leaving the agent uncertain about what data will be received and how to interpret it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of the parameter, including default and max values. The description adds the word 'bounded,' which aligns with the limit parameter but does not provide any additional semantic meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns watchdog state-transition history, using a specific verb and resource. It distinguishes itself from related watchdog tools like status, sample, start, stop, though it does not explicitly name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus other watchdog tools or any exclusion criteria. The sibling list includes similar tools, but no differentiation is made, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tv_watchdog_sampleA
Run one read-only health watchdog sample. Persists only state transitions and never chart symbols, URLs, or account data.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the transparency burden. It explicitly states 'read-only' (no mutations) and discloses persistence behavior: 'Persists only state transitions and never chart symbols, URLs, or account data.' This is a meaningful behavioral guarantee beyond the minimum. It could be enhanced by explaining what a 'health watchdog sample' entails or what triggers a state transition, but it still offers valuable transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence: 'Run one read-only health watchdog sample. Persists only state transitions and never chart symbols, URLs, or account data.' (Technically two sentences, but extremely concise). Every clause adds relevant information without repetition or filler. It is front-loaded with the core action and then adds critical behavioral context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no output schema, the description provides sufficient context to understand the core function and key behavioral constraints. It does not explain what the sample returns or how to interpret the result, but given the simplicity and the absence of parameters, this is not a critical gap. The description could be slightly more explicit about the output, but it remains functionally complete for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema is trivially 100% covered. The description does not need to explain parameters. The baseline of 4 for no-parameter tools applies here, as there is nothing to add beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies a specific verb ('Run'), a resource ('health watchdog sample'), and a scope ('one', 'read-only'). It distinguishes itself from sibling tools like tv_watchdog_start and tv_watchdog_stop by emphasizing 'sample' as a one-off action. This is a precise, non-tautological statement of purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context: using 'sample' suggests a one-off health check rather than continuous monitoring, which differentiates it from tv_watchdog_start. However, it does not explicitly mention alternatives or provide 'when not to use' guidance, so it falls short of a 5. The context is clear enough for an experienced agent to infer appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tv_watchdog_startA
Start the read-only in-process health watchdog. Samples are coalesced and only state transitions are persisted.
| Name | Required | Description | Default |
|---|---|---|---|
| interval_ms | No | Sampling interval in milliseconds (default 15000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It appropriately discloses that the tool is read-only, which is crucial safety information, and adds context about sample coalescing and state-only persistence. This goes beyond a bare 'start' command and helps the agent understand expected behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and efficient—two sentences with no filler. It front-loads the primary purpose and then adds essential behavioral detail. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one optional parameter), the absence of an output schema, and the presence of related sibling tools, the description is complete. It tells the agent what the tool does, that it's safe (read-only), and how it behaves (coalescing, state transitions). No critical information is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description covers the single parameter (interval_ms) at 100%, so the baseline is 3. The description does not add any additional parameter-specific details, but the schema already provides the necessary semantics (range, default, and purpose).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Start') and the specific resource ('the read-only in-process health watchdog'), which distinguishes it from related sibling tools like tv_watchdog_stop, tv_watchdog_status, tv_watchdog_sample, and tv_watchdog_history. The purpose is unambiguous and immediately understood.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (to start the watchdog) but does not explicitly contrast it with alternatives like tv_health_check or provide scenarios for when to use vs. not use. It lacks clear when-to-use or when-not-to-use guidance, so it falls at the 'implied usage' level.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tv_watchdog_statusB
Return watchdog runtime status and its latest privacy-safe sample
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full burden of behavioral disclosure, but it only adds the qualifier 'privacy-safe' without explaining what that means, what the status contains, or whether any side effects occur. This is insufficient for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that efficiently conveys the core function. Every word adds value, especially 'privacy-safe' which hints at an important non-obvious property.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (no params, no output schema), the description is minimally viable but leaves key details unresolved: what 'status' includes, what a 'sample' represents, and how this relates to other watchdog tools. This is particularly relevant due to the absence of annotations and output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema completely covers the input interface. Per the baseline for 0-parameter tools, the description need not add parameter details, and it does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies the action 'Return' and the resources 'watchdog runtime status' and 'latest privacy-safe sample', clearly identifying it as a status/sample retrieval tool. It is semantically distinct from sibling tools like tv_watchdog_start/stop, though it doesn't explicitly contrast with tv_watchdog_sample.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like tv_watchdog_sample, tv_health_check, or tv_watchdog_history. The description is purely declarative and lacks use-case context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tv_watchdog_stopA
Stop the in-process health watchdog
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavior. It states that it stops the watchdog, but does not mention idempotency, what happens if the watchdog is not running, or any side effects. The addition of 'in-process' clarifies scope but not behavioral consequences.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that directly conveys the tool's purpose with no unnecessary words or repetition. It earns its place by being maximally concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (no parameters, no output schema), but the description lacks information about return behavior or edge cases like calling stop when the watchdog is already stopped. While not necessary for trivial operations, the absence of any behavioral caveats leaves a small gap in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema is fully coverage. Baseline for 0 params is 4, and the description does not need to elaborate on parameters. It adds no irrelevant parameter information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Stop') and clearly identifies the resource ('the in-process health watchdog'), making it unambiguous and distinct from sibling tools like tv_watchdog_start and tv_watchdog_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The wording implies usage as the counterpart to tv_watchdog_start, but it does not explicitly state when to use or not use this tool, nor does it mention alternatives. The context provides some implicit guidance, but no explicit exclusion or preference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ui_clickB
Click a UI element by aria-label, data-name, text content, or class substring
| Name | Required | Description | Default |
|---|---|---|---|
| by | Yes | Selector strategy | |
| value | Yes | Value to match against the chosen selector strategy |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden for behavioral disclosure. It does not mention what happens if multiple elements match, if no element is found, whether it waits for interactability, or what the return value is. This is a significant gap for a UI automation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one sentence, front-loaded with the verb, and every word adds value. It is appropriately brief with no filler or redundant phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with no output schema, the description is minimally adequate, but it lacks important context such as error handling, matching behavior (first vs. all matches), and how it relates to sibling tools like ui_mouse_click. Clear gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the schema already describes both parameters. The description essentially restates the enum values without adding extra meaning about matching behavior (e.g., exact vs. substring), so it does not materially exceed schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Click a UI element' and lists the selector strategies, clearly distinguishing this from sibling interaction tools like ui_hover and ui_scroll. The 'by' clause makes the target and method precise.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as ui_mouse_click or other UI interaction tools. It simply states the action, leaving the agent to infer appropriate usage context with no exclusions or recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ui_find_elementA
Find UI elements by text, aria-label, or CSS selector and return their positions
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Text content, aria-label value, or CSS selector to search for | |
| strategy | No | Search strategy (default: text) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It states the action and that positions are returned, but it does not disclose whether the operation is read-only, what happens if no element is found, or whether it returns the first match or all matches. The provided behavior is basic but not misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It efficiently conveys the tool's purpose and outcome.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (2 params, no nested objects) and the absence of an output schema, the description adequately indicates the return value ('positions'). However, it could be more complete by specifying whether multiple matches are returned or how positions are formatted, but this is a minor gap for such a straightforward tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% since both parameters (query and strategy) have descriptions in the schema. The description adds little beyond the schema—it restates that the query can be text, aria-label, or CSS, which the schema already details. No additional semantic value is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Find' with a clear resource 'UI elements' and specifies search methods (text, aria-label, CSS selector) and the outcome (return positions). This clearly distinguishes it from sibling tools like ui_click or ui_hover, which perform actions rather than locating elements.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used to locate UI elements before interaction, but it does not explicitly state when to use this tool versus alternatives or mention any exclusions. The context of sibling tools suggests a pre-interaction step, but the description itself provides no explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ui_fullscreenA
Toggle TradingView fullscreen mode
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for behavioral disclosure. The term 'toggle' implies the tool switches between fullscreen and windowed states, but the description does not mention potential side effects, preconditions, or failure modes. Since the behavior is self-contained and reversible, a moderate score is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence containing only the essential action. It is front-loaded and free of filler, scoring high on conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, no output schema, no annotations), the one-sentence description covers the core action adequately. However, it leaves some ambiguity about the exact state change and whether any feedback is provided, so it is not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema is empty with 100% coverage (vacuous). The description does not need to elaborate on parameters, and it introduces no confusing parameter-related information, earning the baseline score of 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Toggle TradingView fullscreen mode' uses a specific verb ('toggle') and a resource ('TradingView fullscreen mode'), clearly expressing the tool's function. No sibling tool references fullscreen, so it is easily distinguishable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or exclusions. However, because it is a unique toggle with no siblings performing this action, the usage context is implicitly understood, warranting a mid-range score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ui_hoverB
Hover over a UI element by aria-label, data-name, or text content
| Name | Required | Description | Default |
|---|---|---|---|
| by | Yes | Selector strategy | |
| value | Yes | Value to match |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only states the action 'hover' without disclosing behavioral traits such as whether the element is scrolled into view, how multiple matches are handled, or error behavior when the element is not found. With no annotations provided, the description carries the full burden and falls short of meaningful transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that immediately conveys the core action and target. There is no redundant information or filler, making it optimally concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with two parameters and no output schema, so a brief description is somewhat sufficient. However, it lacks details about failure scenarios and does not mention the 'class-contains' selector option. It also provides no context on how hover behaves in the broader UI automation workflow, making it only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides full coverage (100%) for the two parameters with descriptions for 'by' and 'value'. The description partially repeats the enum values (aria-label, data-name, text) without adding new meaning, and it omits 'class-contains'. Thus, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: hovering over a UI element using specific selector strategies. It distinguishes itself from sibling tools like ui_click and ui_find_element by naming the action. However, it omits the 'class-contains' selector strategy that is present in the schema, making it slightly incomplete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention conditions, prerequisites, or exclusions, and does not reference sibling tools like ui_click or ui_find_element. This leaves the agent without contextual direction for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ui_keyboardB
Press keyboard keys or shortcuts (e.g., Enter, Escape, Alt+S, Ctrl+Z)
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Key to press (e.g., "Enter", "Escape", "Tab", "a", "ArrowUp") | |
| modifiers | No | Modifier keys to hold (e.g., ["ctrl", "shift"]) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states what the tool does, not how it behaves (e.g., whether it requires focus, simulates key down/up, or may trigger platform shortcuts). There is no mention of side effects, prerequisites, or potential failures, leaving significant behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the primary action ('Press keyboard keys or shortcuts') and includes useful examples. Every word earns its place, with no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (2 params, no output schema), and the description provides a basic understanding of its purpose and examples. However, given the absence of annotations and the presence of sibling tools with overlapping functionality, the lack of usage guidance and behavioral details makes the description only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the parameters are already documented. The description adds examples of combined shortcuts (e.g., 'Alt+S', 'Ctrl+Z') that illustrate how the 'modifiers' array interacts with 'key', which is helpful. However, this is marginal value beyond the schema descriptions, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Press keyboard keys or shortcuts'. It uses a specific verb (Press) and resource (keyboard keys or shortcuts), and provides concrete examples like 'Enter, Escape, Alt+S, Ctrl+Z' that distinguish it from sibling tools such as ui_click (mouse) or ui_type_text (text input).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is given on when to use this tool versus alternatives. While the tool name and description imply it is for keyboard input, there is no mention of exclusions or comparisons to siblings like ui_type_text or ui_hover. Users must infer that this tool is for pressing keys, not for typing text or mouse actions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ui_mouse_clickA
Click at specific x,y coordinates on the TradingView window
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | X coordinate (pixels from left) | |
| y | Yes | Y coordinate (pixels from top) | |
| button | No | Mouse button (default left) | |
| double_click | No | Double click (default false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey behavior. 'Click at specific x,y coordinates' accurately states the core action, but it does not disclose potential side effects like window activation, whether a synthetic event is used, or how out-of-bounds coordinates are handled. This is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no filler. It is front-loaded and immediately communicates the purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple click action with fully documented parameters, the description is largely sufficient. It is missing usage context relative to sibling tools and any prerequisites, but the core operation is clear and uncomplicated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides full descriptions for all four parameters, including enums and defaults. The description adds no additional parameter semantics, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action (click), the precise target (TradingView window), and the method (specific x,y coordinates). This clearly differentiates it from sibling tools like ui_click, which likely operates on elements rather than raw coordinates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives such as ui_click or ui_hover. There is no mention of prerequisites (e.g., window must be visible/focused) or coordinate system details beyond what the schema supplies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ui_open_panelB
Open, close, or toggle TradingView panels (pine-editor, strategy-tester, watchlist, alerts, trading)
| Name | Required | Description | Default |
|---|---|---|---|
| panel | Yes | Panel name | |
| action | Yes | Action to perform |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only restates the possible actions and panel names from the schema, without disclosing side effects, dependencies (e.g., TradingView must be launched), or state-related nuances of toggling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one concise sentence that front-loads the main action and resource, with no wasted words. It efficiently communicates the tool's scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, and the description covers its core behavior. However, it lacks usage context and behavioral caveats that would help an agent decide when to use it, especially given the many sibling UI tools. Without annotations, this is a noticeable gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description lists the panel names and actions, reinforcing the enums but not adding substantial new meaning beyond the schema. The parameter descriptions in the schema are minimal, but the enums themselves provide the core semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with specific verbs (open, close, toggle) and a specific resource (TradingView panels) with an explicit enumeration of panel names. This differentiates it from sibling tools like ui_click or tv_ui_state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs alternatives. It does not mention prerequisites, exclusion cases, or suggest alternative tools for similar tasks, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ui_scrollB
Scroll the chart or page up/down/left/right
| Name | Required | Description | Default |
|---|---|---|---|
| amount | No | Scroll amount in pixels (default 300) | |
| direction | Yes | Scroll direction |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for behavioral disclosure. It only states the basic scroll action but does not say whether it scrolls the chart viewport or the page, what side effects occur, or whether the amount parameter is optional. This is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no redundant words. It efficiently conveys the core behavior without any fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with full parameter schema and no output schema, the description is minimally adequate but has a notable ambiguity ('chart or page') and lacks behavioral context that the absence of annotations would require. It is not fully complete for an agent to understand the exact effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the parameters are already documented with descriptions (direction enum, amount default). The description adds no additional meaning beyond what the schema provides, matching the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Scroll') and the resource ('chart or page'), with explicit direction options. It distinguishes from chart_scroll_to_date (which scrolls to a specific date) but could be more specific about whether it targets the chart viewport or the page.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like chart_scroll_to_date or chart_set_visible_range. There is no context about intended scenarios or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ui_type_textA
Type text into the currently focused input/textarea element. Refuses when nothing is focused or the focused element cannot accept text, and reports which element received the characters.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to type into the focused element | |
| expect_focus | No | Pin the target: the focused element tag or name must contain this, otherwise nothing is typed. Use when it matters which field receives the text. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It discloses refusal conditions and reporting of the target element, which is helpful. However, it does not mention side effects like whether existing text is overwritten, whether input events fire, or whether it works with non-input elements like contenteditable. The disclosure is adequate but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no waste. The primary action is front-loaded, and the behavioral caveats follow logically. Every word contributes to understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core behavior, failure modes, and even reports the target element, which satisfies the lack of an output schema. It does not specify the return format or whether it triggers events, but for a simple typing action, the information is complete enough. Missing edge cases like handling of special characters are not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already well documented in the schema. The description adds no additional meaning beyond what the schema provides (e.g., it doesn't elaborate on the 'expect_focus' behavior beyond the schema's own description). Baseline 3 is appropriate given full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies a clear action (type text) and a precise target (currently focused input/textarea), and distinguishes itself from sibling UI actions like click, hover, and scroll by its unique purpose. The phrase 'Refuses when nothing is focused' adds behavioral specificity without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states a prerequisite (focused element) and implies a use case, but does not explicitly guide when to use this tool versus alternatives like ui_click to focus or ui_keyboard for keyboard input. It lacks 'when not to use' guidance or references to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watchlist_addA
Add a symbol to the TradingView watchlist
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Exchange-prefixed symbol, e.g. NASDAQ:AAPL or NYMEX:CL1!. A bare ticker is stored verbatim and may not resolve; call symbol_search or watchlist_get for the exact stored spelling. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility for behavioral disclosure. While 'Add' implies a mutating operation, it does not disclose side effects, success/failure behavior, or consequences of invalid input. The schema warns about symbol resolution, but that is in the parameter schema, not the tool description. For a mutating tool with zero annotation coverage, this is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no extraneous words. It is front-loaded and immediately conveys the purpose. Every word earns its place, making it an exemplar of conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, fully documented in schema, no output schema), the description is nearly complete. An agent knows the action and can read the schema for parameter details. Missing context includes success confirmation and any side effects, but these are minor for such a straightforward operation. A 4 reflects that it is mostly sufficient without being exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool description itself does not mention the parameter, but the schema description covers it fully (100% coverage), providing exchange-prefix requirements, examples, and warnings. Per the rubric, high schema coverage gives a baseline of 3, and the description adds no extra semantic value. Thus a 3 is justified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Add a symbol to the TradingView watchlist' states a specific verb and resource, clearly distinguishing it from siblings like watchlist_add_bulk (bulk add), watchlist_remove (removal), and watchlist_get (retrieval). The action is unambiguous and the tool's role is immediately clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description itself provides no explicit guidance on when to use this tool vs alternatives. However, the sibling tool name 'watchlist_add_bulk' implies this is for a single symbol, and the parameter schema mentions calling symbol_search/watchlist_get for exact spelling. This is implied usage rather than explicit exclusions, so a 3 is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watchlist_add_bulkA
Add multiple symbols sequentially and report per-symbol results
| Name | Required | Description | Default |
|---|---|---|---|
| symbols | Yes | Exchange-prefixed symbols, e.g. ["NASDAQ:AAPL","NYSE:GE"]. Duplicates are collapsed. success is true only when a follow-up read confirms every symbol is present. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of disclosing behavior. It reveals that adds are performed sequentially and results are reported per symbol, which implies partial success is possible. However, it omits details about duplicate handling, read-back confirmation, or any side effects, which are only partially covered in the schema description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with the action front-loaded. It wastes no words and communicates the core behavior efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema is provided, and the description's mention of 'report per-symbol results' is vague about the exact response structure. The tool also lacks any guidance on error handling, limits, or potential side effects, which leaves an agent uncertain about how to interpret results or handle failures.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema property description thoroughly explains the 'symbols' parameter including format, examples, duplicate collapsing, and success condition. The tool description adds no additional parameter meaning, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action (add), the resource (multiple symbols), and the execution mode (sequentially) with a clear outcome (per-symbol results). It distinguishes itself from watchlist_add (single) and watchlist_remove_bulk (removal) without needing to open schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit statement on when to use this tool versus watchlist_add or when not to use it. The word 'multiple' implies it is for bulk additions, but the description does not name alternatives or conditions, leaving usage to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watchlist_exportB
Export the current watchlist to a JSON file on disk
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | No | Destination path (default: ~/.tv-mcp/watchlists/watchlist-<timestamp>.json) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It states the export action and target, but does not disclose whether existing files are overwritten, whether directories are created, what the return value is, or any prerequisites. This lacks critical side-effect detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, front-loaded with the verb and resource. Every word contributes to the core meaning, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one optional param, no enums), but there is no output schema and no annotations. The description covers the basic action and target, but it does not explain what the tool returns (e.g., success message or file path) or any prerequisites. This is minimally adequate but leaves notable gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage for the single parameter (file_path), so the baseline is 3. The description does not add any additional parameter-level meaning; it omits any mention of the parameter entirely. The schema already explains the parameter and default, so the description adds no extra value here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Export'), the object ('the current watchlist'), and the output ('to a JSON file on disk'). This distinguishes it from sibling tools like watchlist_get or watchlist_import, which have different verbs and resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention that watchlist_get might be used for in-memory retrieval, or that watchlist_import is the inverse. No exclusions or contextual cues are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watchlist_getA
Get every symbol in the active TradingView watchlist. Membership comes from the symbols_list API so it is complete even when the panel is scrolled or closed. Quote cells are best effort and only present when the watchlist panel is open; check quotes_available.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavior disclosure. It states two key behavioral traits: membership is always complete (via symbols_list API) even when the panel is scrolled or closed, and quote cells are best effort and only present when the panel is open, directing the agent to check quotes_available. This is substantial transparency, though it doesn't cover error conditions or the exact return structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler. The primary purpose and the key guarantee (complete list) are front-loaded, and the second sentence addresses a critical limitation (quote availability) compactly. Every clause earns its place, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no output schema, the description explains what the tool returns (every symbol in the active watchlist) and discloses the caveat about quote cells and the quotes_available field. It implies the response includes symbols and possibly quotes, but it doesn't explicitly state the return format (e.g., a list of strings), so it's slightly under-specified. Still, it covers the essential context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the input schema is trivially complete (100% coverage). The description correctly avoids adding unnecessary parameter detail. Baseline 4 is appropriate as there is nothing to explain.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Get every symbol in the active TradingView watchlist,' a specific verb and resource that clearly distinguishes it from watchlist mutation tools (watchlist_add, watchlist_remove) and other retrieval tools. It also notes the membership source (symbols_list API) and active watchlist context, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives implicit guidance by stating the complete membership regardless of panel state (a unique advantage) and warns that quote cells are best effort and only present when the panel is open, suggesting that quote retrieval may require other tools like quote_get. However, it does not explicitly name alternatives or say 'use this when you need the full symbol list,' so it stops short of explicit when-to-use vs. siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watchlist_importB
Import symbols into the TradingView watchlist from a JSON file
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | merge = add missing symbols; replace = sync list to file | merge |
| dry_run | No | Preview changes without modifying the watchlist | |
| file_path | Yes | Path to the JSON file previously exported by watchlist_export |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only says 'Import' without mentioning that this can modify/overwrite the existing watchlist (replace mode) or that dry_run exists. The schema covers these details, but the description itself fails to warn about potential destructive side effects, which is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that concisely captures the tool's core purpose. Every word earns its place with no filler or redundant phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having a 3-parameter schema with no annotations and no output schema, the description is overly terse. It does not explain the import behavior, mention that the file should come from watchlist_export (though the schema does), or clarify any return values or effects. A more complete description would at least note the merge/replace distinction and dry-run capability.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no parameter-level meaning beyond the schema. It does not mention mode, dry_run, or file_path, but the schema already thoroughly documents each parameter and their defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (import), the target (symbols into the TradingView watchlist), and the source (from a JSON file). It distinguishes itself from sibling tools like watchlist_add or watchlist_add_bulk by emphasizing the JSON file source.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. Unlike the calibration example that explicitly names alternative tools, here there is no mention of scenarios or exclusions, leaving the agent to infer usage from the tool name and file_path schema alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watchlist_removeB
Remove a symbol from the TradingView watchlist
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Symbol to remove (e.g., AAPL) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It states the action ('Remove') but does not mention what happens if the symbol is not present, whether the operation is permanent, or any side effects. For a destructive operation, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no unnecessary words. It is concise and immediately conveys the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter tool with no output schema, the description is minimally adequate. However, it lacks a note about using watchlist_remove_bulk for multiple removals, which would improve completeness given the sibling context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the parameter 'symbol' described as 'Symbol to remove (e.g., AAPL)'. The tool description adds little beyond the schema, but the baseline of 3 is appropriate since the schema already fully documents the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Remove a symbol from the TradingView watchlist' uses a specific verb ('Remove') and a clear resource ('symbol from the TradingView watchlist'). It distinguishes itself from sibling tools like watchlist_remove_bulk by mentioning a single symbol.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like watchlist_remove_bulk for removing multiple symbols. There is no mention of exclusions, prerequisites, or recommended context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watchlist_remove_bulkA
Remove multiple symbols sequentially and report per-symbol results
| Name | Required | Description | Default |
|---|---|---|---|
| symbols | Yes | Symbols to remove |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses a non-obvious behavioral trait: removal is sequential. It also states that per-symbol results are reported, which hints at possibly partial success. This goes beyond the schema and name, though it could elaborate on failure handling or what happens when a symbol is missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded with the action ('Remove multiple symbols'), contains zero filler, and conveys the key facts: multiple, sequential, and per-symbol reporting. It is concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (one array parameter, no output schema), the description adequately covers the essential operation and its behavioral nuances (sequential, per-symbol results). It does not need to detail return format or edge cases, though a mention of the 100-item limit could slightly enhance completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: the only parameter 'symbols' has a description 'Symbols to remove'. The tool description adds context about sequential processing and per-symbol results, but does not add significant semantic detail beyond what the schema already provides for the parameter itself.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Remove' with a clear resource ('multiple symbols') and differentiates from sibling watchlist_remove by emphasizing bulk and sequential processing. It also adds 'report per-symbol results', which uniquely describes this tool's scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'multiple symbols' and the tool name 'watchlist_remove_bulk' clearly imply this is for batch removal, contrasting with the singular sibling watchlist_remove. However, it does not explicitly state 'use this instead of watchlist_remove when removing more than one symbol' or mention any exclusions, so it misses the explicit alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
16 tool updates
v2.3.0- Changed
alert_create2 fields changed- added
Input schema / properties / frequencyAdded value: +{ + "default": "on_first_fire", + "description": "on_first_fire fires once then deactivates. on_bar_close fires on every bar close where the condition holds, which is what you want for a level you keep watching. These are the only two values the API accepts (verified live).", + "enum": [ + "on_first_fire", + "on_bar_close" + ], + "type": "string" +} - added
Input schema / properties / resolutionAdded value: +{ + "default": "1", + "description": "Series the condition is evaluated on: minutes as a bare number (1, 5, 15, 60, 240) or D, W, M. Must match the timeframe you actually trade.", + "type": "string" +}
- Added
alert_create_bulk - Changed
batch_run2 fields changed- changed
Input schema / properties / action / descriptionPrevious value: -"Action to run for each symbol/timeframe"New value: +"Action to run for each symbol/timeframe. get_study_values reads every visible indicator per symbol and is the one to use for universe scans." - changed
Input schema / properties / action / enumPrevious value: -[ - "screenshot", - "get_ohlcv", - "get_strategy_results" -]New value: +[ + "screenshot", + "get_ohlcv", + "get_strategy_results", + "get_study_values" +]
- Changed
indicator_toggle_visibility2 fields changed- changed
Input schema / properties / visible / descriptionPrevious value: -"true to show, false to hide"New value: +"true to show, false to hide. OMIT to flip whatever the current state is." - changed
Input schema / requiredPrevious value: -[ - "entity_id", - "visible" -]New value: +[ + "entity_id" +]
- Changed
layout_switch1 field changed- added
Input schema / properties / discard_unsavedAdded value: +{ + "default": false, + "description": "Throw away unsaved changes on the current chart. Without this, a chart with unsaved work stops the switch instead of losing it.", + "type": "boolean" +}
- Changed
pine_list_scripts3 fields changed- added
Input schema / properties / limitAdded value: +{ + "default": 50, + "description": "Max scripts to return (default 50, max 200)", + "maximum": 200, + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / name_filterAdded value: +{ + "description": "Case-insensitive substring match on script name/title. Use this when you know roughly what you are looking for.", + "type": "string" +} - added
Input schema / properties / offsetAdded value: +{ + "default": 0, + "description": "Skip this many matches, for paging", + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" +}
- Changed
pine_new2 fields changed- added
Input schema / properties / confirm_overwriteAdded value: +{ + "default": false, + "description": "Required when the editor already holds real content. Read it with pine_get_source first.", + "type": "boolean" +} - changed
Input schema / properties / type / descriptionPrevious value: -"Type of script to create"New value: +"Template to write into the editor"
- Changed
pine_set_source1 field changed- added
Input schema / properties / confirm_overwriteAdded value: +{ + "default": false, + "description": "Required when the editor already holds real content. Read it with pine_get_source first.", + "type": "boolean" +}
- Added
quote_batch - Changed
replay_autoplay2 fields changed- added
Input schema / properties / enabledAdded value: +{ + "description": "true to start autoplay, false to stop it. Omit to flip the current state.", + "type": "boolean" +} - changed
Input schema / properties / speed / descriptionPrevious value: -"Autoplay delay in ms (lower = faster). Valid values: 100, 143, 200, 300, 1000, 2000, 3000, 5000, 10000. Leave empty to just toggle."New value: +"Autoplay delay in ms (lower = faster). Valid values: 100, 143, 200, 300, 1000, 2000, 3000, 5000, 10000. Note this is a DELAY, not a multiplier: 1 is rejected."
- Changed
tab_close1 field changed- added
Input schema / properties / expect_titleAdded value: +{ + "description": "The active tab title must contain this, otherwise nothing is closed. Use tab_list first to see the titles.", + "type": "string" +}
- Added
tv_chart_health - Added
tv_repair_chart - Changed
ui_type_text1 field changed- added
Input schema / properties / expect_focusAdded value: +{ + "description": "Pin the target: the focused element tag or name must contain this, otherwise nothing is typed. Use when it matters which field receives the text.", + "type": "string" +}
- Changed
watchlist_add1 field changed- changed
Input schema / properties / symbol / descriptionPrevious value: -"Symbol to add (e.g., AAPL, BTCUSD, ES1!, NYMEX:CL1!)"New value: +"Exchange-prefixed symbol, e.g. NASDAQ:AAPL or NYMEX:CL1!. A bare ticker is stored verbatim and may not resolve; call symbol_search or watchlist_get for the exact stored spelling."
- Changed
watchlist_add_bulk1 field changed- changed
Input schema / properties / symbols / descriptionPrevious value: -"Symbols to add"New value: +"Exchange-prefixed symbols, e.g. [\"NASDAQ:AAPL\",\"NYSE:GE\"]. Duplicates are collapsed. success is true only when a follow-up read confirms every symbol is present."
101 tool updates
v2.2.1- First observed
alert_create - First observed
alert_delete - First observed
alert_delete_by_id - First observed
alert_list - First observed
batch_run - First observed
capture_screenshot - First observed
chart_get_state - First observed
chart_get_visible_range - First observed
chart_manage_indicator - First observed
chart_scroll_to_date - First observed
chart_set_symbol - First observed
chart_set_timeframe - First observed
chart_set_type - First observed
chart_set_visible_range - First observed
chart_vision_read - First observed
data_get_equity - First observed
data_get_indicator - First observed
data_get_ohlcv - First observed
data_get_pine_boxes - First observed
data_get_pine_labels - First observed
data_get_pine_lines - First observed
data_get_pine_tables - First observed
data_get_strategy_results - First observed
data_get_study_values - First observed
data_get_trades - First observed
depth_get - First observed
draw_clear - First observed
draw_get_properties - First observed
draw_list - First observed
draw_remove_one - First observed
draw_shape - First observed
indicator_add_from_search - First observed
indicator_search - First observed
indicator_set_inputs - First observed
indicator_toggle_visibility - First observed
layout_list - First observed
layout_switch - First observed
pane_focus - First observed
pane_list - First observed
pane_set_layout - First observed
pane_set_symbol - First observed
pine_analyze - First observed
pine_check - First observed
pine_compile - First observed
pine_get_console - First observed
pine_get_errors - First observed
pine_get_source - First observed
pine_list_scripts - First observed
pine_new - First observed
pine_open - First observed
pine_save - First observed
pine_set_source - First observed
pine_smart_compile - First observed
quote_get - First observed
replay_autoplay - First observed
replay_start - First observed
replay_status - First observed
replay_step - First observed
replay_stop - First observed
replay_trade - First observed
state_delete - First observed
state_list - First observed
state_restore - First observed
state_snapshot - First observed
strategy_sweep - First observed
symbol_info - First observed
symbol_search - First observed
tab_close - First observed
tab_list - First observed
tab_new - First observed
tab_switch - First observed
tv_capability_matrix - First observed
tv_compatibility_check - First observed
tv_compatibility_snapshot - First observed
tv_discover - First observed
tv_health_check - First observed
tv_launch - First observed
tv_support_bundle - First observed
tv_ui_state - First observed
tv_update - First observed
tv_watchdog_history - First observed
tv_watchdog_sample - First observed
tv_watchdog_start - First observed
tv_watchdog_status - First observed
tv_watchdog_stop - First observed
ui_click - First observed
ui_find_element - First observed
ui_fullscreen - First observed
ui_hover - First observed
ui_keyboard - First observed
ui_mouse_click - First observed
ui_open_panel - First observed
ui_scroll - First observed
ui_type_text - First observed
watchlist_add - First observed
watchlist_add_bulk - First observed
watchlist_export - First observed
watchlist_get - First observed
watchlist_import - First observed
watchlist_remove - First observed
watchlist_remove_bulk
TDQS
The 105 tools are organized by domain prefixes (data_, draw_, alert_, ui_, tv_, etc.) and each tool targets a specific resource/action. There are a few potentially confusable pairs (e.g., quote_get vs quote_batch, chart_set_symbol vs pane_set_symbol), but descriptions clarify distinctions. No two tools appear to do exactly the same thing.
Naming follows a consistent pattern of domain prefix + verb + noun (e.g., data_get_ohlcv, draw_shape, alert_create, watchlist_add). Some tools lack a prefix (symbol_info, capture_screenshot) but still use verb_noun order. Mixed snake_case and no camelCase; overall consistent and predictable.
With 105 tools, the surface is extremely large. While the scope covers many TradingView features, this exceeds what is typically needed for a coherent tool set. The count is above the 50+ threshold for 'extreme mismatch' and will likely overwhelm agents and increase selection errors.
The tool surface is comprehensive: CRUD operations exist for drawings, alerts, watchlist, Pine scripts, states, and replay. It covers chart control, indicators, quotes, panes, tabs, and diagnostics. Minor gaps include no update for drawings (though draw_shape might re-create) and no layout creation/deletion, but core workflows are well-covered.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for OpenMM — exposes market data, account, trading, and strategy tools to AI agents
MCP server exposing the Backtest360 engine API as tools for AI agents.
MCP server for Gainium — manage trading bots, deals, and balances via AI assistants
Research-only MCP server: turn your AI into a quant research desk — backtests, no trades.
Related MCP Servers
- AlicenseAqualityCmaintenanceA type-safe MCP server that enables AI agents to control TradingView Desktop via Chrome DevTools Protocol, allowing chart state reading, symbol/timeframe changes, and OHLCV data fetching.115521MIT
- FlicenseNot gradedqualityDmaintenanceAn MCP server that connects to TradingView Desktop via Chrome DevTools Protocol, enabling chart control, Pine Script development, and a morning brief workflow with AI-driven analysis.552-
- AlicenseNot gradedqualityDmaintenanceControls the TradingView Desktop app via MCP, allowing AI agents to manage charts, indicators, Pine Script strategies, and optionally mirrors signals to MetaTrader 5 for automated trading.MIT
- FlicenseNot gradedqualityCmaintenanceAn MCP server that extends TradingView with AI-driven morning briefs, trading rule automation, and 81 tools for chart control, Pine Script development, replay practice, and multi-pane layouts.552-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/FerroxLabs/tvcontrol'
If you have feedback or need assistance with the MCP directory API, please join our Discord server