Skip to main content
Glama
FerroxLabs

TVControl

by FerroxLabs

TVControl

TradingView MCP System · by Ferrox Labs

Tell your AI what you want from your TradingView chart. Watch it happen on screen.

TVControl turns your TradingView Desktop into something you can talk to. You type a sentence ("summarise this chart", "sweep this strategy across SPY, QQQ and IWM on 5m and 15m", "step through last March bar by bar and call out the breakout") and the AI reads, clicks, types, compiles and screenshots inside the actual TradingView app on your machine. No copy-paste and no TVControl-operated cloud backend. TradingView Desktop and explicitly selected public-API helpers still communicate with TradingView as documented.

It works because every Chromium app, TradingView Desktop included, ships with a built-in debugging interface (the same one Chrome uses to debug itself). TVControl speaks that interface on your behalf, exposing 113 chart-control and diagnostic tools to any agent that speaks the Model Context Protocol. It is client-neutral: anything that can launch an MCP server over stdio works, and it is in daily use across several. Pair-program in Pine Script. Optimize parameter grids. Snapshot and restore whole chart setups. Drive 4-pane layouts. Step through replay. Scan a watchlist. All by speech-to-action.

113 MCP tools · 938 deterministic offline tests · 10 verify scripts · 9 prompt-library workflows · no TVControl cloud backend. Everything in this repo is real, tested, and used daily.

What is new in 2.5

The 2.5 line is about one thing: a tool must build its answer from an independent read, never from the request or from the response of the thing it just did. Every fix below is a place where that was not true.

  • A result you can act on when a call times out. chart_set_symbol and chart_set_timeframe had already applied the change by the time their readiness wait expired, then threw as though nothing had happened, so a caller that retried applied it twice. They now return chart_ready: false and say not to retry. indicator_add_from_search polls for the study instead of sleeping 1500ms and guessing. The contract is now stated in the tool descriptions: a thrown error means nothing changed.

  • pine_open no longer risks the wrong script. It fetched a script's source and pasted it into whatever buffer was open, leaving the editor bound to the previous script while reporting success. A following save wrote over the wrong file. It now reads the editor's own title back and refuses on a mismatch. New in this release: pine_get_script_source reads a saved script over the REST API without touching the editor at all, which is what you want for comparing a saved script against a local file.

  • Screenshots are refused rather than stale. A hidden tab returns the last frame Chromium painted for it: a real PNG of the right chart showing the wrong data, with the clock still ticking in the corner. capture_screenshot now requires a visible tab, and region: "chart" captures the active pane instead of whichever pane happened to be first in the DOM.

  • replay_start will not quietly move your date. A date outside a symbol's replay depth was relocated silently, so every read afterwards was correct for a date nobody asked for. It now refuses, stops replay, and tells you where the cursor would have landed.

  • tab_close explains the dialog that is blocking it. TradingView's unsaved-changes prompt is its own debug target, invisible to every selector the chart page can run, so the old failure read like a bug in tab handling. It is now found and named, and discard_unsaved: true answers it. "Save and close" is never clicked for you.

  • draw_shape refuses a shape name it does not recognise instead of silently drawing a flag and echoing back the name you asked for.

  • The CLI can reach every safety guard the MCP tools expose. Three of them were refusals whose own hint named a flag the CLI did not have.

  • The server starts even when it cannot read its own files. Under restrictive install directories (Windows Program Files with Controlled Folder Access), a startup scan of its own tool directory threw before the server existed, and every client saw a bare Connection closed. Both startup reads now fail soft onto a catalog generated at publish time, and say so on stderr.

  • A contract for embedding TVControl in a desktop app ships in the package: docs/EMBEDDING.md. Read it before bundling this inside a host application.

See the changelog and upgrade guide.


Related MCP server: TradingView MCP Jackson

What it actually does (with prompts that work)

Paste any of these into your MCP client once TVControl is wired up. Nothing here is specific to one agent.

Read your chart in one prompt.

Use chart_vision_read to summarise my chart: symbol, timeframe, last price, visible indicators with their current values, custom Pine levels and labels, and the last 100-bar move.

A single tool call returns symbol, timeframe, indicator values, custom Pine drawings, OHLCV summary, and a screenshot. Roughly 5 to 10 KB back instead of ~80 KB across five separate calls.

Pair-program in Pine Script.

Write me a Pine v6 indicator that plots a 20-period EMA in blue and a 50-period EMA in orange, then compile it on my chart. Fix any errors. Save it as "EMA Cross".

Inject, server-side compile, read errors, fix, save. The compiler errors come back to the agent directly, so iteration is seconds, not minutes.

Optimize a parameter grid.

Use strategy_sweep to test my current strategy across [SPY, QQQ, IWM] on 5 and 15 with length of 10, 14, 20 and multiplier of 1.5, 2, 2.5. Rank by net profit.

Cartesian product, 24h-TTL disk cache (re-runs are near-instant), optional parallelism: N worker tabs, resume-from-partial. Caps at 500 combinations.

Snapshot a setup. Restore it later.

Snapshot my current chart as "morning-prep". Switch to BTCUSDT 4h with VWAP and Bollinger Bands. Done? Restore "morning-prep".

Captures symbol, timeframe, all studies and their inputs, drawings, and the full metaInfo blob for published Pine, even ones that normally won't reload.

Practice with replay.

Start replay at 2025-03-10 09:30 ET. Step through the open. Call out any breakouts on the 1-min and simulate the entry. Show me the running P&L.

Scan a watchlist.

For every symbol in my watchlist, take a 1-day chart screenshot, read the RSI(14), and rank by overbought-to-oversold.

Alert on everything you watch, without setting them one at a time.

Set an alert 5% above the last price on every symbol in my watchlist, all pointing at https://my-app.example/tv-hook, on bar close, 1h. Show me the dry run first.

One call. alert_create_bulk reads your active watchlist, prices each alert off that symbol's own last trade, and verifies the whole batch with a single read of the alert list afterwards. Everything lands on your webhook, so the filtering, grouping and deduping happen in your code rather than in your inbox.

The full prompt library (every workflow above plus chart analysis, watchlist and alerts, screening, and agent prompting tips) lives in examples/prompts/. Nine files. Copy-pasteable.


How it stays grounded (the proof)

This isn't a demo. It ships with a test battery.

  • 938 offline tests: Pine analyzer, sanitization, replay, pane and indicator boundaries, watchlist, alerts, state snapshots, sweep planning, vision wrapper, telemetry, capability gating, privacy-safe bundles, chaos cleanup, soak bounds, golden workflows, native watchdog services, startup resilience, embedding contract, CLI/MCP guard parity, update safety, tool registration, and CLI routing. Live Pine-service checks are isolated in tests/pine_api.test.js.

  • Mutation-tested, not just green. A test that cannot fail is worse than no test, because it turns an unknown into false confidence. Fixes in this project are checked by reintroducing the bug and confirming the suite goes red. Where behaviour lives in page-side JavaScript, the tests execute that generated code against a stub DOM rather than describing it in a mock.

  • The suite has a floor. A run that reports fewer tests than expected fails, so tests cannot silently disappear from a green run.

  • 10 end-to-end verify scripts under examples/verify/ that drive the same MCP tools through the tv CLI against a live TradingView. Run examples/verify/run-all.sh and it auto-skips when TV isn't up.

  • GitHub Actions CI runs lint, offline tests, dependency audit, and package checks on Node 18 and 22 across Linux, macOS, and Windows.

  • CDP smoke (scripts/smoke.sh): live connection sanity check against your local TradingView.

npm test                                    # offline suite
./examples/verify/00-verify-install.sh      # offline install check
./examples/verify/run-all.sh                # full live battery

If your version of TradingView reshapes some internal API, the verify battery is how you'll know within seconds.


Quick starts

Install the current public release from npm:

npm install -g @ferroxlabs/tvcontrol
tv --help

The package installs both tv and tvcontrol. For MCP-server configuration, use the installed src/server.js or one of the repository paths below.

Path A. Let your agent install it

Paste this into any coding agent that can edit files and run commands, and let it do the rest.

Install the TVControl MCP server. Clone https://github.com/ferroxlabs/tvcontrol.git into ~/tvcontrol, run npm install, register it in my MCP client config as a server named tvcontrol running node ~/tvcontrol/src/server.js, then call tv_launch to start TradingView in debug mode and tv_health_check to confirm the connection.

It will clone, install, register the server, and verify. Restart your client when it finishes so the new MCP server loads.

Path B. Manual, any MCP client

# 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

On Windows Store/MSIX installations, tv_launch also detects the package with Get-AppxPackage. If Windows blocks CDP from the protected WindowsApps directory, it launches a versioned local copy under %LOCALAPPDATA%\tvcontrol\desktop-cache and reports msix_local_copy: true.

Then add this to your MCP client's config file, replacing the path with your own absolute path. Every MCP client uses the same shape; only the file location differs, and your client's documentation names it.

{
  "mcpServers": {
    "tvcontrol": {
      "command": "node",
      "args": ["/absolute/path/to/tvcontrol/src/server.js"]
    }
  }
}

Restart your client. A copy-pasteable example config lives at examples/mcp-config.example.json, including a variant with an absolute path to node for the case where your client launches servers without your shell's PATH.

Bundling TVControl inside a desktop application? Read docs/EMBEDDING.md first. It is the spawn contract, and it exists because the two ways an embed fails both happen before the server can emit a single message, so neither can report itself.

Verify with:

Use tv_health_check, then chart_vision_read to summarise my chart.

If you get back a paragraph describing your actual chart, you're up.

Path C. CLI only (no agent required)

Every MCP tool is also a tv command, JSON-out, jq-friendly. Skip the AI client entirely if you just want a programmable handle on your 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

Examples directory map

Each prompt file lists the tools that fire, what to expect, and the common gotchas, so you can read it like a runbook before you paste, or pull it into your own automation.


CLI surface

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 / source / 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

All commands return JSON. Core chart-control tools have CLI counterparts; long-running or disruptive reliability runners are deliberately CLI-first.

Reliability toolkit

The compatibility layer checks the TradingView APIs required by each tool before execution. A tool is blocked only when the live canary explicitly confirms a required API is absent; if the canary itself is unavailable, recovery tools are still allowed to run.

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

Chaos is dry-run unless --allow-live-faults is present. Restore/sweep soak scenarios and snapshot/replay golden checks require --allow-mutations. Watchdog install and uninstall are dry-run unless --apply is present. Receipts are bounded and omit symbols, URLs, account-linked identifiers, source code, and raw error messages.


Streaming

tv stream polls your local TradingView Desktop over CDP and emits JSONL. TVControl has no streaming cloud backend; TradingView Desktop continues to communicate with TradingView normally.

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

Programmatic consumption of TradingView data may conflict with their Terms of Use regardless of how it's accessed. You are solely responsible for compliance.


Architecture

AI Agent  <->  MCP Server (stdio)  <->  CDP (localhost:9222)  <->  TradingView Desktop (Electron)
  • Transport: MCP over stdio plus a tv CLI exposing the same surface.

  • Connection: Chrome DevTools Protocol on localhost:9222.

  • Streaming: poll-and-diff loop with deduplication, JSONL on stdout.

  • Runtime deps: @modelcontextprotocol/sdk, chrome-remote-interface. That's it.

The full per-tool decision tree (which tool to call for which question) lives in CLAUDE.md. The filename is a convention some clients load automatically; the content is plain Markdown and is worth reading whichever agent you use, or pasting into its own instructions file.


How this stays safe to run

  • The debug port is off in TradingView until you enable it via the standard --remote-debugging-port=9222 flag.

  • TVControl's chart-control path speaks CDP to the Electron app already running on your machine. TradingView Desktop and explicitly documented public helpers still communicate with TradingView.

  • TVControl does not operate a cloud backend. Local snapshots, telemetry, reliability receipts, and support bundles are written only when their corresponding features are used.

  • No real trades are executed. Chart, drawings, indicators, and Pine code only.

  • TV_MCP_READONLY=1 registers only the tools that cannot change your TradingView state. For unattended use (a scheduled morning brief, a cron job, a CI agent) where nobody is there to approve a call. An MCP grant is server-level, so a host that can reach TVControl can reach every tool it registers; under this flag the mutating ones are never registered, so calling one is an unknown-tool error rather than a promise the model is asked to keep. Reads, diagnostics, screenshots and chart navigation (symbol, timeframe, range, pane/tab/layout switching) stay available; watchlist edits, alert create/delete, drawing writes, indicator changes, Pine saves, replay, state_restore and tv_launch do not. ui_evaluate stays off even if TV_MCP_ADVANCED=1 is also set.

The same CDP interface is built into every Chromium app: VS Code, Slack, Discord, Chrome itself. It's not a side door; it's the standard debugging interface Google ships with the runtime.


Compatibility

  • TVControl talks to undocumented internal TradingView APIs through the Electron debug interface. Those can change in any TradingView update without notice. Pin your TradingView Desktop version if stability matters to you.

  • Tested on macOS, Windows, and Linux at release time.

  • Requires Node.js 18.14.1 or newer.


Disclaimer

This project is provided for personal, educational, and research purposes only.

By using this software, you acknowledge that:

  1. You are solely responsible for ensuring your use complies with TradingView's Terms of Use and all applicable laws.

  2. TradingView's Terms of Use restrict automated data collection, scraping, and non-display usage of their platform and data. TVControl uses Chrome DevTools Protocol to programmatically interact with the TradingView Desktop app, which may conflict with those terms.

  3. You assume all risk. Ferrox Labs and its contributors are not responsible for account bans, suspensions, legal actions, or any consequences resulting from use of this tool.

  4. This tool must not be used for: redistributing or commercially exploiting TradingView's market data; circumventing TradingView's access controls or paywalls; performing automated live trading; or violating intellectual property rights of Pine Script authors.

  5. Streaming functionality polls only your local TradingView Desktop instance; the Desktop app remains responsible for its normal TradingView network connection.

  6. Market data accessed through this tool remains subject to exchange and provider licensing terms. Do not redistribute, store, or commercially exploit it.

TVControl is not affiliated with, endorsed by, or associated with TradingView Inc. TradingView is a trademark of TradingView Inc.

If you are unsure whether your intended use complies with TradingView's terms, do not use TVControl.


Acknowledgements

TVControl began as a fork of tradingview-mcp by tradesdontlie. That project established the core CDP-bridge approach and the original tool surface, and proved the whole "drive TradingView Desktop from an MCP agent" pattern was viable.

TVControl builds on that foundation with full state snapshot and restore (including the metaInfo blob for published Pine), Cartesian strategy sweeps with disk memoization and parallel worker tabs, the combined chart_vision_read one-shot, classified-error handling with remediation hints, opt-in JSONL telemetry, capability-aware runtime gates, privacy-safe diagnostics, watchdog services, chaos/soak/golden verification, an expanded offline test battery, end-to-end verify scripts, cross-platform GitHub Actions CI, and a curated prompt library.

Credit for the groundwork belongs to the upstream author. If you came here looking for the original, that's right here.


License

MIT. See LICENSE.

The MIT license applies to the source code of this project only. It does not grant rights to TradingView's software, data, trademarks, or other intellectual property.


Available Tools

113 tools
alert_createB

Create a price alert on the current chart using TradingView's authenticated alert API

ParametersJSON Schema
NameRequiredDescriptionDefault
priceYesPrice level for the alert
messageNoAlert message
conditionYesCondition: crossing, greater_than, or less_than
frequencyNoon_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
resolutionNoSeries 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_pushNoEnable TradingView mobile push notification
expiration_daysNoDays until expiration

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
priceNoOne fixed level for every symbol. Give this OR percent_from_last, not both.
dry_runNoCompute every level and return the plan without creating anything. Do this first on a large set.
messageNoAlert text. Supports TradingView placeholders: {{ticker}}, {{close}}, {{time}}, {{exchange}}, {{interval}}. This is the payload your webhook receives.
symbolsNoExchange-prefixed symbols. OMIT to use every symbol in the active watchlist (section headers are skipped).
conditionNocrossing, greater_than, or less_thancrossing
frequencyNoon_bar_close keeps watching; on_first_fire stops after one trigger.on_bar_close
resolutionNoSeries the condition is evaluated on: 1, 5, 15, 60, 240, D, W, M.60
webhook_urlNohttp(s) URL that every alert in this batch posts to when it fires.
expiration_daysNo
percent_from_lastNoLevel 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

A4/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
alert_idNoOne alert ID to delete
alert_idsNoSeveral alert IDs to delete
delete_allNoDelete all alerts

TDQS

C2.6/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
alert_idYesAlert ID from alert_list

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden of explaining behavior. It discloses that only active alerts are returned, but does not mention response format, pagination, or lack of side effects. The read-only nature is inferable from 'List' but not explicitly stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single clear, front-loaded sentence. There is no wasted wording or redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the zero-parameter schema and no output schema, the description is minimally sufficient for an agent to invoke the tool. However, it does not describe what is returned, how active status is determined, or any limits, leaving some ambiguity for a tool that could return a structured list.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, so the description does not need to explain parameter details. The baseline of 4 applies because there is nothing missing in parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'List active alerts'. It clearly distinguishes this from its alert siblings (alert_create, alert_delete) by indicating a read-only listing operation rather than creation or deletion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance about when to use this tool versus alternatives, but the intended usage is strongly implied by the verb and resource. No sibling tool performs a similar list operation, so the risk of confusion is low.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

batch_runB

Run an action across multiple symbols and/or timeframes

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction to run for each symbol/timeframe. get_study_values reads every visible indicator per symbol and is the one to use for universe scans.
symbolsYesArray of symbols to iterate (e.g., ["BTCUSD", "ETHUSD", "AAPL"])
delay_msNoDelay between iterations in ms (0-60000, default 2000)
entity_idNoExact strategy entity ID for get_strategy_results; recommended when more than one strategy is present
timeframesNoArray of timeframes (e.g., ["D", "60", "15"])
ohlcv_countNoBar count for get_ohlcv action (1-500, default 100)
study_filterNoFor get_pine_tables: substring matching the indicator whose table to read. Omit for all.
restore_start_stateNoRestore the starting chart symbol/timeframe in a guaranteed cleanup path (default true)

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral disclosure burden, and it is a single 9-word sentence that reveals nothing. Key traits are undisclosed: the tool mutates chart state (implied only by the restore_start_state parameter's mention of a 'guaranteed cleanup path'), loops with pacing delays, and has unspecified partial-failure semantics. The schema clues help, but the description itself adds no behavioral transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One front-loaded sentence with zero filler. The verb 'Run' leads, the resource follows, and the multi-symbol/multi-timeframe scope is delivered immediately. For a tool whose detailed parameter semantics live in the schema, this is ideal sizing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter orchestration tool with no output schema and no annotations, the description is too thin. It doesn't explain what the aggregated return looks like, how to choose between batch_run and similar siblings (strategy_sweep, quote_batch, the singular data_get_* tools), that the tool navigates the chart and restores state, or how failures in individual iterations are handled. The schema covers parameter meaning well but not these tool-level operational details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 meaning, but every parameter is well-documented in the schema with enums, ranges, defaults, examples, and usage hints (e.g., study_filter's substring matching, action's per-action guidance). The schema does the heavy lifting and the description doesn't need to compensate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Run'), a resource ('an action'), and a clear scope ('across multiple symbols and/or timeframes'). This conveys the batch/fan-out nature that differentiates it from the singular data_get_* siblings (data_get_ohlcv, data_get_study_values, etc.), though it doesn't name an alternative explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description never states when to use this tool vs. singular alternatives or other batch tools like strategy_sweep or quote_batch. Some usage guidance exists inside the schema — the action parameter notes get_study_values 'is the one to use for universe scans' and entity_id gives strategy-specific advice — but tool-level when-to-use/when-not-to-use context is only implied by the phrase 'across multiple symbols and/or timeframes'.

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. REFUSES on a hidden tab, because a hidden tab returns the last frame it painted - a real PNG of the right chart showing stale data. region:"chart" captures the ACTIVE pane and reports which selector found it.

ParametersJSON Schema
NameRequiredDescriptionDefault
methodNoCapture method: cdp (Page.captureScreenshot) or api (chartWidgetCollection.takeScreenshot) (default cdp)
regionNoRegion to capture: full, chart, strategy_tester (default full). "chart" targets the focused pane.
filenameNoCustom filename (without extension)
allow_hiddenNoCapture even when the tab is hidden. The image may be a stale frame: only pass this if you have accepted that.
wait_for_renderNoWait for the chart canvas to stabilize before capture

TDQS

A3.9/5.0
Behavior4/5

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 does well by revealing the hidden-tab refusal, explaining why the returned image could be stale, and noting that region:'chart' reports the selector used. It does not describe the output format, but the key safety and correctness caveats are transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the primary action. The hidden-tab warning and region clarification are high-value additions, and every sentence earns its place without redundant filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with five optional parameters and no output schema, the description covers the most critical behavioral caveats and parameter nuances. It could go further by explaining what the tool returns or how method choices (cdp vs api) affect results, but the combination of schema and description is largely sufficient for an agent to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 value beyond the schema by clarifying that region:'chart' captures the active pane and reports which selector found it, and by explaining the hidden-tab behavior relevant to allow_hidden. This exceeds what the parameter list alone communicates.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb and resource: 'Take a screenshot of the TradingView chart.' It also adds meaningful scope details like region:'chart' capturing the active pane. It does not explicitly differentiate from sibling tools by name, but the core 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides important usage context: it refuses on hidden tabs and warns about stale frames, and it explains that region:'chart' targets the active pane. However, it does not explicitly state when to prefer this tool over alternatives or when not to use it beyond the hidden-tab caveat.

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)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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 correctly signals a read operation and names what is returned, but does not disclose prerequisites (e.g., whether a chart/tab must be open) or whether the indicators list is full details or just names. Adequate for a zero-parameter read, but not riich behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero waste: the verb and resource come first, and the parenthetical enumerates the return contents economically. Every word carries meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter getter with no output schema, the description gives a usable summary of what comes back. The main gaps are the lack of an explicit return shape (a booleans? strings? a structure?) and any prerequisite about an active chart, but the complexity is low enough that this is nearly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, which is the baseline-4 case per the rubric. There is nothing for the description to explain, and it correctly avoids inventing param information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Get') and resource ('current chart state') and enumerates the exact contents: symbol, timeframe, chart type, indicators. This clearly distinguishes it from the chart_set_* siblings (mutators) and chart_get_visible_range (a narrower getter for a different aspect of the chart).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the 'Get' verb and the listed state components, but the description never explicitly says when to choose this over related getters like symbol_info, tv_ui_state, or chart_get_visible_range. There are no exclusions or alternative routing, so it sts at implied usage rather than explicit guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chart_get_visible_rangeA

Get the visible date range (unix timestamps) and bars range on the chart

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full disclosure burden. It makes the read-only nature explicit with 'Get' and specifies what is returned (unix timestamps and bars range). It does not mention prerequisites like whether a chart must be open, but for a simple getter the core 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence that leads with the action and resource, gives the timestamp format parenthetically, and names the second returned component. Zero filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter getter, this is mostly adequate, but no output schema exists and 'bars range' is left underspecified (e.g., indexes vs count vs offsets). The description names the return categories but does not fully define their structure or units.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, which is baseline 4. The input schema is empty, so there is no parameter information for the description to clarify or supplement.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Get'), a specific resource ('visible date range'), an explicit format ('unix timestamps'), and a second resource ('bars range'). This clearly separates it from the setter sibling chart_set_visible_range and from the more general chart_get_state.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance about when to use this tool versus alternatives such as chart_get_state or chart_set_visible_range. The usage is only implied by the tool name and the simple 'Get' verb.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction: add or remove
inputsNoJSON string of input overrides for the indicator (e.g., '{"length": 20}')
entity_idNoEntity ID to remove (from chart_get_state). Required for remove.
indicatorNoFull 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

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesISO date string (e.g., "2024-01-15") or unix timestamp as a string

TDQS

A3.6/5.0
Behavior3/5

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 does disclose the core behavior—changing the viewport to center on a date—but says nothing about side effects, failure behavior for out-of-range dates, or whether the chart must already be launched. This is adequate but has gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with no filler. The verb and object are immediately clear, and the rest of the sentence adds the only needed detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter navigation command with no output schema, the description is functionally complete: an agent knows what action to take and what input is relevant. It omits edge-case behavior on invalid or out-of-range dates, but that is less critical for a simple viewport jump.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already fully describes the single 'date' parameter as an ISO date or Unix timestamp string (100% coverage), so the baseline applies. The description adds only the context that this date is the centering target, without extra format, syntax, or edge-case semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific action ('jump ... to center') on a well-defined resource ('chart view') with a precise target ('a specific date'). This clearly separates it from siblings like chart_set_symbol, chart_set_timeframe, or chart_set_visible_range, which change other aspects of the chart.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 vs alternatives such as chart_set_visible_range or replay controls. The purpose statement implicitly suggests the use case, but there is no explicit context, prerequisite, or exclusion to help an agent choose among navigation-related siblings.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesSymbol to set (e.g., BTCUSD, AAPL, ES1!, NYMEX:CL1!)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations and the description only says 'Change the chart symbol.' It implies mutation but discloses no side effects, prerequisites, permissions, reversibility, or what happens to the current 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise and front-loaded with the action and target. It contains no filler, though it is so minimal that it omits useful context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter setter, the description plus schema is minimally sufficient to invoke the tool. However, it lacks guidance on the active chart context, relationship to pane_set_symbol, and any behavioral expectations, leaving clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully documents the single 'symbol' parameter with an example. The description adds no additional meaning beyond what the schema already provides, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: change the chart symbol. It is clear and distinguishable from chart_set_timeframe and chart_set_type, though it does not explicitly differentiate from close siblings like pane_set_symbol.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 symbol_search, symbol_info, or pane_set_symbol. The description provides no context for choosing this tool over its siblings.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
timeframeYesTimeframe (e.g., 1, 5, 15, 60, D, W, M)

TDQS

B3.1/5.0
Behavior2/5

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 reveal the core mutation—changing the chart's timeframe—but says nothing about side effects, whether the chart must already exist, how the change affects indicators or overlays, or what happens on failure. This is minimal behavioral transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence with no filler, front-loading the verb and resource. It is appropriately sized for a tool with one parameter and low overall complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter setter, the core invocation is clear and the schema covers the input details. However, with no annotations and no output schema, the description omits useful contextual information such as prerequisites, expected outcome, and how this differs from related chart operations. It is adequate but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already provides a complete description of the single 'timeframe' parameter with examples, giving 100% schema coverage. The description adds only the synonym 'resolution' and no additional format, constraints, or domain guidance, 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Change') and a specific resource ('the chart timeframe/resolution'), making the tool's purpose clear. It largely restates the tool name but adds 'resolution' as a synonym for timeframe. It does not explicitly differentiate it from sibling tools like chart_set_symbol or tv_launch, so it does not earn a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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, no mention of prerequisites such as an active chart, and no indication of when a timeframe change is appropriate. The correct usage context is entirely left to the agent to infer.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
chart_typeYesChart 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

C2.9/5.0
Behavior2/5

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 only states that a chart type is changed, without disclosing that this modifies the active chart's state, whether it is reversible, any persistence or side effects, or what happens on failure. Minimal behavioral insight beyond the name itself.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three words with no wasted content and is front-loaded. It is efficient, though arguably too terse to carry the behavioral disclosure burden for a mutation tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple setter the tool is mostly invokable with the well-documented parameter, but the description lacks explicit scope (active chart), return/confirmation behavior, or potential failure modes. Without annotations or an output schema, an agent gets only the bare minimum.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the sole parameter chart_type is thoroughly documented with all valid values and the instruction to pass name or number. The description adds nothing 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Change chart type' uses a clear verb and specific resource. It distinguishes itself from sibling tools like chart_set_symbol and chart_set_timeframe by naming the chart type as the target. It could be slightly more specific about which chart is affected, but the core 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.

Usage Guidelines2/5

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, no prerequisites, and no information about the target context (e.g., active chart). Usage must be inferred entirely from the tool name and sibling naming pattern.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chart_set_visible_rangeB

Zoom the chart to a specific date range (unix timestamps)

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesEnd of range (unix timestamp in seconds)
fromYesStart of range (unix timestamp in seconds)

TDQS

B3.3/5.0
Behavior2/5

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 zooming but does not explain whether the existing visible range is replaced, whether a chart must already be loaded, how invalid ranges (from > to) are handled, or whether the change is reversible.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler. It conveys the action, the target, and the relevant unit context efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter setter, the description plus schema is sufficient to understand the basic call. However, the absence of annotations and the lack of behavioral or usage context leave gaps around prerequisites and side effects, so it is only minimally complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with both 'from' and 'to' already described as unix timestamps in seconds and start/end of range. The description adds the phrase 'specific date range' but no additional semantic detail beyond what the schema provides, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Zoom') and resource ('the chart') and clearly indicates the action is setting the visible date range. This distinguishes it from sibling tools like chart_get_visible_range (read) and chart_scroll_to_date (navigation).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 chart_scroll_to_date or chart_get_visible_range. There are no prerequisites, exclusions, or context clues beyond the implicit meaning of the description.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
includeNoSections to include: image, quote, study_values, pine_lines, pine_labels, pine_tables, pine_boxes, ohlcv_summary, state. Default: all.
study_filterNoFilter Pine graphics by indicator name substring.
max_image_bytesNoMax bytes for inline image. Default 1500000 (1.5MB). Exceeded → file_only mode.

TDQS

A3.9/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
entity_idNoExact strategy entity ID from chart_get_state. Strongly recommended when more than one strategy is loaded.

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
entity_idYesStudy entity ID (from chart_get_state)

TDQS

C2.9/5.0
Behavior2/5

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. The verb 'Get' implies a read-only operation, but the description does not explain what is actually returned, whether there are side effects, or how the response is structured. This is minimal but not wholly absent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with no filler. It front-loads the key action and object, though it could have used the space to disambiguate from sibling tools without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter getter, the description is marginally adequate, but it misses an explicit link to chart_get_state for obtaining the entity_id and does not clarify the distinction between indicator input values and computed study values. Given no output schema, the return format is also left unspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the entity_id parameter already documented as 'Study entity ID (from chart_get_state)'. The tool description adds no parameter-specific meaning beyond what the schema provides, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'indicator/study info and input values', making it easy to see this is a retrieval operation. However, it does not explicitly distinguish itself from the sibling data_get_study_values, which could overlap with 'study info' in an agent's mind.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 data_get_study_values or data_get_ohlcv. The parameter description 'from chart_get_state' implies a prerequisite but the tool description itself lacks any usage context.

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoNumber of bars to retrieve (1-500, default 100)
summaryNoReturn summary stats (high, low, open, close, avg volume, range) instead of all bars — much smaller output

TDQS

A4.2/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
verboseNoReturn all boxes with IDs and coordinates (default false — returns unique price zones)
study_filterNoSubstring to match study name. Omit for all.

TDQS

A4/5.0
Behavior4/5

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 states the operation is a read ('Read'), describes deduplication behavior, and specifies the returned data shape ('{high, low} price zones'). It could additionally mention edge cases like no matching boxes or sorting, but the essential safety and output traits are covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler. The main action and output are stated first, followed by a concise parameter hint in the second sentence. Every phrase carries informational weight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple: two optional parameters, no annotations, no output schema. The description gives the return type, the data source, and a filtering tip, which is sufficient for a basic read operation. It stops short of covering no-match behavior or the format of verbose output, but those are minor given the low complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents both 'verbose' and 'study_filter'. The description adds only a slight rephrasing of study_filter's purpose ('target a specific indicator') without introducing any meaning beyond what the schema provides, earning the baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Read'), a precise resource ('box/zone boundaries drawn by Pine Script indicators (box.new)'), and clearly states the output ('deduplicated {high, low} price zones'). It is instantly distinguishable from sibling tools like data_get_pine_lines, data_get_pine_labels, and data_get_pine_tables.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool by naming the box/zone data source, which differentiates it from line/label/table readers. However, it does not explicitly mention alternatives or provide exclusion criteria, and the only guidance ('Use study_filter to target a specific indicator') is parameter-level rather than tool-selection-level.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
verboseNoReturn raw label data with IDs, colors, positions (default false — returns only text + price)
max_labelsNoMax labels per study (default 50). Set higher if you need all.
study_filterNoSubstring to match study name. Omit for all.

TDQS

A3.8/5.0
Behavior3/5

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 communicates a read-only operation and the return format, but does not discuss output limits, error cases, or whether a chart must contain the indicator. It's acceptable but minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three terse, front-loaded sentences with no filler. The purpose, return shape, and filter hint are each in their own sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with no output schema and three optional, fully documented params, the description covers what it returns and how to filter. It could add a note about alternatives or prerequisites, but nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 a small hint for study_filter but doesn't enrich verbose or max_labels beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Read') and resource ('text labels drawn by Pine Script indicators (label.new)'), and distinguishes from sibling tools like data_get_pine_lines and data_get_pine_boxes by focusing on labels. Also specifies return format ('text and price pairs').

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage (read text labels) and gives a filter hint ('Use study_filter to target a specific indicator'), but doesn't explicitly contrast against sibling tools or state when not to use it. 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.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
verboseNoReturn raw line data with IDs, coordinates, colors (default false — returns only unique price levels)
study_filterNoSubstring to match study name (e.g., "Profiler", "NY Levels"). Omit for all.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the disclosure burden. It explicitly states the operation is a read ('Read'), and adds a useful behavioral trait: 'Returns deduplicated price levels per study.' It does not mention what happens when no matching study or lines exist, and it omits output-shape details, but the core behavior is clearly disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, each earning its place: the first establishes the tool's purpose and input, the second explains the return behavior and filtering. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter read-only tool with no output schema, the description is nearly complete: it states what is read, the deduplication behavior, and how to target a study. It just stops short of describing the returned shape or empty-result behavior, but the schema covers parameter details and the operation is simple enough not to require more.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents both parameters. The description reinforces study_filter with 'Use study_filter to target a specific indicator,' but adds no new parameter semantics beyond what the schema provides; hence baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb, resource, and scope: 'Read horizontal price levels drawn by Pine Script indicators (line.new).' It clearly distinguishes this from sibling data_get_pine_labels/boxes/tables by focusing on horizontal price levels and line.new, and additionally states the deduplicated per-study output.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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 it: to read horizontal Pine line levels, with 'Use study_filter to target a specific indicator' as explicit parameter guidance. It does not explicitly contrast it with alternatives like data_get_pine_labels or data_get_study_values, so it misses the full 'avoid when...' guidance.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
study_filterNoSubstring to match study name. Omit for all.

TDQS

A4/5.0
Behavior3/5

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 states that the tool reads data and returns formatted text rows per table, which covers the core behavior. However, it does not describe edge cases like absent tables, multiple matching studies, or whether the data reflects the current 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences deliver the essential information with no filler. The primary action and target resource are front-loaded, and the parameter guidance is compact. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple: one optional parameter and no output schema. The description adequately covers the return format and the filtering mechanism. Combined with the fully self-documenting schema, the main missing context is minor—such as how multiple tables are represented or whether an empty result is possible—so it remains sufficiently complete for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 repeats the study_filter parameter and says it targets a specific indicator, which echoes the schema's 'Substring to match study name. Omit for all.' It adds no material new meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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: 'Read table data drawn by Pine Script indicators (table.new).' It clearly distinguishes this tool from siblings like data_get_pine_lines, data_get_pine_labels, and data_get_pine_boxes by focusing on tables. The added return detail, 'formatted text rows per table,' further disambiguates its purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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 the tool: whenever table data from Pine Script indicators is needed, and it mentions using study_filter to target a specific indicator. It does not explicitly name alternatives or exclusion cases, but the 'table data' scope makes the appropriate use case evident.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
entity_idNoExact strategy entity ID from chart_get_state. Strongly recommended when more than one strategy is loaded.

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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()).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

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 that the tool reads current values and only for visible studies, which is useful. But it does not describe the output format, whether values are last-bar snapshots or series, or how multiple studies like Bollinger Bands are represented.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, focused sentence with a helpful parenthetical list of study types. Every word contributes meaning, with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with no parameters, but it also has no output schema. The description names the data source and scope but remains vague about the returned structure, which matters for an agent consuming the result programmatically. It is adequate but leaves room for clarification.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters and the schema is fully empty, so there is no parameter information that the description needs to add. The baseline of 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb ('Get'), a specific resource ('current indicator values from the data window'), and a precise scope ('all visible studies'). It also gives concrete examples (RSI, MACD, Bollinger Bands, EMAs, custom indicators), which makes the tool's function unmistakable and distinguishes it from sibling 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'all visible studies' gives clear context for when this tool is appropriate. However, it does not explicitly state when to prefer a sibling tool like data_get_indicator for a single indicator, nor does it mention exclusions.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
entity_idNoExact strategy entity ID from chart_get_state. Strongly recommended when more than one strategy is loaded.
max_tradesNoMaximum trades to return (1-20, default 20)

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

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 conveys that the operation is a read ('Get') and that data comes from the chart, but it does not disclose whether a chart must be open, whether the data is real-time or snapshot-based, or whether the tool is unsupported for certain market types. This is minimal behavioral information for a no-annotation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, direct sentence with the action and object front-loaded. It contains no filler and every word contributes to the meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter getter, naming the resource and source covers basic selection and invocation. However, with no output schema and no annotations, the description does not clarify the return shape, whether the active chart symbol is used implicitly, or if order book data is available for all symbol types. It is adequate but leaves meaningful operational details to inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, so there is no parameter documentation gap for the description to fill. The baseline for a no-parameter tool applies, and no further parameter-level detail is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource: getting order book/DOM data, and it notes the data source is the chart. This clearly distinguishes it from sibling retrieval tools like quote_get or data_get_ohlcv, whose resources are explicitly different. The parenthetical '(Depth of Market)' also removes ambiguity about the acronym DOM.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 such as quote_get, data_get_trades, or data_get_ohlcv, and no exclusion conditions are stated. The phrase 'from the chart' implies a dependency on the active chart but does not say it explicitly or mention prerequisites.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A5/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
entity_idYesEntity ID of the drawing (from draw_list)

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry behavioral disclosure itself. It indicates a read-only operation by saying 'Get' and specifies the returned content (properties and points), but it does not disclose error behavior, return structure, or any side effects—though for a simple getter the lack of side effects is reasonably clear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that front-loads the verb and resource with no filler or redundant detail. It earns high marks for efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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 a clear noun phrase about what is retrieved. However, with no output schema, the description could be more explicit about the shape of the returned properties and points; as written, an agent knows what to expect semantically but not structurally.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the entity_id parameter is already documented with context that it comes from draw_list. The tool description adds no additional parameter semantics, which is acceptable given the schema already covers the only parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the operation (get) and resource (properties and points of a specific drawing), making it distinct from broad listing tools like draw_list. It does not explicitly name sibling alternatives, but 'specific drawing' helps signal single-entity retrieval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The schema description adds 'from draw_list', implying the correct prerequisite workflow of listing drawings first. However, the tool description itself gives no explicit guidance on when to choose this tool over alternatives like draw_list or draw_remove_one.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
entity_idYesEntity ID of the drawing to remove (from draw_list)

TDQS

A3.5/5.0
Behavior2/5

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 restates the destructive action and does not explain whether removal is permanent, what happens if the entity_id is invalid, or what the tool returns.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler. It efficiently communicates action, resource, and selection key.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple and the schema covers the single parameter, but there is no output schema and no annotations to fill in behavioral gaps such as error handling, idempotence, or confirmation of removal. The description is adequate for invoking the tool but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the entity_id parameter is already fully documented. The description adds only 'by entity ID,' which confirms the selection mechanism but provides no additional meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Remove'), a clear resource ('drawing'), and a precise selection mechanism ('by entity ID'). This clearly distinguishes it from draw_clear, which removes all drawings, and from read-only siblings like draw_list and draw_get_properties.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this tool is for removing a single drawing by ID, and the schema's reference to draw_list hints at the required workflow. However, it never explicitly names draw_clear as the alternative for removing all drawings or states when not to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

draw_shapeA

Draw a shape/line on the chart. The created shape name is read back and an unrecognised name is REFUSED rather than silently becoming a flag.

ParametersJSON Schema
NameRequiredDescriptionDefault
textNoText content for text shapes
pointYes{ time: unix_timestamp, price: number }
shapeYesShape type. Verified on Desktop 3.3.0: horizontal_line, vertical_line, horizontal_ray, ray, cross_line, trend_line, rectangle, text, note, callout, balloon, price_label, arrow_up, arrow_down, flag, long_position, short_position, fib_retracement, anchored_vwap, fixed_range_volume_profile. An unknown name is refused, not silently drawn as a flag. For long_position/short_position, overrides takes stopLevel and profitLevel IN TICKS plus riskDisplayMode and alwaysShowStats, and TradingView computes the R:R itself.
point2NoSecond point for two-point shapes (trend_line, rectangle)
overridesNoJSON string of style overrides (e.g., '{"linecolor": "#ff0000", "linewidth": 2}')

TDQS

A4.2/5.0
Behavior4/5

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 reveals an important non-obvious trait: the created shape name is read back and unrecognized names are refused instead of silently becoming a flag. This goes beyond the schema by clarifying failure behavior. It doesn't discuss persistence or side effects, but for a drawing tool the core mutation is evident.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero filler. The primary purpose is front-loaded, and the second sentence adds a high-value behavioral warning in compact form.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter tool with nested objects and no output schema, the description plus a fully covered schema is mostly complete. The read-back/refusal note supplies important edge-case behavior. Minor gaps remain around return value structure and where drawn shapes appear, but these don't block correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The top-level description carries no parameter details; the input schema already documents all five parameters with 100% coverage. Per the baseline, that is adequate but not enhanced. The refusal behavior is relevant to the shape parameter but duplicates what the schema's shape description already states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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 — 'Draw a shape/line on the chart' — which clearly identifies the action. It also distinguishes the tool from sibling tools by focusing on creation, while siblings like draw_list, draw_clear, and draw_remove_one cover listing, clearing, and removing shapes. No ambiguity about what this tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The opening sentence gives clear context: use this tool when you want to draw a shape or line on the chart. It does not explicitly name alternatives or state when not to use it, but among the draw_* siblings the creation-versus-management distinction is apparent enough for an agent to select correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

indicator_get_inputsA

Read a study's current input values back. Use this to confirm indicator_set_inputs landed, to detect settings changed by hand, or to record the configuration a result was produced under.

ParametersJSON Schema
NameRequiredDescriptionDefault
entity_idYesEntity ID of the study (from chart_get_state)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden. It clearly frames the operation as a read with no side effects, and adds context about checking applied settings and capturing configuration context. It stops short of describing error cases or exact return shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler. The core action is front-loaded, and the use cases each add distinct value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read tool, the necessary invocation details are present: what it reads and why to use it. The main gap is the absence of any output schema or explicit statement about the return format, though 'values back' implies the returned content.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The sole parameter entity_id is already fully described in the schema as coming from chart_get_state. The description adds no param-level meaning, so the baseline of 3 applies because the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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: 'Read a study's current input values back.' It clearly distinguishes the tool from its sibling indicator_set_inputs by describing the read direction rather than the write direction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives concrete usage scenarios: confirm indicator_set_inputs landed, detect manual changes, and record configuration. It references the related setter tool, but it does not explicitly name alternatives or state when not to use the tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

indicator_set_inputsB

Change indicator/study input values (e.g., length, source, period)

ParametersJSON Schema
NameRequiredDescriptionDefault
inputsYesJSON string of input overrides, e.g. '{"length": 50, "source": "close"}'. Keys are input IDs, values are the new values.
entity_idYesEntity ID of the study (from chart_get_state)

TDQS

B3.3/5.0
Behavior2/5

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 states the basic mutation ('Change ... input values') but does not explain how overrides are applied, whether they replace or merge with existing values, what happens on invalid input IDs, or what the response/return value is.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single compact sentence that clearly fronts the core action and includes relevant examples. There is no filler or redundancy; every part contributes to understanding the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is relatively simple and the schema already documents the required parameters, but with no annotations or output schema, the description does not fully cover behavioral results or error conditions. An agent could invoke it correctly, but might not understand side effects or how to interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already explains both parameters, including that 'inputs' is a JSON string of overrides. The description's examples add minor illustrative value but do not provide additional semantic meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Change') and a clear resource ('indicator/study input values'), with illustrative examples ('length, source, period'). It distinguishes the tool from siblings like indicator_add or indicator_toggle_visibility, 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies it should be used when modifying existing indicator/study input values, but it gives no explicit guidance on when not to use it or which alternative tools to prefer. There is no mention of prerequisites such as a loaded study or where to obtain the entity_id, which the schema partially covers.

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().

ParametersJSON Schema
NameRequiredDescriptionDefault
visibleNotrue to show, false to hide. OMIT to flip whatever the current state is.
entity_idYesEntity ID of the study (from chart_get_state)

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_createA

Create a NEW chart and save it under this name. Use this to build a user a chart from scratch - layout_list and layout_switch can only reach layouts that already exist. The new chart starts empty: add studies with indicator_add_from_search and set the timeframe, then call layout_save again to keep them. Verified by re-reading the account, not by the return value.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName for the new layout, e.g. "TC-TIDE"

TDQS

A4.7/5.0
Behavior5/5

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 reveals that the new chart starts empty, that subsequent saves are required to persist added content, and that verification should be done by re-reading the account rather than trusting the return value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each earning its place: purpose and differentiation, required workflow, and verification caveat. Information is front-loaded and there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-parameter creation tool with no output schema and no annotations, the description provides enough context to invoke it correctly, including the initial state, required follow-up actions, and how to verify success.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already fully describes the single required parameter 'name' with a clear example. The description adds minimal semantic value 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific action: create a NEW chart and save it under a given name. It distinguishes itself from layout_list and layout_switch, which can only operate on already-existing layouts, making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use this tool: when building a chart from scratch. It names the alternatives (layout_list and layout_switch) and explains their limitation, then outlines the follow-up steps: add studies, set timeframe, and call layout_save again.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

layout_get_activeA

Which saved layout the attached chart is currently showing. Use it to confirm a layout switch landed, to detect that the user has moved since a setup was saved, and to state which chart a reading describes.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the behavioral burden. It clearly implies a read-only operation by saying the tool reports what the chart is 'currently showing' and by framing it as a confirmation/detection mechanism. It also adds useful context that the result reflects live user state, not just stored metadata.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: it states what the tool reports first, then lists specific use cases. Every sentence adds value, and there is no redundant restatement of the tool name or schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter state query, the description is largely complete: it explains the returned concept and when to use the tool. It does not specify the exact return format or edge-case behavior when no layout is active, but the core information an agent needs is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 is nothing for the description to add about parameter behavior. The baseline of 4 applies, and the description adds relevant context about what the returned value represents.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as a state query: it reports which saved layout the attached chart is currently showing. It distinguishes this from sibling tools like layout_switch and layout_list by emphasizing the current, active layout of the attached chart. Although it lacks an explicit imperative verb, the meaning is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives three concrete use cases: confirming a layout switch landed, detecting user movement after a setup was saved, and attributing a reading to a specific chart. It does not explicitly mention when not to use this tool or name alternatives, but the use cases make the context clear.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
include_detailsNoInclude symbol, resolution, and modification metadata

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_saveA

Save the current chart layout silently, with no Save-As dialog. Pass name to save it under that name - that is what names a layout, not layout_create. Call this after changing symbol, timeframe or studies so the layout keeps them. Verifies the account lists it rather than trusting the save.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoSave under this name. Omit to save the current layout in place.

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description must carry the behavioral burden. It discloses that the save is silent, that no Save-As dialog appears, and that the tool verifies the account actually lists the layout instead of trusting the save. This is strong transparency, though it doesn't cover potential overwrite behavior or failure handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four dense sentences with no fluff. The core action and naming semantics are front-loaded, followed by usage context and verification behavior. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-optional-parameter tool with no output schema and no annotations, this is complete. It covers the action, the naming pathway, when to call it, and the post-save verification. An agent has enough to invoke it correctly and understand its outcome.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 meaningful context beyond the schema: it explains that passing the name is what actually names the layout and explicitly contrasts this with layout_create. This reinforces the parameter's role without merely repeating the schema text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Save the current chart layout'. It also explicitly distinguishes itself from layout_create: 'that is what names a layout, not layout_create'. An agent can immediately understand what this tool does and how it differs from its closest sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives concrete when-to-use guidance: 'Call this after changing symbol, timeframe or studies so the layout keeps them'. It also clarifies where naming does and does not happen by pointing away from layout_create, giving the agent a clear decision rule.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName or ID of the layout to switch to
discard_unsavedNoThrow away unsaved changes on the current chart. Without this, a chart with unsaved work stops the switch instead of losing it.

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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)

ParametersJSON Schema
NameRequiredDescriptionDefault
indexYesPane index (0-based, from pane_list)

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations or output schema, the description carries the full behavioral burden. It communicates a read-only listing action and specifies the output content (panes with symbols and active state), which is sufficient for a simple, side-effect-free tool. It does not detail return formatting or ordering, but these are minor for this operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence states the action, object, scope, and included output fields. Every part is informative and there is no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter listing tool, the description is nearly complete: it identifies the object type, scope, and returned attributes. It could marginally clarify the structure of 'active state' or how panes are ordered, but an agent can reasonably invoke the tool with the provided information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there is nothing for the description to explain beyond stating the operation's scope. The baseline for zero-parameter tools is 4, and the description appropriately adds no redundant parameter information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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 clear resource ('all chart panes in the current layout') and states what is included ('symbols and active state'). It is easily distinguishable from sibling tools like layout_list, pane_set_symbol, or chart_get_state.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly scopes usage to the current layout, which tells an agent when this pane-specific list is relevant. It does not explicitly mention alternatives like layout_list for listing layouts, but the context is sufficiently clear for choosing this tool over pane-related mutations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pane_set_layoutB

Change the chart grid layout (e.g., single, 2x2, 2h, 3v)

ParametersJSON Schema
NameRequiredDescriptionDefault
layoutYesLayout code: s (single), 2h, 2v, 2-1, 1-2, 3h, 3v, 4 (2x2), 6, 8. Also accepts: single, 2x1, 1x2, 2x2, quad

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral disclosure burden. It only states that the layout changes but does not disclose whether the existing layout is replaced, whether the change affects the active tab or all tabs, whether it is reversible, or what side effects occur on existing panes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with concrete examples and 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.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter setter with full schema coverage, the existing description is nearly adequate. However, the tool performs a mutation and has no annotations and no output schema, so the missing behavioral context—what the layout change actually does to existing panes—leaves the description slightly incomplete for confident invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents the layout parameter with accepted values and aliases at 100% coverage. The description's examples (single, 2x2, 2h, 3v) are repeated from the schema and add no meaningful semantic detail beyond what the schema provides, 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the action ('Change') and the resource ('chart grid layout'), and the examples (single, 2x2, 2h, 3v) make the scope concrete. It is distinguishable from workspace-level layout siblings like layout_switch because it explicitly says 'chart grid layout', though it does not name alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied: use this tool when you want to change the chart grid layout. However, no explicit guidance is given about when to prefer this over related tools like pane_focus, layout_switch, or layout_new, and there are no exclusions or prerequisites.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
indexYesPane index (0-based)
symbolYesSymbol to set (e.g., NQ1!, ES1!, AAPL)

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYesPine Script source code to analyze

TDQS

A4/5.0
Behavior4/5

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 transparently explains that the tool does not compile, works offline, and targets specific static-analysis issues. It does not mention whether the analysis is read-only or what kind of output is returned, but the described behavior is clear and non-misleading.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, dense sentence with no filler. The core behavior is front-loaded, and the distinctive details ('WITHOUT compiling', 'Works offline') plus specific checks follow naturally without wasting words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one simple string parameter and no nested objects, the description is sufficient for an agent to select and invoke it. The main gap is the lack of stated return format or behavior for valid code, but the description's phrase 'catches ...' strongly implies diagnostic output, which may be enough for this simple tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents the single parameter with high coverage ('Pine Script source code to analyze'). The description reinforces that the source is Pine Script code but adds no additional semantic detail beyond the schema, 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.

Purpose4/5

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') and lists concrete diagnostic categories (array out-of-bounds, unguarded array.first()/last(), bad loop bounds, implicit bool casts). It distinguishes itself from compiling tools by saying 'WITHOUT compiling', though it does not explicitly differentiate itself from the similarly named sibling pine_check.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context: it is for static analysis, works offline, and does not require a TradingView connection. It implies this is a faster/safer alternative to compiling but does not explicitly state when to use it over alternatives like pine_compile or pine_check.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYesPine Script source code to compile/validate

TDQS

A4.2/5.0
Behavior4/5

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 that compilation happens server-side, does not require a chart, and returns errors/warnings. This gives an agent a reasonable mental model of the tool's behavior, though it does not mention rate limits, authentication, or whether any state is modified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences, each earning its place: what the tool does, what it returns, and when to use it. The most important differentiating detail—'without needing the chart open'—is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with a single string parameter and no output schema, the description covers the essential purpose, behavior, and return type. It does not detail the error/warning return structure, but it provides enough context for an agent to select and invoke the tool correctly for validation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already fully documents the single 'source' parameter as 'Pine Script source code to compile/validate', and the description adds no additional parameter-level meaning. Since schema description coverage is 100%, the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool compiles Pine Script via TradingView's server API and returns compilation errors/warnings. The phrase 'without needing the chart open' distinguishes it from chart-dependent sibling tools like pine_compile or pine_set_source. This is a specific verb+resource description that an agent can act on immediately.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a clear use case: validating code before injecting it into the chart, and notes that no open chart is required. It does not explicitly name alternative sibling tools or state when not to use them, so it falls short of a full when/when-not guideline.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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_consoleB

Read Pine Script console/log output (compile messages, log.info(), errors)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the behavioral disclosure burden. The word 'Read' indicates a non-destructive operation, and the content types are listed. However, it doesn't disclose whether the tool triggers a compilation, clears the log after reading, or what it returns when the console is empty, leaving some ambiguity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single compact sentence that front-loads the action and resource, followed by a useful parenthetical of content examples. Every word earns its place, with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple parameterless getter, the description covers the main return content. However, there is no output schema, and the description doesn't clarify how this tool relates to pine_get_errors or whether the console output reflects the most recent compilation. These are small but meaningful gaps given the lack of structured annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema is trivially 100% covered. There are no input semantics to explain, and the baseline of 4 for parameterless tools applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Read') and a clear resource ('Pine Script console/log output'), with concrete examples of content types. It is clearly distinguished from a tool like pine_get_errors by covering broader console output, though it doesn't explicitly name any sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use this tool versus related tools such as pine_get_errors, pine_compile, or pine_get_source. The description implies a general console-reading purpose but provides no explicit exclusions, prerequisites, or alternatives, forcing the agent to infer relationships from names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pine_get_errorsB

Get Pine Script compilation errors from Monaco markers

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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 reveals the data source ('Monaco markers'), which implies reading editor state, but doesn't say whether the operation is read-only, whether a prior compilation is required, or what happens when no markers exist. No side effects or failure modes are disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with no filler; the verb and resource are front-loaded and every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a getter with no parameters and no output schema, the description is minimal but leaves the agent to infer when compilation errors would exist, what the return format is, and how this fits into the pine workflow among roughly two dozen pine siblings. More context is needed for confident invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero parameters and vacuous 100% schema coverage, there is nothing for the description to document. It adds a bit of meaning by naming the source ('Monaco markers'), which clarifies what the parameterless call operates on.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb-resource pairing ('Get Pine Script compilation errors') and names the data source ('Monaco markers'). It clearly indicates a read operation on editor markers rather than an action like pine_compile or pine_check, though it doesn't explicitly name or contrast any sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to call this tool versus the many related siblings (pine_compile, pine_check, pine_smart_compile, pine_analyze). There is no mention of prerequisites such as compiling first, no exclusions, and no alternatives named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pine_get_script_sourceA

Read a saved Pine Script's source over the REST API WITHOUT touching the editor buffer. Use this to compare a saved script against a local file or audit what is deployed - it cannot destroy unsaved work and cannot mis-bind the editor.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the saved script (case-insensitive; an ambiguous substring is refused with candidates)

TDQS

A4.3/5.0
Behavior4/5

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 cannot destroy unsaved work and cannot mis-bind the editor. This reassures safety for a read operation, though it does not detail error behavior or response format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded, with the core action stated first and safety/behavioral context added in a second sentence. No words are wasted, and the contrast with the editor buffer earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter read operation, the description is complete: it states what is read, what the tool avoids, and why an agent would use it. The parameter schema covers input details, and the resource itself makes the return value obvious.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the single 'name' parameter is already well documented with case-insensitivity and ambiguity handling. The tool description adds no extra parameter meaning, 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Read a saved Pine Script's source.' It also distinguishes itself from editor-buffer operations by explicitly saying it does so 'WITHOUT touching the editor buffer,' which separates it from siblings like pine_get_source and pine_set_source.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear use cases: compare a saved script against a local file or audit what is deployed. It does not explicitly name an alternative tool for reading the editor buffer or an exact when-not-to-use condition, but the editor-buffer contrast implies the boundary.

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description must carry the behavioral burden. The verb 'Get' indicates a read-only operation with no side effects, but the description does not disclose what happens if no editor is active, whether unsaved buffer changes are included, or the return format. For a simple getter this is likely sufficient, but it leaves some behavioral edges unstated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no filler. Every word contributes to identifying the verb, resource, and location, making it efficiently scannable for an agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that the tool has no parameters and no output schema, the description covers the essential call semantics: it returns the current Pine Script source from the editor. It is slightly thin around edge cases and sibling differentiation, but for a zero-input getter this is nearly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, and the input schema is an empty object with 100% coverage by definition. Per the baseline for 0-parameter tools, the description need not explain parameter syntax; it only needs to communicate the purpose, which it does.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with the specific verb 'Get' and names the exact resource ('current Pine Script source code') plus its location ('from the editor'). This clearly distinguishes it from sibling tools like pine_set_source (which writes) and pine_get_errors/pine_get_console (which retrieve other data). 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no explicit when-to-use guidance or alternatives; usage must be inferred from the tool name and the editor scope. While 'current ... from the editor' implies a use case (retrieve the active script source), it does not contrast with pine_list_scripts or other pine_* siblings. This is adequate context but no exclusions, 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.

pine_list_scriptsA

List saved Pine Scripts. Returns a page, not the whole library — pass name_filter to find one by name.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax scripts to return (default 50, max 200)
offsetNoSkip this many matches, for paging
name_filterNoCase-insensitive substring match on script name/title. Use this when you know roughly what you are looking for.

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYesTemplate to write into the editor
confirm_overwriteNoRequired when the editor already holds real content. Read it with pine_get_source first.

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

Load a saved Pine Script into the editor buffer. THIS REPLACES THE BUFFER and does not guarantee the editor is bound to that script - check binding_verified before any pine_save. To READ a script with no buffer risk, use pine_get_script_source instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the saved script to open (case-insensitive; exact name or title wins, an ambiguous substring is refused with candidates)
confirm_overwriteNoRequired to replace a buffer that holds real work. Without it the call is refused rather than destroying unsaved code, same as pine_new and pine_set_source.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and delivers: it discloses the destructive behavior in caps ('THIS REPLACES THE BUFFER') and the non-obvious post-condition that the editor is not guaranteed to be bound to the script. The schema description for confirm_overwrite further reveals the safety refusal mechanism. This is exactly the behavioral context an agent needs to avoid data loss.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, zero filler. The core purpose leads, the critical destructive warning is front-loaded in caps, and the alternative routing closes. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 2-parameter tool with no annotations and no output schema, the description covers the critical ground: what it does, the destructive risk, the follow-up caveat, and the safer alternative. The only gap is that it never explicitly states what the tool returns (e.g., whether binding_verified is in the response), leaving that detail to inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 well, including the safety semantics of confirm_overwrite. The main description adds no parameter-specific meaning beyond the schema. Baseline 3 is appropriate when the schema handles the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb+resource construction: 'Load a saved Pine Script into the editor buffer.' It explicitly differentiates itself from the sibling pine_get_script_source by highlighting the buffer-replacement risk, so an agent can distinguish this from the read-only alternative without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly names the alternative (pine_get_script_source) and states the exact condition for choosing it ('To READ a script with no buffer risk'). It also provides workflow guidance: check `binding_verified` before any pine_save. The routing decision is fully specified.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYesPine Script source code to inject
confirm_overwriteNoRequired when the editor already holds real content. Read it with pine_get_source first.

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior3/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolsYesExchange-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

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolNoSymbol to quote (blank = current chart). Non-blank values cause a temporary chart switch and restore.

TDQS

A3.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
speedNoAutoplay 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.
enabledNotrue to start autoplay, false to stop it. Omit to flip the current state.

TDQS

A4.2/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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. A date outside this symbol/timeframe replay depth is REFUSED rather than silently relocated - every read taken after a relocation is correct for a date you did not ask for.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoDate to start replay from (YYYY-MM-DD format). If omitted, selects first available date.
allow_relocationNoAccept a cursor TradingView moved to a different date because the requested one is outside replay depth. The result still carries relocated:true and the real current_date.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and does so well. It explicitly discloses that out-of-depth dates are refused rather than silently relocated, and explains the reasoning: reads after a relocation are correct for a date the user did not ask for. This is valuable, non-obvious 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences only. The core action is front-loaded, and the second sentence provides a critical caveat without any filler. Every word contributes to helping the agent use the tool correctly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter tool, the description covers the core behavior and an important edge case. It does not describe the return value or behavior when called again while already in replay mode, but the sibling tool set and tool context make these gaps minor.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents both parameters with descriptions, so most parameter semantics are covered. The description adds meaning by explaining the consequence of requesting an unavailable date and warns about the relocation effect, which enriches the understanding of the date and allow_relocation parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Start bar replay mode'. It also clarifies the optional date behavior, making it clearly distinct from sibling tools like replay_stop, replay_step, and replay_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes it clear this is the entry point for bar replay mode and how the date parameter behaves. It does not explicitly name alternatives or exclusion criteria, but its role is evident from the verb 'Start' and the sibling tool names.

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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. 'Get' implies a read-only operation with no side effects, but the description does not elaborate on edge cases (e.g., behavior when replay mode is off) or output format. For a simple status query, this minimal transparency is adequate but not enriching.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that immediately communicates the tool's purpose. There is no redundant or unnecessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema and no annotations, the description doesn't specify what the status response will contain or how to interpret it. An agent knows it can call the tool to get status, but not what values or structure to expect. Given the tool's simplicity, this is a minor but notable gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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; there are no parameter semantics to clarify. The baseline for a zero-parameter tool is 4, and the description doesn't need to compensate for any parameter documentation gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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 replay mode status'), making the tool's function immediately obvious. It is clearly distinguished from the sibling replay_* tools, which perform actions (start, stop, step) rather than report state.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 that this is the correct tool for checking replay state before calling replay_start/step/stop, nor does it exclude any context. The intended usage is only implicit in the name and 'current status' phrasing.

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description bears full responsibility for behavioral disclosure. It states the immediate effect but does not mention whether a replay session must be active, what happens at the end of available bars, or whether the action is reversible.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence that is front-loaded and contains no filler. Every word contributes to conveying the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is adequate for a zero-parameter action but leaves out useful context such as the need for an active replay session and how it relates to replay_autoplay. It does everything required to identify the action, but not enough to fully inform correct invocation in all scenarios.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters and the schema is empty, so there is no parameter information to document. Per the baseline for zero-parameter tools, a 4 is appropriate even though the description adds nothing beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('advance'), a specific resource ('one bar'), and the mode ('replay mode'). It clearly distinguishes itself from sibling replay tools like replay_start or replay_autoplay, which do different actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance is given for when to use this tool versus alternatives. There is no mention that it should be used for manual stepping while replay_autoplay is for continuous playback, nor any stated prerequisite that replay mode must already be active.

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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. 'Stop replay and return to realtime' directly conveys the action and outcome, which is sufficient for a simple zero-parameter command. It does not mention edge cases like calling it when replay is not active, but for this tool's scope the core behavior is clearly disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single six-word phrase that efficiently captures the entire purpose and outcome. There is no filler, and the key information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity, no parameters, and no output schema, the description is largely complete: it states the action and the resulting state. It could slightly improve by mentioning prerequisites, such as replay needing to be active, but this is not a critical gap for a no-argument stop command.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema already fully documents parameter expectations. The description does not need to add parameter semantics, and the baseline for a no-parameter tool applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Stop') and resource ('replay') and adds the outcome ('return to realtime'), which clearly distinguishes this tool from siblings like replay_start, replay_step, replay_autoplay, and replay_trade. An agent can immediately understand what action this tool performs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrasing conveys that the tool should be used when replay is active and the user wants to exit back to live data. However, it does not explicitly state when not to use it or point to alternatives such as replay_status for checking state or replay_step for continuing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

replay_tradeB

Execute a trade action in replay mode (buy, sell, or close position)

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesTrade action: buy, sell, or close

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry full behavioral disclosure. It states it 'executes' a trade but does not clarify whether this is simulated or affects real positions, what side effects occur, or what the response contains. A mutation tool with zero annotation coverage should provide more context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One concise sentence with no waste. The core purpose is front-loaded, though it lacks additional detail that could be added in a structured way.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given this is a trade-execution tool with no output schema and no annotations, the description is underspecified. It should mention whether replay mode is active or auto-started, how it interacts with existing positions, and any potential side effects. The minimal description leaves agents without enough context for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%—the parameter 'action' is fully documented with its possible values. The description adds no additional meaning beyond the schema, so a baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool executes a trade action in replay mode, with a specific verb and resource. It names the actions (buy, sell, close), and the 'replay mode' scope distinguishes it from siblings like replay_start/replay_stop and from real order tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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, such as place_order/close_position for live trading, or replay_start to begin a session. It does not mention prerequisites (e.g., must have an active replay session) or exclusions.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesSnapshot name to delete

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesSnapshot name to restore

TDQS

A4.5/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesSnapshot name (e.g., "my-setup"). No slashes or ".."
overwriteNoOverwrite existing snapshot with the same name (default: false)

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
inputsNoInput variations: { length: [20, 50], source: ["close", "hl2"] }
symbolsYesSymbols to sweep (e.g. ["ES1!", "NQ1!"])
on_errorNoError behavior (default "continue")
entity_idYesStrategy study entity ID (from chart_get_state)
use_cacheNoReuse cached per-combo metrics from ~/.tv-mcp/sweep-cache/ within TTL (default true)
timeframesYesTimeframes to sweep (e.g. ["15", "60"])
cooldown_msNoCooldown between combos in ms (default 1500)
parallelismNoSpawn N worker tabs and run combos in parallel (default 1 = serial). Cap 6.
cache_max_age_msNoCache entry TTL in ms (default 86_400_000 = 24h). Set 0 to force fresh.
max_combinationsNoMax combinations allowed (default 100, abs cap 500)
resume_from_run_idNoContinue from a partial sweep run_id
restore_start_stateNoSnapshot chart before sweep, restore after (default true)
timeout_per_combo_msNoTimeout per combo in ms (default 30000)
same_symbol_cooldown_msNoShorter cooldown when only inputs change (same symbol+timeframe). Default 200ms; clamped to [0, cooldown_ms].

TDQS

B3.1/5.0
Behavior1/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must communicate behavior on its own. 'Get' signals a non-mutating read and the parenthetical names the data fields, which is useful. However, it does not disclose whether an active chart or session is required or the shape and format of the returned metadata, leaving some behavioral ambiguity for an agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence gets straight to the point: the verb, resorce, and returned fields are front-loaded with no filler. Every word contributes to understanding the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter getter this is mostly adequate, but with no output schema the description should more explicitly describe the return value and any precondition such as an active chart with a selected symbol. The listed fields hint at the return payload but do not fully specify it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters and 100% schema description coverage, so the baseline is 4. The description adds context that the operation is scoped to the 'current symbol', which is the only relevant semantics; there are no parameter details needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the explicit verb 'Get' and identifies a specific resource, the current symbol's metadata, while listing the fields returned. It is not a tautology, but it does not explicitly compare itself to sibling tools such as symbol_search or quote_get, so it stops short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'current symbol' implies the tool should be used when a symbol is already loaded or selected, but there is no explicit when-to-use guidance, no exclusions, and no mention of alternatives like symbol_search or quote_get. The usage context is therefore only implied, not stated.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
expect_titleNoThe active tab title must contain this, otherwise nothing is closed. Use tab_list first to see the titles.
discard_unsavedNoAnswer TradingView unsaved-layout-changes dialog with "Close without saving" and LOSE those changes. Without this the tab stays open and the dialog is dismissed. "Save and close" is never clicked for you.

TDQS

A4.7/5.0
Behavior5/5

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 explicitly states that closing cannot be undone, that the tool names the tab before closing, and that it refuses when no tab is marked active. This is exactly the safety-relevant behavior an agent needs 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tightly written sentences, all carrying useful information: scope, refusal behavior, and irreversibility guidance. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Together with the schema, the description covers scope, failure conditions, destructiveness, and unsaved-changes handling. The tool names the tab it is about to close, so the lack of an explicit output schema is not a meaningful gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both parameters are fully documented in the schema, so the baseline is 3. The description adds meaningful value by explaining when expect_title matters due to irreversibility, effectively tying that parameter to safe invocation. The discard_unsaved behavior is already thoroughly covered in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with an unambiguous verb and resource: "Close the currently active chart tab." It distinguishes the tool from sibling tab tools by making the close action and active-tab scope explicit, so an agent can select it without confusion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly states the tool operates only on the active tab and tells agents to pass expect_title when closing the right tab matters. It doesn't explicitly contrast with tab_switch or tab_list, but the scoping and safety guidance provide enough context for correct use.

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The 'List' verb implies a read-only operation, but with no annotations, the description carries the burden of disclosing behavior. It does not clarify scope (e.g., all windows vs current window) or whether the response is a simple array or includes tab metadata. For a trivial zero-parameter list 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single clear sentence with no filler. It front-loads the verb and object, making it easy to scan. Nothing extraneous is included.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is a zero-parameter list operation, so minimal description is needed. However, without an output schema, the description does not specify the return shape or any edge cases (e.g., no open tabs). This is a minor gap given the simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so there is nothing to explain. With an empty input schema, the description need not add parameter details. The baseline for zero-parameter tools applies here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') and a precise resource ('open TradingView chart tabs'). It clearly distinguishes from sibling tab management tools like tab_new, tab_close, and tab_switch, and from layout_list, since it targets chart tabs specifically. The purpose is immediately understandable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 instead of alternatives. It does not mention that tab_list is the read-only counterpart to tab_new/tab_close/tab_switch, nor does it reference layout_list or other list tools. The agent must infer the use case from the name.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoSymbol name to enter when layout is "new"
layoutNoSaved layout name or "new" for a blank chart

TDQS

A3.7/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
indexYesTab index (0-based, from tab_list)

TDQS

B3.3/5.0
Behavior3/5

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 the core action ('switch to a chart tab') but does not mention side effects, invalid-index behavior, or whether the switch modifies UI state beyond selection. For a simple navigation action, this is minimally acceptable 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one short sentence with no filler. It names the action, target, and index basis efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool, the description and schema together are functionally adequate. However, there is no mention of error conditions, prerequisites, or return behavior, and no annotations exist to fill those gaps, leaving the context only minimally complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already fully documents the only parameter, including its 0-based indexing and relationship to tab_list. The description adds no extra meaning beyond what the schema provides, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb ('Switch'), a resource ('chart tab'), and the selection method ('by index'). It is unambiguous about what the tool does, though it does not explicitly contrast itself with sibling tools like tab_list, tab_new, or layout_switch.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance about when to prefer this tool over alternatives such as layout_switch or ui_click. The parameter schema hints that the index comes from tab_list, but the description itself does not provide usage 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_capability_matrixB

Map every TVControl tool to its required TradingView APIs and report which tools are currently available or blocked.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNoBypass the short compatibility cache (default false)
probeNoProbe the live TradingView runtime (default true)

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionNoAction (default compare)
overwriteNoReplace an existing version baseline when recording (default false)

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must carry the behavioral disclosure burden. 'Report' implies a read-only, non-mutating operation, but it does not clarify side effects, response format, or whether this performs a live network scan. It is adequate but minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, grammatically complete sentence delivers the tool's purpose with no filler. The key verb and resource appear immediately, and every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter discovery tool with no output schema, the description communicates enough to know what the call will return: available paths and their HTTP methods. It lacks detail about output structure or edge cases, but those are less critical for a simple introspection tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 add parameter-level meaning, and no parameter documentation gaps exist.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Report') and a specific resource ('known TradingView API paths') and states what is output (availability and methods). It clearly distinguishes itself from siblings like tv_health_check, which implies status checking rather than endpoint discovery.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use tv_discover versus alternatives such as tv_health_check or get_status. The description does not mention prerequisites, expected scenarios, or any exclusions.

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
portNoCDP port 1-65535 (default 9222)
kill_existingNoExplicitly kill existing TradingView instances first (default false). This can discard unsaved TradingView state.

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
paneNoPane index to repair (from tv_chart_health). Omit to repair every affected pane.
dry_runNoReport what would be removed without changing anything.

TDQS

A5/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
telemetry_linesNoRecent bounded telemetry records to include (default 100)

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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 communicates a read-only 'get' behavior and names the state categories returned, which is useful. However, it does not disclose whether a live UI session is required, whether the call has side effects, or what error conditions might exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one efficient sentence. It front-loads the core action and resource ('Get current UI state') and then provides brief, relevant specifics about panels and button states, with no filler or redundant content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read-only state tool, the description is largely complete: it tells an agent what to expect conceptually. The main gap is that there is no output schema and the description does not specify the exact return representation or possible error conditions, but the tool's simplicity keeps this from being a major deficiency.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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. There is no parameter surface for the description to clarify, and the description instead adds value by explaining what aspects of UI state are covered.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get') and direct resource ('current UI state'), then adds concrete details about what that includes: open panels and visible/enabled/disabled buttons. This clearly differentiates it from mutating siblings like ui_click or ui_open_panel, which change the UI rather than report on it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool should be used when an agent needs to inspect current UI conditions rather than change them. However, it never explicitly states when to use this tool versus similar state-reading tools like chart_get_state, replay_status, or get_status, and it does not mention any prerequisites or exclusions.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMost recent transitions to return (default 100, max 500)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
interval_msNoSampling interval in milliseconds (default 15000)

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
byYesSelector strategy
valueYesValue to match against the chosen selector strategy

TDQS

B3.1/5.0
Behavior2/5

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 says 'Click' without addressing side effects, waits, visibility requirements, failure behavior, or what happens if multiple elements match. For a UI automation tool this is a meaningful gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no filler. Every phrase adds information about the tool's function or selector options, and it is easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter action tool, the description plus schema captures the core invocation. However, it omits important operational context such as whether the element must be visible, what happens on failure, and how this relates to mouse-coordinate clicking. It is minimally viable but not rich.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents both parameters with 100% coverage, including the enum values for 'by'. The description essentially restates the selector strategies rather than adding new meaning. Baseline 3 is appropriate because the schema handles the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Click') and the resource ('a UI element'), and specifies the selector strategies: aria-label, data-name, text content, or class substring. It does not explicitly distinguish ui_click from the sibling ui_mouse_click, but the selector-based approach gives useful differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 ui_mouse_click, ui_hover, or ui_find_element. There is no mention of prerequisites, fallback strategies, or contexts where selector-based clicking is appropriate.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesText content, aria-label value, or CSS selector to search for
strategyNoSearch strategy (default: text)

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It states that it finds elements and returns positions, which implies a read-only operation, but it does not disclose potential side effects, error behavior (e.g., what happens if no element is found), or whether it returns multiple matches or only the first. It does not specify the format of the positions (e.g., coordinates). These are gaps, but for a simple find operation, it is minimally adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the verb and resource, and states the output. It wastes no words and is easy to parse. It earns its sentence without fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with only two parameters and no output schema, the description covers the core functionality well. It tells what it does and that it returns positions. However, it leaves ambiguity about the return format, whether it finds all matches or just the first, and error behavior. These are minor gaps given the tool's simplicity, but it could be more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides descriptions for both parameters: query (text, aria-label, or CSS selector) and strategy (with enum). The description does not add any new meaning beyond the schema. Since schema coverage is 100%, the baseline of 3 is appropriate; the description does not need to compensate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (find), the target (UI elements), and the search methods (text, aria-label, CSS selector). It also mentions the output (positions), which distinguishes it from sibling tools like ui_click or ui_hover that perform actions. The verb 'find' is specific and differentiates it from other UI tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for locating elements before interacting with them, but it does not explicitly state when to use this tool versus alternatives. It does not mention that it should be used before ui_click or ui_hover, nor does it provide exclusions or alternative tool names. The context of it being a search/find operation is clear, but the guidance is not explicit.

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of explaining behavior. It does convey the state-changing and reversible nature of a toggle, but it does not mention side effects, return values, or how the current fullscreen state might interact with the toggle. 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, compact sentence with no filler. Every word contributes meaning, and the operation is fully stated up front.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless toggle, the description is functionally complete: an agent knows what action to perform and that no arguments are required. It lacks extra context such as querying state before toggling, but the simplicity of the operation keeps the gap small.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there are no semantics for the description to clarify. The baseline of 4 applies because no parameter information is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Toggle') and a clear resource ('TradingView fullscreen mode'), leaving no ambiguity about the operation. It also stands apart from the sibling UI tools, none of which mention fullscreen control.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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, when it is appropriate, or what conditions precede calling it. The agent must infer usage solely from the tool name and description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ui_hoverA

Hover over a UI element by aria-label, data-name, or text content

ParametersJSON Schema
NameRequiredDescriptionDefault
byYesSelector strategy
valueYesValue to match

TDQS

A3.5/5.0
Behavior2/5

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 disclosure. It does not explain potential side effects like triggering tooltips or hover menus, whether the element must be visible, or what happens when the element is not found.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, tightly worded sentence with no filler. The action, resource, and selector strategies are all front-loaded and clearly conveyed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple two-parameter action, but thin overall. With no output schema and no annotations, the agent receives no information about return values, failure behavior, or hover-induced UI changes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 partially restates the 'by' enum but omits 'class-contains', and adds no extra meaning beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Hover') and a clear resource ('a UI element'), and enumerates the main selector strategies. It is immediately distinguishable from sibling tools like ui_click or ui_scroll.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The verb implies when to use the tool: whenever a hover interaction is needed. However, it gives no explicit guidance on when not to use it, no prerequisites, and no comparison with alternative UI interaction tools.

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)

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesKey to press (e.g., "Enter", "Escape", "Tab", "a", "ArrowUp")
modifiersNoModifier keys to hold (e.g., ["ctrl", "shift"])

TDQS

B3.2/5.0
Behavior2/5

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 simply states the action without explaining important contextual behavior, such as whether the key press requires an active/focused element, whether it waits for the UI to respond, what happens on failure, or whether shortcuts are system-dependent. This is minimal transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, economical sentence that immediately states the action and provides useful examples. It is well front-loaded and contains no filler or redundant restatement of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description and schema together cover the basic 'what' and 'how' for a simple two-parameter tool, and no output schema exists to explain return values. However, the missing usage guidance and the ambiguous handling of composite shortcuts leave the agent without enough context to reliably select and invoke the tool in all cases, especially in a UI-automation context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description's shortcut examples like 'Alt+S' and 'Ctrl+Z' may actually mislead an agent into passing the combined shortcut as the key parameter instead of separating key ('s') and modifiers (['alt']). The description does not clarify that modifier keys should be decomposed into the modifiers array, which undermines the otherwise clear schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Press') and a specific resource ('keyboard keys or shortcuts'), with concrete examples like Enter, Escape, Alt+S, and Ctrl+Z. This clearly distinguishes the tool from sibling mouse-oriented tools like ui_click and ui_mouse_click, and from text-entry tools like ui_type_text.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to choose this tool over alternatives. For example, it does not say to use ui_type_text for entering text, ui_click for mouse interactions, or ui_hover for hovering. The only implication is that this tool handles keyboard input, but there is no explicit 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.

ui_mouse_clickB

Click at specific x,y coordinates on the TradingView window

ParametersJSON Schema
NameRequiredDescriptionDefault
xYesX coordinate (pixels from left)
yYesY coordinate (pixels from top)
buttonNoMouse button (default left)
double_clickNoDouble click (default false)

TDQS

B3.1/5.0
Behavior2/5

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 does not mention coordinate system details, viewport vs window coordinates, focus requirements, side effects of clicking, or whether the action performs a real OS-level click versus an internal UI event.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one efficient sentence with no filler. It front-loads the essential action and target without repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 4-parameter action, the description is mostly adequate, but it leaves out coordinate-system semantics and relation to ui_click. Given the low tool complexity and complete schema, this is acceptable but not fully self-sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all four parameters. The description adds minimal semantic value beyond restating that x,y coordinates are used; it does not clarify coordinate origin, units, or interactions between button and double_click.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Click') and resource ('specific x,y coordinates on the TradingView window'). It is clear, though it does not explicitly distinguish itself from the sibling 'ui_click' tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 over alternatives like ui_click or ui_hover. The context implies coordinate-based clicking, but exclusions and alternatives are not stated.

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)

ParametersJSON Schema
NameRequiredDescriptionDefault
panelYesPanel name
actionYesAction to perform

TDQS

B3.4/5.0
Behavior2/5

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 reveals the basic actions but does not mention what happens if the panel is already in the requested state, whether opening one panel closes another, or whether TradingView needs to be loaded first. This is minimal behavioral transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one efficient sentence with zero filler. It front-loads the action verbs and resource, then lists concrete panel types, giving the agent all necessary high-level information in compact form.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with only two enum-constrained parameters and no output schema, this description is mostly sufficient. It names the target resource, the valid actions, and the panel identifiers. A brief note about prerequisites or state-dependent behavior would round it out, but nothing critical is missing for basic invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully documents both parameters: each has an enum constraint and a description. The description's list of panel names duplicates the schema values and adds no additional meaning about parameter formats, defaults, or interactions. Since schema coverage is 100%, a baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific action set (open/close/toggle) and an explicit resource (TradingView panels), enumerating the supported panels. However, the sibling tool `open_panel` exists and the description does not clarify how `ui_open_panel` differs from it, so it doesn't fully distinguish itself within the tool family.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The purpose statement implicitly tells an agent to use this tool when a TradingView panel needs to be opened, closed, or toggled. There is no explicit when/when-not guidance and no mention of alternatives like `open_panel`, `tv_ui_state`, or `ui_click`, but for a simple UI manipulation tool the implied usage is reasonably clear.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
amountNoScroll amount in pixels (default 300)
directionYesScroll direction

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full responsibility for disclosing behavior. It only states the purpose, not any behavioral traits like whether scrolling is animated, affects the time or price axis, or depends on focus. There's no mention of side effects or limitations, which is a notable gap for a UI interaction tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that directly states the tool's function without any clutter. It is appropriately front-loaded with the verb and target, and every word contributes to the meaning. Ideal conciseness for a simple operation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is relatively simple, and the schema covers parameters. However, the description omits contextual details such as whether it operates on the currently focused pane, how it interacts with page scroll, or what happens when the scroll limit is reached. Given the existence of many UI tools, a bit more context would help, but it's adequate for basic usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, documenting both 'amount' (with default) and 'direction' (with enum). The description adds no extra meaning beyond the schema, which is the baseline for high coverage. No additional context is provided that would clarify parameter interplay.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (scroll), the target (chart or page), and the directions (up/down/left/right). It distinguishes itself from siblings like ui_click or chart_scroll_to_date by being a generic scroll operation, and the enum in the schema reinforces the four directions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 (e.g., an open chart), which context it applies to, or any exclusions. An agent has to infer that this is the general scrolling tool among the many UI utilities.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText to type into the focused element
expect_focusNoPin 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

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesExchange-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

A3.6/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolsYesExchange-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

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_createA

Create a NEW named watchlist, optionally populated in one call. Use this to build a user a list from scratch - watchlist_import and watchlist_add_bulk only write into whichever list is already active, so neither can make one. Returns the new id; pin by id, never by name.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName for the new watchlist, e.g. "TC-TIDE"
symbolsNoExchange-prefixed symbols to populate it with, e.g. ["NASDAQ:AAPL","NYSE:GE"]. Duplicates are collapsed.
allow_duplicate_nameNoCreate it even when a list of that name already exists (default false). Names are not unique on TradingView and a duplicate cannot be told apart by name afterwards.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It clearly discloses that the tool creates a new list, optionally populates it, returns the new id, and warns against by-name references. It does not discuss duplicate-name behavior beyond what the schema covers, but the return-value and identity caveats are meaningful behavioral disclosures.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with no filler: the primary action and scope come first, then the sibling differentiation, then the return-value caveat. Every sentence earns its place and the most important guidance is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a three-parameter tool with no output schema and no annotations, the description plus schema covers all needed invocation knowledge: what it does, when to use it, the return id, and the pin-by-id caution. No critical gap remains for an agent to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the input schema already documents all three parameters with examples and defaults. The description adds no additional parameter-level meaning beyond framing the purpose, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Create a NEW named watchlist, optionally populated in one call.' It also distinguishes itself from sibling tools by noting that watchlist_import and watchlist_add_bulk cannot make a new list, only write into an already active one.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit when-to-use guidance: 'Use this to build a user a list from scratch' and names the alternatives that are not appropriate for this purpose. The note 'pin by id, never by name' adds practical invocation guidance beyond basic selection.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathNoDestination path (default: ~/.tv-mcp/watchlists/watchlist-<timestamp>.json)

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_get_by_idA

Get one watchlist's membership by explicit id (or exact name). This is what a universe scan should use - it is verifiable, where "active" is not. Refuses rather than guessing when a name matches more than one list.

ParametersJSON Schema
NameRequiredDescriptionDefault
name_or_idYesWatchlist id (preferred) or exact name, from watchlist_list

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral transparency burden. It discloses a key behavioral trait: "Refuses rather than guessing when a name matches more than one list," and explains that results are verifiable unlike the 'active' designation. It does not explicitly state read-only behavior or describe error cases for missing ids, but the 'Get' verb and membership framing imply a non-mutating lookup.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences carry the core purpose, usage context, and a critical behavioral caveat. Every clause earns its place, and the main action is front-loaded before the scoping guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read tool with no output schema, the description is nearly complete: it explains what is returned conceptually (membership), how to identify the watchlist, when to prefer it, and how it handles ambiguity. It doesn't describe the exact return format or response for missing ids, but the simplicity of the operation makes this a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the schema already explains the parameter as "Watchlist id (preferred) or exact name, from watchlist_list." The description's phrase "explicit id (or exact name)" reinforces the schema but does not add materially new semantic detail, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action and resource: "Get one watchlist's membership by explicit id (or exact name)." It also distinguishes this tool from the 'active' watchlist concept, which separates it from sibling watchlist_get without needing to open any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use this tool: "This is what a universe scan should use - it is verifiable, where 'active' is not." It contrasts with the alternative 'active' watchlist and adds a concrete behavioral rule about refusing on ambiguous name matches, giving an agent clear decision criteria.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNomerge = add missing symbols; replace = sync list to filemerge
dry_runNoPreview changes without modifying the watchlist
file_pathYesPath to the JSON file previously exported by watchlist_export

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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_listA

List every custom watchlist on the account with its id, name and symbol count. Use this before scanning: watchlist_get answers "whatever is active", which can name a different list than the panel is showing. Names are not unique, so resolve by id.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

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 tool's scope (all custom watchlists on the account), its output fields, and a notable behavioral caveat about non-unique names. While it doesn't discuss side effects or errors, 'List' clearly signals a read-only operation and the caveat adds meaningful behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences with no filler. It front-loads the core purpose, then adds actionable usage guidance and a crucial resolution hint. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless list tool, the description is complete: it defines the output fields, provides when-to-use context, and warns about the key pitfall with non-unique names. There is no output schema, but the description sufficiently covers return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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. Per the baseline for zero-parameter tools, this is adequately handled; the description focuses on output rather than inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('List'), a clear resource ('every custom watchlist on the account'), and the exact output fields ('id, name and symbol count'). This clearly differentiates it from sibling tools like watchlist_get and watchlist_get_by_id.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit usage context: 'Use this before scanning'. It also contrasts with watchlist_get, explaining the active-list ambiguity and directing the agent to resolve by id because names are not unique. This is strong routing guidance.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesSymbol to remove (e.g., AAPL)

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolsYesSymbols to remove

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

  1. 14 tool updatesv2.5.3
    • Changedbatch_run2 fields changed
      • changedInput schema / properties / action / enum
        Previous value: -[
        -  "screenshot",
        -  "get_ohlcv",
        -  "get_strategy_results",
        -  "get_study_values"
        -]New value: +[
        +  "screenshot",
        +  "get_ohlcv",
        +  "get_strategy_results",
        +  "get_study_values",
        +  "get_pine_tables"
        +]
      • addedInput schema / properties / study_filter
        Added value: +{
        +  "description": "For get_pine_tables: substring matching the indicator whose table to read. Omit for all.",
        +  "type": "string"
        +}
    • Changedcapture_screenshot2 fields changed
      • addedInput schema / properties / allow_hidden
        Added value: +{
        +  "description": "Capture even when the tab is hidden. The image may be a stale frame: only pass this if you have accepted that.",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / region / description
        Previous value: -"Region to capture: full, chart, strategy_tester (default full)"New value: +"Region to capture: full, chart, strategy_tester (default full). \"chart\" targets the focused pane."
    • Changeddraw_shape1 field changed
      • changedInput schema / properties / shape / description
        Previous value: -"Shape type: horizontal_line, vertical_line, trend_line, rectangle, text"New value: +"Shape type. Verified on Desktop 3.3.0: horizontal_line, vertical_line, horizontal_ray, ray, cross_line, trend_line, rectangle, text, note, callout, balloon, price_label, arrow_up, arrow_down, flag, long_position, short_position, fib_retracement, anchored_vwap, fixed_range_volume_profile. An unknown name is refused, not silently drawn as a flag. For long_position/short_position, overrides takes stopLevel and profitLevel IN TICKS plus riskDisplayMode and alwaysShowStats, and TradingView computes the R:R itself."
    • Addedindicator_get_inputs
    • Addedlayout_create
    • Addedlayout_get_active
    • Addedlayout_save
    • Addedpine_get_script_source
    • Changedpine_open2 fields changed
      • addedInput schema / properties / confirm_overwrite
        Added value: +{
        +  "description": "Required to replace a buffer that holds real work. Without it the call is refused rather than destroying unsaved code, same as pine_new and pine_set_source.",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / name / description
        Previous value: -"Name of the saved script to open (case-insensitive match)"New value: +"Name of the saved script to open (case-insensitive; exact name or title wins, an ambiguous substring is refused with candidates)"
    • Changedreplay_start1 field changed
      • addedInput schema / properties / allow_relocation
        Added value: +{
        +  "description": "Accept a cursor TradingView moved to a different date because the requested one is outside replay depth. The result still carries relocated:true and the real current_date.",
        +  "type": "boolean"
        +}
    • Changedtab_close1 field changed
      • addedInput schema / properties / discard_unsaved
        Added value: +{
        +  "description": "Answer TradingView unsaved-layout-changes dialog with \"Close without saving\" and LOSE those changes. Without this the tab stays open and the dialog is dismissed. \"Save and close\" is never clicked for you.",
        +  "type": "boolean"
        +}
    • Addedwatchlist_create
    • Addedwatchlist_get_by_id
    • Addedwatchlist_list
  2. 16 tool updatesv2.3.0
    • Changedalert_create2 fields changed
      • addedInput schema / properties / frequency
        Added 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"
        +}
      • addedInput schema / properties / resolution
        Added 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"
        +}
    • Addedalert_create_bulk
    • Changedbatch_run2 fields changed
      • changedInput schema / properties / action / description
        Previous 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."
      • changedInput schema / properties / action / enum
        Previous value: -[
        -  "screenshot",
        -  "get_ohlcv",
        -  "get_strategy_results"
        -]New value: +[
        +  "screenshot",
        +  "get_ohlcv",
        +  "get_strategy_results",
        +  "get_study_values"
        +]
    • Changedindicator_toggle_visibility2 fields changed
      • changedInput schema / properties / visible / description
        Previous value: -"true to show, false to hide"New value: +"true to show, false to hide. OMIT to flip whatever the current state is."
      • changedInput schema / required
        Previous value: -[
        -  "entity_id",
        -  "visible"
        -]New value: +[
        +  "entity_id"
        +]
    • Changedlayout_switch1 field changed
      • addedInput schema / properties / discard_unsaved
        Added 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"
        +}
    • Changedpine_list_scripts3 fields changed
      • addedInput schema / properties / limit
        Added value: +{
        +  "default": 50,
        +  "description": "Max scripts to return (default 50, max 200)",
        +  "maximum": 200,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • addedInput schema / properties / name_filter
        Added value: +{
        +  "description": "Case-insensitive substring match on script name/title. Use this when you know roughly what you are looking for.",
        +  "type": "string"
        +}
      • addedInput schema / properties / offset
        Added value: +{
        +  "default": 0,
        +  "description": "Skip this many matches, for paging",
        +  "maximum": 9007199254740991,
        +  "minimum": 0,
        +  "type": "integer"
        +}
    • Changedpine_new2 fields changed
      • addedInput schema / properties / confirm_overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Required when the editor already holds real content. Read it with pine_get_source first.",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / type / description
        Previous value: -"Type of script to create"New value: +"Template to write into the editor"
    • Changedpine_set_source1 field changed
      • addedInput schema / properties / confirm_overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Required when the editor already holds real content. Read it with pine_get_source first.",
        +  "type": "boolean"
        +}
    • Addedquote_batch
    • Changedreplay_autoplay2 fields changed
      • addedInput schema / properties / enabled
        Added value: +{
        +  "description": "true to start autoplay, false to stop it. Omit to flip the current state.",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / speed / description
        Previous 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."
    • Changedtab_close1 field changed
      • addedInput schema / properties / expect_title
        Added value: +{
        +  "description": "The active tab title must contain this, otherwise nothing is closed. Use tab_list first to see the titles.",
        +  "type": "string"
        +}
    • Addedtv_chart_health
    • Addedtv_repair_chart
    • Changedui_type_text1 field changed
      • addedInput schema / properties / expect_focus
        Added 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"
        +}
    • Changedwatchlist_add1 field changed
      • changedInput schema / properties / symbol / description
        Previous 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."
    • Changedwatchlist_add_bulk1 field changed
      • changedInput schema / properties / symbols / description
        Previous 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."
  3. 101 tool updatesv2.2.1
    • First observedalert_create
    • First observedalert_delete
    • First observedalert_delete_by_id
    • First observedalert_list
    • First observedbatch_run
    • First observedcapture_screenshot
    • First observedchart_get_state
    • First observedchart_get_visible_range
    • First observedchart_manage_indicator
    • First observedchart_scroll_to_date
    • First observedchart_set_symbol
    • First observedchart_set_timeframe
    • First observedchart_set_type
    • First observedchart_set_visible_range
    • First observedchart_vision_read
    • First observeddata_get_equity
    • First observeddata_get_indicator
    • First observeddata_get_ohlcv
    • First observeddata_get_pine_boxes
    • First observeddata_get_pine_labels
    • First observeddata_get_pine_lines
    • First observeddata_get_pine_tables
    • First observeddata_get_strategy_results
    • First observeddata_get_study_values
    • First observeddata_get_trades
    • First observeddepth_get
    • First observeddraw_clear
    • First observeddraw_get_properties
    • First observeddraw_list
    • First observeddraw_remove_one
    • First observeddraw_shape
    • First observedindicator_add_from_search
    • First observedindicator_search
    • First observedindicator_set_inputs
    • First observedindicator_toggle_visibility
    • First observedlayout_list
    • First observedlayout_switch
    • First observedpane_focus
    • First observedpane_list
    • First observedpane_set_layout
    • First observedpane_set_symbol
    • First observedpine_analyze
    • First observedpine_check
    • First observedpine_compile
    • First observedpine_get_console
    • First observedpine_get_errors
    • First observedpine_get_source
    • First observedpine_list_scripts
    • First observedpine_new
    • First observedpine_open
    • First observedpine_save
    • First observedpine_set_source
    • First observedpine_smart_compile
    • First observedquote_get
    • First observedreplay_autoplay
    • First observedreplay_start
    • First observedreplay_status
    • First observedreplay_step
    • First observedreplay_stop
    • First observedreplay_trade
    • First observedstate_delete
    • First observedstate_list
    • First observedstate_restore
    • First observedstate_snapshot
    • First observedstrategy_sweep
    • First observedsymbol_info
    • First observedsymbol_search
    • First observedtab_close
    • First observedtab_list
    • First observedtab_new
    • First observedtab_switch
    • First observedtv_capability_matrix
    • First observedtv_compatibility_check
    • First observedtv_compatibility_snapshot
    • First observedtv_discover
    • First observedtv_health_check
    • First observedtv_launch
    • First observedtv_support_bundle
    • First observedtv_ui_state
    • First observedtv_update
    • First observedtv_watchdog_history
    • First observedtv_watchdog_sample
    • First observedtv_watchdog_start
    • First observedtv_watchdog_status
    • First observedtv_watchdog_stop
    • First observedui_click
    • First observedui_find_element
    • First observedui_fullscreen
    • First observedui_hover
    • First observedui_keyboard
    • First observedui_mouse_click
    • First observedui_open_panel
    • First observedui_scroll
    • First observedui_type_text
    • First observedwatchlist_add
    • First observedwatchlist_add_bulk
    • First observedwatchlist_export
    • First observedwatchlist_get
    • First observedwatchlist_import
    • First observedwatchlist_remove
    • First observedwatchlist_remove_bulk

TDQS

B3.1/5.0

Scored across 113 tools

Disambiguation2/5

The tool set is organized into clear resource prefixes, but several tools have overlapping boundaries: pine_compile vs pine_smart_compile, chart_manage_indicator vs indicator_add_from_search, data_get_indicator vs data_get_study_values, and multiple tv_* health/compatibility checks. While individual descriptions are unusually explicit, the sheer number of near-synonym pairs (plus watchlist_add_bulk/import/create and batch_run/strategy_sweep) makes mis-selection likely.

Naming Consistency4/5

Most tools follow a consistent resource_action pattern (chart_set_symbol, watchlist_create, alert_create_bulk, replay_start, draw_remove_one, state_snapshot). Minor deviations like quote_get/depth_get, tv_discover, ui_keyboard, and pine_new/pine_open break the pattern slightly, but the prefixes make the set predictable overall.

Tool Count1/5

113 tools is far beyond the 50+ threshold and creates an unwieldy surface even for a desktop automation server. The broad domain justifies many categories, but the count is excessive and should be split into focused sub-servers.

Completeness4/5

The server covers an impressive breadth: chart state, watchlist CRUD, Pine editing/compilation, alerts, replay, drawings, layouts, tabs, panes, UI automation, diagnostics, and strategy sweeps. Minor lifecycle gaps exist (no layout_delete, watchlist_delete, or alert_update), but these are workarounds rather than dead ends.

Maintenance

ActivityActive
ResponsivenessSlow

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    A 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.
    11
    99 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Controls 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
  • F
    license
    Not graded
    quality
    C
    maintenance
    An 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.
    99 npm
    -