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 112 chart-control and diagnostic tools to any AI agent that supports the Model Context Protocol (Claude Code, Codex, Gemini CLI, Cursor, and others). 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.

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

What is new in 2.3.0

Version 2.3.0 is about doing a thing once across everything you watch, instead of once per symbol.

  • Set alerts on your whole watchlist in one call. alert_create_bulk takes a list of symbols, or no list at all and uses your active watchlist. Point them all at one webhook_url and the notifications go to your app instead of 74 separate emails. Price each one relative to its own last trade with percent_from_last, so "5% above here" means something different for every symbol and you never type a number. dry_run: true prints the whole batch first. Measured on a 29-symbol watchlist: the dry run takes about half a second, and the chart never moves.

  • Quote a whole list at once. quote_batch returns last, OHLC, change and volume for many symbols in a single server-side call. 29 symbols in 272ms. It names the symbols it could not find rather than quietly returning a shorter list.

  • A destructive Pine bug is fixed. pine_new replaced whatever was in the editor with a template and reported new_script_created. It did not create anything, and it is how a real script gets destroyed. It now refuses to overwrite a non-trivial buffer unless you pass confirm_overwrite: true, and it fails closed if it cannot read the buffer to check.

  • Silent success is gone from the mutation tools. A tool that changes something now builds its answer from an independent read, not from the response of the thing it just did. Deleting an alert id that never existed used to return success: true, verified: true. Adding a bare ticker to a watchlist used to store the literal string. draw_clear used to return a hardcoded all_shapes_removed without looking.

  • A broken pane is now detectable and repairable. A chart pane could get stuck in a permanent reconnect loop, and rebuilding the layout by hand looked like the only fix. It was a race in TVControl: TradingView returns Promises from createStudy and friends, and reading the result after a fixed sleep instead of awaiting them could leave a study with no server id, which destroys that pane's data session on every reconnect from then on. The promises are awaited now, an unregistered study is never left behind, and tv_chart_health and tv_repair_chart find and fix a pane that is already in that state without touching your layout.

  • The offline suite is actually offline. It was opening a live CDP connection and calling removeAllShapes() against the real chart on every run. It is hermetic now, and a guard makes the next escape a red test rather than a lost drawing.

  • The server no longer misdescribes itself. Version and tool counts are derived at startup and checked on the wire, after shipping a build that announced itself as 2.2.1 with 102 tools while registering 103.

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 Claude Code (or your MCP-compatible agent of choice) once TVControl is wired up.

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/. Eight files. Copy-pasteable.


How it stays grounded (the proof)

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

  • 732 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, update safety, tool registration, and CLI routing. Live Pine-service checks are isolated in tests/pine_api.test.js.

  • 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. Claude Code, one prompt to install

Paste this into Claude Code once and let it do the rest.

Install the TVControl MCP server. Clone https://github.com/ferroxlabs/tvcontrol.git into ~/tvcontrol, run npm install, add it to my Claude Code MCP config at ~/.claude/.mcp.json as a server named tvcontrol pointing at ~/tvcontrol/src/server.js, then run tv_launch to start TradingView in debug mode and tv_health_check to confirm the connection.

Claude Code will clone, install, register the server, and verify. Restart Claude Code 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 config (~/.claude/.mcp.json for Claude Code, equivalent location for Codex / Gemini CLI / Cursor), replacing the path with your absolute path.

{
  "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.

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 / 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. Read that once if you want to understand how the agent picks tools.


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


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

105 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 full burden of behavioral disclosure. It states the action and the 'active' filter, which implies a read-only operation, but it does not explicitly mention that it is non-destructive, nor does it describe the output format or any limitations. This is minimal but not misleading.

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

Conciseness5/5

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

The description is exceptionally concise—just three words—with every word contributing meaning. It is front-loaded and free of any wasted text, embodying ideal conciseness for a simple tool.

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

Completeness3/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 (zero parameters, no output schema), the description is adequate for basic understanding. However, it does not clarify what constitutes an 'active' alert, what fields are returned, or whether there are any pagination or sorting defaults. It is sufficient for a simple list but leaves minor gaps.

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

Parameters4/5

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

The tool has zero parameters, so per the rubric the baseline is 4. The description adds contextual meaning by specifying 'active alerts', which scopes the listing operation. There are no parameter details needed since the schema is already empty and complete.

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

Purpose5/5

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

The description 'List active alerts' clearly states the operation (list) and the resource (active alerts), distinguishing it from sibling tools like alert_create and alert_delete that handle alert mutations. The specific scope 'active alerts' adds precision.

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

Usage Guidelines3/5

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

The description implies usage for retrieving current alerts, but it does not explicitly state when to use this tool versus alternatives such as alert_create or alert_delete. No when-not-to-use or alternative guidance is provided, leaving the usage context implied by the verb and resource.

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

batch_runC

Run an action across multiple symbols and/or timeframes

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)
restore_start_stateNoRestore the starting chart symbol/timeframe in a guaranteed cleanup path (default true)

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 full burden of behavioral disclosure. It only states the basic function without revealing side effects (e.g., that it likely changes the chart symbol/timeframe during iteration, as hinted by the restore_start_state parameter) or the sequential execution with delay. These are only visible in parameter descriptions, not in the main tool description.

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

Conciseness4/5

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

The description is a single, unambiguous sentence that is front-loaded with the core action. It is appropriately concise and contains no fluff, though it omits details that would improve other dimensions.

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

Completeness2/5

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

For a tool with 7 parameters, 2 required, no output schema, and no annotations, a one-sentence description is insufficient. It does not explain what the tool returns, how iterations behave (delays, state restoration), or any prerequisites. An agent would need to rely heavily on the schema and context to use it correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so a baseline of 3 is appropriate. The description itself adds no parameter detail; however, the schema already provides rich semantics, including the action enum with a note about get_study_values for universe scans. The description adds no extra value beyond the schema.

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

Purpose4/5

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

The description uses a clear verb ('Run') and resource ('an action across multiple symbols and/or timeframes'), which distinguishes it from the single-symbol/timeframe sibling tools like data_get_ohlcv and data_get_study_values. It does not enumerate the specific actions, but the schema names them, so the purpose is reasonably clear.

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

Usage Guidelines2/5

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

The description gives no guidance on when to prefer batch_run over calling the underlying single-action tools repeatedly, nor does it mention any trade-offs, such as rate limiting or the sequential delay. The intended context is only inferred from the name and schema.

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

capture_screenshotA

Take a screenshot of the TradingView chart

ParametersJSON Schema
NameRequiredDescriptionDefault
methodNoCapture method: cdp (Page.captureScreenshot) or api (chartWidgetCollection.takeScreenshot) (default cdp)
regionNoRegion to capture: full, chart, strategy_tester (default full)
filenameNoCustom filename (without extension)
wait_for_renderNoWait for the chart canvas to stabilize before capture

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 the full burden of behavioral disclosure. 'Take a screenshot' implies a non-destructive read operation, but it does not explain what happens to the image (e.g., saved to disk, returned as base64), whether it blocks until complete, or how the wait_for_render parameter affects the outcome. This is a significant gap for an agent invoking the tool.

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

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 conveys the core action efficiently and is easy to parse.

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

Completeness2/5

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

With no output schema and no annotations, the description leaves out critical details such as return format, file saving behavior, and potential side effects. For a tool with four parameters and a rendering wait option, more context is needed for an agent to fully understand the tool's impact and output.

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

Parameters3/5

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

The schema describes all four parameters (method, region, filename, wait_for_render) with clear descriptions, giving 100% coverage. The tool description adds no additional meaning beyond the schema, so the baseline of 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb 'take' with a clear resource 'screenshot of the TradingView chart'. It clearly distinguishes from sibling tools like chart_get_state (state reading) and chart_vision_read (visual analysis), which are not capture tools.

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

Usage Guidelines4/5

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

The description makes the intended usage obvious: use this tool to capture a chart screenshot. No exclusions or alternatives are mentioned, but since no other sibling tool serves this exact purpose, the context is clear enough for selection.

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

chart_get_stateA

Get current chart state (symbol, timeframe, chart type, indicators)

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 full burden. It clearly implies a read-only operation via the verb 'Get', which is a behavioral disclosure, but it does not mention potential errors (e.g., no chart open), performance characteristics, or side effects. For a zero-parameter getter, this is adequate but not rich.

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

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 element (resource and fields) earns its place, making it highly efficient and scannable.

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

Completeness4/5

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

Given the low complexity (no parameters, no output schema), the description covers the key return values at a high level. However, it does not state whether the chart must be open or whether indicator details include settings/how they are returned, leaving minor ambiguity for invocation contexts.

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

Parameters4/5

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

The tool has zero parameters, so no parameter syntax is needed. The description adds value by conceptually defining what the returned state includes (symbol, timeframe, chart type, indicators), which helps the agent interpret results even without an output schema.

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

Purpose5/5

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

Description uses a specific verb ('Get') and resource ('current chart state') and enumerates the returned fields (symbol, timeframe, chart type, indicators). This clearly distinguishes it from sibling setter tools like chart_set_symbol and chart_set_timeframe, and from the more specific chart_get_visible_range.

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

Usage Guidelines2/5

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

The description provides no explicit guidance on when to use this tool versus alternatives. It implies a read operation, but does not differentiate from other getter tools such as tv_ui_state or chart_get_visible_range, nor does it give context like 'use when you need current chart settings before modifying them'.

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

chart_get_visible_rangeB

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

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 full burden. It discloses the core behavior (retrieving date and bars ranges) and implies a read-only operation through the verb 'Get.' However, it omits specifics such as whether unix timestamps are in seconds or milliseconds, whether the bars range is inclusive, and whether the returned values are in a particular format. These gaps limit the agent's ability to anticipate the exact output.

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

Conciseness5/5

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

The description is a single, concise sentence that directly states the tool's purpose without any redundant phrasing. Every word contributes to the meaning, making it highly efficient and easy to parse.

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

Completeness3/5

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

The tool has no output schema and no annotations, so the description must fully explain what the agent can expect. It states the two key pieces of data (date range and bars range) but does not describe the return structure, such as whether it is an object with specific field names. This ambiguity could lead to incorrect assumptions about the response format, making it only minimally complete.

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

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% by default. The description does not need to explain parameter meanings since none exist. The baseline of 4 is appropriate here because there is no parameter information to add beyond the schema.

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

Purpose4/5

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

The description uses a clear verb 'Get' and specifies the resource as 'visible date range (unix timestamps) and bars range on the chart.' This clearly conveys the tool's function as a getter for chart visible range data. It implicitly differentiates from sibling tools like chart_set_visible_range (which sets) and chart_scroll_to_date (which scrolls), though it does not explicitly name them.

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

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 only states what it does, with no context about typical use cases, prerequisites, or exclusions. For example, it does not mention that this tool is useful for capturing the current view before making changes or that it should be used instead of chart_get_state for range-specific queries.

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

chart_manage_indicatorB

Add or remove an indicator/study on the chart

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.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 must fully disclose behavior. It states that the chart view is centered on a date, implying a view mutation, but does not detail edge cases, prerequisites, or whether the visible range is adjusted. For a simple navigation action, this provides some transparency but lacks depth.

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

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, perfectly concise.

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 (1 parameter, no output schema), the description sufficiently explains the tool's function. It could benefit from noting prerequisites or behavior relative to sibling tools but is adequate for this scope.

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

Parameters3/5

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

The single parameter 'date' is fully documented in the schema with formats (ISO string or unix timestamp). The description does not add additional information about parameter semantics, so it meets the baseline for 100% schema coverage.

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

Purpose5/5

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

The description uses a specific verb 'jump' and 'center' with the resource 'chart view', clearly indicating the action of navigating to a date. This distinguishes it from other chart_* tools like chart_set_symbol or chart_set_timeframe.

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

Usage Guidelines3/5

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

The description implies usage for when the user wants to navigate the chart to a specific date but does not explicitly mention alternatives or exclusions. Context from sibling tools (e.g., chart_set_visible_range) might help but is not referenced in the description.

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

chart_set_symbolC

Change the chart symbol

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

TDQS

C2.7/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. It offers none—no mention of side effects, chart state changes, symbol validation, or whether the chart must be open. This is a complete lack of behavioral information.

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

Conciseness5/5

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

The description is a single sentence with no wasted words, front-loading the action clearly. It is appropriately concise for a simple tool with a single parameter.

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

Completeness2/5

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

Despite the tool's simplicity, the description lacks essential context: it does not mention that a chart must be active, what happens to the current symbol, or how the change affects other chart state. With no output schema or annotations, the description leaves notable gaps.

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

Parameters3/5

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

The input schema fully documents the 'symbol' parameter with examples, so schema description coverage is 100%. The description text adds no additional parameter semantics beyond the schema, which is acceptable given the baseline for high coverage.

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

Purpose4/5

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

The description clearly states the tool's action: changing the chart symbol. It uses a specific verb and resource, and is distinguishable from sibling tools like chart_set_timeframe and chart_set_type, though it closely mirrors the tool name itself.

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

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 such as symbol_search or pane_set_symbol. There are no prerequisites, exclusions, or context about when a symbol change is appropriate.

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

chart_set_timeframeB

Change the chart timeframe/resolution

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

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 full responsibility for behavioral disclosure. It indicates a mutating action ('Change') but does not mention potential side effects, idempotency, or whether the chart must be loaded or active. This is a significant gap for a tool with no annotation support.

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

Conciseness4/5

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

The description is a single, concise sentence with no redundancy. It is front-loaded with the core action, efficient, and easily parsed. However, it could be slightly more informative without sacrificing brevity, so it does not earn a 5.

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

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 well-documented parameter, so the minimal description is somewhat adequate. However, there are no annotations and no output schema, and the description does not mention any prerequisites (e.g., chart must be open) or confirm the absence of return values. For a mutating tool in a large sibling set, this is a moderate gap.

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

Parameters3/5

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

The input schema already covers the single parameter 'timeframe' with examples (1, 5, 15, 60, D, W, M), and schema coverage is 100%. The description adds no extra meaning beyond the schema, so the baseline of 3 is appropriate.

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

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 action: 'Change the chart timeframe/resolution'. It uses a specific verb ('Change') and resource ('chart'), and the object (timeframe/resolution) distinguishes it from sibling tools like chart_set_symbol or chart_set_type. The purpose is unambiguous.

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

Usage Guidelines3/5

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

The description implies usage (when you want to alter the chart's timeframe), but it provides no explicit guidance on when to use this tool versus alternatives, nor any prerequisites or exclusions. It is minimally adequate but lacks clear context for when to invoke it among related chart tools.

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

chart_set_typeC

Change chart type

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 full burden of behavioral disclosure. It only states 'Change chart type' without detailing side effects, validation behavior, or persistence of changes, which is insufficient for a tool that modifies chart state.

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

Conciseness3/5

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

The description is extremely concise, but this borders on under-specification rather than effective brevity. While it is front-loaded and to the point, it omits useful context that could be conveyed in a single additional sentence without sacrificing clarity.

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

Completeness3/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 (single parameter with rich schema) and absence of an output schema, the description is minimally sufficient but not complete. It lacks details on expected outcomes or interaction with chart state, though the parameter schema mitigates some ambiguity.

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

Parameters3/5

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

The input schema already provides comprehensive documentation for the single parameter, including accepted names and numbers with 100% coverage. The description itself does not add any additional meaning beyond what the schema conveys, so a baseline score of 3 is appropriate.

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

Purpose4/5

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

The description 'Change chart type' clearly states the action (change) and the resource (chart type), distinguishing it from sibling tools like chart_set_symbol and chart_set_timeframe. It is specific enough to understand the tool's primary function, though it lacks elaboration on what 'chart type' entails.

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

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. The description does not mention prerequisites, conditions, or references to other tools, leaving the user to infer usage from the tool name and sibling context.

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

chart_set_visible_rangeA

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

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

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 must carry the full burden. It only restates the basic action without disclosing side effects, reversibility, return values, or whether any prior conditions are needed. 'Zoom' implies a view change, but it adds little beyond the name and schema.

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

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 action efficiently. Every word is necessary and no redundant information is present.

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

Completeness3/5

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

The tool has only two simple parameters and no output schema, so the description is mostly sufficient. However, it lacks any mention of behavioral context (e.g., side effects) and does not differentiate itself from chart_scroll_to_date, making it slightly incomplete for an agent choosing among sibling tools.

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

Parameters3/5

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

Schema description coverage is 100%, with each parameter documented as 'Start of range' and 'End of range' in unix timestamps. The tool description adds no additional parameter semantics, so the baseline of 3 applies.

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

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: 'Zoom the chart to a specific date range (unix timestamps)'. It uses a specific verb ('Zoom') and resource ('chart'), and the scope ('specific date range') distinguishes it from related tools like chart_scroll_to_date and chart_get_visible_range.

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

Usage Guidelines3/5

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

The description implies the tool is used to set the visible range, but it does not explicitly state when to use it versus alternatives like chart_scroll_to_date or chart_get_visible_range. No when-not or alternative tools are mentioned, leaving some ambiguity.

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

chart_vision_readA

Take a screenshot and read all chart data in one call (quote, indicators, Pine graphics, OHLCV). Returns mixed content: inline image when <= max_image_bytes, else file_path only.

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?

With no annotations provided, the description carries full responsibility for behavioral disclosure. 'Get' implies a read-only operation, but the description does not mention potential edge cases (e.g., what happens if entity_id is invalid), return format, permissions, or any side effects. It adds no behavioral context beyond the verb itself.

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

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 communicates the core operation without extraneous content. This is well-structured for a simple getter.

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

Completeness2/5

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

Given the tool's simplicity, the description is still incomplete. It does not explain what 'info' includes, how this relates to chart state, or how it differs from similar tools like data_get_study_values. With no output schema and no annotations, the agent lacks enough context to invoke this tool confidently in all scenarios.

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

Parameters3/5

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

Schema coverage is 100% since the single parameter entity_id has a description ('Study entity ID (from chart_get_state)'). The tool description itself does not elaborate on the parameter, but because the schema already provides sufficient meaning, a baseline score of 3 is appropriate. No additional value is added by the description for parameter understanding.

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

Purpose4/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 clearly identifies the resource: 'indicator/study info and input values'. This distinguishes it from tools like data_get_study_values (which likely returns computed values) but does not explicitly mention that distinction. It is clear and non-tautological, though it could be more explicit in naming the tool's purpose.

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

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 data_get_study_values or chart_get_state. The description simply states what it does without context for selection. The only contextual clue comes from the parameter description in the schema, but the tool description itself fails to offer usage direction.

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

data_get_ohlcvA

Get OHLCV bar data from the chart. Use summary=true for compact stats instead of all bars (saves context).

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.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 behavioral disclosure burden. It states the read-only nature ('Read'), the deduplication behavior, and the return format ({high, low} price zones). It does not cover edge cases like empty results or error conditions, but it provides solid transparency for a simple read tool.

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

Conciseness5/5

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

The description is two concise sentences, front-loaded with the primary verb 'Read'. It avoids redundancy and every sentence contributes meaningful information: what it reads, what it returns, and how to filter.

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

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 read tool with no output schema or annotations, the description is sufficiently complete. It covers purpose, return type, deduplication, and filtering. It does not mention sorting or empty-result behavior, but these are not critical for task selection. The sibling context confirms this is part of a family of data_get tools, and the description clearly differentiates the box focus.

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

Parameters3/5

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

The input schema covers both parameters fully (verbose and study_filter). The description adds a brief note to use study_filter for targeting an indicator, which slightly reinforces the schema's existing description. Since schema coverage is 100%, the description does not need to compensate, and it adds only marginal semantic value beyond the schema.

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

Purpose5/5

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

The description uses the explicit verb 'Read' and identifies the resource as 'box/zone boundaries drawn by Pine Script indicators (box.new)', making it clear this tool is for reading box objects. It also clarifies the output as deduplicated {high, low} price zones, which distinguishes it from sibling tools like data_get_pine_lines (lines) and data_get_pine_labels (labels).

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

Usage Guidelines4/5

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

The description gives concrete usage context: it is for reading box zones and mentions the study_filter parameter to target a specific indicator. However, it does not explicitly name alternatives or say when not to use this tool, which would push it to a 5.

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

data_get_pine_labelsA

Read text labels drawn by Pine Script indicators (label.new). Returns text and price pairs. Use study_filter to target a specific indicator.

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 clearly identifies the operation as reading (non-mutating) and describes the output as 'text and price pairs'. However, it does not disclose edge cases like empty results, behavior when study_filter matches nothing, or whether it requires a chart with loaded indicators. The behavior is adequately but not richly described.

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

Conciseness5/5

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

The description is two concise sentences, front-loaded with the action and resource, and includes a practical usage hint. No wasted words.

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

Completeness4/5

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

For a read-only tool with three simple optional parameters and no output schema, the description provides enough context: it states purpose, return format, and how to target specific indicators. It could mention what happens when no labels are found or clarify multi-study behavior, but overall it is reasonably complete for the tool's complexity.

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

Parameters3/5

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

The input schema already covers all three parameters with clear descriptions (verbose, max_labels, study_filter), and the schema description coverage is 100%. The description mentions study_filter but adds no new meaning beyond the schema. Baseline of 3 is appropriate since the schema does the heavy lifting.

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

Purpose5/5

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

Description uses specific verb 'Read' and names the exact resource: 'text labels drawn by Pine Script indicators (label.new)'. It also states the return format ('text and price pairs'), which distinguishes it from sibling tools like data_get_pine_lines and data_get_pine_boxes.

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

Usage Guidelines3/5

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

The description provides a usage hint: 'Use study_filter to target a specific indicator.' This implies the tool can read from all indicators when no filter is applied. However, it does not explicitly contrast with alternatives such as data_get_pine_lines or data_get_indicator, so while context is present, exclusions or alternative selection guidance are missing.

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

data_get_pine_linesA

Read horizontal price levels drawn by Pine Script indicators (line.new). Returns deduplicated price levels per study. Use study_filter to target a specific indicator.

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 provided, the description carries the burden of behavioral disclosure. It explicitly states the read-only nature ('Read') and discloses the deduplication behavior and per-study grouping. It stops short of detailing edge cases (e.g., empty results, filtering of only horizontal lines), but the core non-obvious behavior is transparent.

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

Conciseness5/5

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

The description is three short sentences, each earning its place: purpose, key output behavior, and a parameter usage tip. It is front-loaded with the verb and resource, with no fluff or repetition.

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

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 (2 optional params, no output schema), the description covers the essential behavior and filtering. It does not detail the exact return format (e.g., array of objects with study names), but the schema and description together provide enough for an agent to invoke it correctly.

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

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 a brief usage hint for study_filter ('Use study_filter to target a specific indicator') but does not explain verbose or add semantic depth beyond what the schema provides. This is adequate but not extra informative.

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

Purpose5/5

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

The description states a specific verb ('Read') and resource ('horizontal price levels drawn by Pine Script indicators (line.new)'), clearly distinguishing it from sibling tools like data_get_pine_labels, data_get_pine_tables, and data_get_pine_boxes. The mention of 'deduplicated price levels per study' further refines the purpose.

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

Usage Guidelines4/5

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

The description provides clear context on what the tool does and how to target a specific indicator via study_filter. However, it does not explicitly name alternatives or exclusions, e.g., 'use data_get_study_values for time-series data', so the guidance is clear but not exclusionary.

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

data_get_pine_tablesA

Read table data drawn by Pine Script indicators (table.new). Returns formatted text rows per table. Use study_filter to target a specific indicator.

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

TDQS

A4.3/5.0
Behavior4/5

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

No annotations are provided, so the description must disclose behavior. It explicitly states 'Read' (non-destructive), mentions the return format ('formatted text rows per table'), and indicates this is data from Pine Script tables. While it doesn't detail error cases or multi-table behavior, it adequately covers the core behavior for a simple read operation.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the primary action, and every clause adds value—purpose, output format, and filter guidance. No redundant or filler content.

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

Completeness5/5

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

For a simple read-only tool with one optional parameter and no output schema, the description covers the essential aspects: what it does, return type, and filtering. It is complete enough for an agent to invoke correctly without additional clarification.

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

Parameters3/5

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

Schema description coverage is 100%, and the description's 'Use study_filter to target a specific indicator' largely repeats the schema's 'Substring to match study name.' It adds minimal semantic value beyond the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool reads table data drawn by Pine Script indicators (table.new) and returns formatted text rows per table. This distinguishes it from sibling tools like data_get_pine_lines, data_get_pine_labels, and data_get_pine_boxes, which target other drawing types.

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

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 by specifying that study_filter targets a specific indicator, and the schema notes 'Omit for all.' It does not explicitly name alternative tools for other data types, but the purpose is self-evident given the tool name and siblings.

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

data_get_strategy_resultsA

Get strategy performance metrics. Pass entity_id when more than one strategy is loaded. Auto-opens Strategy Tester and unhides the selected strategy so TradingView computes its report.

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

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 disclosing behavior. It indicates a read-only 'get' operation, which is helpful, but it does not mention return format, potential empty results, or side effects. It adds some context ('current', 'visible', 'data window') but not deep behavioral detail.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that clearly states the action and scope. It includes useful examples in parentheses without being verbose. Every word adds value, making it highly concise and well-structured.

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

Completeness3/5

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

For a simple, zero-parameter getter, the description covers the main purpose but lacks return value details. Since there is no output schema, the description should ideally explain the shape or type of 'indicator values' returned. It is adequate but not fully complete for an agent that needs to know how to consume the result.

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

Parameters4/5

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

The tool has zero parameters, and the baseline for 0 params is 4. There is no parameter documentation needed, and the description correctly focuses on the output behavior rather than input details.

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

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 clearly identifies the resource ('current indicator values from the data window') and scope ('all visible studies'). It also lists examples (RSI, MACD, Bollinger Bands, EMAs) and distinguishes from sibling tools by emphasizing 'all visible studies' versus single-indicator tools.

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

Usage Guidelines3/5

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

The description implies usage: use this when you need values for all visible studies. However, it does not explicitly state when to prefer this over alternatives like data_get_indicator, nor does it provide exclusions. The context is clear but not reinforced with alternative guidance.

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

data_get_tradesA

Get the most recent strategy orders. Pass entity_id when more than one strategy is loaded. Auto-opens Strategy Tester and unhides the selected strategy.

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

A4/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 the tool retrieves order book data from the chart, indicating it is a read-only operation tied to the chart's context. It does not detail the return structure or number of levels, but for a simple getter this is adequate.

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

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 is informative.

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 zero parameters and no output schema, the description provides the essential information that the tool retrieves order book/DOM data from the chart. It could be marginally richer (e.g., mentioning that it reflects the current chart symbol), but it is sufficient for a tool of this simplicity.

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

Parameters4/5

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

The input schema is empty, so the baseline is 4. The description adds no parameter semantics, but no parameters exist to document.

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

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 clearly identifies the resource as 'order book / DOM (Depth of Market) data'. This distinguishes it from sibling data tools like data_get_trades and quote_get.

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

Usage Guidelines3/5

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

No explicit when-to-use guidance or alternative tool comparisons are provided. However, the description's specificity implies it should be used when order book depth data is needed, giving an implied usage context.

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

draw_clearA

Remove ALL drawings from the ACTIVE PANE. On a multi-pane layout this is NOT the whole chart: use pane_list to see the panes and pane_focus to pick one first. DESTRUCTIVE and there is no undo through this API: every trendline, level and annotation on the active chart is deleted, not just ones you added. Use draw_remove_one with an entity_id to remove a single drawing.

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.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 carries the full burden. It only says 'Get properties and points', which implies a read-only operation, but it does not disclose behavior such as whether the drawing must exist, what happens on invalid ID, or if any state changes occur. The lack of explicit safety or error context leaves transparency gaps.

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

Conciseness5/5

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

The description is a single, clear sentence that efficiently conveys the tool's purpose. Every word contributes value, and it is front-loaded with the action verb.

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

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, this is minimally viable. However, without an output schema, the description does not specify what 'properties and points' include, nor how they are structured. It could mention return format or error behavior, but given the tool's simplicity, the current level is acceptable but not comprehensive.

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

Parameters3/5

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

The input schema has 100% coverage for the single parameter entity_id, with a description that says 'Entity ID of the drawing (from draw_list)'. The tool description adds no additional parameter semantics beyond that. Since the schema fully documents the parameter, a baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action ('Get') and the specific resource ('properties and points of a specific drawing'). It distinguishes itself from siblings like draw_list (which lists drawings) and draw_remove_one (which removes) by focusing on a single drawing's data.

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

Usage Guidelines4/5

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

Though the description itself doesn't explicitly mention alternatives, the parameter schema instructs that entity_id comes from draw_list, providing a clear prerequisite. The context of sibling tools makes the intended usage obvious: use draw_list to obtain an ID, then this tool to fetch its details. No exclusions are stated, but the guidance is sufficient for a simple getter.

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

draw_listA

List shapes/drawings on the ACTIVE PANE ONLY. On a multi-pane layout the other panes are not included and a count of 0 does NOT mean the chart is empty: use pane_list to see every pane and pane_focus to switch.

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?

With no annotations provided, the description carries full burden. It states the removal action but does not disclose irreversibility, possible side effects (e.g., chart redraw), error behavior for invalid IDs, or any prerequisites like an open chart. This is a significant gap for a destructive operation.

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

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 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?

The tool is simple with a fully described parameter, but the absence of annotations and any behavioral detail (e.g., error handling, undo possibility) makes this minimally complete. It covers what it does but not the full context a careful agent might need.

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

Parameters3/5

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

Schema description coverage is 100% because the only parameter (entity_id) has a description indicating it comes from draw_list. The description adds no extra param details, so the baseline of 3 applies.

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

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'), resource ('drawing'), and method ('by entity ID'). It clearly distinguishes from siblings like draw_clear (which likely clears all drawings) and draw_list (which lists them).

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

Usage Guidelines3/5

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

The description does not explicitly mention alternatives or when-not-to-use. However, the schema's parameter description ('from draw_list') implies you should first list drawings to obtain the entity ID, providing some usage context. No explicit exclusions are given.

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

draw_shapeC

Draw a shape/line on the chart

ParametersJSON Schema
NameRequiredDescriptionDefault
textNoText content for text shapes
pointYes{ time: unix_timestamp, price: number }
shapeYesShape type: horizontal_line, vertical_line, trend_line, rectangle, text
point2NoSecond point for two-point shapes (trend_line, rectangle)
overridesNoJSON string of style overrides (e.g., '{"linecolor": "#ff0000", "linewidth": 2}')

TDQS

C2.6/5.0
Behavior1/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 provides no information about side effects, whether shapes are overwritten, validation rules, or the response format. This is a critical gap for a mutation tool.

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

Conciseness4/5

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

The description is a single, concise sentence with no wasted words. It is front-loaded and immediately conveys the core purpose. However, it is extremely terse and lacks any supporting details, which slightly reduces the score.

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

Completeness1/5

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

Given the tool has 5 parameters with nested objects, no annotations, and no output schema, the description is severely incomplete. It fails to mention return values, error conditions, prerequisites, or how to construct valid point objects. This is inadequate for an agent to invoke the tool correctly.

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

Parameters3/5

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

Schema description coverage is 100%, as every property in the input schema has a description. The description itself adds no parameter-specific meaning, but since the schema already documents parameters thoroughly, the baseline of 3 applies.

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

Purpose4/5

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

The description clearly states the action ('Draw') and the resource ('shape/line on the chart'). It distinguishes from sibling tools like draw_clear or draw_remove_one by identifying this as the drawing operation. However, it does not enumerate the specific shape types, relying on the schema for that detail.

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

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. There is no mention of how this relates to sibling draw tools (e.g., draw_clear, draw_remove_one) or any prerequisites such as having a chart open. The usage is only implicitly understood from the action verb.

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

indicator_set_inputsA

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

A3.5/5.0
Behavior2/5

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

With no annotations, the description must disclose side effects and requirements. It merely states the action without mentioning possible side effects (e.g., chart refresh), validation behavior, or what happens if the entity_id is invalid. The lack of any behavioral context beyond the mutation itself is a significant gap for a mutating tool.

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

Conciseness5/5

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

The description is a single concise sentence, front-loading the verb and object. It includes useful examples without unnecessary verbosity. Every word contributes to understanding the tool's core function.

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

Completeness3/5

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

For a simple 2-parameter mutation tool with no output schema, the description captures the core action but leaves out important operational context such as prerequisite indicator existence, error behavior, or reversibility. While the low complexity doesn't demand extensive detail, the absence of annotations raises the bar for completeness, which this description only partially meets.

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

Parameters3/5

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

The input schema already covers both parameters with descriptions, including the JSON format for 'inputs' and the source of 'entity_id'. The description adds modest value by giving examples of input keys, but this is largely redundant with the schema's example. Baseline 3 is appropriate given 100% schema coverage.

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

Purpose5/5

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

The description clearly states the action ('Change') and the target ('indicator/study input values') with concrete examples ('length, source, period'). This unambiguously differentiates it from sibling tools like chart_manage_indicator or indicator_toggle_visibility, which handle indicator lifecycle and visibility rather than input parameter modifications.

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

Usage Guidelines3/5

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

The description implies usage for adjusting study inputs, and the required entity_id from chart_get_state in the schema suggests a prerequisite. However, it does not explicitly state when to use this tool versus alternatives, nor does it mention any constraints like the indicator needing to exist or how to obtain the entity_id beyond the schema hint.

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

indicator_toggle_visibilityA

Show, hide, or flip an indicator on the chart. Omit visible to toggle. Confirms the result by reading the study back rather than trusting setVisible().

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_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_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/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 responsibility for behavioral disclosure. It clearly states what is returned (symbols and active state) and implies a read-only, side-effect-free operation. However, it does not address edge cases such as behavior when no panes exist or whether hidden panes are included. For a simple list tool, this is adequate but not exhaustive.

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

Conciseness5/5

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

The description is a single sentence, front-loaded with the action 'List', and contains no filler. Every word contributes to the meaning, making it highly concise and well-structured.

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

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 list tool with no output schema, the description sufficiently captures the purpose and return content. It lacks explicit edge-case details, but given the tool's simplicity, it is complete enough for successful invocation.

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

Parameters4/5

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

The tool accepts zero parameters and the schema is an empty object. With no parameters to describe, the baseline score of 4 applies. The description adds no parameter-specific information because there are none.

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

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', identifies the resource 'chart panes', and specifies the scope 'current layout' plus the included details 'symbols and active state'. This clearly distinguishes it from sibling tools like tab_list (tabs) and layout_list (layouts).

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

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. For example, it does not mention that this is the appropriate tool for enumerating panes as opposed to using chart_get_state. The description only states what it does, leaving usage context entirely implicit.

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

pane_set_layoutC

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

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

C2.9/5.0
Behavior2/5

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

Annotations are absent, so the description alone must convey safety and behavior. It only says 'change the chart grid layout' without mentioning side effects, whether it resets existing panes, or if it requires any preconditions.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no filler.

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

Completeness2/5

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

With one parameter and no output schema or annotations, the description is too minimal to be fully complete. It doesn't explain the behavior of layout changes on existing content, nor what the tool returns.

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

Parameters3/5

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

The input schema fully documents the layout parameter with all accepted codes. The description's examples ('single, 2x2, 2h, 3v') overlap with the schema but don't add additional meaning or clarify ambiguous codes.

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

Purpose4/5

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

The description clearly states the tool changes the chart grid layout, with examples of layout codes. This distinguishes it from pane_focus (focusing a pane) and pane_set_symbol (setting a symbol), though it doesn't explicitly differentiate from layout_switch.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to use this tool versus alternatives. The description simply states the action; an agent must infer from sibling names that this handles specific grid codes while layout_switch may handle saved layouts.

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

pane_set_symbolB

Set the symbol on a specific pane by index

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.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 responsibility of disclosing behavior. It clearly states that the tool does not compile, works offline, and catches specific error types. However, it does not describe the return value or output format, leaving some ambiguity about how results are presented to the caller.

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

Conciseness5/5

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

The description is concise, with two sentences that front-load the core purpose and then add a key operational detail (offline, no connection). Every word contributes value, with no redundancy or irrelevant information.

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

Completeness4/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 and no annotations, the description provides a solid understanding of the tool's function, behavior, and use case. It could be more complete by specifying the return format or providing an example, but given the tool's simplicity, it covers the essentials well.

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

Parameters3/5

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

The input schema provides a full description for the sole parameter 'source' ('Pine Script source code to analyze'), giving 100% schema coverage. The tool description adds context about the analysis itself but does not add new parameter-specific meaning beyond the schema, matching the baseline for high coverage.

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

Purpose5/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') with concrete detection categories (e.g., array out-of-bounds, unguarded array.first()/last()). It explicitly distinguishes from compilation ('WITHOUT compiling') and indicates offline operation, setting it apart from sibling tools like pine_compile.

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

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 this tool: for static analysis without compiling, with the added benefit of working offline and requiring no TradingView connection. It implies that compilation is not needed, but does not explicitly name alternatives or state when not to use it, so it falls short of a 5.

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

pine_checkA

Compile Pine Script via TradingView's server API without needing the chart open. Returns compilation errors/warnings. Useful for validating code before injecting into the chart.

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 burden. It discloses that compilation happens remotely via the server API and that errors/warnings are returned. It also implies a non-destructive validation action. It does not mention side effects, but the nature of compilation makes this less critical.

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

Conciseness5/5

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

The description is two concise sentences. The first sentence states the core function, and the second provides the return value and a use case. No redundant words or filler.

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

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, no output schema), the description is largely complete. It explains the action, the return, and the use case. It could optionally mention what happens on successful compilation, but that is not essential for correct invocation.

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

Parameters3/5

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

The schema already describes the single parameter 'source' as the Pine Script source code. The description adds no new detail about the parameter's format or constraints. With 100% schema coverage, the baseline of 3 is appropriate.

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

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 specific action: compiling Pine Script via TradingView's server API. It also distinguishes itself from sibling tools by noting that the chart doesn't need to be open, and it indicates the output (compilation errors/warnings). This goes beyond a vague purpose.

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

Usage Guidelines4/5

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

The description provides a clear use case: validating code before injecting it into the chart. This implies when to use the tool, though it does not explicitly mention alternative tools or exclusion scenarios. The guidance is sufficient for basic selection.

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

pine_compileA

Compile the current Pine Script and add it to the chart. WARNING: this SAVES first, clicking Save and add to chart, which persists the current editor buffer to the saved script it is bound to.

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_consoleA

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

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 carries the full behavioral burden. It uses the verb 'Read', which implies a non-destructive, read-only operation, but it does not disclose whether the tool returns a single string, a list, or whether it requires a prior compilation or open console. It lacks explicit statements about side effects, auth requirements, or failure modes, leaving the agent with only partial information.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that states the main action and resource, followed by parenthetical examples. Every element earns its place, with no wasted words or redundant information. It is appropriately sized for a zero-parameter read tool.

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

Completeness4/5

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

For a simple, zero-parameter read-only tool, the description is mostly complete. It clearly names the output types (compile messages, log.info(), errors). However, without an output schema, it does not specify the exact return shape (e.g., raw string vs. array of messages), which would be helpful. Still, given the tool's low complexity, this is a minor gap.

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

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 explain parameter semantics, and the schema's empty properties object confirms there are none. No additional meaning is required.

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

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') and resource ('Pine Script console/log output') and gives concrete examples of content (compile messages, log.info(), errors). It clearly distinguishes from siblings like pine_get_errors (which likely returns only errors) and pine_get_source (which returns source code), making the tool's purpose unambiguous.

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

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 pine_get_errors or pine_compile. The description implies it is for reading console output, but it does not explicitly state prerequisites, whether it should be called after compilation, or which scenarios would warrant using a different tool. This is a clear gap.

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

pine_get_errorsA

Get Pine Script compilation errors from Monaco markers

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?

The description adds the source 'Monaco markers,' which provides context beyond the name. However, with no annotations, it does not disclose whether this is a read-only operation, whether it requires a prior compile, or what happens if no errors exist. The word 'Get' implies safety but is not explicit.

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

Conciseness5/5

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

The description is a single, front-loaded sentence. It is concise and free of unnecessary words, perfectly sized for the tool's simplicity.

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

Completeness3/5

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

The description is clear but incomplete due to the lack of an output schema. It does not mention the return format (e.g., an array of error strings or structured objects), which is significant for an agent deciding how to use the result. The overall simplicity of the tool keeps it from being a lower score.

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

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 trivially covers 100%. Per the baseline for 0-parameter tools, the description does not need to elaborate on parameters, and it adds no contradictions.

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

Purpose5/5

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

The description clearly states the tool gets Pine Script compilation errors from Monaco markers. It distinguishes from sibling tools like pine_get_console and pine_compile by specifying the exact source and purpose.

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

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. There is no mention of prerequisites (e.g., after compilation) or when not to use it, leaving the agent to infer from the name alone.

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

pine_get_sourceA

Get current Pine Script source code from the editor

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 states the primary operation ('Get...source code') and context ('from the editor'), which clearly is a read-only operation, but it does not disclose edge cases such as behavior when no editor is open or whether the tool can return errors.

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

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 states the action and resource precisely, making it exceptionally concise.

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

Completeness4/5

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

For a zero-parameter, no-output-schema tool, the description is adequate. It identifies the source ('from the editor') and the action ('Get'), which is sufficient for a simple getter. It does not explicitly mention the return value, but that is strongly implied by 'Get source code'.

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

Parameters4/5

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

The tool has zero parameters, and the input schema has no properties, so the baseline is 4. The description does not need to explain parameters since there are none.

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

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 Pine Script source code from the editor'), clearly distinguishing it from siblings like pine_set_source (which writes) and pine_compile (which compiles). There is no ambiguity about what the tool does.

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

Usage Guidelines3/5

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

The description implies the tool is for reading the active editor's Pine Script source, but it does not explicitly state when to use this tool versus alternatives. There are no exclusions or prerequisites mentioned, so guidance is implied rather than explicit.

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

pine_list_scriptsA

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

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

Open a saved Pine Script by name

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the saved script to open (case-insensitive match)

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 carries the full burden of behavioral disclosure. It does not explain what happens on success/failure, whether the script is loaded into the editor, or any side effects or prerequisites, leaving a significant transparency gap.

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

Conciseness5/5

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

The description is a single, direct sentence of seven words that front-loads the action and object. It contains no unnecessary words or repetition, making it optimally concise.

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

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 the description adequately states the core action. However, the lack of annotations and output schema means the description does not convey the operational outcome, potential errors, or any special behavior, leaving it only minimally complete.

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

Parameters3/5

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

The input schema already provides 100% coverage of the single parameter 'name', including the case-insensitive matching detail. The description adds no additional parameter semantics beyond what the schema documents, so the baseline score of 3 applies.

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

Purpose5/5

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

The description uses a specific verb ('Open') with a clear resource ('saved Pine Script') and the means of identification ('by name'), effectively distinguishing it from sibling tools like pine_new, pine_save, and pine_get_source.

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

Usage Guidelines3/5

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

The intended usage is implied—opening an existing saved script by name—but there is no explicit guidance on when to use this tool versus alternatives, nor any exclusions. The context is clear but limited.

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

pine_saveA

Save the current Pine Script buffer to the saved script the editor is bound to. WARNING: this persists to the cloud and overwrites that script. Verified by reading the editor Save/Saved state; an unverified save is never reported as success.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoDate to start replay from (YYYY-MM-DD format). If omitted, selects first available date.

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 the primary behavior (starting replay mode) and mentions the optional date, but does not disclose side effects, state changes, or requirements like having a chart open. This is acceptable for a simple mode-toggle tool but lacks depth.

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

Conciseness5/5

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

The description is a single sentence of nine words, front-loaded with the action verb 'Start' and the resource. Every word earns its place, with no redundant filler.

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

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 is mostly complete. It covers the primary function and the optional parameter. It does not place the tool within the replay workflow (e.g., suggesting replay_step for advancing), but that is not essential for executing the tool correctly.

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

Parameters3/5

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

Schema description coverage is 100% for the single optional 'date' parameter, which is fully documented. The description's mention of 'optionally at a specific date' merely reiterates the schema, adding no extra semantic value beyond the structured data.

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

Purpose5/5

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

The description uses a specific verb 'Start' with a clear resource 'bar replay mode', distinguishing it from siblings like replay_stop, replay_status, and replay_step. It unambiguously states the tool's function.

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

Usage Guidelines3/5

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

The description implies usage context (entering replay mode) but does not explicitly contrast with siblings such as replay_autoplay, replay_step, or replay_trade, nor does it state prerequisites or follow-up actions. It provides only implied guidance.

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

replay_statusA

Get current replay mode status

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?

With no annotations provided, the description carries the burden of behavioral disclosure. It implies a safe read operation via 'get', but does not describe what the returned status looks like, whether it can fail, or any side effects. It is minimally transparent.

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

Conciseness5/5

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

The entire description is a single, front-loaded sentence with no filler words. It clearly communicates the tool's function in just six words.

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

Completeness3/5

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

This is a simple getter with no parameters and no output schema. The description is adequate for the core function but omits information about the return value format or possible statuses, which would be useful given the output schema is absent.

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

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. The baseline score of 4 applies, as there is nothing to document and the description adds no parameter information.

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

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' with a resource 'replay mode status', clearly indicating this tool queries the current replay mode state. It distinguishes from sibling tools like replay_start, replay_stop, and replay_step, which are actions rather than status queries.

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

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. It does not mention whether it should be called before starting replay, or how it relates to replay_autoplay or other replay tools.

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

replay_stepA

Advance one bar in replay mode

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 for behavioral disclosure. It explains the step increment ('one bar') but omits important details such as whether replay must be active, what happens if called outside replay mode, or any side effects on the chart view.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no redundant words. It efficiently conveys the action and resource, fitting the simple nature of the tool.

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

Completeness3/5

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

The description is minimally sufficient for a parameterless step action, but it lacks contextual details about replay state requirements and how it fits into the broader replay workflow. Given the simplicity of the tool, it is adequate but not rich.

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

Parameters4/5

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

The tool has zero parameters and the input schema is empty, so there is no parameter semantics to explain. The baseline score of 4 applies because the schema coverage is trivially complete and the description needs no compensation.

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

Purpose5/5

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

The description clearly states the action ('Advance') and the resource ('one bar in replay mode'), making the tool's purpose specific and unambiguous. It also distinguishes from siblings like replay_autoplay by emphasizing the manual single-bar step.

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

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 such as replay_autoplay or replay_stop. It does not mention any prerequisites like replay mode being active or the expected context for invocation.

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

replay_stopA

Stop replay and return to realtime

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/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 states the primary effect and result, but does not disclose edge cases (e.g., behavior if no replay is active) or side effects beyond the immediate action.

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

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. Every word contributes to clarity.

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 simplicity of the tool (no params, no output schema, no annotations), the description is fully sufficient to understand its purpose and effect. It covers the required information for correct invocation.

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

Parameters4/5

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

The tool has zero parameters and an empty input schema. Per the rubric, this warrants a baseline of 4 since there is no parameter meaning to add.

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

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'), identifies the resource ('replay'), and states the outcome ('return to realtime'). This clearly distinguishes it from sibling tools like replay_start and replay_step.

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

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 the tool: to exit replay mode and resume realtime data. While it does not explicitly mention alternatives or exclusions, the context is unambiguous for an agent.

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

replay_tradeA

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

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

TDQS

A3.7/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 states the action and does not reveal what happens after execution, whether it requires an active replay session, what side effects occur on position state, or potential errors. This is a significant transparency gap for a mutation-like tool.

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

Conciseness5/5

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

The description is a single concise sentence, front-loaded with the core verb 'Execute' and resource 'trade action in replay mode'. It contains no filler and every phrase earns its place, including the parenthetical list of actions.

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

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 core purpose adequately. However, it omits important context such as the requirement for an active replay session and the outcome of the trade action, leaving some gaps for the agent to infer. More detail would improve completeness.

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

Parameters3/5

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

The schema already provides 100% coverage for the single 'action' parameter with a description listing buy, sell, close. The tool description repeats the same values without adding new meaning, so it meets the baseline but does not enhance parameter understanding beyond the schema.

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

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: 'Execute a trade action in replay mode' and explicitly lists the allowed actions (buy, sell, or close position). It distinguishes itself from replay control siblings like replay_start and replay_step by focusing on trade execution, not replay navigation.

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

Usage Guidelines4/5

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

The description establishes clear usage context: this is for trade actions during replay mode. It implies the tool is used when the user wants to simulate a trade in a replay session. However, it does not explicitly exclude alternatives or mention prerequisites (e.g., replay must be active), so it lacks the full when/when-not guidance.

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

state_deleteB

Delete a named chart state snapshot

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

A4.1/5.0
Behavior3/5

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

Since no annotations are provided, the description carries the burden of behavioral disclosure. It implies a non-mutating, read-only operation by using 'Get', and it lists what is returned. However, it does not mention possible failure states (e.g., if no symbol is currently set), error handling, or side effects. The behavior is mostly clear but not fully disclosed.

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

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 action and resource, with no filler or repetition. It earns every word.

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

Completeness5/5

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

For a zero-parameter getter, the description is complete: it states what the tool does (get metadata) and what to expect (name, exchange, type, description). There is no output schema, but the description enumerates the key return fields, making the tool's purpose and output clear.

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

Parameters4/5

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

The tool accepts zero parameters, so the baseline is 4. There is no parameter info needed in the description, and the schema already reflects that no input is required.

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

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 ('Get') and resource ('detailed metadata about the current symbol'). It enumerates the included fields (name, exchange, type, description), which distinguishes it from sibling tools like symbol_search (which searches) and chart_set_symbol (which changes the chart's symbol).

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

Usage Guidelines3/5

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

The context is implied: it is a read-only getter for the current symbol. However, it does not explicitly compare with alternatives like symbol_search or chart_get_state, nor does it mention when not to use it. There is no guidance on when to prefer this tool over others.

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

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.

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. It discloses the operation is irreversible ('cannot be undone through this API') and notes a refusal condition ('refuses when no tab is marked active'). It also hints at output behavior ('Names the tab it is about to close'), though return format is unspecified. This is strong coverage for a destructive action, but not exhaustive.

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

Conciseness5/5

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

Two sentences, zero filler. The primary action is front-loaded, and the critical caveat about irreversibility is placed immediately after. Every clause contributes value, making it efficient and easily scanable.

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

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 one optional parameter and no output schema, the description covers purpose, destructive nature, parameter usage, and a prerequisite (tab_list). It does not specify the return value verbatim, but 'Names the tab' implies some output. Given the low complexity, this is largely complete; only a minor gap exists regarding the exact response format.

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

Parameters4/5

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

The schema already explains expect_title thoroughly (must match to close, use tab_list); the description adds the strategic context 'pass expect_title when it matters which one goes,' which complements the schema by tying the parameter to a decision point. Since schema coverage is 100% and description adds meaningful guidance, this exceeds the baseline of 3.

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

Purpose5/5

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

States a specific action ('Close') on a specific resource ('currently active chart tab'), clearly distinguishing it from sibling tab tools like tab_new, tab_switch, and tab_list. It also adds behavioral detail about refusing when no tab is active, which further clarifies intent.

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

Usage Guidelines4/5

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

Provides clear usage context: tells the agent to use tab_list first to see titles and to pass expect_title when it matters which tab closes. However, it does not explicitly contrast with alternatives (e.g., 'use this instead of tab_switch'), so it lacks explicit when-not guidance.

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

tab_listA

List all open TradingView chart tabs

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, the description carries the burden. 'List' signals a read-only operation, implying no side effects. It does not detail return format or pagination, but for a simple listing tool that is likely acceptable. The description is honest and not misleading.

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

Conciseness5/5

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

The description is a single, concise sentence that perfectly captures the tool's function without any unnecessary words or repetition.

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

Completeness5/5

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

For a simple, parameterless listing tool with no output schema, the description is fully sufficient. It states what the tool returns (list of tabs) and is unambiguous.

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

Parameters4/5

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

The tool has zero parameters, and the rubric sets a baseline of 4 for zero-parameter tools. The description appropriately does not need to explain any parameters, and the schema is fully consistent with the empty parameter set.

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

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 ('List') and resource ('all open TradingView chart tabs'). It is distinct from sibling tools like tab_new, tab_close, and tab_switch, which perform different actions.

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

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 the tool (when you need to see all currently open charts). It does not provide explicit exclusions or alternative tool mentions, but the context is clear given the sibling tools and the straightforward nature of the listing operation.

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

tab_newA

Open a new TradingView tab, optionally loading a saved layout

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.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 does not state what happens with an invalid index, whether the tab must already exist, or any side effects of switching. This is a significant gap for a mutating UI action.

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

Conciseness4/5

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

The description is a single, clearly worded sentence with no wasted words. It is appropriately concise, though it could include a bit more context without becoming verbose.

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

Completeness3/5

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

For a simple tool with one well-described parameter and no output schema, the description plus schema is mostly sufficient. However, the description alone does not mention the need to use tab_list to obtain a valid index, which is a relevant contextual gap.

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

Parameters3/5

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

Schema description coverage is 100% (the 'index' parameter has a description indicating it is 0-based and from tab_list). The tool description adds nothing beyond the schema, so it meets the baseline but does not enhance parameter understanding.

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

Purpose5/5

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

The description 'Switch to a chart tab by index' uses a specific verb ('Switch'), identifies the resource ('chart tab'), and specifies the method ('by index'). This clearly distinguishes it from sibling tools like tab_new, tab_close, and tab_list.

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

Usage Guidelines3/5

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

The phrase 'by index' implies the agent must have a tab index, likely obtained from tab_list, but the description does not explicitly state when to use this tool versus alternatives or mention any prerequisites. It offers implied guidance rather than explicit instructions.

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

tv_capability_matrixB

Map every TVControl tool to its required TradingView APIs and report which tools are currently available or blocked.

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?

No annotations are provided, so the description carries the burden. It discloses that the tool is a reporting/inspection operation, implying a read-only nature, but it does not explicitly confirm safety, potential side effects, or response structure. The description is not contradictory but adds limited behavioral context beyond the functional statement.

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

Conciseness5/5

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

The description is 11 words in a single sentence, immediately stating the tool's purpose. Each word contributes to the meaning, with no filler or redundant phrasing.

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

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—no parameters and no annotations—the description sufficiently communicates the core function. It could be enhanced by explicitly stating the return format, but for a discovery report, the purpose is clear enough to be considered largely complete.

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

Parameters4/5

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

The input schema is empty with zero parameters, so the description has no need to explain parameter semantics. According to the rubric, zero-parameter tools receive a baseline of 4; the description does not need to compensate for missing parameter details.

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

Purpose5/5

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

The description uses the specific verb 'Report' and identifies the resource as 'known TradingView API paths', including the detail that it covers their availability and methods. This clearly distinguishes it from siblings like tv_health_check or tv_compatibility_check, which focus on health and compatibility.

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

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 over alternatives such as tv_health_check or tv_capability_matrix, nor does it mention any exclusions or prerequisites. It simply states the action without contextual recommendations.

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

tv_health_checkB

Check CDP, TradingView market-data connection, compatibility, and current chart state

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

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 the burden. It implies a read-only query but does not explicitly state that it has no side effects, nor does it describe return format or any caveats. The examples give some idea but fall short of full behavioral disclosure.

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

Conciseness5/5

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

The description is one efficient sentence, front-loaded with the main verb and object. It wastes no words and is easily scannable.

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

Completeness4/5

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

Given it is a simple no-parameter getter without an output schema, the description provides sufficient conceptual detail about what is returned (panels, buttons, visibility/enabled state). While it might not enumerate every UI element, it is adequate for a tool of this simplicity.

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

Parameters4/5

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

The tool has 0 parameters, so the baseline is 4. The description does not need to explain parameters, and the schema is empty, leaving no ambiguity.

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

Purpose5/5

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

The description clearly states what the tool does: 'Get current UI state' and specifies the scope by listing examples (panels, buttons, enabled/disabled states). This is a specific verb+resource and distinguishes it from chart_get_state or tv_health_check, which cover other aspects.

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

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 versus alternatives. It does not mention exclusions or indicate whether to use it over ui_find_element or other UI inspection tools. The agent is left to infer usage from the purpose, which is not explicit enough.

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

tv_updateA

Safely fast-forward a clean git checkout from its configured upstream. Refuses package installs, untracked branches, dirty trees, and diverged history.

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.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 burden for behavioral disclosure. It does not mention what happens if multiple elements match, if no element is found, whether it waits for interactability, or what the return value is. This is a significant gap for a UI automation tool.

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

Conciseness5/5

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

The description is one sentence, front-loaded with the verb, and every word adds value. It is appropriately brief with no filler or redundant phrasing.

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

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 tool with no output schema, the description is minimally adequate, but it lacks important context such as error handling, matching behavior (first vs. all matches), and how it relates to sibling tools like ui_mouse_click. Clear gaps remain.

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

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 describes both parameters. The description essentially restates the enum values without adding extra meaning about matching behavior (e.g., exact vs. substring), so it does not materially exceed schema coverage.

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

Purpose5/5

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

The description uses a specific verb 'Click a UI element' and lists the selector strategies, clearly distinguishing this from sibling interaction tools like ui_hover and ui_scroll. The 'by' clause makes the target and method precise.

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

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 such as ui_mouse_click or other UI interaction tools. It simply states the action, leaving the agent to infer appropriate usage context with no exclusions or recommendations.

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

ui_find_elementA

Find UI elements by text, aria-label, or CSS selector and return their positions

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 the action and that positions are returned, but it does not disclose whether the operation is read-only, what happens if no element is found, or whether it returns the first match or all matches. The provided behavior is basic but not misleading.

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

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 conveys the tool's purpose and outcome.

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

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 (2 params, no nested objects) and the absence of an output schema, the description adequately indicates the return value ('positions'). However, it could be more complete by specifying whether multiple matches are returned or how positions are formatted, but this is a minor gap for such a straightforward tool.

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

Parameters3/5

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

Schema coverage is 100% since both parameters (query and strategy) have descriptions in the schema. The description adds little beyond the schema—it restates that the query can be text, aria-label, or CSS, which the schema already details. No additional semantic value is provided.

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

Purpose5/5

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

The description uses a specific verb 'Find' with a clear resource 'UI elements' and specifies search methods (text, aria-label, CSS selector) and the outcome (return positions). This clearly distinguishes it from sibling tools like ui_click or ui_hover, which perform actions rather than locating elements.

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

Usage Guidelines3/5

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

The description implies the tool is used to locate UI elements before interaction, but it does not explicitly state when to use this tool versus alternatives or mention any exclusions. The context of sibling tools suggests a pre-interaction step, but the description itself provides no explicit guidance.

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

ui_fullscreenA

Toggle TradingView fullscreen mode

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/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. The term 'toggle' implies the tool switches between fullscreen and windowed states, but the description does not mention potential side effects, preconditions, or failure modes. Since the behavior is self-contained and reversible, a moderate score is appropriate.

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

Conciseness5/5

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

The description is a single, concise sentence containing only the essential action. It is front-loaded and free of filler, scoring high on conciseness.

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

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 (no parameters, no output schema, no annotations), the one-sentence description covers the core action adequately. However, it leaves some ambiguity about the exact state change and whether any feedback is provided, so it is not fully complete.

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

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 (vacuous). The description does not need to elaborate on parameters, and it introduces no confusing parameter-related information, earning the baseline score of 4.

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

Purpose5/5

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

The description 'Toggle TradingView fullscreen mode' uses a specific verb ('toggle') and a resource ('TradingView fullscreen mode'), clearly expressing the tool's function. No sibling tool references fullscreen, so it is easily distinguishable.

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

Usage Guidelines3/5

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

The description does not provide explicit guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or exclusions. However, because it is a unique toggle with no siblings performing this action, the usage context is implicitly understood, warranting a mid-range score.

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

ui_hoverB

Hover over a UI element by aria-label, data-name, or text content

ParametersJSON Schema
NameRequiredDescriptionDefault
byYesSelector strategy
valueYesValue to match

TDQS

B3.1/5.0
Behavior2/5

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

The description only states the action 'hover' without disclosing behavioral traits such as whether the element is scrolled into view, how multiple matches are handled, or error behavior when the element is not found. With no annotations provided, the description carries the full burden and falls short of meaningful transparency.

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

Conciseness5/5

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

The description is a single, concise sentence that immediately conveys the core action and target. There is no redundant information or filler, making it optimally concise and front-loaded.

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

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 two parameters and no output schema, so a brief description is somewhat sufficient. However, it lacks details about failure scenarios and does not mention the 'class-contains' selector option. It also provides no context on how hover behaves in the broader UI automation workflow, making it only minimally complete.

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

Parameters3/5

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

The schema already provides full coverage (100%) for the two parameters with descriptions for 'by' and 'value'. The description partially repeats the enum values (aria-label, data-name, text) without adding new meaning, and it omits 'class-contains'. Thus, the baseline score of 3 is appropriate.

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

Purpose4/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: hovering over a UI element using specific selector strategies. It distinguishes itself from sibling tools like ui_click and ui_find_element by naming the action. However, it omits the 'class-contains' selector strategy that is present in the schema, making it slightly incomplete.

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

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 conditions, prerequisites, or exclusions, and does not reference sibling tools like ui_click or ui_find_element. This leaves the agent without contextual direction for tool selection.

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

ui_keyboardB

Press keyboard keys or shortcuts (e.g., Enter, Escape, Alt+S, Ctrl+Z)

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesKey to press (e.g., "Enter", "Escape", "Tab", "a", "ArrowUp")
modifiersNoModifier keys to hold (e.g., ["ctrl", "shift"])

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 burden of behavioral disclosure. It only states what the tool does, not how it behaves (e.g., whether it requires focus, simulates key down/up, or may trigger platform shortcuts). There is no mention of side effects, prerequisites, or potential failures, leaving significant behavioral ambiguity.

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

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 ('Press keyboard keys or shortcuts') and includes useful examples. Every word earns its place, with no wasted text.

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

Completeness3/5

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

The tool is simple (2 params, no output schema), and the description provides a basic understanding of its purpose and examples. However, given the absence of annotations and the presence of sibling tools with overlapping functionality, the lack of usage guidance and behavioral details makes the description only minimally complete.

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

Parameters3/5

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

Schema coverage is 100%, so the parameters are already documented. The description adds examples of combined shortcuts (e.g., 'Alt+S', 'Ctrl+Z') that illustrate how the 'modifiers' array interacts with 'key', which is helpful. However, this is marginal value beyond the schema descriptions, so the baseline score of 3 is appropriate.

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

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: 'Press keyboard keys or shortcuts'. It uses a specific verb (Press) and resource (keyboard keys or shortcuts), and provides concrete examples like 'Enter, Escape, Alt+S, Ctrl+Z' that distinguish it from sibling tools such as ui_click (mouse) or ui_type_text (text input).

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

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 versus alternatives. While the tool name and description imply it is for keyboard input, there is no mention of exclusions or comparisons to siblings like ui_type_text or ui_hover. Users must infer that this tool is for pressing keys, not for typing text or mouse actions.

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

ui_mouse_clickA

Click at specific x,y coordinates on the TradingView window

ParametersJSON Schema
NameRequiredDescriptionDefault
xYesX coordinate (pixels from left)
yYesY coordinate (pixels from top)
buttonNoMouse button (default left)
double_clickNoDouble click (default false)

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 convey behavior. 'Click at specific x,y coordinates' accurately states the core action, but it does not disclose potential side effects like window activation, whether a synthetic event is used, or how out-of-bounds coordinates are handled. This is adequate but not rich.

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

Conciseness5/5

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

The description is a single, direct sentence with no filler. It is front-loaded and immediately communicates the purpose.

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

Completeness4/5

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

For a simple click action with fully documented parameters, the description is largely sufficient. It is missing usage context relative to sibling tools and any prerequisites, but the core operation is clear and uncomplicated.

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

Parameters3/5

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

The input schema already provides full descriptions for all four parameters, including enums and defaults. The description adds no additional parameter semantics, so the baseline score of 3 applies.

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

Purpose5/5

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

The description states a specific action (click), the precise target (TradingView window), and the method (specific x,y coordinates). This clearly differentiates it from sibling tools like ui_click, which likely operates on elements rather than raw coordinates.

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

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 such as ui_click or ui_hover. There is no mention of prerequisites (e.g., window must be visible/focused) or coordinate system details beyond what the schema supplies.

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

ui_open_panelB

Open, close, or toggle TradingView panels (pine-editor, strategy-tester, watchlist, alerts, trading)

ParametersJSON Schema
NameRequiredDescriptionDefault
panelYesPanel name
actionYesAction to perform

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 only restates the possible actions and panel names from the schema, without disclosing side effects, dependencies (e.g., TradingView must be launched), or state-related nuances of toggling.

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

Conciseness5/5

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

The description is one concise sentence that front-loads the main action and resource, with no wasted words. It efficiently communicates the tool's scope.

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

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 description covers its core behavior. However, it lacks usage context and behavioral caveats that would help an agent decide when to use it, especially given the many sibling UI tools. Without annotations, this is a noticeable gap.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description lists the panel names and actions, reinforcing the enums but not adding substantial new meaning beyond the schema. The parameter descriptions in the schema are minimal, but the enums themselves provide the core semantics.

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

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 specific verbs (open, close, toggle) and a specific resource (TradingView panels) with an explicit enumeration of panel names. This differentiates it from sibling tools like ui_click or tv_ui_state.

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

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 vs alternatives. It does not mention prerequisites, exclusion cases, or suggest alternative tools for similar tasks, leaving the agent to infer usage context.

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

ui_scrollB

Scroll the chart or page up/down/left/right

ParametersJSON Schema
NameRequiredDescriptionDefault
amountNoScroll amount in pixels (default 300)
directionYesScroll direction

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 only states the basic scroll action but does not say whether it scrolls the chart viewport or the page, what side effects occur, or whether the amount parameter is optional. This is a notable gap.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no redundant words. It efficiently conveys the core behavior without any fluff.

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

Completeness3/5

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

For a simple tool with full parameter schema and no output schema, the description is minimally adequate but has a notable ambiguity ('chart or page') and lacks behavioral context that the absence of annotations would require. It is not fully complete for an agent to understand the exact effects.

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

Parameters3/5

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

Schema coverage is 100%, so the parameters are already documented with descriptions (direction enum, amount default). The description adds no additional meaning beyond what the schema provides, matching the baseline for high coverage.

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

Purpose4/5

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

The description clearly states the action ('Scroll') and the resource ('chart or page'), with explicit direction options. It distinguishes from chart_scroll_to_date (which scrolls to a specific date) but could be more specific about whether it targets the chart viewport or the page.

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

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 chart_scroll_to_date or chart_set_visible_range. There is no context about intended scenarios or exclusions.

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

ui_type_textA

Type text into the currently focused input/textarea element. Refuses when nothing is focused or the focused element cannot accept text, and reports which element received the characters.

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_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_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_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. Dates show when Glama detected each change.

  1. 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."
  2. 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.4/5.0
Disambiguation4/5

The 105 tools are organized by domain prefixes (data_, draw_, alert_, ui_, tv_, etc.) and each tool targets a specific resource/action. There are a few potentially confusable pairs (e.g., quote_get vs quote_batch, chart_set_symbol vs pane_set_symbol), but descriptions clarify distinctions. No two tools appear to do exactly the same thing.

Naming Consistency4/5

Naming follows a consistent pattern of domain prefix + verb + noun (e.g., data_get_ohlcv, draw_shape, alert_create, watchlist_add). Some tools lack a prefix (symbol_info, capture_screenshot) but still use verb_noun order. Mixed snake_case and no camelCase; overall consistent and predictable.

Tool Count2/5

With 105 tools, the surface is extremely large. While the scope covers many TradingView features, this exceeds what is typically needed for a coherent tool set. The count is above the 50+ threshold for 'extreme mismatch' and will likely overwhelm agents and increase selection errors.

Completeness4/5

The tool surface is comprehensive: CRUD operations exist for drawings, alerts, watchlist, Pine scripts, states, and replay. It covers chart control, indicators, quotes, panes, tabs, and diagnostics. Minor gaps include no update for drawings (though draw_shape might re-create) and no layout creation/deletion, but core workflows are well-covered.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/FerroxLabs/tvcontrol'

If you have feedback or need assistance with the MCP directory API, please join our Discord server