TradingView-MCP
Connects to TradingView desktop app via CDP and public scanner API, enabling AI agents to capture chart screenshots, retrieve chart context (symbols, timeframes, indicators), load OHLCV data, get indicator values and inputs, manage watchlists, list alerts, fetch quotes and technical data, scan markets, and change active symbol/timeframe.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@TradingView-MCPscan Japanese stocks with RSI under 30"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
TradingView-MCP
Let an AI inspect your TradingView Desktop app and help analyze your charts.
100+ MCP tools for chart inspection and control, indicators, Pine Script, backtesting, market research, falsification audits, point-in-time evidence, and cross-market analysis.
Register this server with an AI agent such as Claude Code, Codex, or Antigravity, and the agent can read the chart you are currently viewing. Your signed-in account, saved layouts, and purchased custom indicators remain available in the Desktop app.
What You Can Do
Example requests:
"Analyze the current chart." -> combine the chart image, candles, and indicator values.
"Read this indicator's signals." -> retrieve BUY/SELL labels and support/resistance values.
"Assess the market on both the daily and four-hour timeframes." -> retrieve multiple-timeframe evidence without moving the chart.
"Find Japanese stocks with RSI below 30." -> search the market scanner.
"Check every symbol in my watchlist." -> retrieve quotes for the complete list.
Related MCP server: TradingView MCP Bridge
How It Works
TradingView Desktop is an Electron application. When launched with its debugging endpoint enabled, an external program can inspect the chart. This MCP server provides that bridge.
AI agent <-> tradingview-mcp <-> TradingView Desktop (your chart)
<-> TradingView public APIs (quotes and scanner)Requirements
macOS or Windows 10/11 and TradingView Desktop (the free plan is sufficient)
Node.js 22 or later (check with
node --version; Node 20 is EOL)An AI agent such as Claude Code, Codex, or Antigravity
Publishing from source additionally requires a JDK because prepublishOnly
runs the complete Node.js and Bookmap add-on test suites before npm accepts a
release. npm users do not need Java.
Setup in Three Steps
Step 1: Install the Server
In a terminal:
npm install --global bushido-tradingview-mcpThe installed command is tradingview-mcp. You normally do not run it by
itself; the AI agent starts it as an MCP stdio server. Node.js is the only
requirement; the Java add-on in this repository is not part of the package.
Step 2: Launch TradingView in Debug Mode
Important: The AI cannot inspect TradingView when it is launched normally from the app icon. Quit the running app first, then use the command for your operating system.
macOS:
open -a TradingView --args --remote-debugging-port=9222To avoid typing the full command each time, add an alias and launch it with tv:
echo 'alias tv="open -a TradingView --args --remote-debugging-port=9222"' >> ~/.zshrc
source ~/.zshrcWindows PowerShell, when the app execution alias is available:
$tv = (Get-Command TradingView.exe).Source
Start-Process -FilePath $tv -ArgumentList "--remote-debugging-port=9222"The source checkout also provides scripts\windows\start-tradingview.ps1. If
the alias is not on PATH, pass the script
-TradingViewExecutable "C:\path\to\TradingView.exe". See the Windows support
guide for Bookmap, CI, filesystem, and scheduled-collection
details. In Windows MCP configuration files, use npx.cmd instead of npx
when the client does not resolve npm command shims.
Step 3: Register the MCP Server
Choose the instructions for your agent. The examples use npx, so a global
installation is optional and the agent can launch the published package
directly.
Run one command:
claude mcp add tradingview -- npx -y bushido-tradingview-mcpVerify by running /mcp in Claude Code and confirming that tradingview appears.
Option 1 - add it with the CLI:
codex mcp add tradingview -- npx -y bushido-tradingview-mcpOption 2 - add it directly to ~/.codex/config.toml:
[mcp_servers.tradingview]
command = "npx"
args = ["-y", "bushido-tradingview-mcp"]Verify by running /mcp in Codex and confirming that tradingview appears.
Create or update ~/.gemini/config/mcp_config.json:
{
"mcpServers": {
"tradingview": {
"command": "npx",
"args": ["-y", "bushido-tradingview-mcp"]
}
}
}From the IDE, open the same file from ... -> MCP Servers -> Manage MCP Servers -> View raw config in the upper-right corner of the agent panel. Saving reloads it automatically.
Try It
With TradingView running in debug mode, ask your AI agent:
Analyze the current chart.
The agent can combine tools such as get_chart_context (what is displayed), get_chart_screenshot (visual evidence), and get_ohlcv (numeric evidence).
Tools (106 Total)
The AI selects the appropriate tools automatically; you do not need to memorize them.
Read charts
Tool | Description |
| Lists the symbol, timeframe, and indicators for every visible chart |
| Captures the chart; |
| Candle data with ISO timestamps and a |
| Indicator plot values such as signals and bands |
| Indicator input names, current values, and defaults |
| Indicator labels, lines, and boxes, including Elliott Wave counts |
| Indicator tables, such as MTF trend grids, reconstructed as cell matrices |
| Aggregates sourced support and resistance within +/-N% of price |
| Loads additional historical candles without moving the viewport |
Operate charts
Tool | Description |
| Changes the selected pane's symbol; defaults to the active pane and rolls back on failure |
| Changes the selected pane's timeframe with the same rollback behavior |
| Temporarily changes indicator or strategy inputs without saving them |
| Reads Bar Replay availability, state, and historical cursor time |
| Verifies symbol/timeframe and starts Replay after dry-run and confirmation |
| Advances a paused Replay by 1-100 bars and verifies time advancement |
| Stops Replay after dry-run and confirmation and returns to real time |
Data outside the chart
Tool | Description |
| Quotes and technicals such as RSI and aggregate ratings |
| Batch snapshots for multiple symbols and timeframes without chart interference |
| Market screening, for example Japanese stocks with RSI below 30 sorted by volume |
| Economic calendar filtered by country and importance |
| Your TradingView watchlist |
| Read-only list of your price alerts |
| Previews and idempotently creates expiring Confirmation, Invalidation, and Target 1 alerts after explicit confirmation |
Market context and evaluation
Tool | Description |
| Combines multiple markets, timeframes, and events in one acquisition window with explicit quality status |
| Normalizes bid/ask, spread, pip/tick, and feed mode; reports ready only after observing a post-request price update |
| Binds chart, OHLC, levels, MTF, events, COT, real yield, and bid/ask to one |
| Strictly aligns closed bars from multiple charts by UTC timestamp without forward filling |
| Deterministically computes returns, ATR, volatility, and correlation from aligned history |
| Classifies closed OHLC as trend/range/transition and low/normal/high volatility using only prior evidence and explicit thresholds; it does not optimize or recommend trades |
| Classifies rolling return correlation between two exact chart bindings; uses closed bars matched by UTC timestamp without forward filling |
| Runs an exact saved strategy temporarily, joins its full ledger to labels closed before entry, and reports PF, expectancy, win rate, drawdown, and coverage by directional, volatility, combined, and optional DST-aware session regimes; verifies cleanup and chart restoration |
| Serially evaluates up to 12 symbol/timeframe/strategy jobs under one regime/session contract, optionally loading up to 20,000 bars per job; isolates failures, restores after every job, stops after restoration failure, and does not rank or pool currencies |
| Runs closed-OHLC event studies with exclusive branches, decision-time-correct session handoffs, same-timestamp policy, Bonferroni reference, returns, MFE/MAE, folds, confidence intervals, declared trials, and optional prior price/volatility regimes; FVG populations can be frozen by time window, direction, and regime |
| Calibrates frozen FVG retest, session auction, and event-aftershock candidate rules against white-noise, regime-switching-volatility, and bid-ask-bounce synthetic OHLC; it does not access charts, networks, or journals or pool rates across models |
| Registers an immutable event-study or feature-study hypothesis and outcome contract in the local append-only research journal |
| Lists hash-bound event-study evidence or compares exact selected records without accessing a chart |
| Returns the fixed Pine template that reads confirmed DXY daily data with |
| Uses two exact charts to detect a target that fails to follow a confirmed driver and then breaks structure in the opposite direction; returns multi-horizon and fold-level return/MFE/MAE without exact-time matching or forward fill |
| Measures outcomes after caller-supplied point labels such as daily OI; requires at least one-bar lag, rejects zero lag, supports daily/weekly data, and guarantees point-in-time behavior only for the join, not the supplied labels |
| Joins closed returns by exact UTC time and reports every lag from -N to +N, Fisher-z intervals, and fold sign stability. Default v3 causally standardizes each series by the preceding 20-return RMS. It reports Bonferroni and empirical family-wise p-values without selecting a best lag. Because the shared clustered-volatility null still exceeded nominal 5%, |
| Runs the frozen lead-lag gate against paired synthetic nulls and returns a fully resolved, hash-bound calibration configuration without reading TradingView |
| Runs the actual |
| Injects a signed next-bar effect after a frozen body-direction bucket and reports detection, Wilson interval, and miss rate by effect and model; it preserves signal-bar shape but does not establish market alpha or profitability |
| Classifies ATR compression, body direction, wick imbalance, streak, range position, and gaps using only contemporaneously available evidence, with outcomes and fold distributions by bucket. Optional selection compares against all bars in the same time/regime population. Empirical calibration uses a fixed 1,000-repetition circular moving-block null and requires Newey-West, Bonferroni, and family-wise empirical tests at horizon 1; it does not optimize thresholds or recommend trades |
| Computes DST-aware, cross-midnight session ranges, returns, opening-range extension, high/low times, VWAP behavior, prior-session level tests, holiday/short-session quality, gaps/overlaps, and volume coverage; TradingView volume is explicitly unverified tick/exchange volume |
| Returns the audited close-confirmed Pine template for pin bars, engulfing bars, and 20-bar sweeps |
| Reads the latest price-action plots only after verifying the exact saved template, on-chart instance, inputs, symbol, and timeframe |
| Descriptively measures naked-entry outcomes for the three frozen price-action patterns and reports same-clock-hour baselines |
| Returns the audited Pine proxy for completed prior-session POC, VAH, and VAL derived from chart-bar volume allocation |
| Reads completed profile levels only after exact source, version, placement, input, symbol, and timeframe verification |
| Runs the frozen 60- or 240-minute VAH/VAL reaction study with same-prior-regime controls; it does not claim order-flow evidence |
| Runs the separately frozen 60-minute POC-reversion study and keeps its population separate from VAH/VAL reactions |
| Computes round-trip spread, slippage, and commission under explicit assumptions |
| Floors position size from loss limit, Entry/Stop, costs, quantity constraints, and fresh FX conversion evidence |
| Previews due nonterminal journal analyses, then after confirmation temporarily switches the selected chart, evaluates, records, and restores it |
| Aggregates the live journal into outcomes, gross/net R, MFE/MAE, and time-to-hit with explicit populations and exclusions |
| Validates direction, expiry, current price, evidence freshness, event blackout, and net reward/risk without touching the chart |
| Reads |
| Reconciles COT gold OI with locally first-seen CME |
| Returns CFTC COT history, OI normalization, weekly change, and three-year percentile; when first-seen storage exists, |
| Combines directed CME/COMEX daily futures price/volume Z-score with weekly COT. Chart OI is the default; |
| U.S. Treasury 10-year par real CMT, restricted to locally first-seen versions when |
| Returns first-seen policy rates for eight currencies as of a requested time, requiring both conservative |
| Returns isolated official revised policy-rate history for exploration only; it makes no historical-availability claim and cannot support prospective/OOS evidence |
| Checks common policy-rate start, non-overlapping anchors, OOS remainder, and gaps for a frozen pair/period/horizon; it never backfills uncollected history and reports |
| Estimates correlation-adjusted effective sample size from frozen carry returns using date-level circular moving-block bootstrap; it does not select or optimize |
| Temporarily acquires a daily FX panel and reports observed pairwise rho and block-bootstrap design effect on exact non-overlapping dates; dynamic official-rate signs remain exploratory and non-point-in-time |
| Reads the frozen carry primary-test readiness from first-seen rates and complete collection heartbeats without switching a chart |
| Runs the frozen five-pair carry panel with first-seen rates, pair fixed effects, and anchor-date block bootstrap; remains |
| Reports whether the local OANDA retail-flow collector is configured without making a request or exposing its token |
| Returns the audited Pine overlay for supplied COT crowding context and prior daily structure; it does not fetch or infer orders or stops |
| Describes a daily EURUSD/USDJPY leveraged-money crowding and price-break proxy without claiming observed execution flow |
| Verifies exact closed-bar coverage for an EURUSD/USDJPY, DXY, US10Y, and XAUUSD shock study while restoring the temporary auxiliary chart |
| Checks recorded usage before OOS evaluation. Overlap blocks; absent records require review, never automatic approval. No reservation or backtest interception. See OOS preflight |
| Classifies frozen same-UTC cross-asset shock states without producing outcomes, candidates, or trade instructions |
| Measures descriptive 15/30/60/120-minute outcomes for non-overlapping frozen shock states without producing a candidate |
| Reads one bounded local Bookmap Collector JSONL and verifies conservative receipt-time coverage against active EURUSD M1/M5; CME flow remains a single-venue futures proxy |
| Statically audits a user-owned Pine indicator for repainting risks |
| Detects changes in the same-bar values before and after reload |
First-seen collection CLI
npm run collect:first-seen -- --cot-symbol OANDA:EURUSD --cot-symbol OANDA:XAUUSD collects COT, the U.S. 10-year real yield, and all-contract GC open interest from the CME Daily Bulletin into append-only first-seen logs. npm run coverage:first-seen reports collection days, revisions, and first/last observation dates for COT, real yield, futures OI, and policy rates as JSON. Set scheduled COT symbols with TRADINGVIEW_MCP_COLLECTION_COT_SYMBOLS=OANDA:EURUSD,OANDA:USDJPY,OANDA:XAUUSD, or pass --cot-symbol per symbol as the launchd example does. Naming them matters: with neither, the CLI collects only its two-symbol default, and a symbol added once by hand stops being collected without any error.
npm run collect:research-hypotheses appends a run record to ~/.tradingview-mcp/research-collection-heartbeats.jsonl whether or not a hypothesis fired, because the evidence file only grows on a closed event and the frozen hypotheses produce roughly one every ten days. Without it a quiet week and a dead collector are the same record, and the second cannot be filled in afterwards. Override the path with TRADINGVIEW_MCP_RESEARCH_COLLECTION_HEARTBEAT_PATH. Coverage reports run count, maximum gap in hours, latest-run age, chart-restoration failures, and per-hypothesis attempts against events.
npm run collect:policy-rates reads ECONOMICS:*INTR for USD/EUR/JPY/GBP/AUD/NZD/CAD/CHF in sequence and appends changes to ~/.tradingview-mcp/policy-rate-first-seen.jsonl. Every run that successfully acquires all eight currencies, persists values, and restores the chart is also recorded in ~/.tradingview-mcp/policy-rate-collection-heartbeats.jsonl, whether or not a value changed. This lets the primary test verify first-seen values and collection continuity separately. Override the heartbeat path with TRADINGVIEW_MCP_POLICY_RATE_COLLECTION_HEARTBEAT_PATH. Coverage reports distinct run days, same-day reruns, maximum business-day age between runs, intervals beyond the frozen five-day limit, and latest-run age. The script uses the same cross-process chart lock as the MCP server, passes the approved --confirm-chart-switch, and verifies restoration after every currency. Because TradingView's 00:00 UTC bar is not a release timestamp, available_at is conservatively set to 00:00 UTC on the next business day. This reproducible boundary prevents meeting-day lookahead but is not the actual publication time.
npm run health:collections checks the scheduled-collection heartbeat logs without opening TradingView. Policy-rate collection is stale when it did not complete on the current business day; hourly research collection is stale after two hours. First-seen collection is checked against its latest expected weekday 10:30 or 22:30 JST run, and a completed but partial source run is unhealthy. Missing or malformed evidence fails closed. Use --scope research, --scope policy-rate, or --scope first-seen to read and assess only one collector. The command emits one JSON result, exits nonzero when stale, and stays notification-free by default. On macOS, --notify sends a local notification only for stale, partial, or failed checks; it never includes market data.
For a repository-location-independent launchd setup, install the package globally (npm install -g bushido-tradingview-mcp) and customize the absolute Node and global-module paths in the examples. The research health agent runs hourly on all seven days, so a Friday-night outage is detected within the two-hour threshold. The first-seen health agent runs 45 minutes after each collection window. The separate policy-rate health agent runs at 11:15 JST on weekdays, after the 10:45 collector. These agents and the first-seen collector do not use WorkingDirectory; moving the source repository does not break the installed jobs.
npm run collect:official-policy-rates writes to a separate exploration-only official-history store. Sources include the ECB Deposit Facility SDMX CSV; BoC Valet V39079; the exclusive date splice of FRED DFEDTAR with the midpoint of DFEDTARL/DFEDTARU from 2008-12-16; RBA F1 FIRMMCRTD, joining the official legacy XLS (1990-08-02 through 2010-12-31) to the current daily CSV from 2011-01-04; the SNB policy rate and legacy Libor target-range midpoint; and a frozen BoJ meeting-decision manifest. BoJ periods without a single short-rate target are stored as value: null so an obsolete rate is not carried forward. Effective market rates are not substituted for policy targets. Unchanged observations are reduced to change points, while raw snapshots retain original row count and first/last dates to distinguish missing data from unchanged values. Raw bodies retain raw_sha256, retrieval time, and Last-Modified vintage and are stored owner-only at ~/.tradingview-mcp/policy-rate-official-raw/<sha256>.raw; reused hashes are revalidated. This is revised history and must not support prospective/OOS evidence, the primary test, or adoption decisions.
npm run collect:fx-history -- --from 2022-01-01T00:00:00.000Z --to 2026-01-01T00:00:00.000Z reads OANDA_FX_HISTORY_ACCOUNT_ID and OANDA_FX_HISTORY_ACCESS_TOKEN only from the environment and retrieves confirmed OANDA v20 EUR_USD midpoint M15 candles. Choose practice (default) or live; credentials and account IDs are never written to stdout, manifests, or raw evidence. Requests are paged at no more than 4,000 bars and timeouts, 429s, and 5xx responses are retried up to three times per page. Successful pages are archived before checkpoints are appended to ~/.tradingview-mcp/fx-history-m15-manifest.jsonl.checkpoints, so rerunning the same range revalidates archived raw data and resumes from the first incomplete page. Raw responses are stored owner-only by content hash under ~/.tradingview-mcp/fx-history-raw/<sha256>.raw. The manifest records range, retrieval time, raw and normalized hashes, counts, first/last bars, boundary duplicates, and weekday discontinuities. Equal duplicates are removed; conflicting duplicates stop the run. This revised official history is not a first-seen series and currently supports exploratory long-run CPI/NFP/FOMC research only, not existing OOS adoption gates.
On Windows, scripts\windows\register-collection-tasks.ps1 registers the research, first-seen and policy-rate jobs as Scheduled Tasks for the interactive user; see the Windows support guide. Its time parameters are local Windows wall-clock times and default to this project's JST schedule; pass the documented local equivalents on machines in another time zone. The Windows first-seen task explicitly collects EURUSD, USDJPY, and XAUUSD. On macOS, register com.tradingview-mcp.policy-rate-collection for weekdays at 10:45 JST without RunAtLoad, so login and MCP restart do not immediately move the chart. External first-seen collection runs at 10:30 and 22:30 JST on weekdays to create two observation windows for preliminary-to-final CME OI revisions; this schedule does not guarantee the final publication. Both jobs share the chart-operation lock, so they wait or fail during MCP use rather than restoring another process's temporary symbol.
Macro surprise forward collection
npm run coverage:macro-surprise -- --events CPI_ARTIFACT --events NFP_ARTIFACT --events FOMC_ARTIFACT --confirm-local-import reconciles official release artifacts with local first-seen evidence and separately reports pre-collection events, missed forward consensus/actual values, releases still inside the 15-minute actual-capture window, and evaluable surprises. Revised official history does not prove that historical consensus was known, so events_before_collection is not a gap. A nonzero missing_forward_consensus or missing_forward_actual blocks the directional study.
macOS examples are provided for daily consensus collection, five-minute actual collection, and daily coverage checks. Actual collection fetches official documents only within 15 minutes of release. Set TRADINGVIEW_MCP_TRADING_ECONOMICS_API_KEY in the launchd environment before loading the consensus job. The examples reference real 2016-2026 artifacts; update all three paths to the same artifact set each year. Keep the mapping JSON private and outside Git. These three macro-surprise jobs have no Windows registration script yet - register-collection-tasks.ps1 covers research, first-seen and policy rates only - so on Windows they must be scheduled by hand or run manually.
Event-study falsification audit CLI
npm run audit:event-studies -- --config fvg-audit.json calibrates a frozen event-study definition against synthetic nulls. Defaults are 400 replications per model, 5,000 bars, nominal alpha 5%, and three folds; white noise, regime-switching volatility, and bid-ask bounce are reported separately. The audit never accesses TradingView, the network, or local journals. For a quick smoke test, override with --model white_noise --replications 20 --bars 1200.
The configuration contains only the study definition and candidate rule. For example:
{
"study": {
"type": "fvg_retest",
"definition": {
"symbol": "SYNTH:FVG_RETEST",
"timeframe": "15",
"minimumGapBps": 10,
"retestWithinBars": 24,
"minImpulseBodyRatio": 0.5,
"requireBoundaryHold": true,
"horizons": [1, 4, 8],
"targetReturnBps": 20,
"minimumEvents": 30,
"eventLimit": 0,
"confidenceLevel": 0.95,
"configurationTrials": 1,
"regime": null,
"branchFilter": "bearish"
}
},
"candidate": {
"branch": "fvg_retest_bearish",
"horizon": 4,
"minimumEvents": 30,
"minimumFoldEvents": 5,
"folds": 3
}
}Each model's Wilson interval is used to assess whether its candidate rate exceeds nominal alpha. This does not prove profitability or future edge; it audits how often the adoption rule fires on a series with no signal.
For an event-aftershock-retest audit, provide eventSchedule instead of real economic-event times. firstBar, everyBars, and maximumEvents define a relative exogenous schedule within each synthetic series; they do not predict, substitute for, or reproduce real events.
Periodic research-hypothesis collection
npm run collect:research-hypotheses serially collects three prospective hypotheses: XAUUSD M15 bearish FVG x trend_down, daily EURUSD/U.S. 10-year nonconfirmation, and EURUSD M50 lower-wick x trend_down. It refuses to run during Bar Replay, temporarily switches the two existing panes, and restores their original symbols and timeframes after success or failure. It does not modify orders, alerts, Pine scripts, or studies.
Only aggregates are stored in ~/.tradingview-mcp/research-collection.jsonl, and a record is appended only when the primary horizon has at least one closed event. Startup verifies that all three hypothesis IDs are preregistered in the research journal. The MCP server and CLI share one owner-only chart-operation lock. In stdout, collection_status describes execution and research_status describes evidence sufficiency; either being partial makes the top-level status partial. On Windows, run scripts\windows\register-collection-tasks.ps1 -TaskKind research. For scheduled macOS operation, copy and load the launchd examples for research hypotheses, external first-seen collection, and policy rates. TradingView must be running with CDP enabled. The research example runs hourly to reduce visible chart interference.
Required history is frozen per job: 5,000 bars for FVG, 1,000 per series for the daily rate nonconfirmation, and 500 for the M50 feature study. Missing bars are loaded on the same temporary chart, and coverage records initial, added, and final counts, provider capacity, and sufficiency. If the requirement cannot be met, insufficient_loaded_history stops analysis and evidence recording; short history is never presented as complete evidence.
get_execution_snapshot first reads bid, ask, lp_time, session state, real-time load state, and price increment from open TradingView charts. lp_time is the last-price time in the same quote snapshot, not an exchange timestamp for each bid/ask. A chart quote is ready only when it is no more than five seconds old by default and is streaming, in an active session, and real-time loaded. If the symbol is not open, the tool falls back to the scanner. The scanner has no market-side bid/ask timestamp or session calendar, so receipt time is never substituted for market time; the fallback is ready only after observing a bid/ask change within the default 1.2-second window. No movement returns wait. This does not guarantee fillability or liquidity and does not change accounts, orders, or charts.
compute_position_size returns instrument units, not broker-specific lots. Supply quantity_step, minimum_quantity, and where needed maximum_quantity and contract_multiplier according to the execution venue. Loss includes Entry-to-Stop distance plus explicit round-trip cost such as compute_round_trip_cost.total_price_per_unit, converted to account currency. When quote and account currencies differ, size is returned only with a fresh account-currency/quote-currency rate, symbol, and observation time. The tool does not connect to an account, read balances, place orders, or persist positions.
Real-yield first-seen history is appended to ~/.tradingview-mcp/real-yield-first-seen.jsonl by default; override it with TRADINGVIEW_MCP_REAL_YIELD_HISTORY_PATH. Historical rows fetched on first startup are not backdated to past publication times and become eligible for backtests only after the time they were actually stored.
Futures-OI first-seen history is appended to ~/.tradingview-mcp/futures-open-interest-first-seen-v3.jsonl by default; override it with TRADINGVIEW_MCP_FUTURES_OI_HISTORY_PATH. Chart-derived OI is recorded when read by get_futures_flow_context, and official CME all-contract GC OI is recorded by get_cme_gold_open_interest and the collection CLI. Chart proxies and official CME values remain separate. Pre-collection vintages cannot be reconstructed: historical values downloaded today are revised values, not necessarily what was visible at the time.
If a process crashes while writing history and leaves a .lock, history access stops rather than deleting it automatically. Confirm that no other TradingView-MCP process is running before deleting only the adjacent .lock file.
The evaluation CLI uses the snapshot's request_completed_at as evaluation time and binds evaluation_context.real_yield_10y only to a version first seen by that time. It never falls back to the current value or a later revision.
npm run evaluate -- --log evaluation.jsonl --snapshot snapshot.jsonUse --real-yield-history PATH for an isolated store. If the snapshot has no completion time, supply canonical UTC with --as-of 2026-07-01T12:00:00.000Z. An --as-of later than request_completed_at is rejected as lookahead. Missing history is not imputed and records point_in_time_status=blocked; corrupt history or lock failure prevents the snapshot itself from being appended.
Pine scripts (user-owned only)
Tool | Description |
| Lists saved user-owned Pine scripts and the chart indicators that use them |
| Retrieves full source for a user-owned script, optionally by version for recovery |
| Saves AI-modified source; dry-run without confirmation, creates only a new script or version, never overwrites history |
| Adds a user-owned script to the chart; removal is separate |
| Verifies |
| Evaluates an audited analysis on later closed bars, optionally using a temporary evidence timeframe; appends to the journal only with |
| Reads definitions and latest evaluations without allowing a later stale |
| Reports Brier score and realized rates by confidence band, using Target-first as positive and Stop-first as negative with explicit exclusions |
| Validates expiry, current-price geometry, and drawing count; returns |
| Returns the fixed Pine template for Entry, Invalidation, Stop, Targets, and analysis time |
| Idempotently reuses, installs, or after confirmation migrates a legacy 14-input overlay to the context-bound 18-input version; dry-run without confirmation |
| Applies structured analysis with symbol/timeframe and optional snapshot/strategy version, verifies fail-closed readback, and journals after success; dry-run without confirmation |
To overlay analysis on the chart, save the template once with save_pine_script, then use ensure_analysis_overlay to place, update, and obtain its study_id. An existing current version is reused without writing, so each analysis does not create another script or study. If a legacy migration preview returns contextBindingRequired:true, confirmation binds that analysis to the currently verified symbol/timeframe. Expired analyses remain visible as EXPIRED. Template defaults are not treated as analysis and return unconfigured. After application, status rechecks inputs, current-price geometry, and drawings; a chart that differs from the stored context returns stale_context and trusted:false.
Current-price geometry does not establish historical hit order. evaluate_analysis_overlay_outcome evaluates closed OHLC after the analysis, excluding both the analysis-time bar and the forming bar. After Entry, an optional Confirmation must occur on a later bar; Invalidation before confirmation cancels the setup. Once active, Target 1 versus Stop is evaluated first-hit. This does not prove fills or P&L: touching opposing levels in one bar or opening across a terminal returns ambiguous. If history is short, load more or request a shorter evaluation_timeframe. The latter keeps the expected_timeframe overlay contract, temporarily switches only the selected chart, verifies symbol/resolution/bar evidence, and restores it. If chartState.restored is false, inspect currentTimeframe and restore manually. Daily and weekly aliases are supported; calendar-month M is not_evaluable because its duration varies.
The analysis journal defaults to ~/.tradingview-mcp/analysis-journal.jsonl; override it with TRADINGVIEW_MCP_ANALYSIS_JOURNAL_PATH. apply_analysis_overlay(confirm:true) records the definition after verified readback, while outcome evaluation appends only with explicit record:true. The same ID and definition are idempotent; reusing an ID for a different definition or assigning conflicting completed labels is rejected. A definition conflict requires a new analysis_id, not a retry. If only journal writing fails, the application/evaluation result remains available with journal.recorded:false and a warning. Calibration uses only target_before_stop=1 and stop_before_target=0; all other outcomes are counted by exclusion reason.
The journal reclaims a .lock only when it is older than 60 seconds and its recorded owner PID no longer exists. A live, unverifiable, or recent lock is never stolen, and the timeout names its path. Before manually deleting that lock, confirm that no TradingView-MCP process is using it.
This enables a read -> modify -> save -> backtest improvement loop:
Read the BushidoScalp source, implement a change that reduces false signals, save it, backtest it on USDJPY 4H, and compare it with the original.
Backtesting
Tool | Description |
| Temporarily applies a user-owned strategy, retrieves results, and removes it, leaving the chart unchanged |
| Reads net profit, win rate, PF, drawdown, and recent trades for the active strategy |
| Pages the full Strategy Tester ledger in batches of up to 500, binds it to a SHA-256 ID, rejects cross-page recomputation, exposes available costs/run-up/drawdown/inputs/Pine version, and separates the trailing mark-to-market open row |
| Recomputes PF/net bps, sample break-even round-trip cost and cost headroom; compares full/selected/excluded populations. Optional |
| Records reported data access intervals with explicit confirmation; retries are idempotent, conflicting access IDs fail. See period usage contract |
| Finds prior interval use across research IDs and revisions of the same series; absence of records never proves unused OOS. See period usage contract |
| Compares declared data/code/runner/rule/parameter/environment hashes; identifies missing evidence and revalidation checks without certifying compatibility. See comparison contract |
| Serially compares baseline and candidate on one chart; dry-run by default, then after confirmation reports exact Pine versions, ledger IDs, inputs, minimum trades, condition match, and metric deltas before removing both |
| Runs up to 24 explicit symbol/timeframe/input combinations with a 30-minute soft deadline, per-row full-ledger IDs, insufficiency/failure reasons, and verified restoration; it does not rank results |
| Splits full ledgers for 2-8 candidates into 2-12 explicit train/embargo/test windows, selects on train only, and returns OOS only for the selected candidate with anchored/rolling, tie, minimum-trade, quality, and coverage checks |
| Validates an exact Pine version and frozen protocol, classifying IS/OOS overlap, future windows, forming bars, trial count, minimum trades, missing costs, static Pine risks, and post-OOS changes as blocked or warning |
| Binds to a frozen protocol and stress-tests full ledgers under cost/time/bootstrap models plus up to eight explicit Pine input reruns, evaluating delays, Stop/Target, and nearby parameters through the strategy itself with cleanup, restoration, failures, and degradation rates |
| Registers a hypothesis and prospective evaluation contract in a local append-only research journal separate from live analysis |
| Binds experiment ID, Pine version, ledger ID, known metrics, guardrails, and decision to the hypothesis |
| Compares exact experiment IDs and evidence hashes and rejects population, symbol, timeframe, or methodology mismatches |
Troubleshooting
Concurrent history writers
Shared first-seen/heartbeat/research journals wait up to 30 seconds for a
cross-process lock by default. Set TV_MCP_HISTORY_LOCK_WAIT_MS to an integer
from 100 to 120000 in each MCP/collector process environment to override it;
restart processes after changing it. Invalid values fail at store construction.
This setting applies to AppendOnlyFirstSeenLog, not every lock in the project.
Timeouts include the lock path and HISTORY_LOCK_TIMEOUT error code internally.
They do not discard evidence, skip fsync or steal another writer's lock.
Reduce overlapping jobs or investigate storage latency if timeouts continue.
Stale-lock recovery remains manual after confirming no writer is active.
The budget bounds contention retries, not an unresponsive filesystem syscall,
whole collection run or time queued inside the same process. A longer wait does
not guarantee fairness or cure sustained overload.
Symptom | Cause and resolution |
| TradingView is not in debug mode. Quit it and relaunch it with the Step 2 command |
Tools do not appear in the AI | Reconnect or restart the agent and confirm that |
Behavior does not change after rebuilding | The MCP process keeps the startup build; reconnect the agent session |
| Open a chart tab in TradingView |
Security
See docs/security-review.md for the full review. At minimum:
While the debug port is open, any program on the same machine can control the signed-in TradingView session. Launch in debug mode only while using the AI, use normal mode otherwise, and do not use this setup on a shared machine.
The server is read-oriented. Writes are limited to non-destructive user-owned Pine versioning, adding/changing/removing verified owned studies, creating expiring alerts from audited analysis, and starting/stepping/stopping Bar Replay. Confirmation gates protect the relevant tools. Orders, Replay Trading, Replay autoplay, modification/resume/deletion of existing alerts, webhooks, watchlist changes, and Pine-library deletion are intentionally absent.
get_chart_screenshotsends everything visible on screen, including watchlists, to the AI provider.
Development
Generate comparison-ready local evidence with npm run generate:research-evidence -- --input /absolute/config.json --confirm-local-read.
This hashes explicit files and records the current Node environment without executing research code.
See evidence generation for scope, limits and optional private output.
From Source
The published package provides the MCP server only. Every npm run command in
this document - the collectors, the coverage reports, the studies and the audits
is a script in this repository and needs a clone:
git clone https://github.com/tedorigawa001/TradingView-MCP.git
cd TradingView-MCP
npm install
npm run buildOpening Claude Code in the clone registers the server from the bundled
.mcp.json, which runs build/index.js from the repository rather than the
published package. That is what you want while developing: it picks up your
build, not the last release.
Testing
npm test # Node unit tests + Bookmap Java tests
npm run test:integration # Integration tests (requires the app in debug mode)
npm run test:e2e # Real-app E2E over MCP stdio (configuration below)npm test does not require TradingView. With the complete Bookmap SDK installed locally, it also runs the Collector, signal-engine, and Bookmap-adapter Java tests. With no or partial SDK, it builds and tests only the SDK-free FlowSignalEngine for Java 17 and explicitly skips adapter tests.
On pull requests and pushes, GitHub Actions runs npm test on Node.js 22 and 24, including the SDK-free signal engine. A separate npm audit job rejects high or critical vulnerabilities.
Publishing
prepublishOnly runs npm test, which includes the Bookmap Java tests, so
publishing requires a JDK that supports --release 17 even though the
published package contains no Java. That is deliberate: a release should not go
out on a suite that was skipped. The Bookmap SDK itself is not needed - without
it the Java step builds and tests the SDK-free engine and marker and skips the
adapters.
prepack runs build:package (tsc --sourceMap false) rather than build, and
files is limited to build/**/*.js. Source maps would otherwise be about half
the package while pointing at src/ files it does not ship.
Integration tests temporarily change symbols and timeframes and restore them afterward.
For walk-forward E2E, set TRADINGVIEW_WALK_FORWARD_E2E_CONFIG to JSON matching the current chart and saved strategy. Do not include confirm; the test owns confirmation.
TRADINGVIEW_WALK_FORWARD_E2E_CONFIG='{"expected_symbol":"OANDA:USDJPY","expected_timeframe":"240","candidates":[{"pine_id":"USER;YOUR_PINE_ID","inputs":[{"id":"in_20","value":false}]},{"pine_id":"USER;YOUR_PINE_ID","inputs":[{"id":"in_20","value":true}]}],"folds":[{"fold_id":"f1","train_from":"2025-03-01T00:00:00.000Z","train_to":"2025-09-01T00:00:00.000Z","test_from":"2025-09-02T00:00:00.000Z","test_to":"2025-12-01T00:00:00.000Z"},{"fold_id":"f2","train_from":"2025-03-01T00:00:00.000Z","train_to":"2025-12-01T00:00:00.000Z","test_from":"2025-12-02T00:00:00.000Z","test_to":"2026-03-01T00:00:00.000Z"}],"mode":"anchored","embargo_bars":1,"minimum_train_trades":5,"minimum_test_trades":3,"selection_metric":"expectancy","max_runtime_seconds":180}' npm run test:e2eFor analysis-alert E2E, set TRADINGVIEW_ANALYSIS_ALERTS_E2E_CONFIG to match the installed analysis overlay.
TRADINGVIEW_ANALYSIS_ALERTS_E2E_CONFIG='{"pine_id":"USER;YOUR_PINE_ID","expected_symbol":"OANDA:USDJPY","expected_timeframe":"4H","analysis_id":"USDJPY-20260724-001","confirm":false}' npm run test:e2eFor Fair Value Gap Retest event-study E2E, set TRADINGVIEW_FVG_RETEST_E2E_CONFIG to match the chart.
TRADINGVIEW_FVG_RETEST_E2E_CONFIG='{"expected_symbol":"OANDA:EURUSD","expected_timeframe":"60","count":5000,"condition":{"type":"fair_value_gap_retest","minimum_gap_bps":10,"retest_within_bars":24,"min_impulse_body_ratio":0.5,"require_boundary_hold":true},"horizons":[1,2,4,8],"target_return_bps":20,"minimum_events":1,"event_limit":50,"confidence_level":0.95,"configuration_trials":1}' npm run test:e2eFutures-flow E2E requires open_interest_study_id, open_interest_plot_title, and an open_interest_scope that freezes the value's meaning in TRADINGVIEW_FUTURES_FLOW_E2E_CONFIG. Scope must be paired with explicit OI data or study selection and cannot accompany pure autodetection, which reads only TradingView's official front-month Open Interest study. Otherwise a front-month value could be mislabeled as an aggregate. Missing OI fails explicitly so a broken first-seen collector cannot pass silently. The test redirects collection to a temporary file and does not contaminate production logs.
TRADINGVIEW_FUTURES_FLOW_E2E_CONFIG='{"target_symbol":"OANDA:XAUUSD","futures_chart_index":1,"expected_futures_symbol":"COMEX_DL:GC1!","count":250,"observation_limit":0,"minimum_observations":100,"cot_weeks":1,"open_interest_study_id":"YOUR_STUDY_ID","open_interest_plot_title":"Total OI","open_interest_scope":"all_months_aggregated"}' npm run test:e2eE2E verifies rejection of incorrect chart binding, deterministic dry-runs, train-only selection, suppression of unselected candidates' OOS results, protocol validation, ledger stress, seeded bootstrap, real alert creation and ownership naming, bounded responses, and complete chart restoration. Missing configuration causes a skip.
Repository Layout
src/- TypeScript sourcecdp.ts- CDP connection, evaluation, and screenshotstradingview.ts- in-page TradingView API layerscanner.ts- public scanner API clientserver.ts- dependency-injected MCP tool definitionsindex.ts- stdio entry point
test/unit/- unit tests with mock CDP and scannertest/e2e/- configuration-driven E2E from MCP stdio to the real apptest/smoke.mjs- integration smoke test against the real appbuild/- ignored TypeScript outputbookmap-addon/- Java Bookmap add-on.FlowSignalEngineandFlowSignalMarkerimport nothing from the Bookmap SDK and are built and tested everywhere, including CI;FlowCollectorandFlowSignalResearchneed the locally installed SDK and are skipped without it.dist/is ignoreddocs/- design and research documentation
Documentation
docs/STRATEGY.md - overall strategy and progress
docs/phase0-findings.md / phase3 / phase4 / phase5 - internal API research
docs/security-review.md - security review
docs/BACKLOG.md - future improvements
Available Tools
105 toolsadd_pine_to_chartA
Add one of the user's OWN saved Pine scripts (latest version) to a TradingView chart as a study — e.g. to show an improved indicator after save_pine_script. Additive only: never removes or replaces existing studies (the user can remove it from the chart UI). For strategies prefer run_backtest, which cleans up after itself.
| Name | Required | Description | Default |
|---|---|---|---|
| pine_id | Yes | Script id from list_pine_scripts | |
| chart_index | No | Chart index in a multi-chart layout. Default: the active chart |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses important behavioral traits: it uses the latest version, is additive only, never removes or replaces existing studies, and the user can remove the study from the chart UI. This is strong, though it does not mention persistence, error behavior, or whether adding the same script twice creates duplicates.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core action and resource. Every sentence adds value: the purpose, the additive-only guarantee, the manual removal path, and the strategy alternative. There is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple side-effecting tool with no output schema and fully documented parameters, this description covers purpose, scope, side-effect safety, and the primary alternative. An agent has enough context to invoke it correctly and understand the consequences.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and both parameters have meaningful descriptions: pine_id is 'Script id from list_pine_scripts' and chart_index is a chart index defaulting to the active chart. The tool description adds little parameter-specific detail beyond implying the script must be user-owned and saved.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Add one of the user's OWN saved Pine scripts (latest version) to a TradingView chart as a study.' It clearly distinguishes this from siblings by restricting scope to user-owned scripts and emphasizing additive-only behavior, which contrasts with remove_owned_study and run_backtest.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool: after save_pine_script, to show an improved indicator. It also gives a clear when-not and alternative: 'For strategies prefer run_backtest, which cleans up after itself.' This is direct, actionable routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_analysis_overlayA
Preview or apply a structured market analysis to an existing Bushido Analysis Overlay study. The tool fails closed when the chart symbol, timeframe or overlay input contract does not match. Without confirm=true it is read-only and returns a preview. With confirm=true it changes only that overlay's inputs, then reads them and its drawing totals back for verification. It never places orders or alerts.
| Name | Required | Description | Default |
|---|---|---|---|
| bias | Yes | ||
| note | No | ||
| stop | Yes | ||
| confirm | No | Must be true to edit the live chart. Default: false = dry run | |
| targets | Yes | ||
| study_id | Yes | Overlay study id returned by add_pine_to_chart or get_chart_context | |
| entry_low | Yes | ||
| confidence | Yes | ||
| entry_high | Yes | ||
| expires_at | No | ||
| analysis_id | Yes | ||
| analyzed_at | Yes | ||
| chart_index | No | ||
| snapshot_id | No | Optional get_market_snapshot snapshot_id binding this analysis to its evidence | |
| confirmation | No | ||
| invalidation | Yes | ||
| expected_symbol | Yes | Exact symbol expected on the target chart, e.g. OANDA:USDJPY | |
| strategy_version | No | Optional strategy or decision-policy version used for this analysis | |
| expected_timeframe | Yes | Expected chart resolution, e.g. 15, 240, 4H or 1D |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full disclosure burden and delivers: the fail-closed guardrail, the read-only preview behavior without confirm=true, the precise mutation boundary ('changes only that overlay's inputs'), the post-write verification readback, and the explicit exclusion 'It never places orders or alerts.' This is exemplary behavioral disclosure for a state-changing tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, each earning its place: purpose, safety guardrail, mode semantics (split into two tight clauses), and side-effect exclusion. Purpose is front-loaded, and the structure flows logically from what the tool does to how it behaves safely. Zero redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high complexity (19 params, 12 required, no output schema, no annotations), the description covers the essential behavioral contract thoroughly: modes, guardrails, mutation scope, verification, and side-effects. It gives partial return information ('returns a preview', 'reads them and its drawing totals back for verification'). What remains absent is error-response detail and explicit analysis-payload semantics, but the description is sufficient for safe selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 32%, so the description must compensate. It does meaningfully for the most behaviorally critical parameter (confirm, going beyond the schema by describing the readback/verification contract) and for expected_symbol/expected_timeframe by placing them in the fail-closed matching logic. However, 13 of 19 parameters (bias, entry_low, entry_high, invalidation, stop, targets, confidence, etc.) receive no description-level meaning beyond their names, leaving the analysis payload semantics partially to inference.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb pair and resource: 'Preview or apply a structured market analysis to an existing Bushido Analysis Overlay study.' It clearly distinguishes the two operating modes and the specific target (an existing overlay), which separates it from sibling tools like ensure_analysis_overlay (creation) and get_analysis_overlay_status (read-only status).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear invocation context: it applies to an existing overlay, requires symbol/timeframe/contract matching (otherwise fails closed), and explains the preview-vs-commit decision via the confirm flag. It does not explicitly name alternatives or state when not to use it, leaving some routing inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audit_pine_indicatorA
Statically audit one of the user's Pine scripts for constructs that can repaint or make realtime values differ from historical values. This is a source-level screen, not proof of non-repainting; every result remains restricted until restart-difference validation is recorded by the evaluation pipeline.
| Name | Required | Description | Default |
|---|---|---|---|
| pine_id | Yes | Your Pine script id from list_pine_scripts | |
| version | No | Pine version to inspect. Default: last |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It discloses that the audit is static/source-level and explicitly warns that it is not proof of non-repainting. It also reveals an important pipeline constraint: results remain restricted until restart-difference validation is recorded. This is meaningful behavioral context beyond the bare action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no fluff. The first sentence states the action, target, and purpose; the second adds the critical limitation and downstream validation dependency. It is front-loaded and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete enough for an agent to understand when to call the tool, what it does, and what constraints apply to its results. There is no output schema, but the description's mention of 'constructs that can repaint' and the restriction on results gives the agent a reasonable mental model of the output. It could go further by describing the shape of the audit findings, but this is not a serious gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both parameters have useful descriptions: pine_id references list_pine_scripts and version includes a default and regex pattern. The tool description adds no parameter-specific meaning, but it does not need to because the schema already explains both parameters adequately. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Statically audit one of the user's Pine scripts for constructs that can repaint or make realtime values differ from historical values.' This clearly distinguishes the tool from siblings like get_pine_source or list_pine_scripts, which fetch rather than audit. It also names the exact concern the audit addresses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the intended use clear: check a user's Pine script for repaint or realtime/historical divergence risks. It also sets expectations that this is a source-level screening step, not definitive proof, and that results stay restricted until validation is recorded. It does not explicitly name alternative tools for non-repaint proof, but the distinction between screening and validation is strongly implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
carry_panel_preflightA
Check whether locally first-seen policy-rate evidence can support a fixed carry panel before any return study runs. It uses only first-seen, available-at policy rates, counts non-overlapping business-day anchors, and returns not_evaluable instead of inventing history.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | ||
| from | Yes | ||
| as_of | No | ||
| pairs | Yes | ||
| oos_from | No | ||
| fixed_regime | No | ||
| price_evidence | No | ||
| minimum_observations | No | ||
| horizon_business_days | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does this well by specifying that it uses only first-seen, available-at policy rates, counts non-overlapping business-day anchors, and returns 'not_evaluable' rather than fabricating history. This covers data-source integrity, counting methodology, and missing-data behavior, though it does not describe return values on success.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The main purpose is front-loaded, and the second sentence adds high-value behavioral detail about data sourcing and fallback behavior. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is complex with nine parameters, nested objects, and no output schema or annotations. The description explains the core preflight intent but is missing crucial context: what a successful evaluation returns, what 'not_evaluable' looks like in practice, how parameters like fixed_regime or minimum_observations affect the check, and how this relates to sibling tools like measure_carry_panel_dependence. The description is too thin for an agent to confidently construct a correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description is responsible for explaining parameter semantics. It does not mention any of the nine parameters by name and does not clarify the meaning of pairs, from, to, fixed_regime, price_evidence, minimum_observations, or horizon_business_days. Some domain hints like 'business-day anchors' relate to horizon_business_days, but overall the description does not compensate for the schema's lack of parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Check whether') and resource ('policy-rate evidence can support a fixed carry panel'). It differentiates itself from sibling preflight tools by focusing on locally first-seen policy rates and the fixed carry panel context, though it does not explicitly name any sibling alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'before any return study runs' gives explicit timing for when this tool should be used, establishing it as a preflight gate. It does not provide explicit when-not-to-use guidance or alternative tool names, but the intended usage context is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_research_period_usageA
Check recorded research data usage for a UTC interval [from,to). Finds overlapping use of the same stable series_id across ALL research IDs and data versions. No recorded overlap means unknown outside this journal, never unused or approved OOS. A declared-unused assertion is user supplied and cannot prove unused status. Does not record an access or reserve a period.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | ||
| from | Yes | ||
| series_id | Yes | ||
| data_version | Yes | ||
| prior_usage_declaration | No | unknown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden and does so thoroughly. It discloses that no recorded overlap means unknown rather than unused or approved OOS, that declared-unused assertions are user-supplied and cannot prove unused status, and that the tool has no side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three dense sentences, each earning its place: scope, negative-result semantics, and side-effect clarification. There is no filler, no repetition of schema patterns, and the most important distinguishing information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is strong given the absence of annotations and output schema, covering behavior, parameter semantics, and limitations. However, terms like 'journal' and 'OOS' are unexplained domain jargon, and the description does not specify the result shape beyond implying overlap findings, which matters more without an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description compensates by defining the UTC half-open interval [from,to), the search key series_id across data versions, and the meaning of a declared-unused assertion. The optional prior_usage_declaration parameter is not named explicitly, but its semantics are clearly captured by the explanation that a declared-unused assertion is user supplied and cannot prove unused status.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ('Check recorded research data usage for a UTC interval [from,to)') and states the exact search scope: overlapping use of the same stable series_id across all research IDs and data versions. It also distinguishes the tool from the recording sibling by explicitly saying it does not record an access or reserve a period.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context that this is a read-only lookup and explicitly states what the tool does not do ('Does not record an access or reserve a period'), which implies when not to use it. However, it does not name the alternative tool such as record_research_period_usage or provide an explicit 'use this when...' condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
classify_cross_asset_shocksA
Classify observed EURUSD or USDJPY shocks after exact-time cross-asset collection. It temporarily uses one auxiliary chart for DXY, US10Y, and XAUUSD, restores it after each read, and applies the frozen same-UTC-slot baseline contract. It reports observed state only, never a forward outcome, candidate, order-flow claim, or trading instruction.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | ||
| state_limit | No | Maximum latest classified state rows to return. Aggregate counts use every eligible row. Default: 200 | |
| load_more_bars | No | Additional history to request for the target and each temporary context before reading. Default: 0 | |
| expected_timeframe | Yes | ||
| target_chart_index | Yes | ||
| auxiliary_chart_index | Yes | ||
| expected_target_symbol | Yes | ||
| minimum_classified_states | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and discloses meaningful behavior: it temporarily borrows an auxiliary chart, restores it after each read, applies a frozen same-UTC-slot baseline contract, and restricts output to observed state. This is substantial transparency about side effects and scope, though it does not explain what the returned classified state rows contain or whether the operation is idempotent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose, followed by key behavioral caveats. Every sentence contributes value, though the phrase 'frozen same-UTC-slot baseline contract' is jargon-heavy and could be clearer.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, no annotations, eight parameters, and low schema coverage, the description is not complete enough for correct invocation. It covers scope and chart side effects but leaves parameter semantics, output structure, and the meaning of 'classified state rows' undefined, so an agent cannot confidently determine all required inputs and expected result formatting.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25%, leaving important parameters like target_chart_index, auxiliary_chart_index, count, and minimum_classified_states without meaningful schema descriptions. The tool description adds some context by explaining that the auxiliary chart is used for DXY, US10Y, and XAUUSD, and that the target is EURUSD or USDJPY, but it does not compensate for the majority of undocumented parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Classify observed EURUSD or USDJPY shocks') with a precise resource scope and method ('after exact-time cross-asset collection'). It also differentiates from siblings by explicitly saying it 'reports observed state only, never a forward outcome, candidate, order-flow claim, or trading instruction', which distinguishes it from related tools like evaluate_cross_asset_shock_outcomes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description communicates the intended context: use after exact-time cross-asset collection and for observed-state classification rather than forward-looking evaluation. However, it does not name sibling tools or explicitly state when to use alternatives like preflight_cross_asset_shock or evaluate_cross_asset_shock_outcomes, leaving some routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_indicator_observationsA
Compare two closed-bar captures of the same indicator after a chart reload/restart. Returns changed plot values; it does not persist either capture.
| Name | Required | Description | Default |
|---|---|---|---|
| after | Yes | ||
| before | Yes | ||
| epsilon | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It does disclose a key behavioral trait: 'it does not persist either capture,' which reassures the agent about side effects. However, it does not mention whether the tool is read-only, how epsilon affects the comparison, or what happens if the two captures are structurally mismatched. The disclosure is useful but incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no redundancy. It opens with the core action and context, then immediately states the return value and a critical side-effect. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema is complex, with nested objects and three parameters, and there is no output schema to describe the return format. The description does not explain what 'closed-bar captures' means, what 'changed plot values' look like, or the role of epsilon. For an agent deciding whether and how to call this tool, significant gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the schema's silence. It loosely explains 'before' and 'after' as 'two closed-bar captures' but gives no detail about the required structure (study_id, symbol, resolution, bars). Most importantly, the 'epsilon' parameter is never mentioned, leaving a key input undocumented. The description fails to convey the meaning or usage of one of the three parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific verb ('Compare'), the exact resource ('two closed-bar captures of the same indicator'), and the situational context ('after a chart reload/restart'). It also differentiates itself by stating what it returns ('changed plot values') and what it does not do ('does not persist either capture'). This distinguishes it from sibling comparison tools like compare_research_evidence and compare_strategy_experiments.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'after a chart reload/restart' provides a clear context for when this tool should be used. However, it does not explicitly mention alternatives or state when not to use it, such as when comparing live values or arbitrary datasets. The absence of explicit exclusions keeps it from a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_research_evidenceA
Compare caller-supplied SHA-256 manifests for previous/current research data, code, runner, candidate rule, parameters and environment. Reports changed and unknown axes plus required revalidation checks. Missing values never match. Does not read files, authenticate hashes, execute code, persist records or certify compatibility, calibration, unused OOS or candidate eligibility.
| Name | Required | Description | Default |
|---|---|---|---|
| current | Yes | ||
| previous | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations available, the description carries the full behavioral burden and does so excellently. It explicitly discloses that missing values never match, and that the tool does not read files, authenticate hashes, execute code, persist records, or certify compatibility, calibration, unused OOS, or candidate eligibility. This is unusually transparent and prevents false assumptions about side effects and guarantees.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly packed sentences with no filler. The main action and resource are front-loaded, what it reports follows immediately, and the non-behaviors are listed compactly. Every sentence earns its place and the structure makes the tool's boundaries easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema and no annotations, the description does a strong job: it covers the input kind, the comparison axes, the report contents, and important caveats. It could add a bit more about the exact output shape or the meaning of 'unknown axes', but what is missing is minor given the schema already defines the input structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It names the six compared axes (data, code, runner, candidate rule, parameters, environment) and clarifies that manifests are caller-supplied, but it does not explain how the 'previous' and 'current' objects map to the schema fields beyond enumeration. The 'Missing values never match' statement adds useful semantic, but the parameter semantics are only partially fleshed out.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Compare') and identifies the exact resource ('caller-supplied SHA-256 manifests for previous/current research data, code, runner, candidate rule, parameters and environment'). It also states what the tool reports ('changed and unknown axes plus required revalidation checks'), making it clearly distinguishable from sibling comparison tools like compare_strategy_experiments or compare_indicator_observations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use this tool: when comparing previous and current research manifests to identify changes and required revalidation. It does not explicitly name alternatives or exclusion conditions, but the context is strong and the negative boundaries ('Does not read files...') help an agent understand what this tool is not for.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_strategy_experimentsA
Compare two to twenty exact saved experiment-evidence records without ranking or combining incompatible populations. References must include both experiment_id and evidence_hash. Read-only and does not access TradingView.
| Name | Required | Description | Default |
|---|---|---|---|
| references | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden. It explicitly states 'Read-only and does not access TradingView', which discloses side-effect profile and external dependencies. It also describes a behavioral constraint: no ranking or combining. It does not mention what happens with invalid references or duplicate entries, but the core transparency is above average.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action and scope, followed by essential constraints. Every clause earns its place: count range, no ranking/combining, required fields, and read-only guarantee. No redundancy or vague filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only comparison tool with one parameter and no output schema, the description covers invocation requirements and behavioral boundaries well. The only notable gaps are the lack of explicit sibling differentiation and no hint about the return format, though 'compare' implies a comparative result. Overall, it is sufficiently complete for a capable agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does: it explains the references array accepts 2–20 items and each reference must contain both experiment_id and evidence_hash. It omits the exact object shape but the schema itself provides the pattern constraints, so the textual guidance is meaningful and adequate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Compare' and the resource 'saved experiment-evidence records', and adds a scope of 'two to twenty'. It also notes what the tool does not do ('without ranking or combining incompatible populations'). However, it does not explicitly name or distinguish the closely-related sibling tool 'compare_research_evidence', so it falls just short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear conditions for use: 'exact saved experiment-evidence records' and 'References must include both experiment_id and evidence_hash'. It also provides an exclusion, noting the tool works 'without ranking or combining incompatible populations', implying those operations are not appropriate here. It stops short of explicitly naming alternative tools for those cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_correlation_regimesA
Classify rolling return correlation between two explicitly bound layout charts. Closed bars must share an exact UTC timestamp; missing bars are never forward-filled. This is descriptive evidence, not a trading signal.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | ||
| window | No | ||
| strong_threshold | No | ||
| neutral_threshold | No | ||
| expected_timeframe | Yes | ||
| primary_chart_index | Yes | ||
| reference_chart_index | Yes | ||
| expected_primary_symbol | Yes | ||
| expected_reference_symbol | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It discloses a non-obvious behavior (missing bars are never forward-filled) and a scope limitation (closed bars must share exact UTC timestamps). It also frames the output as descriptive, which helps set expectations. It does not mention side effects or return format, but the core computational behavior is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: purpose, data alignment requirement, and interpretive caveat. The most important constraint is front-loaded immediately after the purpose, and there is no filler or redundant schema repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (9 parameters, 5 required, no output schema, no annotations), this description is not sufficient for an agent to invoke it correctly. It omits what the output looks like, how thresholds map to regimes, and how the required symbol/timeframe fields should be populated. The description gives a solid high-level orientation but lacks critical operational detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it only references two charts and timestamp alignment. It does not explain count, window, strong_threshold, neutral_threshold, or the expected symbol/timeframe parameters. An agent is left to guess how rolling window and thresholds affect the classification.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Classify') and a precise resource ('rolling return correlation between two explicitly bound layout charts'), making the tool's function immediately clear. It also introduces a defining constraint (exact UTC timestamp matching) that separates it from more generic correlation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear contextual guidance: it works on two explicitly bound layout charts and requires exact timestamp alignment. It also gives a when-not-to-use signal by stating the output is descriptive evidence, not a trading signal, though it does not name specific alternative tools or explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_feature_outcome_relationshipsA
Measure point-in-time relationships between selected closed-bar price features and later observed returns on one exact TradingView chart. It classifies ATR compression, candle body direction, wick imbalance, directional streaks, range position, and opening gaps using only the signal bar and prior OHLC. It returns bucketed forward-return, upside, downside, and fold distributions without optimizing thresholds, changing the chart, or making a trade recommendation.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Most recent loaded bars to inspect. Default: 5000 | |
| folds | No | ||
| regime | No | Optional predeclared point-in-time market-regime filter for a limited feature hypothesis | |
| journal | No | ||
| features | No | Point-in-time features to classify. Default: all six | |
| horizons | Yes | ||
| signal_to | No | Exclusive signal-bar timestamp for a fixed forward collection window | |
| signal_from | No | Inclusive signal-bar timestamp for a fixed forward collection window | |
| atr_lookback | No | ||
| range_lookback | No | ||
| expected_symbol | Yes | ||
| confidence_level | No | Confidence level for normal-approximation mean and Wilson rate intervals. Default: 0.95 | |
| feature_selection | No | One preregistered feature bucket. Cannot be combined with features. | |
| gap_atr_threshold | No | ||
| observation_limit | No | Maximum labelled observations to return. Aggregates always use all rows. Default: 100 | |
| expected_timeframe | Yes | ||
| minimum_effect_bps | Yes | Frozen pre-registered candidacy floor in basis points. It must be stated and cannot be relaxed; significance alone reports existence, not size. | |
| streak_minimum_bars | No | ||
| body_ratio_threshold | No | ||
| configuration_trials | No | Total related feature/threshold configurations inspected so far, including this one | |
| minimum_observations | No | ||
| range_position_lower | No | ||
| range_position_upper | No | ||
| atr_baseline_lookback | No | ||
| wick_imbalance_threshold | No | ||
| atr_compression_low_ratio | No | ||
| atr_compression_high_ratio | No | ||
| empirical_null_calibration | No | Run the fixed 1,000-replication circular moving-block empirical-null calibration on the same closed bars. Default: false |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It discloses data scope ('using only the signal bar and prior OHLC'), behavioral non-actions ('without optimizing thresholds, changing the chart, or making a trade recommendation'), and output shape ('bucketed forward-return, upside, downside, and fold distributions'). This is substantial behavioral disclosure that helps the agent predict side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the central purpose, then method, then output and exclusions. No redundancy; every sentence adds distinct information and the description is compact for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 28-parameter analysis tool with no output schema, the description gives a solid high-level summary of what it computes and returns. However, it omits invocation prerequisites (e.g., data must be loaded on the active chart), does not explain the 'fold' concept or the signal_from/to fixed-window behavior, and does not tie the description to the required parameters. Adequate for tool selection, not for full invocation guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 39%, so the description must compensate, but it does not fully. It does map the six feature enum values and hints at signal-bar/lookback semantics, yet it leaves the majority of the 28 parameters unexplained—including required minimum_effect_bps, signal_from/to, the regime object, configuration_trials, and observation_limit. This is meaningful but insufficient compensation for such a large parameter surface.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Measure'), resource ('relationships between selected closed-bar price features and later observed returns'), and tight constraints ('point-in-time', 'one exact TradingView chart'). It enumerates the six feature classes and adds negative scope ('without optimizing thresholds, changing the chart, or making a trade recommendation') that distinguishes it from related falsification and audit tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clear context is provided: use this tool to measure feature-outcome relationships on a single chart in a point-in-time, non-optimizing way. It does not explicitly name alternative sibling tools like run_feature_outcome_falsification_audit or run_feature_outcome_power_audit, so routing among similar research tools remains implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_lead_lag_relationshipsA
Scan return correlation between two explicitly bound layout charts across a symmetric range of lags, so a caller can see whether a reference market leads the primary. Closed bars must share an exact UTC timestamp; missing bars are never forward-filled. The v3 default scales each return by its own series' prior-20-return RMS without using the current return. Every scanned lag is returned with its own interval and per-fold stability, and no best lag is selected. Shared clustered-volatility calibration still exceeds nominal alpha, so candidate eligibility and journal promotion remain disabled. Descriptive evidence only, never a trading signal.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | ||
| folds | No | ||
| journal | No | Record this scan as evidence. Only tradable positive lags are stored; a scan can never be adopted, so decision must be rejected or inconclusive. | |
| max_lag_bars | No | Scan every lag from -max_lag_bars to +max_lag_bars. Default: 10 | |
| alignment_mode | No | Default exact_utc joins only identical bar timestamps. The resampling mode temporarily reads both charts at closed 60-minute bars and rebuilds a common UTC grid at expected_timeframe; use it only when vendor-anchored higher-timeframe bars cannot align exactly. | |
| confidence_level | No | ||
| expected_timeframe | Yes | ||
| primary_chart_index | Yes | ||
| configuration_trials | No | Total related scans inspected so far, including this one. Applied with all scanned lags as the Bonferroni family. Default: 1 | |
| minimum_observations | No | Lags with fewer paired returns are reported as insufficient. Default: 30 | |
| reference_chart_index | Yes | ||
| return_standardization | No | Default causal_prior_20_rms uses only each return's prior 20 returns for scale. none reproduces the invalidated raw-return v2 contract. | |
| expected_primary_symbol | Yes | ||
| expected_reference_symbol | Yes | ||
| empirical_null_calibration | No | Run the fixed 1,000-replication circular-shift empirical-null calibration on this exact pair. Required for the statistical gate; public candidate eligibility remains disabled pending shared-volatility calibration. Default: false |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full burden and does so thoroughly: exact UTC timestamp matching, no forward-filling, v3 causal RMS scaling, per-lag interval/stability output, no best-lag selection, disabled eligibility/journal promotion due to calibration, and descriptive-only status. This goes well beyond the tool name and schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence carries distinct information and the primary purpose is front-loaded. There is no repetition of schema fields or filler; the technical constraints are ordered logically from alignment to scaling to output to calibration implications.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter tool with no output schema and no annotations, the description covers a remarkable amount: alignment behavior, defaults, output characteristics, calibration restrictions, and evidence status. It still lacks explicit guidance on the return payload shape beyond interval/stability and on the semantics of some parameters like confidence_level, so it is not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 47% and the description compensates for some parameters (symmetric lag range maps to max_lag_bars, prior-20 RMS scaling maps to return_standardization, exact UTC alignment maps to alignment_mode, per-fold stability maps to folds). However, several parameters such as count, confidence_level, folds structure, and the required expected_* fields receive no semantic explanation in either the schema or the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Scan return correlation') on a specific resource ('two explicitly bound layout charts') with a clear investigative goal (whether reference market leads primary). It also distinguishes itself from audit siblings by emphasizing 'Descriptive evidence only, never a trading signal' and by noting no best lag is selected.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear intended-use context: use this to explore lead-lag correlation via symmetric lags, and explicitly warns it is descriptive evidence, not a trading signal. It does not name alternative tools or give explicit when-not-to-use conditions beyond the descriptive-evidence caveat, 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.
compute_market_featuresA
Compute deterministic, non-directional features from exact-time-aligned closed OHLCV observations, typically returned by get_aligned_history: close-to-close return, realized volatility, ATR, and return correlations. It does not fetch data, fill gaps, or produce a trade recommendation.
| Name | Required | Description | Default |
|---|---|---|---|
| window | No | Number of latest observations. Default: 20 | |
| observations | Yes | Exact-time-aligned, closed-bar observations from get_aligned_history | |
| primary_symbol | Yes | Symbol whose return, volatility, and ATR to compute |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations supplied, the description carries the behavioral burden and does well: it discloses that the computation is deterministic, non-directional, has no side-effect of fetching or gap-filling, and does not emit trade recommendations. It does not mention error handling, insufficient observation behavior, or return formatting, but the core side-effect profile is clearly disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two purposeful sentences: the first states what the tool computes and with what inputs; the second states three important exclusions. Every clause earns its place and the key scoping appears immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete enough for an agent to select and call the tool: it explains the input provenance, the computation scope, and the main outputs. The lack of an output schema means the description could have added more about return shape, but the listed features plus full parameter schema provide sufficient operational context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter already has a semantic description. The tool description reinforces that observations are aligned closed bars from get_aligned_history and that primary_symbol is the object of the return/volatility/ATR computation, but it adds no new parameter-level meaning beyond the schema, which is the baseline expected at this coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific operation ('compute'), a precise resource ('deterministic, non-directional features from exact-time-aligned closed OHLCV observations'), and enumerates the concrete outputs (close-to-close return, realized volatility, ATR, return correlations). It also distances the tool from data retrieval by pointing at get_aligned_history, which disambiguates it from the many sibling analysis tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly frames the intended context: use it on observations 'typically returned by get_aligned_history' and not to fetch data, fill gaps, or generate trade recommendations. It stops short of explicitly naming alternative tools for those adjacent tasks, so it misses the top anchor for explicit when-to-use routing, but the context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_market_regimesA
Classify deterministic directional and volatility regimes from closed OHLC bars already loaded on the active chart. Every label uses only that bar and earlier evidence: efficiency ratio and ATR-normalized directional movement classify trend/range/transition, while current ATR relative to a trailing ATR median classifies low/normal/high volatility. Thresholds are explicit and no future-fitted quantiles, ranking, chart changes, or trade recommendations are used.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Most recent loaded bars to inspect. Default: 1000 | |
| atr_lookback | No | Bars used for point-in-time ATR. Default: 14 | |
| trend_lookback | No | Bars used for direction and efficiency ratio. Default: 20 | |
| expected_symbol | Yes | ||
| observation_limit | No | Maximum recent classified rows returned; aggregates use all rows. Default: 100 | |
| expected_timeframe | Yes | ||
| low_volatility_ratio | No | Current ATR-percent / trailing median ratio for low volatility. Default: 0.75 | |
| high_volatility_ratio | No | Current ATR-percent / trailing median ratio for high volatility. Default: 1.5 | |
| minimum_classified_bars | No | Classified observations required for complete status. Default: 100 | |
| range_efficiency_threshold | No | Maximum efficiency ratio for a range candidate. Default: 0.25 | |
| trend_efficiency_threshold | No | Minimum efficiency ratio for a trend candidate. Default: 0.6 | |
| volatility_baseline_lookback | No | Trailing ATR-percent observations used for the baseline median. Default: 50 | |
| directional_move_atr_threshold | No | Minimum absolute lookback move in current ATR units for trend. Default: 2 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and delivers richly: it discloses no-lookahead behavior ('uses only that bar and earlier evidence'), determinism ('deterministic', 'Thresholds are explicit', 'no future-fitted quantiles'), and side-effect absence ('no ... chart changes, or trade recommendations'). It also reveals the underlying methodology (efficiency ratio, ATR-normalized directional movement, ATR vs trailing median), which is non-obvious and highly useful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three front-loaded sentences: purpose first, then methodology, then boundary disclosures. Each sentence earns its place, though the final sentence's negation list ('no future-fitted quantiles, ranking, chart changes, or trade recommendations') is slightly dense and could be tightened without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 13-parameter tool with no annotations and no output schema, the description covers purpose, methodology, and behavioral guarantees well, but it omits the return contract entirely: observation_limit implies a rows-plus-aggregates result and minimum_classified_bars implies a status concept, yet neither is explained. It also doesn't clarify why expected_symbol/expected_timeframe are 'expected' (presumably validation against the loaded chart), which is a meaningful behavioral gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 85%, so the baseline is 3, but the description adds genuine conceptual glue: it explains how parameter groups map to the classification logic (efficiency ratio → trend/range thresholds, ATR-normalized movement → directional_move_atr_threshold, ATR vs trailing median → volatility ratios and baseline lookback). This helps an agent reason about parameter interactions beyond the per-field defaults and constraints in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource ('Classify deterministic directional and volatility regimes from closed OHLC bars') and enumerates the exact labels produced (trend/range/transition, low/normal/high volatility). It distinguishes itself from siblings like compute_correlation_regimes and compute_market_features by specifying its scope: point-in-time deterministic classification from chart bars only, with no future-fitted quantiles or trade recommendations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states clear prerequisites ('bars already loaded on the active chart', 'closed' bars) and implies when the tool is appropriate, but it never explicitly names alternatives or states when-not-to-use in favor of another sibling. The determinism and 'no trade recommendations' disclosures hint at boundaries, but an agent must infer the routing decision rather than having it spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_position_sizeA
Compute a risk-budgeted instrument quantity from entry, stop, explicit execution cost, quantity constraints, and fresh quote-to-account currency evidence. The quantity is always rounded down and the tool fails closed when conversion evidence or minimum-size capacity is missing. It does not access an account or place an order.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | ||
| stop_price | Yes | ||
| entry_price | Yes | ||
| risk_amount | No | ||
| risk_percent | No | ||
| quantity_step | Yes | ||
| account_equity | Yes | ||
| account_currency | Yes | ||
| maximum_quantity | No | ||
| minimum_quantity | Yes | ||
| conversion_symbol | No | ||
| contract_multiplier | No | ||
| quote_to_account_rate | No | Account-currency units per one quote-currency unit | |
| conversion_observed_at | No | ||
| max_conversion_age_seconds | No | ||
| round_trip_cost_price_per_unit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does so thoroughly: quantity 'is always rounded down,' the tool 'fails closed when conversion evidence or minimum-size capacity is missing,' and it is side-effect-free regarding accounts/orders. These are precisely the behavioral traits an agent cannot infer from the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences with no filler; the core operation is front-loaded, then deterministic behavior and safety exclusions follow. Every sentence contributes distinct information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 16-parameter calculator with no annotations and no output schema, the description covers the operation, key input classes, fail-closed behavior, and side-effect safety. The main gaps are the missing risk-parameter relationship and precise return payload, which are mitigated by the clear 'instrument quantity' phrasing and self-descriptive parameter names.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 6%, so the description must compensate. It adds useful semantic grouping: 'explicit execution cost,' 'quantity constraints,' and 'fresh quote-to-account currency evidence' map to several optional parameters, and 'risk-budgeted' signals the risk inputs. However, it does not explain the risk_amount/risk_percent choice, contract_multiplier, or which constraints are min/max/step, leaving real invocation ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a precise operation: 'Compute a risk-budgeted instrument quantity' from a specific set of inputs. It also disambiguates from execution/order tools by stating it 'does not access an account or place an order.' This is a verb+resource statement that separates it from the many compute_* siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context: pure pre-trade calculation using entry, stop, cost, constraints, and currency evidence, and explicitly excludes account access/order placement. It does not name a specific sibling alternative or provide a when-not condition beyond that behavioral exclusion, so it falls one step short of explicit routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_round_trip_costA
Compute explicit round-trip spread, slippage, and commission cost for a supported instrument. This is an assumption model, not broker execution data.
| Name | Required | Description | Default |
|---|---|---|---|
| ask | Yes | ||
| bid | Yes | ||
| symbol | Yes | ||
| quantity | Yes | ||
| commission_per_unit | No | ||
| slippage_pips_per_side | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals that the result is an assumption-based estimate rather than broker data, which is a meaningful behavioral trait. It does not disclose defaults for optional parameters like commission_per_unit or slippage_pips_per_side, nor does it explain units or validation behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tightly written sentences, with the primary action first and the caveat second. It contains no filler or repetition of schema details, so every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is acceptable for a relatively simple calculator but has clear gaps: there is no output schema and the description does not state return format, units, or handling of omitted optional parameters. It also does not connect to sibling tools or typical workflow context, leaving an agent to infer how the result should be consumed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It links bid/ask to spread, slippage_pips_per_side to slippage, and commission_per_unit to commission, which adds semantic grouping beyond the raw schema. However, it does not explain the required symbol and quantity parameters or how optional parameters behave when omitted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Compute explicit round-trip spread, slippage, and commission cost for a supported instrument.' It clearly identifies the tool's purpose and distinguishes it from broker execution data, so an agent can understand its role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The caveat 'This is an assumption model, not broker execution data' gives useful context for when the result should not be treated as execution evidence. However, it does not explicitly state when to use this tool instead of related siblings such as compute_position_size or get_quotes, so usage guidance remains implied rather than fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_session_profileA
Summarize deterministic session-day profiles from closed minute bars on one exact TradingView chart. Sessions use caller-specified IANA timezones and support daylight-saving and cross-midnight boundaries. The tool returns coverage, OHLC range, return, opening-range extension, high/low timing, VWAP, prior closed-session overlap and high/low reaction tests (PDH/PDL/PDC), and TradingView bar volume clearly labelled as unverified tick-or-exchange volume. It does not change the chart, optimize session definitions, or make a trade recommendation.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Most recent loaded bars to inspect. Default: 5000 | |
| sessions | Yes | ||
| expected_symbol | Yes | ||
| observation_limit | No | Maximum recent session observations returned. Aggregates use all rows. Default: 100 | |
| expected_timeframe | Yes | Exact active minute timeframe, such as 5, 15, or 60 | |
| opening_range_bars | No | Bars from session start used for the opening range. Default: 3 | |
| minimum_session_days | No | Minimum complete days required for each session. Default: 20 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explicitly states non-actions ('does not change the chart, optimize session definitions, or make a trade recommendation') and discloses a data quality caveat: volume is 'clearly labelled as unverified tick-or-exchange volume.' It also specifies use of closed minute bars and deterministic profiles. It does not mention side effects like API-side computation cost or rate limits, but the main behavioral traits are transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences, each earning its place: the main purpose, timezone/boundary support, the list of computed outputs, and explicit non-goals. Key qualifiers like 'deterministic,' 'closed minute bars,' and 'one exact TradingView chart' are front-loaded. No filler or repetition is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (7 parameters, no output schema), the description lists the major return components—coverage, OHLC range, return, opening-range extension, high/low timing, VWAP, PDH/PDL/PDC reactions, and volume—which gives an agent a good sense of what to expect. It also clarifies that observation limits apply only to returned sessions while aggregates use all rows. It does not provide a precise output structure, but for invocation purposes it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 71%, so the schema already documents most parameters. The description adds meaning beyond the schema by explaining session semantics: caller-specified IANA timezones, daylight-saving and cross-midnight boundary support. It also maps to outputs like 'opening-range extension' (relating to opening_range_bars) and 'coverage' (relating to minimum_coverage). This extra context enriches parameter understanding without being redundant.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with a specific verb-resource pair: 'Summarize deterministic session-day profiles from closed minute bars on one exact TradingView chart.' This clearly distinguishes it from sibling tools like get_ohlcv or compute_market_regimes. The scope is explicit via 'one exact TradingView chart' and 'deterministic,' making the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys clear usage context: analyzing session-day profiles with caller-specified IANA timezones, daylight-saving, and cross-midnight boundaries. It also states exclusions—'does not change the chart, optimize session definitions, or make a trade recommendation'—which helps agents understand what not to expect. However, it does not name specific sibling tools to use as alternatives for those excluded tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_analysis_alertsA
Preview or create bounded, one-shot TradingView price alerts for Confirmation, Invalidation, and Target 1 from one audited Bushido Analysis Overlay. It verifies the exact Pine source, chart binding, analysis_id, current price, existing owned alerts, and post-create readback. Without confirm=true it is read-only. It never uses webhooks, email, SMS, broker APIs, or orders.
| Name | Required | Description | Default |
|---|---|---|---|
| popup | No | Show a TradingView popup. Default: true | |
| confirm | No | Must be true to create alerts. Default: false | |
| pine_id | Yes | ||
| play_sound | No | Play TradingView's calling sound. Default: false | |
| analysis_id | Yes | ||
| chart_index | No | ||
| mobile_push | No | Notify in the TradingView app. Default: true | |
| expected_symbol | Yes | ||
| expected_timeframe | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden, and it does so well. It discloses the read-only default, the confirmation gate, the verifications performed (Pine source, chart binding, analysis_id, current price, existing owned alerts, post-create readback), and exclusions such as no webhooks, email, SMS, broker APIs, or orders. This is rich behavioral context beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences, each earning its place: purpose, verification behavior, and safety boundaries. The key safety information about confirm=true is front-loaded. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema and no annotations, and the description does not explain what the return value looks like, though it hints at 'post-create readback.' For a 9-parameter mutation tool, the description covers core invocation and safety but leaves return format and exact failure conditions unspecified, making it adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 44%, so the description needs to compensate for undocumented required parameters. It adds meaning around confirm=true and mentions analysis_id and Pine source/chart binding verification, but it does not explicitly explain pine_id, expected_symbol, expected_timeframe, chart_index, or output behavior. The schema patterns and 'expected_' prefix provide partial semantics, so the description adds moderate value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it previews or creates bounded, one-shot TradingView price alerts for Confirmation, Invalidation, and Target 1 from an audited Bushido Analysis Overlay. It also distinguishes itself from pure listing tools by emphasizing creation and verification, so an agent can tell it apart from list_alerts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly explains the preview-versus-create behavior: 'Without confirm=true it is read-only.' This gives the agent an explicit condition for invoking mutation versus safe preview. It does not name sibling alternatives or explicitly state when not to use the tool, but the context is clear enough for correct selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ensure_analysis_overlayA
Idempotently ensure that the audited Bushido Analysis Overlay is present once on a target chart at the latest saved Pine version. It reuses a current instance, adds a missing one, or transactionally adds the latest version, migrates the analysis inputs, verifies them, then removes the old instance. Source, symbol, timeframe, pine_id, version and input contract are checked fail-closed. Without confirm=true, any chart-changing action is preview-only.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | ||
| pine_id | Yes | Saved Bushido Analysis Overlay id from list_pine_scripts | |
| chart_index | No | ||
| expected_symbol | Yes | ||
| expected_timeframe | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so thoroughly. It discloses idempotency, transactional ordering, migration, verification, old-instance removal, fail-closed checks, and preview-only behavior without confirm=true. This is exceptionally transparent for a mutating tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the core purpose, and every sentence adds crucial behavioral detail. There is no filler or unnecessary repetition; it reads as a tight, information-dense spec.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex transactional tool, the description is highly complete: it explains the idempotent flow, transactionality, fail-closed validation, and preview gating. The main omission is chart_index semantics and any indication of return/result shape, which would improve completeness but are not fatal given the strong behavioral coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 20%, so the description must compensate. It adds meaning for confirm (preview-only), expected_symbol/expected_timeframe (checked), and pine_id (checked), but chart_index is left unexplained. This is a clear gap, though most parameters gain some context from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific operation: idempotently ensure the audited Bushido Analysis Overlay is present once at the latest Pine version. It further explains the exact mechanisms (reuse, add, transactional migrate, verify, remove old), which distinguishes it from sibling tools like add_pine_to_chart or apply_analysis_overlay.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: when the overlay must be present exactly once and at the latest version. However, it does not explicitly name alternatives or state when not to use it, leaving the agent to infer the distinction from the behavior described.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
estimate_carry_panel_effective_sampleA
Estimate the precision-equivalent sample size of an already fixed carry panel before its primary test. It resamples whole anchor-date cross-sections in circular moving blocks, preserving same-date pair dependence and serial dependence. It is a planning diagnostic only, never an adoption rule or a return-study runner.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | Yes | ||
| iterations | No | ||
| observations | Yes | ||
| block_length_anchors | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden, and it discloses real methodology: 'resamples whole anchor-date cross-sections in circular moving blocks, preserving same-date pair dependence and serial dependence.' It also states its role boundary as a planning diagnostic rather than an adoption rule or return-study runner. It does not disclose output format or explicitly flag stochasticity (despite the required seed), which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with zero waste: purpose, methodology, then role boundaries. Each sentence earns its place and the purpose is front-loaded. The statistical method disclosure is dense but compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers what, how, and when well, but there is no output schema and no mention of return semantics — for a stochastic estimator the result shape (point estimate, distribution, confidence bound?) matters. It also leaves seed/iterations unexplained and does not state prerequisites or runtime characteristics. Solid on the conceptual side, incomplete on the invocation side.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it partially does: 'circular moving blocks' hints at block_length_anchors and 'resamples' hints at the stochastic role of seed/iterations. However, no parameter is explicitly mapped or explained — seed, iterations, and observations receive no direct semantic treatment. The methodology language adds some meaning beyond the schema but does not fully cover the 4-parameter space.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: 'Estimate the precision-equivalent sample size of an already fixed carry panel.' The timing qualifier 'before its primary test' and scope 'already fixed carry panel' sharply distinguish it from siblings like run_carry_core_primary_test (which runs the test) and measure_carry_panel_dependence (which measures dependence). No ambiguity about what this tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear when-to-use context ('before its primary test') and explicit when-not-to-use boundaries ('a planning diagnostic only, never an adoption rule or a return-study runner'). It does not name sibling alternatives by name, but the exclusions implicitly route the agent away from adoption and return-study tools. Missing only explicit alternative tool names for a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
evaluate_analysis_overlay_outcomeA
Evaluate the first confirmed Target-versus-Stop outcome of an audited Bushido Analysis Overlay using only loaded, closed OHLCV bars after the analysis time. The analysis-containing bar and forming bars are excluded. Entry must precede an optional confirmation; invalidation reached before confirmation cancels the setup. Same-bar ordering, gaps and incomplete history are reported as ambiguous or incomplete rather than guessed. Calendar-month charts are not evaluable because their duration varies. By default it is read-only. When evaluation_timeframe is specified, it temporarily changes only the selected chart's timeframe, captures evidence, and restores the original timeframe; restoration failures are returned explicitly.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Most recent loaded bars to inspect. Default: 1000 | |
| record | No | Explicitly append this evaluation to the local analysis journal. Default: false | |
| pine_id | Yes | Saved Bushido Analysis Overlay id from list_pine_scripts | |
| chart_index | No | ||
| expected_symbol | Yes | ||
| expected_timeframe | Yes | ||
| evaluation_timeframe | No | Optional evidence timeframe, e.g. 15 or 1H. The overlay remains verified against expected_timeframe and the chart is restored afterward |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Even though no annotations are provided, the description carries the full behavioral burden and does so thoroughly. It discloses the read-only default, the temporary timeframe change with restoration, explicit reporting of restoration failures, and the non-guessing policy for same-bar ordering, gaps, and incomplete history. This is genuinely informative beyond any structured annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but front-loaded: the core purpose appears first, followed by scoping constraints, edge-case handling, and side-effect behavior. Every sentence contributes a distinct constraint or behavioral guarantee, with no filler or redundant restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers many edge cases and side effects, which is valuable for a tool with no output schema. However, it never states what the evaluation actually returns—e.g., an outcome label, a confidence level, or a structured result object. It says results are 'reported as ambiguous or incomplete' and that restoration failures are 'returned explicitly,' but the return contract remains underspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 57%, so the description does not need to compensate entirely, but it adds real value for evaluation_timeframe by explaining that it temporarily changes only the selected chart, captures evidence, and restores afterward. It also ties expected_timeframe to verification semantics. A few parameters like chart_index remain unelaborated, but their meaning is reasonably inferable from context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Evaluate') and names a precise resource: 'the first confirmed Target-versus-Stop outcome of an audited Bushido Analysis Overlay.' It clearly delimits the scope with constraints like 'only loaded, closed OHLCV bars after the analysis time' and distinguishes itself from batch or status tools like evaluate_due_analyses by focusing on a single overlay's first confirmed outcome.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when this tool applies: after an analysis, with loaded closed bars, and excluding forming bars. It gives an explicit exclusion for calendar-month charts. It does not name alternative sibling tools, so the routing is implied rather than stated, but the prerequisites and non-evaluable cases are concrete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
evaluate_cross_asset_shock_outcomesB
Measure descriptive 15/30/60/120-minute outcomes for frozen observed cross-asset shock states. It uses exact-time common bars, excludes overlapping state windows, and never produces a candidate or trade instruction.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | ||
| event_limit | No | ||
| load_more_bars | No | ||
| expected_timeframe | Yes | ||
| target_chart_index | Yes | ||
| auxiliary_chart_index | Yes | ||
| expected_target_symbol | Yes | ||
| minimum_events_per_state | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It clearly states that the tool uses exact-time common bars, excludes overlapping state windows, and never produces a candidate or trade instruction, which meaningfully signals its non-execution and non-trade nature. It does not mention possible side effects or output format, but the core behavioral constraints are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and every clause earns its place: the outcome horizons, the bar-alignment constraint, the overlap exclusion, and the no-trade caveat. Information is front-loaded and there is no filler or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the high-level behavior but leaves the 8-parameter input surface completely undocumented and provides no return-value or output-shape information. For a research tool of this complexity, especially with no output schema and no annotations, an agent would not have enough context to invoke it correctly without external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any of the 8 parameters, including the 4 required ones: target_chart_index, auxiliary_chart_index, expected_target_symbol, and expected_timeframe. The tool name and description imply cross-asset context, but an agent cannot determine parameter meaning or valid combinations from this description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action, 'measure', and a specific resource, 'descriptive 15/30/60/120-minute outcomes for frozen observed cross-asset shock states.' It also differentiates itself from trading/execution tools by saying it 'never produces a candidate or trade instruction,' though it does not explicitly name an alternative sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when frozen cross-asset shock states have been identified and descriptive outcome measurement is needed. It provides no explicit when-to-use or when-not-to-use guidance and does not reference alternative tools such as classify_cross_asset_shocks or preflight_cross_asset_shock, leaving some routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
evaluate_due_analysesA
Preview or evaluate due analyses directly from the local analysis journal. Without confirm=true it only lists candidates and estimated chart changes. With confirmation it temporarily changes one selected chart's symbol and evidence timeframe for each analysis, evaluates closed OHLCV, records the result, and restores the original chart after every item. Individual failures do not stop the batch; a chart restoration failure stops all remaining work.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Loaded OHLCV bars inspected per analysis. Default: 1000 | |
| limit | No | Maximum analyses to evaluate. Default: 20 | |
| confirm | No | Must be true to change the chart and append outcomes. Default: false | |
| chart_index | No | ||
| include_active | No | Include active analyses with no prior evaluation. Default: false | |
| load_more_bars | No | Explicit history load before evaluation. Default: 0 (no persistent history load) | |
| evaluation_timeframe | No | Optional evidence timeframe for every candidate; defaults to each analysis timeframe |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden and does so excellently. It discloses side effects (temporary chart changes, recording results, restoration), the conditional nature of those effects, and failure semantics: 'Individual failures do not stop the batch; a chart restoration failure stops all remaining work.' This is transparent and actionable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: purpose, execution flow, and failure handling. It is front-loaded with the core action and avoids redundant restatement of schema details. No filler or unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters, no annotations, and no output schema, the description covers the essential behavior, side effects, and failure modes. It states what preview returns (candidates and estimated chart changes) and what execution does (records results and restores charts). It does not describe the return format after execution or prerequisites like having a chart selected, but the schema covers parameter details, making this reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is high at 86%, so the baseline is already 3. The description adds real semantic value beyond the schema by explaining that confirm=true is what triggers chart mutation and result recording, tying the parameter to observable behavior. It does not cover all parameters, but the schema already documents most of them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Preview or evaluate due analyses directly from the local analysis journal.' It clearly distinguishes two modes—preview without confirm and execution with confirm—so an agent understands exactly what the tool does and can tell it apart from analysis-retrieval and study-runner siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit context for when to use each mode: 'Without confirm=true it only lists candidates and estimated chart changes' vs. 'With confirmation it temporarily changes...'. It does not name alternative sibling tools or explicitly state when not to use it, but the preview/confirm distinction serves as clear usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_aligned_historyA
Align closed OHLCV bars already loaded in two or more TradingView layout charts on their exact UTC timestamps. It never changes charts and never forward-fills; forming bars, different resolutions, missing bars, and retrieval failures are reported as quality conditions. Use a layout where each required market is already open.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Closed bars to inspect per chart before alignment. Default: 200 | |
| chart_indexes | No | Charts to align. Default: every chart in the current layout; at least two are required | |
| max_missing_ratio | No | Block when the worst chart's timestamp-missing ratio exceeds this value. Default: 0.05 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully carries the behavioral burden. It explicitly states the tool 'never changes charts and never forward-fills' and describes how edge cases are handled: 'forming bars, different resolutions, missing bars, and retrieval failures are reported as quality conditions.' This is unusually transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no filler: purpose is first, behavioral caveats second, and usage prerequisite last. Every sentence contributes distinct, needed information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, side effects, quality reporting, and usage prerequisites, which is strong given the parameter schema. The only notable gap is that there is no output schema and the description does not describe the shape of the returned aligned data, so an agent still has some uncertainty about the exact response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents count, chart_indexes, and max_missing_ratio. The description adds context about prerequisites and quality conditions but does not meaningfully extend parameter-level semantics beyond the schema, matching the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Align'), resource ('closed OHLCV bars already loaded in two or more TradingView layout charts'), and a precise criterion ('exact UTC timestamps'). This clearly differentiates the tool from data-loading siblings like get_ohlcv and load_more_history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear prerequisite: 'Use a layout where each required market is already open.' It also implies data must already be loaded and that forward-filling will not happen, which shapes when this tool is appropriate. It does not explicitly name alternatives or list when-not-to-use cases, 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.
get_analysis_calibrationB
Calculate confidence calibration from the local analysis journal. Only target_before_stop is labelled positive and stop_before_target negative; ambiguous, incomplete, cancelled, neutral, and unevaluated analyses are reported as exclusions.
| Name | Required | Description | Default |
|---|---|---|---|
| bias | No | ||
| bins | No | ||
| symbol | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden, and it does disclose a meaningful non-obvious behavior: only target_before_stop is positive, stop_before_target is negative, and ambiguous/incomplete/cancelled/neutral/unevaluated entries are exclusions. It does not cover side effects, permissions, or output format, but the most important behavioral rule is stated clearly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The action and scope are front-loaded, and the essential labeling/exclusion policy immediately follows. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 3 optional parameters, no output schema, and no annotations, so the description alone must enable correct invocation and interpretation. It explains labeling and exclusions but omits parameter meanings, the shape of the calibration result, and when to choose this over performance/audit siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description never mentions bias, bins, or symbol. The schema only provides types, an enum, and a pattern; the agent must guess what 'bias' filters, how 'bins' affects calibration, and what 'symbol' selects.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('Calculate') and a specific resource ('confidence calibration from the local analysis journal'), and it adds the positive/negative labeling and exclusion policy. However, it does not explicitly differentiate from siblings like get_analysis_performance or the audit/study tools, so the distinction must be inferred.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied: use this when you need confidence calibration from the local analysis journal. But there is no explicit when-not-to-use guidance, no prerequisite mention, and no comparison against the many research/audit sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_analysis_journalA
Read locally journaled analysis definitions and their monotonic latest evaluations. A completed evaluation is never displaced by a later stale ongoing read. This tool does not access or change the TradingView chart.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| symbol | No | ||
| analysis_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it delivers strong behavioral context: results are locally journaled, evaluations are 'monotonic latest,' and 'a completed evaluation is never displaced by a later stale ongoing read.' It also clarifies that the tool does not access or change the TradingView chart, which is valuable for an agent deciding whether to call it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: the primary purpose is stated first, followed by a key monotonicity guarantee and a useful exclusion. Every sentence adds meaningful information, and there is no redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description gives a strong behavioral and purpose overview, which is good given there is no output schema and no annotations. However, it omits any guidance on the three optional parameters, which are the only way to scope the read. The agent can probably call the tool without parameters, but cannot confidently know how to use filters correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no explanation of the three parameters: limit, symbol, and analysis_id. While the parameter names are somewhat self-explanatory, the description does not say how they filter the journaled analyses or what the limit applies to, so the agent has to infer this from the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Read locally journaled analysis definitions and their monotonic latest evaluations.' It also differentiates itself from chart-related siblings by explicitly stating 'This tool does not access or change the TradingView chart.' This is sufficiently specific and clearly distinguishes the tool from nearby alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description establishes a clear context: this is for reading local journaled analysis evaluations, not for chart interaction. It explicitly states what the tool does not do, which provides a when-not signal. However, it does not name specific alternative tools such as get_analysis_performance or get_analysis_calibration, so the routing guidance is implicit rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_analysis_overlay_statusA
Read the current Bushido Analysis Overlay state without changing the chart. It resolves the study by USER pine_id, verifies the exact on-chart Pine version source and context-bound input contract, then returns analysis metadata, expiry, current-price relations, risk/reward references and drawing integrity. Level states describe only the current price, not historical touch order; use a future outcome tool for that.
| Name | Required | Description | Default |
|---|---|---|---|
| pine_id | Yes | Saved Bushido Analysis Overlay id from list_pine_scripts | |
| chart_index | No | ||
| expected_symbol | Yes | ||
| expected_timeframe | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden, and it does so well. It explicitly states the operation is read-only ('without changing the chart'), explains internal validation behavior (resolving by USER pine_id, verifying Pine version source and input contract), and enumerates what the response contains: analysis metadata, expiry, current-price relations, risk/reward references, and drawing integrity. It also discloses the limitation about level states vs. historical touch order.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently sized at three sentences and front-loads the most important fact ('Read... without changing the chart'). Some phrasing is dense and jargon-heavy, such as 'context-bound input contract,' but every sentence contributes substantive information and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description provides a solid inventory of returned content and read-only behavior. It could be more complete by addressing the optional chart_index parameter and potential validation failure modes, but for a status-read tool the core selection and invocation context is well covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25%, so the description should compensate. It does add meaning by mentioning that the study is resolved by USER pine_id and that expected_symbol and expected_timeframe form a 'context-bound input contract,' which helps clarify their role as validation constraints. However, it does not explain chart_index at all, and the individual parameter semantics remain mostly implicit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Read the current Bushido Analysis Overlay state without changing the chart.' This clearly identifies the tool as a read-only status inspection and distinguishes it from mutation-focused siblings like apply_analysis_overlay and ensure_analysis_overlay. It also names the key entity (Bushido Analysis Overlay) and the kind of data returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear usage context: it is for reading current overlay state without mutation, and it explicitly warns that level states do not reflect historical touch order, directing the agent to 'a future outcome tool' instead. This is a useful exclusion, though no sibling tool is named by name, so routing is slightly less explicit than it could be.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_analysis_overlay_templateA
Get the audited generic Pine overlay used to render a structured market analysis (entry zone, confirmation, invalidation, stop, targets, confidence and expiry). Read-only: pass the returned source to save_pine_script, then add_pine_to_chart once; subsequent analyses should update that study with apply_analysis_overlay.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explicitly states 'Read-only,' which is the most important behavioral trait for this zero-parameter getter. It also clarifies that the returned source is meant for a one-time setup, adding useful lifecycle context beyond a bare 'get template' statement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences convey the resource, its content, its read-only nature, and the entire setup workflow without wasted words. The key identifying information is front-loaded, and the follow-up tool references earn their place by preventing misuse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter template getter with no output schema, the description is complete: it explains what the tool returns, that it is read-only, and how the returned value should be used across the intended Pine overlay lifecycle. Nothing essential is missing for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters and schema description coverage is 100%, so there are no parameter semantics to document. The baseline for a zero-parameter tool is 4, and the description appropriately focuses on the return value and downstream usage rather than parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get'), a specific resource ('audited generic Pine overlay'), and the overlay's purpose: rendering a structured market analysis with entry zone, confirmation, invalidation, stop, targets, confidence, and expiry. It clearly distinguishes this tool as the template-getter in the Pine overlay workflow, separate from save_pine_script, add_pine_to_chart, and apply_analysis_overlay.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly outlines the intended workflow: pass the returned source to save_pine_script, add_pine_to_chart once, and use apply_analysis_overlay for subsequent analyses. This gives the agent clear when-to-use and when-not-to-use guidance, including the correct alternative for updating existing studies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_analysis_performanceA
Aggregate live analysis-journal outcomes into explicit populations for binary win rate, gross/net R, MFE/MAE and timing. Missing historical path metrics, non-binary outcomes and absent cost assumptions are excluded with counts rather than filled with zero. This read-only tool never mixes Strategy Tester backtests into the live-analysis population.
| Name | Required | Description | Default |
|---|---|---|---|
| bias | No | ||
| symbol | No | ||
| group_by | No | ||
| timeframe | No | ||
| cost_assumptions | No | Optional symbol-specific round-trip costs in instrument price units per unit | |
| strategy_version | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and does well: it declares read-only status, explains how missing/non-binary/cost data are handled (excluded with counts, not zero-filled), and clarifies the population boundary. It omits details like rate limits or response format, but the key behavioral traits are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three focused sentences with the core purpose front-loaded and exclusions stated efficiently. Every sentence adds meaningful information and there is no redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only aggregation tool with six optional filters and no output schema, the description gives a solid picture of scope, exclusions, and data handling. Some gaps remain around return shape and how grouping affects output, but overall it is substantially complete for selection and basic invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 17%, and the description does not compensate by explaining the meaning or usage of most parameters. It only indirectly relates to cost_assumptions; bias, symbol, group_by, timeframe, and strategy_version remain dependent on schema enums/names for understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Aggregate'), a clear resource ('live analysis-journal outcomes'), and the exact metrics produced (win rate, gross/net R, MFE/MAE, timing). It also differentiates itself from backtest-related tools by explicitly stating it never mixes Strategy Tester backtests.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: use this for live analysis-journal performance aggregation, and it explicitly excludes backtest data. However, it does not name specific sibling alternatives or state direct when-to-use versus other performance and journal tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_carry_core_primary_readinessA
Read the frozen carry_core_primary_v1 collection readiness without switching a chart. It combines first-seen policy rates with complete collection heartbeats, rounds the evidence start onto the frozen 20-business-day anchor grid, and reports current heartbeat-gap status.
| Name | Required | Description | Default |
|---|---|---|---|
| as_of | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explains the internal logic: combining first-seen policy rates with complete collection heartbeats, rounding evidence start onto the frozen anchor grid, and reporting heartbeat-gap status. This gives a solid picture beyond just saying 'read readiness', though it stops short of specifying side-effect-free guarantees or output details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core action and resource. The second sentence is dense and packs multiple behavioral details into one long clause, but every clause adds value and there is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description gives a strong overview of the algorithm, but with no output schema it does not describe what the readiness result contains or how heartbeat-gap status is represented. More importantly, the optional as_of parameter is left completely unexplained, so an agent invoking the tool cannot confidently decide whether or how to set it. These are meaningful gaps for a tool whose only configurable input is undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema defines one optional parameter as_of with only a timestamp pattern and no description, and the description never mentions as_of or how it influences the result. The parameter name hints at a date, but the description does not explain whether it sets the evaluation time, affects the anchor-grid rounding, or is safe to omit. This is a clear semantic gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Read') targeting a named resource ('frozen carry_core_primary_v1 collection readiness') and explicitly distinguishes itself from chart-manipulating workflows by saying 'without switching a chart'. This is precise and clearly differentiates from siblings like get_oanda_flow_collection_readiness or chart-related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'without switching a chart' provides clear context for when this tool is appropriate. However, it does not explicitly mention when not to use it or point to a specific alternative for other readiness or collection checks, so it lacks exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_chart_contextA
Get the current TradingView layout state: every chart's symbol, timeframe and active indicators as {id, name} (the id is what get_indicator_* tools accept as study_id), plus which chart is active. Call this first to know what the user is looking at.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral disclosure burden. It explains what the tool returns, including the format for indicators and the fact that the id is consumable by get_indicator_* tools. It implies a read-only state inspection without side effects, which is clear enough for this tool type.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The first sentence front-loads the core purpose and output contents; the second adds practical guidance. Every word contributes value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, no-output-schema tool, the description fully covers what an agent needs: what the tool returns, the shape of indicator entries, and when to invoke it. No critical information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and 100% schema description coverage, so no parameter explanation is needed. The description correctly focuses on output meaning rather than parameter details. Baseline 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get'), a specific resource ('current TradingView layout state'), and enumerates exactly what is included: symbol, timeframe, active indicators as {id, name}, and active chart. This makes the tool's purpose immediately clear and distinguishable from sibling tools like get_chart_screenshot or get_ohlcv.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Call this first to know what the user is looking at,' providing a clear usage cue. It does not explicitly name alternative tools or exclusion conditions, but for a state-introspection tool this is sufficient context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_chart_screenshotA
Capture a screenshot of the TradingView desktop app for visual analysis. By default the whole window (all charts, drawings, watchlist); pass chart_index to capture just one chart of a multi-chart layout at full resolution.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Image format. jpeg is smaller; png is sharper. Default: jpeg | |
| chart_index | No | Capture only this chart (index from get_chart_context). Default: whole window |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full safety-and-behavior burden. It discloses what gets captured (whole window including watchlist, or one chart at full resolution) but stays silent on important traits: it targets the 'TradingView desktop app', implying the app must be running/visible, yet that precondition is unstated; it also doesn't say whether the capture has side effects or how the image is returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences and roughly 40 words carry action, purpose, default behavior, and the parameter exception. It is front-loaded with the core action and every clause earns its place; no filler or unnecessary schema repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-optional-parameter tool, parameter knowledge is complete via the schema. But with no output schema and no annotations, the description omits what the caller receives (image binary, base64, or URL) and any preconditions on the desktop app being open — both matters an agent needs to handle the result and failure modes correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds genuine value beyond the schema: it frames chart_index as for 'a multi-chart layout' and promises 'full resolution' capture, which the schema description does not state. The format parameter's trade-off (jpeg smaller vs png sharper) is already fully covered in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the specific action ('Capture a screenshot of the TradingView desktop app') with a clear purpose ('for visual analysis'). The scope detail (whole window vs single chart) further disambiguates it from siblings like get_chart_context, get_mtf_overview, and get_execution_snapshot, which return data rather than images.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it (whenever a visual capture is needed) and offers clear parameter-level guidance (use chart_index for a single chart of a multi-chart layout; the index comes from get_chart_context). However, it never names alternatives or states when-not-to-use, leaving tool-selection distinctions to inference from the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cme_gold_open_interestA
Get CME's Daily Bulletin aggregate open interest for COMEX Gold futures (TOTAL GC FUT). This is an exchange-wide all-listed-month total, independent from TradingView chart indicators. The observation is appended to the local first-seen history so a later analysis can distinguish what was initially published from a final revision. It never changes a chart, Pine script, alert, or order.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Even without annotations, the description fully covers behavioral side effects: it states the observation is appended to local first-seen history and explicitly says the call never changes a chart, Pine script, alert, or order. This goes well beyond a basic function summary and tells the agent exactly what persistent effects to expect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: the first states the primary purpose, the second clarifies scope and history behavior, and the third draws the safety boundary. There is no redundant or promotional language.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, no-output-schema tool, the description covers source, scope, persistence behavior, and non-effects. It does not explicitly describe the return shape, but the simple aggregate value is strongly implied; this is a minor gap only.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters and 100% schema description coverage, there are no parameter semantics for the description to clarify. The baseline of 4 applies, and the description still adds context about the specific data source and scope.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: 'Get CME's Daily Bulletin aggregate open interest for COMEX Gold futures (TOTAL GC FUT).' It clearly identifies the data as exchange-wide and independent from TradingView chart indicators, so an agent knows what this tool is for. It does not explicitly compare against sibling tools such as reconcile_gold_open_interest, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'exchange-wide ... total, independent from TradingView chart indicators' gives useful context for when this tool is appropriate, and the note about appending to first-seen history implies later analytical use. However, it does not explicitly state when to use this tool instead of an alternative, nor does it mention exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cot_crowding_unwind_contextA
Describe an exploratory COT crowded-position unwind proxy on a bound daily FX chart. It combines leveraged-money three-year positioning percentiles with a prior-20-day price break; it never claims to observe orders, stops, institutions, or execution flow.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | ||
| chart_index | No | ||
| expected_symbol | Yes | ||
| expected_timeframe | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It transparently describes what the tool computes and, importantly, what it does not observe or claim. This gives an agent a clear mental model of the tool's limitations and output nature, though it stops short of describing the exact return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The main purpose is front-loaded, and the second sentence provides necessary caveats and methodological detail without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description provides useful context about methodology and limitations, but it omits practical invocation details and parameter meanings. It is adequate for an expert who already knows the domain, but less complete for an agent that must decide when to call it versus sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description needs to compensate, but it only indirectly addresses expected_timeframe and expected_symbol by mentioning 'daily FX chart'. It does not explain count or chart_index, leaving two of four parameters underspecified from a semantic standpoint.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Describe') and names a clear resource: an exploratory COT crowded-position unwind proxy on a bound daily FX chart. It adds the proxy's composition (positioning percentiles combined with a 20-day price break), which clarifies the tool's focus. It does not explicitly differentiate from siblings like get_cot_crowding_unwind_overlay_template, but the core purpose is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description signals when this is appropriate by labeling it 'exploratory' and explicitly stating it never claims to observe orders, stops, institutions, or execution flow, which warns against using it as an actual flow or order tool. However, it does not name alternatives or give explicit when-to-use / when-not-to-use conditions relative to sibling tools such as get_futures_flow_context or get_positioning_context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cot_crowding_unwind_overlay_templateA
Get the audited Pine overlay that renders a supplied COT crowding context and the chart's prior daily structure range. COT values are explicit MCP inputs; the overlay does not fetch or infer CFTC data, orders, stops, or execution flow.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It explicitly discloses that the overlay does not fetch or infer CFTC data, orders, stops, or execution flow, and that COT values are supplied externally. This is meaningful transparency beyond basic purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences with no filler. The main action and resource are front-loaded, followed by a precise behavioral clarification. Every phrase adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, no-output-schema template tool, this description is nearly complete: it names the artifact, its inputs, and what it excludes. The only minor gap is not explicitly stating the return format, but the name and description strongly imply a Pine Script overlay.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters and 100% schema description coverage, so there is nothing for the description to document. The description adds useful context by clarifying that COT values are explicit inputs to the overlay rather than tool parameters the caller must pass to this MCP call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get') and a specific resource ('audited Pine overlay'), and clearly defines what the overlay renders: a supplied COT crowding context plus the chart's prior daily structure range. This differentiates it from siblings like get_cot_crowding_unwind_context, which fetches context, and get_analysis_overlay_template, which is generic.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the usage context clear: use this when you have a COT crowding context to supply and need the corresponding Pine overlay. It does not explicitly name alternatives or state when not to use it, but the boundary between this tool and data-fetching tools is implied well.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dxy_context_gate_templateA
Return the fixed Pine Study template that reads confirmed DXY daily data with lookahead_off and exposes dxy_return_20 and dxy_gate plots. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It explicitly says 'Read-only,' which is important, and adds that the template reads confirmed DXY daily data with lookahead_off. This is meaningful behavioral context for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, information-dense sentence with no filler. It front-loads the action ('Return'), names the resource, and includes the key behavioral qualifiers without wasting words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless read-only template getter, the description fully covers what the tool does, what the template contains, and its read-only nature. No output schema is present, but the description usefully identifies the exposed plots, so an agent knows what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema coverage is 100%, so there is no parameter documentation burden. The description adds no parameter details, but none are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a fixed Pine Study template specifically for DXY context gate, naming the exact outputs (dxy_return_20 and dxy_gate plots). This distinguishes it from sibling template tools like get_volume_profile_context_template and get_price_action_context_template.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when an agent needs the DXY context gate Pine template and notes it is read-only. However, it does not explicitly state when to prefer this tool over alternative template getters or mention any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_economic_eventsA
Get economic calendar events (CPI, NFP, central bank decisions, PMIs...) from TradingView's public calendar: scheduled time, country/currency, importance, forecast/previous/actual values. Use this to check whether upcoming news could invalidate a technical setup. Defaults: next 7 days, medium+ importance, US/EU/JP/GB.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Range end, ISO 8601. Default: from + 7 days | |
| from | No | Range start, ISO 8601 (e.g. '2026-07-08T00:00:00Z'). Default: now | |
| limit | No | Max events to return, earliest first. Default: 50 | |
| countries | No | 2-letter country codes, e.g. ['US','JP','EU','GB','DE','CN','AU']. Default: US, EU, JP, GB | |
| min_importance | No | Minimum importance to include. Default: medium |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the transparency burden. It discloses defaults (next 7 days, medium+ importance, US/EU/JP/GB) and the data source, but does not mention rate limits, pagination behavior, update frequency, or whether values may be missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, stating the resource, the returned data, the use case, and key defaults in just a few sentences. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only getter with fully documented optional parameters, the description and schema together cover purpose, defaults, use case, and returned fields. Slightly more behavioral context (e.g., output structure or limitations) would make it fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter and its default value. The description repeats some defaults but adds no new parameter-level meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Get') and resource ('economic calendar events') and enumerates concrete event types and returned fields. It is clearly distinguishable from the sibling tools, none of which target economic calendar data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool: 'Use this to check whether upcoming news could invalidate a technical setup.' It does not mention exclusions or name alternative tools, but the intended context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_event_study_journalA
List append-only market-event and observational feature-study evidence records, or compare exact selected records when both study_ids and evidence_hashes are supplied. It never accesses a chart.
| Name | Required | Description | Default |
|---|---|---|---|
| study_ids | No | ||
| hypothesis_id | No | ||
| evidence_hashes | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It reveals that the underlying records are 'append-only,' implying immutability, and explicitly states the tool 'never accesses a chart,' which is a useful behavioral constraint. It does not detail output format or error behavior, but it provides meaningful transparency beyond the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: the primary listing behavior comes first, the conditional comparison mode follows, and the key exlusion is in a short final sentence. Every sentence adds useful information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description provides enough to understand the two invocation modes and the tool's relationship to charts, given the absence of an output schema and annotations. However, it does not explain what the returned records look like, how hypothesis_id affects behavior, or what exactly 'compare' returns, leaving some important context missing for correct invocation and interpretation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains the conditional role of study_ids and evidence_hashes in compare mode, but it does not describe hypothesis_id at all, and the exact meaning of 'compare exact selected records' is only partially specified. This is adequate but leaves a clear gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: it 'List[s] append-only market-event and observational feature-study evidence records' and can also 'compare exact selected records'. It also disambiguates itself by stating 'It never accesses a chart,' which separates it from chart-related sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear mode-selection logic: listing is the default behavior, while comparison is used 'when both study_ids and evidence_hashes are supplied.' It also states a clear when-not condition: it never accesses a chart, so it should not be chosen for chart access. It does not explicitly name alternative tools, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_execution_snapshotA
Observe read-only TradingView scanner bid/ask conditions for one or more symbols. It normalizes spread and tick/pip units, rejects crossed quotes and delayed data, and reports ready only when a streaming bid/ask change is observed after the request. It does not access accounts or create, modify, or execute orders.
| Name | Required | Description | Default |
|---|---|---|---|
| symbols | Yes | ||
| max_quote_age_ms | No | Maximum age of chart lp_time or a locally observed scanner update. Default: 5000 | |
| sample_interval_ms | No | Polling interval while waiting for an update. Default: 300 | |
| wait_for_update_ms | No | How long to poll for a post-request bid/ask change. Default: 1200 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses critical behavior: normalization of spread and tick/pip units, rejection of crossed quotes and delayed data, and the readiness condition (only ready after a streaming bid/ask change). It also explicitly states it does not access accounts or place orders. This is rich, non-obvious behavioral context that an agent could not infer from the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences, each earning its place: what it observes, critical filtering/normalization behaviors, and explicit exclusions. The most important scoping ('read-only', 'one or more symbols') is front-loaded. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only observation tool with 4 parameters and no output schema, the description covers the key behavioral guarantees (data quality checks, readiness condition, no account access). It could have mentioned what the return value looks like (e.g., aggregated bid/ask per symbol) since there is no output schema, but the readiness semantics effectively inform the agent what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 75%, and the description adds context around timing parameters ('polling interval while waiting for an update', 'how long to poll for a post-request bid/ask change'). The main parameter 'symbols' has pattern constraints in the schema but the description adds the semantic that these are scanner symbols. Coverage is good, but the description could have clarified the units/meaning of max_quote_age_ms beyond 'chart lp_time'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('Observe') and resource ('read-only TradingView scanner bid/ask conditions for one or more symbols'), clearly distinguishing itself from order-execution or account tools. It even states what it does not do ('does not access accounts or create, modify, or execute orders'), which eliminates ambiguity and reinforces its read-only nature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool for observing scanner bid/ask conditions and explicitly says it is read-only, which signals against using it for trading actions. It names no direct alternative among siblings, but the contrast with execution tools is implicit. It does not state explicit exclusions like 'use get_quotes for ...', so it stops short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_exploratory_policy_rate_historyA
Read separately stored official revised policy-rate history for exploratory research only. It never asserts historical availability and must not be used as prospective or out-of-sample carry evidence.
| Name | Required | Description | Default |
|---|---|---|---|
| currencies | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It adds meaningful context: the history is separately stored, officially revised, and the tool never asserts historical availability. This goes beyond a generic read description, though it does not discuss error cases or response behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences carry all the essential information with no filler. The primary purpose is front-loaded, and the caveat is placed immediately after, making the description easy to parse and act on.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool with no output schema, the description is mostly complete: it defines the data source, scope, and critical limitations. However, it does not describe what the returned history contains or any response format details, which would be useful given the absence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate by explaining parameter usage. It does not mention the 'currencies' parameter at all, leaving the agent to infer from the schema alone. The tool name hints at policy-rate history, but the description adds no meaning about how to supply currency selections.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Read'), a specific resource ('separately stored official revised policy-rate history'), and a clear scope ('for exploratory research only'). It also distinguishes the data from prospective or out-of-sample carry evidence, which helps differentiate it from related carry and policy-rate tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly limits usage to exploratory research and explicitly warns against using it as prospective or out-of-sample carry evidence. It provides clear context and exclusions, though it does not name a specific alternative tool to use instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_futures_flow_contextA
Combine one exact TradingView CME/COMEX/CBOT/NYMEX continuous-futures daily chart with delayed CFTC COT positioning, trailing volume z-scores, daily Open Interest (OI) 4-quadrant analysis, and contract roll anomaly detection. This is a market-participation proxy, not realtime institutional order flow, and it never changes the chart.
| Name | Required | Description | Default |
|---|---|---|---|
| as_of | No | Point-in-time cutoff for locally first-seen CME Daily Bulletin OI. Supported only with open_interest_provider: cme_daily_bulletin; omit for the latest locally observed CME version. | |
| count | No | Most recent loaded daily futures bars to inspect. Default: 1000 | |
| cot_weeks | No | Recent delayed CFTC observations to include. Default: 2 | |
| target_symbol | Yes | Supported spot target mapped to 6E, 6J, 6B, 6A, 6C, 6S, 6N, ES, NQ, YM, GC, SI, CL | |
| volume_lookback | No | Prior bars used for volume mean and z-score. Current bar is excluded. Default: 20 | |
| observation_limit | No | Maximum recent normalized observations returned. Default: 20 | |
| open_interest_data | No | Caller-supplied daily Open Interest observations (time ISO/epoch, openInterest value) | |
| futures_chart_index | Yes | ||
| open_interest_scope | No | Required with caller-supplied OI or an explicitly named OI study, and rejected without either; keeps front-month and all-months data separate | |
| minimum_observations | No | Minimum normalized daily observations. Default: 20 | |
| open_interest_provider | No | Daily OI source. Default chart reads a bound TradingView study; cme_daily_bulletin uses only locally first-seen official GC totals and is supported for XAUUSD. | |
| open_interest_study_id | No | Read daily OI from this on-chart study instead of the official Open Interest study, e.g. an aggregated all-months OI indicator | |
| roll_anomaly_threshold | No | Daily Open Interest change ratio threshold for contract roll anomaly detection. Default: 0.20 (20%) | |
| elevated_volume_z_score | No | Absolute z-score threshold for elevated/subdued participation. Default: 1.5 | |
| expected_futures_symbol | Yes | Exact continuous futures symbol required by the fixed mapping | |
| open_interest_plot_title | No | Plot title or id carrying open interest on open_interest_study_id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden. It explicitly states that CFTC data is delayed, the result is a proxy rather than realtime order flow, and 'it never changes the chart,' which addresses the main side-effect concern. It does not describe return shape, COT freshness details, or any non-chart side effects, so it stops short of full transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences contain no filler: the first packs the exact resource and the four data components, and the second adds the decisive caveats about being a proxy and never changing the chart. Every part contributes to selection or safe invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 16-parameter tool with no output schema and no annotations, the description gives a strong conceptual overview but leaves the return contract unstated — an agent does not know what the combined context looks like, such as normalized observations, OI quadrants, or roll flags. The rich parameter schema mitigates input ambiguity, but output semantics and sibling routing remain gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 94%, so the schema already documents most parameters and their defaults, constraints, and provider-specific behavior. The description adds high-level conceptual framing for groups of parameters — trailing volume z-scores, OI quadrant analysis, roll anomaly detection — but no parameter-level details beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: it combines one exact TradingView CME/COMEX/CBOT/NYMEX continuous-futures daily chart with delayed CFTC COT, volume z-scores, daily OI four-quadrant analysis, and roll-anomaly detection. It also labels itself a 'market-participation proxy, not realtime institutional order flow,' which helps an agent distinguish it from execution/order-flow and other context siblings. The composition is distinctive enough that the tool is not easily confused with watchlist, journal, or price-action tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description communicates a clear context of use — futures market-participation context combining COT, OI, and volume — and gives one exclusion: it is not realtime institutional order flow. However, it never explicitly says 'use when X' or names an alternative sibling for other cases, so routing among the many related context tools is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_indicator_graphicsA
Get drawing primitives (labels with text+price, trend lines, boxes/zones) that a Pine indicator has drawn on a TradingView chart. This is how to read drawing-only indicators (e.g. Elliott Wave labels, support/resistance lines, order blocks) that have no numeric plots. Most recent primitives first. Times beyond the last bar are extrapolated and flagged timeEstimated.
| Name | Required | Description | Default |
|---|---|---|---|
| study_id | No | Indicator id from get_chart_context. Default: all indicators | |
| chart_index | No | Chart index in a multi-chart layout. Default: the active chart | |
| limit_per_kind | No | Max labels/lines/boxes each, most recent first. Default: 50 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and it provides useful details: most recent primitives first, and extrapolated times flagged timeEstimated. These are real behavioral traits beyond the basic 'get' semantics, though it doesn't discuss errors or response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each carrying distinct value: what it returns, when to use it, and ordering/flag behavior. No filler or repetition, and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with three optional, fully-described parameters, the description covers the key context: primitive kinds, use case for drawing-only indicators, ordering, and extrapolation flagging. Without an output schema it could specify return structure more, but the given detail is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and each parameter already has a clear description including defaults and constraints. The tool description adds only redundant ordering context already present in limit_per_kind, so it provides no meaningful additional parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States exactly what it does: retrieves drawing primitives (labels, trend lines, boxes/zones) from a Pine indicator on a TradingView chart. It also differentiates itself from numeric-plot tools by calling out drawing-only indicators, which clearly separates it from siblings like get_indicator_values.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says this is how to read drawing-only indicators with no numeric plots, giving clear context for when to use it. It does not explicitly name alternative tools for numeric plots, but the contrast with 'no numeric plots' implies the boundary well enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_indicator_inputsA
Get the input parameters (settings) of indicators on a TradingView chart, with names, current values, defaults and tooltips — e.g. 'Pivot Length: 5'.
| Name | Required | Description | Default |
|---|---|---|---|
| study_id | No | Indicator id from get_chart_context. Default: all indicators | |
| chart_index | No | Chart index in a multi-chart layout. Default: the active chart |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of disclosing behavior. It clearly indicates this is a retrieval operation and specifies what data will be returned (names, current values, defaults, tooltips). It doesn't cover edge behaviors like missing studies or empty results, but for a non-mutating getter this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded, and includes a useful example. Every word earns its place, with no filler or redundant detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple getter with two optional parameters and no output schema, the description adequately covers what the tool returns. It includes example output to clarify the format. The only minor gap is the lack of explicit mention of behavior when no study_id is provided, though the schema already documents 'Default: all indicators'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description doesn't add parameter-specific meaning beyond what the schema already states about study_id and chart_index defaults, although the example does contextualize the output format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Get the input parameters (settings) of indicators') and the resource (indicators on a TradingView chart). It also lists the output contents (names, current values, defaults, tooltips) with a concrete example, making it easy to distinguish from siblings like get_indicator_values or set_indicator_input.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the name and description — if you need indicator settings, this is the tool. However, it does not explicitly mention alternatives or exclusion criteria, such as when to use get_indicator_values instead, which would have earned a higher score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_indicator_tablesA
Read tables drawn by Pine indicators on a TradingView chart (e.g. a multi-timeframe trend dashboard in the corner) as text grids: grid[row][column] plus the table's on-chart position. This is the only way to read table-only summaries that have no plots or drawings.
| Name | Required | Description | Default |
|---|---|---|---|
| study_id | No | Indicator id from get_chart_context. Default: all indicators | |
| chart_index | No | Chart index in a multi-chart layout. Default: the active chart |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral disclosure burden. It discloses that the operation is a read of tables, describes the exact return shape (grid[row][column] plus on-chart position), and clarifies the table-only scope. It does not discuss potential errors or rate limits, but for a read-only tool the core behavior is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tightly packed sentences. The first sentence front-loads the action, the resource, and the output format; the second adds a decisive scoping fact. There is no filler or repetition of schema content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no output schema and no annotations, the description covers what is returned, how it is structured, and when this tool is uniquely necessary. The optional parameters are fully documented in the schema, so the description plus schema is sufficient for an agent to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters are already fully documented in the schema with descriptions and defaults, giving 100% schema description coverage, so the baseline of 3 applies. The description adds no parameter-level detail, but none is needed because the schema already explains study_id and chart_index adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Read') and resource ('tables drawn by Pine indicators on a TradingView chart'), and precisely describes the output form as text grids with row/column plus on-chart position. The phrase 'only way to read table-only summaries that have no plots or drawings' distinguishes it from sibling tools like get_indicator_values and get_indicator_graphics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool: to read Pine-indicator tables, especially table-only summaries without plots or drawings. It adds a strong exclusivity signal ('This is the only way'), but it does not explicitly name or compare alternative sibling tools, so it stops short of a full when/when-not matrix.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_indicator_valuesA
Get recent plot values of indicators (studies) on a TradingView chart — e.g. signal levels, bands, oscillator readings. Plot names come from the indicator's own style titles. Cosmetic plots (colors, alert flags) are excluded by default. Use get_chart_context first to see which indicators exist. Narrow to specific plots with plot_titles, which is required above 500 bars so a long history stays readable.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of most recent bars to return per indicator. Above 500 requires plot_titles. Default: 10 | |
| study_id | No | Indicator id from get_chart_context. Default: all indicators | |
| chart_index | No | Chart index in a multi-chart layout. Default: the active chart | |
| plot_titles | No | Only return these plots, matched case-insensitively on plot title or plot id | |
| include_all_plots | No | Include cosmetic plots (colorers, alert conditions). Default: false |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It discloses that cosmetic plots are excluded by default, that plot names come from the indicator's own style titles, and that long-history requests require plot_titles for readability. These are meaningful behavioral details beyond the schema, though it does not describe return formatting or explicitly confirm read-only behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences with no fluff. The core purpose is front-loaded, and each sentence adds relevant operational context: style titles, cosmetic exclusions, the prerequisite get_chart_context, and the plot_titles condition with rationale.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description covers the key invocation needs: how to discover indicators, how to narrow plots, and when plot_titles is required. The schema handles parameter defaults and constraints. A brief statement of the return shape would make it fully complete, but nothing critical for actually calling the tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters. The description adds some context, such as plot titles coming from style titles and the default exclusion of cosmetic plots, but mostly reinforces what the schema already states, e.g. the above-500 plot_titles requirement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Get recent plot values of indicators (studies) on a TradingView chart', with concrete examples like signal levels and oscillator readings. It clearly distinguishes this from sibling tools such as get_indicator_graphics or get_indicator_tables by scoping to plot values, and it further narrows scope by noting cosmetic plots are excluded by default.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit pre-requisite guidance: 'Use get_chart_context first to see which indicators exist' and explains when to narrow with plot_titles, including the condition that plot_titles is required above 500 bars. It does not explicitly name alternative value-adjacent tools or say when not to use it, but the context provided is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_key_levelsA
Aggregate key price levels near the current price from ALL price-scale indicators on a TradingView chart: plot values whose titles name a level (S/R, pivot, VWAP, bands, BOS/CHoCH...), horizontal lines, box/zone edges and label prices, each tagged with its source indicator. Oscillator panes (RSI etc.) and generic value plots (open/high/low/close mirrors) are excluded. Sorted by distance from the current price. Use this instead of manually combining get_indicator_values and get_indicator_graphics when you need a support/resistance table.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max levels to return, nearest first. Default: 30 | |
| chart_index | No | Chart index in a multi-chart layout. Default: the active chart | |
| range_percent | No | Only levels within ±this % of the current price. Default: 3 | |
| include_all_plots | No | Include every numeric plot as a level, not just level-named ones. Use when an indicator names its S/R plots unusually. Default: false |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations to rely on, the description carries full responsibility for behavioral disclosure. It discloses what is included (level-named plots, horizontal lines, box/zone edges, label prices), what is excluded (oscillator panes, generic OHLC mirrors), that results are tagged with source indicator, and that output is sorted by distance from current price. This is rich, specific behavioral context beyond a bare 'get' statement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four purposeful sentences, each earning its place: scope definition with examples, explicit exclusions, ordering behavior, and usage guidance versus alternatives. The most decision-relevant information is front-loaded, and there is no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description must convey output nature. It does: levels are tagged with source indicator and sorted by distance. It also covers inclusion criteria, exclusions, and the alternative approach. Minor gaps remain, such as not explicitly stating the return type (e.g., array/table) or behavior when no levels are found, but for a read-only aggregation tool this is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with individual parameter descriptions already present, so the baseline is 3. The description adds conceptual context like 'near the current price' for range_percent and clarifies what 'level-named' means (relevant to include_all_plots), but it does not add syntax, formatting, or behavior details that go substantially beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a precise verb ('Aggregate') and a specific resource ('key price levels near the current price from ALL price-scale indicators'), and further details what counts as a level (S/R, pivot, VWAP, bands, BOS/CHoCH, horizontal lines, box/zone edges, label prices). It also explicitly contrasts this with manually combining get_indicator_values and get_indicator_graphics, making the tool's purpose unmistakable among siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The final sentence directly prescribes the use case: 'Use this instead of manually combining get_indicator_values and get_indicator_graphics when you need a support/resistance table.' This is an explicit when-to-use statement that names the alternative approach it replaces. The exclusion of oscillator panes and generic value plots further clarifies what the tool is optimized for.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_snapshotA
Build a read-only, point-in-time market data snapshot for environment analysis. It fetches quotes and a shared multi-timeframe overview for target and optional auxiliary symbols, with optional economic events. The result explicitly reports missing data, request-time timestamps, and quality status; it does not produce a trade instruction. TradingView scanner values do not expose a common source timestamp, so intraday timing must be treated as partial-quality evidence.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Shared overview fields without timeframe suffix. Default: common trend/momentum set | |
| symbols | Yes | Required analysis symbols in EXCHANGE:SYMBOL form, e.g. ['OANDA:EURUSD'] | |
| countries | No | Economic-event countries when include_events is true | |
| timeframes | No | Shared timeframes for the overview. Default: ['15','60','240','1D'] | |
| include_events | No | Include economic calendar data. Default: false | |
| min_importance | No | Minimum event importance when include_events is true. Default: medium | |
| auxiliary_symbols | No | Optional context symbols such as TVC:DXY or TVC:US10Y; total symbols may not exceed 20 | |
| required_quote_fields | No | Numeric quote fields that every required symbol must contain. Default: ['close'] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden and discharges it exceptionally well. It discloses that the operation is read-only and point-in-time, that the result explicitly reports missing data, request-time timestamps, and quality status, that it never emits a trade instruction, and the subtle data-quality caveat that TradingView scanner values lack a common source timestamp so intraday timing is partial-quality evidence.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences with zero filler: purpose is front-loaded in sentence one, output behavior and exclusions in sentence two, and the data-quality caveat in sentence three. Every sentence earns its place and the total length is appropriate for a tool with this complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (8 parameters, no output schema, no annotations), the description covers the essential behavioral surface: what data is fetched, what the result reports, what it does not do, and the quality limitation. It stops short of enumerating the exact response structure, which would further reduce uncertainty for an agent, but this is a minor gap alongside the highly informative input schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds high-level framing by grouping parameters into target vs. auxiliary symbols and 'optional economic events' and stressing that the overview and fields are 'shared', but it provides no per-parameter detail beyond what the schema already states. It reinforces the schema's semantics without meaningfully extending them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Build a read-only, point-in-time market data snapshot' that 'fetches quotes and a shared multi-timeframe overview' plus optional economic events. This composite scope clearly differentiates it from siblings such as get_quotes (quotes only), get_mtf_overview (overview only), and get_economic_events (events only). The phrase 'does not produce a trade instruction' further separates it from decision-oriented siblings like get_trade_decision_context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear use context ('for environment analysis') and an explicit exclusion ('it does not produce a trade instruction'), which helps an agent avoid misusing it as a decision tool. However, it does not name concrete alternative tools or spell out the when-not conditions beyond the trade-instruction exclusion, so the routing guidance stops short of explicit sibling differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_mtf_overviewA
Multi-timeframe overview of one or more symbols WITHOUT touching the user's chart: the same indicator fields (default: close, RSI, ADX, ATR, EMA20, SMA50, SMA200 and Recommend.* ratings) across several timeframes in a single call — pass several symbols to compare majors side by side in one call. Use this for top-down analysis (e.g. 1D trend, 240/60 timing) before or instead of set_timeframe.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Indicator fields without timeframe suffix. Default: common trend/momentum set | |
| symbols | Yes | Symbols in EXCHANGE:SYMBOL form, e.g. ['OANDA:EURUSD', 'OANDA:USDJPY'] | |
| timeframes | No | Timeframes (minutes or 1D/1W/1M). Default: ['15','60','240','1D'] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly states the operation does NOT touch the user's chart and that it batches multiple timeframes and symbols into one call. It does not discuss return format, rate limits, or data freshness, but the key non-mutating behavior is explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but not bloated; every clause adds information. It front-loads the core distinguishing trait (no chart mutation) and packs the default fields and multi-symbol comparison into the first sentence. The second sentence provides a concrete use case. Minor readability loss from the long dash-connected first sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers what the tool does, when to use it, and how to use it. However, since there is no output schema and no annotations, the agent is left without explicit information about the response shape, how results are organized, or whether any read-related caveats exist. This is a moderate gap for a tool intended to support analysis decisions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds meaningful semantics beyond the schema by listing the default indicator fields (close, RSI, ADX, ATR, EMA20, SMA50, SMA200, Recommend.*), explaining that the same fields appear across timeframes, and clarifying that multiple symbols can be compared in one call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a multi-timeframe overview of indicator fields for one or more symbols in a single call, without touching the user's chart. It explicitly differentiates itself from set_timeframe and other chart-focused tools by emphasizing the non-mutating behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage guidance: use for top-down analysis before or instead of set_timeframe, and pass multiple symbols to compare majors side by side. It names an alternative and provides context, though it does not enumerate when-not-to-use cases with other sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_oanda_flow_collection_readinessA
Read whether the local OANDA retail-flow collector is configured, without making a network request or exposing credentials. The source is limited to OANDA-client order and position percentages, not market-wide order flow.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries full behavioral burden. It explicitly discloses that the tool makes no network request and exposes no credentials, and 'Read' signals a non-mutating operation; the source limitation adds further behavioral clarity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise, front-loaded sentences: the first names the operation and its safety properties, the second scopes the data source. Every sentence contributes essential information with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter local readiness check with no output schema, the description is complete: it states what is read, the scope of data, and the key safety/reliability characteristics. The word 'whether' adequately conveys the expected boolean-like return without needing an explicit output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so there are no parameter semantics to elaborate; per the zero-parameter baseline this is a 4. The description's focus on local/no-network behavior complements rather than needing to explain parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('Read') and resource ('whether the local OANDA retail-flow collector is configured'), clearly stating what the tool reports. It also distinguishes the source from market-wide order flow, separating it from related sibling flow/context tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use it: a local configuration check that avoids network calls and credential exposure. It does not explicitly name sibling alternatives or state when-not-to-use conditions, 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.
get_ohlcvA
Get OHLCV candle data (time, open, high, low, close, volume) currently loaded in a TradingView chart. Time is a unix timestamp in seconds.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of most recent bars to return. Default: 100 | |
| chart_index | No | Chart index in a multi-chart layout. Default: the active chart |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It does add useful context: data is scoped to the loaded chart bars and time is in unix seconds. However, it does not mention read-only safety, response ordering, error behavior, or that chart_index refers to the active chart by default.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. Both the 'currently loaded' scope qualifier and the unix-seconds note earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with two optional parameters and full schema coverage, the description plus schema is mostly complete. It lists all returned fields and the time format; only response ordering and array shape are left implicit, which is a minor gap given the straightforward nature of the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with count and chart_index fully documented including defaults and bounds. The description itself adds no parameter-specific meaning beyond clarifying the output time unit, which is not a parameter, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get'), the resource ('OHLCV candle data'), and the scope ('currently loaded in a TradingView chart'). The parenthetical field list removes ambiguity and distinguishes it from quote or indicator retrieval tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'currently loaded in a TradingView chart' implies the intended use case, distinguishing it from broader market data tools. However, it does not explicitly name sibling alternatives like get_quotes or get_indicator_values, nor does it state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pine_sourceA
Get the full Pine source code of one of the user's OWN saved scripts, for review or improvement suggestions. Only 'USER;...' ids from list_pine_scripts are accepted; published/protected third-party scripts are refused. Read-only — editing or saving scripts is not supported.
| Name | Required | Description | Default |
|---|---|---|---|
| pine_id | Yes | Script id from list_pine_scripts, e.g. 'USER;adc40b1dfee344f19412f1ae9af74f3f' | |
| version | No | Version to fetch, e.g. '3'. Default: 'last'. Older versions are how you revert a bad save |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and covers key behavior: read-only, no editing/saving, and refusal of published/protected third-party scripts. It does not go into error cases, rate limits, or response format, but the core constraints are explicit and not hidden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with no filler. The core action and scope lead off, followed by compact restriction and read-only statements. Every sentence adds a distinct, necessary fact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter, read-only fetch with no output schema, the description is nearly sufficient: it covers the target object, eligibility, read-only nature, and parameter constraints via the schema. Missing explicit error behavior or return format are minor for this simplicity, keeping it a step below complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description reinforces the pine_id eligibility rule (USER-only, third-party refused) and the version default is already in the schema. The 'revert a bad save' insight appears in the schema, not the description, so the description adds little beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action ('Get the full Pine source code') scoped to the user's OWN saved scripts, clearly distinguishing it from siblings like list_pine_scripts (which lists script metadata) and save_pine_script (which writes). The added restriction against published/protected third-party scripts sharpens the tool's identity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the eligibility rule: only 'USER;...' ids from list_pine_scripts are accepted and third-party scripts are refused. It also disclaims editing/saving support. It does not name a specific alternative tool for editing, but the read-only note and referenced list_pine_scripts give enough context for correct selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_policy_rate_contextA
Read only locally first-seen policy-rate versions that were available by the requested time. TradingView decision-date bars are never treated as intraday publication timestamps; this is macro context, not a trading trigger.
| Name | Required | Description | Default |
|---|---|---|---|
| as_of | No | Point-in-time cutoff. Omit for the current time. | |
| currencies | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does add value: it explicitly states the operation is read-only, explains the temporal semantics ('first-seen ... available by the requested time'), and reveals a non-obvious behavior (TradingView decision-date bars are never treated as intraday publication timestamps). It lacks details on auth, rate limits, or side effects, but for a read-only context tool this is meaningful disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with the core behavior front-loaded and the differentiating exclusion in the second sentence. Every clause earns its place, and there is no repetition of schema information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is incomplete for an agent to fully invoke and interpret the tool: it does not describe the shape of the returned 'policy-rate versions', and no output schema exists to fill that gap. It also leaves the un-documented currencies parameter unexplained, so default behavior and filtering semantics remain unclear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50%: as_of is documented, but currencies has no description. The tool description adds no parameter-specific meaning; it never explains how currencies filters results or what happens when that array is omitted, leaving the agent to infer semantics from the enum values alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Read') and a well-qualified resource ('locally first-seen policy-rate versions that were available by the requested time'). It also draws a clear boundary with 'this is macro context, not a trading trigger,' which helps distinguish the tool from trading-signal siblings even without naming them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'not a trading trigger' line implies a context for use and warns against a likely misuse, but the description never names alternatives or gives explicit conditions for when to choose this tool over closely related siblings like get_exploratory_policy_rate_history. Usage guidance is mostly implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_positioning_contextA
Get the latest or recent public CFTC COT positioning proxy for a supported FX or gold symbol. COT is weekly, delayed futures data, not a realtime order-flow signal.
| Name | Required | Description | Default |
|---|---|---|---|
| weeks | No | Number of weekly observations. Default: 1 | |
| symbol | Yes | Supported: OANDA:EURUSD, USDJPY, GBPJPY, GBPAUD, XAUUSD |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full burden of behavioral disclosure. It meaningfully discloses that the data is a proxy, weekly, delayed, and not a realtime order-flow signal, which protects against misinterpretation. It does not describe output shape, units, or failure modes, but the most important behavioral caveats are addressed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. The main action is front-loaded and the critical caveat about data frequency and non-realtime nature follows immediately. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter getter with a fully described schema, the description is mostly self-contained: it covers data source, frequency, delay, scope, and the key non-realtime limitation. The lack of an output schema means a brief note on the returned positioning proxy shape would make it fully complete, but nothing essential is missing for correct tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters. The description does not add semantic detail beyond what the schema provides: symbol support and weeks meaning are already in the property descriptions. This is the correct baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete action and resource: getting the latest or recent public CFTC COT positioning proxy. It scopes this to supported FX or gold symbols and adds a differentiating caveat that this is weekly, delayed futures data, not a realtime order-flow signal. This makes the tool's purpose clear and distinguishable from realtime flow-oriented sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: use this when you need COT positioning context for supported FX or gold symbols. It explicitly warns that the data is weekly, delayed futures data, not a realtime order-flow signal. It stops short of naming a specific alternative for realtime order flow, so it lacks full when-not/alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_price_action_contextA
Read the latest bar's pin-bar, engulfing and sweep readings only from the exact audited Bushido Price Action Context Pine template. The saved source, study placement, symbol and timeframe are verified fail-closed, and so are the study inputs: a study with Confirm On Bar Close switched off is refused, because its signals can change after being read. Any other departure from the audited defaults is reported in settings and flagged in qualityIssues. A signal of 0 on an unconfirmed bar means the bar has not closed yet, not that the pattern is absent.
| Name | Required | Description | Default |
|---|---|---|---|
| pine_id | Yes | Saved audited template id | |
| study_id | Yes | On-chart instance id | |
| chart_index | No | ||
| expected_symbol | Yes | ||
| expected_timeframe | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden and does it well: it discloses fail-closed verification of source/placement/symbol/timeframe, refusal of Confirm On Bar Close off due to mutable signals, reporting of departures in settings/qualityIssues, and the meaning of 0 on unconfirmed bars. This is substantial transparency beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose, then essential caveats; no filler or repetition of schema patterns. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only context tool with no output schema and no annotations, the description covers invocation semantics, failure behavior, and a key return-value nuance (0 on unconfirmed bars). Minor omissions are the response shape and the optional chart_index parameter, but these do not prevent correct selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 40%, but the description adds meaning to all required parameters by mapping pine_id/study_id/expected_symbol/expected_timeframe to 'saved source, study placement, symbol and timeframe' and explaining they are verified fail-closed. It does not explain the optional chart_index, but the required-parameter semantics are significantly enriched.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('Read'), a precise resource ('latest bar's pin-bar, engulfing and sweep readings'), and a strict scope ('only from the exact audited Bushido Price Action Context Pine template'). This clearly differentiates it from get_price_action_context_template and run_price_action_pattern_study by stating it reads existing audited readings rather than returning a template or running a study.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the tool is for reading from the exact audited template and emphasizes fail-closed verification, which tells an agent when this tool is appropriate: when audited price-action readings are needed. It does not name sibling alternatives explicitly, but the 'only from' constraint and refusal of non-conforming studies provide clear contextual guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_price_action_context_templateA
Get the audited Pine template that marks pin bars, engulfing bars and 20-bar sweeps, and exposes each as a readable plot. Marks and alerts are gated on bar close, so nothing appears intrabar and then disappears. Save it with save_pine_script, add it once with add_pine_to_chart, then use get_price_action_context.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full behavioral burden. It discloses that the template is audited, that marks and alerts are gated on bar close, and that nothing appears intrabar and then disappears. This adds meaningful behavioral context beyond the tool name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with purpose, followed by a key behavioral guarantee, then a concise usage workflow. Every sentence earns its place and there is no repetition or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter template retrieval, the description covers what the template does, its behavioral guarantees, and the expected next steps. It does not explicitly state the exact return format, but the reference to save_pine_script implies the template is a script object, so no critical gap remains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and schema coverage is 100%, so there are no parameter semantics to document. The baseline of 4 applies because the description does not need to compensate for any schema gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and a specific resource ('audited Pine template') and states exactly what the template marks: pin bars, engulfing bars, and 20-bar sweeps. It also distinguishes itself from the sibling get_price_action_context by explicitly naming that tool as the later consumption step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear workflow: save it with save_pine_script, add it once with add_pine_to_chart, then use get_price_action_context. This tells an agent when this tool fits in a sequence, though it does not explicitly state when not to use it or compare it to alternative template getters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_quotesA
Get current quotes and technical data for specific symbols via TradingView's scanner API (no chart interaction). Default columns include close, change, volume, RSI and 'Recommend.All' — the overall technical rating in [-1, 1] (-1 strong sell, +1 strong buy). Other fields (e.g. 'MACD.macd', 'EMA50', 'price_earnings_ttm') can be requested via columns.
| Name | Required | Description | Default |
|---|---|---|---|
| columns | No | Data fields to return. Default: description/close/change/volume/RSI/Recommend.All | |
| symbols | Yes | Symbols in EXCHANGE:SYMBOL form, e.g. ['OANDA:EURUSD', 'NASDAQ:AAPL'] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral disclosure burden. It adds useful context: the data comes from TradingView's scanner API, no chart interaction occurs, default columns are specified, and the meaning of the 'Recommend.All' rating is explained with its range and interpretation. It does not cover response shape or rate limits, but it discloses the key operational behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The first sentence front-loads the action, resource, and key constraint; the second explains defaults and column extensibility. Every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there is no output schema, the description provides a reasonable high-level picture of what is returned and how to customize it. It covers the required symbols format via the schema, default columns, and rating meaning. Minor gaps like exact response structure and limits are either in the schema or not critical for a simple getter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds value beyond the schema by providing concrete examples of supported columns ('MACD.macd', 'EMA50', 'price_earnings_ttm'), clarifying the default column set, and explaining the semantics of 'Recommend.All'. This helps agents form valid requests.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get'), a specific resource ('current quotes and technical data for specific symbols'), and the method ('TradingView's scanner API'). It also explicitly notes 'no chart interaction', which distinguishes it from chart-related sibling tools like get_chart_context and get_chart_screenshot.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool: when current quotes and technical data for specified symbols are needed, and explicitly excludes chart interaction. It does not name sibling alternatives or provide when-not-to-use conditions, but the stated scope is enough to guide tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_real_yield_contextA
Get the latest official U.S. Treasury 10-year par real yield. This is end-of-day macro context, not an intraday trigger. Pass as_of to read only locally persisted versions first seen by that time.
| Name | Required | Description | Default |
|---|---|---|---|
| as_of | No | Point-in-time cutoff as an ISO-8601 timestamp. Omit for the latest official feed. |
Output Schema
| Name | Required | Description |
|---|---|---|
| unit | Yes | |
| as_of | Yes | |
| value | Yes | |
| series | Yes | |
| source | Yes | |
| status | Yes | |
| source_at | Yes | |
| source_url | Yes | |
| observed_at | Yes | |
| available_at | Yes | |
| cache_status | Yes | |
| source_error | Yes | |
| value_status | Yes | |
| first_seen_at | Yes | |
| latency_class | Yes | |
| quality_issues | Yes | |
| schema_version | Yes | |
| revision_status | Yes | |
| freshness_status | Yes | |
| observation_date | Yes | |
| available_at_basis | Yes | |
| freshness_weekdays | Yes | |
| point_in_time_status | Yes | |
| source_updated_at_raw | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the behavioral disclosure burden. It reveals the data source ('official U.S. Treasury 10-year par real yield'), the update cadence ('latest', 'end-of-day'), and the meaningful point-in-time behavior ('read only locally persisted versions first seen by that time'). It does not describe failure modes or whether network access occurs, but the output schema reduces the need to spell out return structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, no wasted words, with the core purpose front-loaded. The second sentence adds a crucial usage boundary, and the third sentence explains the one optional parameter. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has only one optional parameter, no required parameters, and an output schema, so the behavioral burden is small. The description covers what the tool returns, its cadence, its macro-context role, and the as_of semantics. An agent has enough to decide when to call it and how to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents as_of fully with format and a clear description, and schema coverage is 100%. The description adds value by clarifying that as_of reads 'only locally persisted versions first seen by that time,' which refines the schema's 'point-in-time cutoff' phrasing with concrete semantics. This extra nuance justifies moving above the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Get'), a precise resource ('U.S. Treasury 10-year par real yield'), and a clear scope ('latest official'). It also states that this is end-of-day macro context, not an intraday trigger, which separates it from the many chart/intraday/context siblings. This is specific enough for an agent to distinguish it from tools like get_policy_rate_context or get_market_snapshot without opening their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context: use it for macro-level real-yield context at end-of-day frequency, and do not treat it as an intraday trigger. It also explains the optional as_of behavior. However, it does not explicitly name alternative sibling tools or give an exclusion such as 'if you need the policy rate, use get_policy_rate_context instead,' so it falls just short of fully explicit routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_replay_statusA
Read the current TradingView Bar Replay state, active chart binding, historical cursor time, and replay resolution. This is read-only and never starts, advances, or stops replay trading.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly discloses the read-only nature ('This is read-only') and explicitly lists the actions it does not perform. This is strong transparency for a status tool, though it doesn't mention edge cases like whether a replay must be active or what happens if none is active.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The core action and object are front-loaded, and the list of included state elements adds precision without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and no output schema, the description still tells the agent what data will be available (state, binding, cursor time, resolution) and confirms non-mutating behavior. It could add a note about return format or preconditions, but for a simple read-only status tool the description is mostly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema provides no parameter documentation. The description logically covers what state is read, which serves as implicit context for why no parameters are needed. Per the baseline for 0 parameters, a score of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Read' with a clear resource: 'current TradingView Bar Replay state', and enumerates exactly what is read (active chart binding, historical cursor time, replay resolution). It also explicitly states what it does NOT do ('never starts, advances, or stops replay trading'), which clearly differentiates it from sibling tools like start_chart_replay, step_chart_replay, and stop_chart_replay.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: when you need to inspect the current replay state rather than mutate it. By stating it 'never starts, advances, or stops' replay, it signals that this is not the tool for controlling replay. It does not name alternatives explicitly, but the context is clear enough for an agent to route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_strategy_reportA
Read the backtest report (Strategy Tester) of the strategy currently on the active TradingView chart: net profit, win rate, profit factor, drawdown, Sharpe/Sortino, and the most recent trades with entry/exit details. Percent-style fields are fractions (0.33 = 33%). Fails if no strategy is on the chart — use run_backtest to test a saved strategy without leaving it on the chart.
| Name | Required | Description | Default |
|---|---|---|---|
| trades_limit | No | Max most-recent trades to include. Default: 20 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses a failure mode (no strategy on chart), a data-format nuance (percent-style fields are fractions), and the chart-bound dependency. It does not cover authentication or stale-report freshness, but the critical operational behaviors are stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences: core purpose and content, fraction formatting caveat, and failure/alternative. The purpose is front-loaded, and each sentence adds necessary operational information without fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-optional-parameter read tool with no output schema and no annotations, the description provides all needed context: what is read, what metrics are included, the fraction convention, the failure condition, and the fallback tool. An agent can safely invoke this tool based solely on the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for trades_limit; the schema already documents the maximum, minimum, and default. The description's 'most recent trades' phrasing aligns with this parameter but adds no new semantic information beyond what the schema provides, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Read') and resource ('backtest report of the strategy currently on the active TradingView chart'), and enumerates the exact contents (net profit, win rate, profit factor, drawdown, Sharpe/Sortino, most recent trades with entry/exit details). This clearly differentiates it from siblings like run_backtest or get_strategy_trade_ledger.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when this tool is appropriate ('currently on the active TradingView chart') and provides an exclusion/alternative: 'Fails if no strategy is on the chart — use run_backtest to test a saved strategy without leaving it on the chart.' This gives the agent clear decision criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_strategy_trade_ledgerA
Read a stable, paginated ledger of every trade available in the active Strategy Tester report. Returns entry/exit, direction, profit, quantity, duration, and run-up/drawdown/commission when TradingView exposes them. Start with offset 0; pass the returned ledgerId as expected_ledger_id on later pages to fail closed if the strategy recalculates. Read-only and requires an active strategy.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Trades to return in this page. Default: 200, maximum: 500 | |
| offset | No | Zero-based trade offset. Default: 0 | |
| expected_ledger_id | No | ledgerId from page 1; rejects mixed pages after recalculation |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does so thoroughly. It discloses that the ledger is stable and paginated, that pages fail closed if the strategy recalculates, that certain fields are returned only when TradingView exposes them, and that the operation is read-only with an active-strategy prerequisite.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, with the core purpose stated first, followed by pagination behavior and prerequisites. Every sentence earns its place without redundancy or irrelevant detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a paginated read tool with no output schema and no annotations, the description covers the essential context: what data is returned, how to paginate, consistency guarantees, and the active-strategy requirement. No critical information an agent would need to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds meaningful behavioral context beyond the schema: it explains the intended pagination flow of offset and expected_ledger_id, including the fail-closed behavior on recalculation. This goes beyond merely restating parameter names and types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Read') and resource ('stable, paginated ledger of every trade available in the active Strategy Tester report'), making the tool's function immediately clear. It also distinguishes itself from related sibling tools like get_strategy_report and summarize_backtest_ledger by focusing on the trade-level ledger rather than summaries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit pagination guidance: start with offset 0 and pass the returned ledgerId as expected_ledger_id on later pages. It also states the prerequisite of an active strategy and confirms the operation is read-only, giving clear context for when to call it, though it does not explicitly name alternatives or exclusion conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trade_decision_contextA
Build one read-only evidence bundle for trade analysis from a symbol-bound TradingView chart, OHLCV, key levels, scanner MTF/quotes, events, COT, U.S. real yield, and bid/ask execution evidence. decision_status reports only data and gate readiness; it never produces a directional recommendation or changes charts, Pine, alerts, orders, or journals.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | ||
| symbol | Yes | ||
| countries | No | ||
| timeframes | No | ||
| chart_index | No | ||
| ohlcv_count | No | ||
| min_importance | No | ||
| key_level_limit | No | ||
| auxiliary_symbols | No | ||
| expected_timeframe | Yes | ||
| include_real_yield | No | ||
| require_real_yield | No | ||
| include_positioning | No | ||
| require_positioning | No | ||
| key_level_range_percent | No | ||
| minimum_event_importance | No | ||
| execution_max_quote_age_ms | No | ||
| event_blackout_after_minutes | No | ||
| execution_sample_interval_ms | No | ||
| execution_wait_for_update_ms | No | ||
| event_blackout_before_minutes | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explicitly states the tool is read-only, never recommends a direction, and does not mutate charts, Pine, alerts, orders, or journals. It also clarifies that decision_status reports only data and gate readiness, which is valuable beyond the schema. It omits potential failure modes or latency, but the core side-effect profile is well disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The first sentence front-loads the core purpose and scope, and the second adds essential safety semantics. Every phrase earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a high-complexity tool with 21 parameters, no output schema, and no annotations. The description gives a useful high-level overview and safety guarantees, but omits the return structure, how parameters shape the bundle, what 'gate readiness' means concretely, and how to handle failures or partial data. An agent would need significant additional inference to invoke this tool confidently for varied use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are 21 parameters and the schema description coverage is 0%, yet the description only lists high-level data domains (OHLCV, key levels, events, COT, real yield, execution evidence). It does not explain critical parameters like expected_timeframe vs. timeframes, include_real_yield vs. require_real_yield, event blackout windows, or execution timing controls. The description cannot compensate for the complete absence of parameter-level guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Build one read-only evidence bundle for trade analysis.' It enumerates the data sources included and explicitly states what it never does, which distinguishes it from mutation-oriented siblings and single-source getters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use it: when a consolidated, multi-source evidence bundle for trade analysis is needed. It also establishes exclusions by stating that it never produces a directional recommendation and never changes charts, Pine, alerts, orders, or journals, though it does not name specific alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_volume_profile_contextA
Read a completed prior-session POC, VAH and VAL only from the exact audited Bushido Volume Profile Context Pine template. The saved source, study placement, symbol and timeframe are verified fail-closed. Results describe a volume-derived price-level context, not direct large-order, Bid/Ask, or order-flow evidence.
| Name | Required | Description | Default |
|---|---|---|---|
| pine_id | Yes | Saved audited template id | |
| study_id | Yes | On-chart instance id | |
| chart_index | No | ||
| expected_symbol | Yes | ||
| expected_timeframe | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses fail-closed verification of source, study, symbol, and timeframe, the 'completed prior-session' constraint, and the 'only' limitation. It also warns that results are volume-derived, not direct order-flow evidence.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly packed sentences, front-loaded with the main result, then verification behavior, then an important caveat. Every clause adds information and no filler is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description reasonably defines the data scope and fail-closed behavior. However, it does not describe the actual return shape or units of POC/VAH/VAL, and chart_index remains unaddressed, leaving some ambiguity for an agent invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only 40% of parameters have schema descriptions, so the description must compensate. It does map saved source/study placement/symbol/timeframe to the main inputs, but chart_index remains unexplained and exact format constraints for expected_symbol/expected_timeframe are absent. The description adds some meaning but not complete parameter coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Read') and resource ('completed prior-session POC, VAH and VAl only from the exact audited ... Pine template'). It clearly distinguishes from siblings like get_volume_profile_context_template and get_chart_context by narrowing scope and adding what it is not ('not direct large-order, Bid/Ask, or order-flow evidence').
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear context for use: reading saved volume profile levels for the prior session with a verified template. It tells the agent what the tool is not for, though it does not explicitly name alternative tools or state when-not-to-use relative to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_volume_profile_context_templateA
Get the audited Pine template that exposes only a completed exchange-trading-day chart-bar volume-allocation profile's prior POC, VAH and VAL as readable plots. It does not claim Bid/Ask order flow or institutional activity. Save it with save_pine_script, add it once with add_pine_to_chart, then use get_volume_profile_context.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and covers meaningful behavioral traits: the template is audited, limited to a completed exchange-trading day, exposes only prior POC/VAH/VAL as readable plots, and makes no claim about Bid/Ask flow or institutional activity. It doesn't discuss side effects or return format, but the 'get template' nature and follow-up save/add instructions make the expected behavior clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences carry the resource identity, scope limitation, caveat, and a concise step-by-step usage path without fluff. The key discriminator ('audited Pine template' and 'prior POC, VAH and VAL') is front-loaded before the workflow.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter template getter with no output schema, the description is complete: it states what the template contains, what it deliberately does not contain, how to install it, and how to consume it afterward. No critical missing information is needed for an agent to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters and the schema covers 100% of them, so there are no parameter semantics for the description to clarify. The baseline for no parameters is 4, and the description adds no conflicting or additional parameter information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: it retrieves an audited Pine template for a prior day's volume allocation profile, naming exactly which values (POC, VAH, VAL) are exposed. It also differentiates itself from related tools by explicitly stating it does not claim order-flow or institutional-activity data, so an agent can distinguish it from get_volume_profile_context and other template tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear usage workflow: save with save_pine_script, add once with add_pine_to_chart, then use get_volume_profile_context. It implies the tool is the setup step before the context tool and its caveat about order flow tells the agent when not to rely on it, though it does not explicitly name an alternative for Bid/Ask order flow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_watchlistA
Get the user's TradingView watchlists: list names and their symbols, grouped by the user's section headers. Uses the app's logged-in session.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the behavioral disclosure burden. It discloses that the tool uses the logged-in session, which is an important dependency, and it describes the return output in terms of watchlist names, symbols, and section-header grouping. A 'Get' verb implies a read operation; it does not detail failure modes, but for a simple zero-parameter read this is reasonable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler. The first sentence states what the tool does and what it returns; the second adds the important session dependency. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only tool, the description is complete: it tells the agent what data is returned (watchlist names, symbols, section-grouped) and the key runtime prerequisite (logged-in session). No output schema is provided, but the description covers the essential return structure well enough for an agent to decide whether to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool accepts zero parameters and the input schema is empty, so there is no parameter semantics for the description to add. The zero-parameter baseline of 4 applies here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get'), identifies the exact resource (user's TradingView watchlists), and explains what is included (names, symbols, grouped by section headers). This clearly differentiates it from the many sibling market-data and analysis tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes clear that this tool is for retrieving the current user's watchlists and that it relies on the app's logged-in session, which is a useful prerequisite. It does not explicitly name alternatives or say when not to use it, but no sibling tool appears to target watchlists, so the usage context is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_alertsA
List the user's TradingView price alerts (read-only): symbol, condition, active state, last fire time. This tool does not create, modify, restart, or delete alerts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly states the tool is read-only and does not create, modify, restart, or delete alerts, which is essential safety-relevant behavior for an agent. It does not discuss authentication, rate limits, or return format details, but for a zero-parameter listing tool the key behavioral trait is adequately disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no filler. The primary purpose is front-loaded, key output fields are listed, and the exclusion of mutation behavior is stated explicitly in the second sentence. Every phrase earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, zero-parameter, read-only list tool with no output schema, the description is complete: it specifies what is listed, what fields are returned, and what side effects the tool does not have. Nothing an agent needs to safely invoke this tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the input schema contains no properties, so there is no parameter documentation burden. The description provides context about what the returned list contains, which is useful semantic information even though it relates to output rather than parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation ('List'), the specific resource ('the user's TradingView price alerts'), and the scope of returned data (symbol, condition, active state, last fire time). It also explicitly differentiates itself from mutation operations by stating it does not create, modify, restart, or delete alerts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly establishes this as a read-only listing tool and explicitly excludes mutation operations, which helps an agent know when not to use it. However, it does not name any alternative tool for creating or modifying alerts, such as the sibling create_analysis_alerts, so the routing guidance is implicit rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_pine_scriptsA
List the user's own saved Pine scripts (indicators and strategies) with their pine_id, kind and version, cross-referenced with the charts: usedBy shows which on-chart indicators are rendered from each script. Use this to find the pine_id for get_pine_source. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden, and it delivers: 'Read-only' declares the safety profile, 'user's own saved' restricts scope, and the usedBy cross-referencing behavior is disclosed. For a zero-parameter list operation, the key behavioral traits are covered, though details like pagination or empty-result behavior are absent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, each earning its place: the first states purpose and return payload, the second routes to the downstream consumer, the third declares safety. The main purpose is front-loaded and nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly carries the burden of explaining return values (pine_id, kind, version, usedBy), and it also covers scope and safety. For a simple, parameterless list tool the definition is complete enough, though it doesn't mention potential pagination limits or behavior when the user has no saved scripts.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema is an empty object with zero parameters, so the baseline of 4 applies. There are no parameter semantics to clarify; the description instead uses the space to explain what the output contains, which is the more relevant information for this tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (List), resource (user's own saved Pine scripts), and the exact return fields (pine_id, kind, version, usedBy). The chart cross-reference detail ('usedBy shows which on-chart indicators are rendered from each script') makes the purpose precise and naturally distinguishes it from siblings like get_pine_source or save_pine_script.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use this to find the pine_id for get_pine_source' gives an explicit, concrete use case and routes the agent to the downstream sibling that consumes this tool's output. It provides clear context but stops short of explicit when-not-to-use guidance or named alternatives to avoid.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
load_more_historyA
Load more historical bars into a TradingView chart (like scrolling left), so that get_ohlcv and get_indicator_values can see further back. The visible chart view is not changed. Returns how many bars were added and the new earliest bar time.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | How many additional bars to request. Default: 300 | |
| chart_index | No | Chart index in a multi-chart layout. Default: the active chart |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and discloses the key side effect (visible chart view unchanged) plus the return payload (bars added and new earliest bar time). It omits permissions, failure modes, or repeated-call behavior, but what is stated is enough for safe invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: the first provides action and purpose, the second clarifies a non-effect and the return value. There is no filler and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description fully orients an agent: why to call it, what side effect it does not have, and what it returns. With no output schema, the stated return values are sufficient for an agent to invoke the tool and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both count and chart_index already have descriptions in the input schema. The tool description adds no new parameter-level semantics, so the baseline score of 3 is appropriate because the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description names a specific verb ('Load'), a resource ('historical bars into a TradingView chart'), and a clear goal ('so that get_ohlcv and get_indicator_values can see further back'). It also distinguishes behavior from ordinary chart scrolling by noting the visible chart view is not changed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clear context is provided: use this tool when get_ohlcv and get_indicator_values need older history. It also gives a useful when-not signal by stating the visible chart view is not changed, though it does not explicitly name an alternative tool or exclusionary condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
measure_carry_panel_dependenceA
Measure actual pairwise return correlation and block-bootstrap design effect for a fixed daily FX panel before a carry primary test. It temporarily switches the requested chart for each pair, loads only the requested history, and restores it after every pair. This measures price-panel dependence only; it does not invent policy-rate vintages or run a carry-return study.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | Yes | ||
| count | No | ||
| pairs | Yes | ||
| confirm | No | ||
| iterations | No | ||
| block_length_anchors | No | ||
| horizon_business_days | No | ||
| use_exploratory_official_rate_signs | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and discloses a key side effect: it temporarily switches the requested chart per pair, loads only the requested history, and restores the chart after every pair. It also clarifies it does not run other carry studies, giving good behavioral boundaries, though it does not describe return format or failure behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: purpose first, side-effect behavior second, and scope exclusion third. Every sentence adds distinct information with no filler or redundant restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite a clear purpose, the absence of an output schema and any parameter-level guidance leaves an agent without enough to confidently invoke the tool correctly or interpret its results. The behavioral side-effect note helps, but the 8-parameter, 0%-coverage schema demands more completion.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for 8 parameters, but it does not explain seed, iterations, block_length_anchors, horizon_business_days, count, confirm, or pairs beyond indirect references. It only loosely connects 'block-bootstrap design effect' and 'each pair' to the respective parameters, which is insufficient for 0% coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and object: measure actual pairwise return correlation and block-bootstrap design effect for a fixed daily FX panel before a carry primary test. It also explicitly distinguishes the scope by saying it does not invent policy-rate vintages or run a carry-return study, separating it from related carry-research siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear context ('before a carry primary test') and states exclusions: it measures price-panel dependence only, not policy-rate vintages or carry-return studies. However, it never names an alternative tool or says 'use X instead', so the routing guidance is strong but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
preflight_bookmap_flow_price_joinA
Read a local Bookmap Collector session and verify its conservative, receipt-time-only join coverage to the active EURUSD M1 or M5 chart. Bookmap CME flow is retained as a single-venue futures proxy, never presented as spot-FX-wide flow. This preflight creates no candidate, outcome study, chart change, or order.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | ||
| session_file | No | Collector JSONL basename. Default: latest lexicographic session in the configured local directory | |
| expected_symbol | Yes | ||
| interval_seconds | No | ||
| minimum_intervals | No | ||
| expected_timeframe | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool creates no candidate, outcome study, chart change, or order, and it qualifies Bookmap flow as a single-venue futures proxy rather than spot-FX-wide flow. It stops short of describing failure modes or file modification behavior, but the main safety-relevant traits are covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three focused sentences, each earning its place: purpose, data caveat, and safety guarantee. It is dense but not bloated, and the key constraints are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains purpose, data semantics, and non-mutation, but with no output schema it should also indicate what a successful verification returns or how mismatches are surfaced. Given the domain-specific jargon and six parameters, the description is not fully self-sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 17%, and the description only implicitly covers expected_symbol/expected_timeframe via 'EURUSD M1 or M5' and session_file via 'local Bookmap Collector session'. It does not clarify count, interval_seconds, or minimum_intervals, which are important to this verification workflow.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs 'Read' and 'verify' against a precise resource: a local Bookmap Collector session joined to the active EURUSD M1/M5 chart. It also explicitly states it creates no candidate, outcome study, chart change, or order, which sharply differentiates it from the many research and study sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It is clear this is a preflight verification step to run before relying on Bookmap flow as a proxy for EURUSD chart context. It does not explicitly name alternative tools or spell out when-not-to-use conditions, but the read-only preflight framing and data qualification give sufficient guidance for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
preflight_cross_asset_shockA
Coverage preflight for the cross-asset shock study. It binds an EURUSD or USDJPY target chart, then temporarily reuses one auxiliary chart for DXY, US10Y, and XAUUSD at the same 5 or 15 minute timeframe, restoring that auxiliary chart after each read. An optional explicit history load can add older bars but never changes symbols or timeframes persistently. Only exact UTC closed-bar intersections are counted; no shock threshold, direction, outcome, order-flow claim, or trading instruction is produced.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | ||
| load_more_bars | No | Additional history to request for the target and each temporary context before reading. Default: 0 | |
| expected_timeframe | Yes | ||
| target_chart_index | Yes | ||
| minimum_aligned_bars | No | ||
| auxiliary_chart_index | Yes | ||
| expected_target_symbol | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does an excellent job: it discloses temporary chart reuse, restoration after each read, optional history loading, lack of persistent symbol/timeframe changes, and the strict counting rule. This gives the agent a clear picture of side effects and non-effects beyond what any schema could convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and well-structured: purpose first, then mechanics, then exclusions and limitations. Every sentence adds distinct value, and the most important behavioral constraints are front-loaded without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 7 parameters, no annotations, and no output schema, so the description must do more heavy lifting. It covers side effects and scope well, but it omits definitions for 'count' and 'minimum_aligned_bars' and does not specify the return shape beyond implying an intersection count. For a tool an agent must invoke with correct parameter values, these are important gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 14%, so the description must compensate. It does clarify the roles of target_chart_index and auxiliary_chart_index, the expected symbols, the timeframe, and load_more_bars behavior. However, 'count' and 'minimum_aligned_bars' are never mentioned or explained, even though they are likely central to the preflight logic, leaving a meaningful semantic gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as a coverage preflight for the cross-asset shock study and specifies exactly what it does: bind an EURUSD or USDJPY target chart, temporarily reuse an auxiliary chart for DXY/US10Y/XAUUSD, and count exact UTC closed-bar intersections. It also explicitly distinguishes itself from outcome-producing tools by stating that no shock threshold, direction, outcome, order-flow claim, or trading instruction is produced.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context by explaining this is a preflight/coverage-checking operation and explicitly lists what it does not produce, which helps an agent avoid using it for outcome analysis or trade instruction. However, it does not name alternative sibling tools directly or state explicit conditions like 'use this before running classify_cross_asset_shocks.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reconcile_gold_open_interestA
Reconcile CFTC Gold COT open interest with locally first-seen official CME Daily Bulletin TOTAL GC FUT open interest. Only identical report/observation calendar dates are compared; missing dates are returned as quality evidence and are never nearest-date matched or filled.
| Name | Required | Description | Default |
|---|---|---|---|
| as_of | No | Point-in-time cutoff for the local CME first-seen history. Omit for the latest locally observed official values. | |
| weeks | No | COT report weeks to inspect. Default: 12 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of explaining behavior. It does so well by disclosing the exact date-matching rule and the handling of missing dates as quality evidence. It could additionally state whether the reconciliation writes records or is read-only, but the disclosed behaviors are materially useful and non-obvious.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences with no filler. The primary action and data sources are front-loaded, and the crucial matching rigor is stated immediately in the second sentence. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is sufficient to understand the tool's purpose, input semantics, and date-handling philosophy. The main gap is that it does not describe the shape or format of the reconciliation output, and there is no output schema to compensate; however, the tool's expected behavior is still clear enough for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both parameters are fully described in the schema: as_of as a point-in-time cutoff and weeks as the COT report weeks to inspect. The description adds no parameter-specific detail beyond what the schema already provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a precise action ('Reconcile') with a specific source pair: CFTC Gold COT open interest against local first-seen CME Daily Bulletin TOTAL GC FUT open interest. This clearly differentiates it from related tools like get_cme_gold_open_interest, which presumably returns raw data rather than performing reconciliation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear operational constraints: only identical report/observation calendar dates are compared, and missing dates are never matched or filled. This tells an agent when the tool is appropriate (strict date-aligned reconciliation) and what to expect about date handling, though it does not explicitly name alternative tools or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
record_research_period_usageA
Record a user-reported research data access in a local append-only journal. Requires confirm:true. Use a stable series_id across revisions and research projects; data_version is a content hash. Records the full inspected UTC interval [from,to), purpose and actual accessed_at. Retries with the same access_id are idempotent; conflicts fail. No chart access, orders or file paths. Reporting use is not preregistration or proof of an unused OOS period.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | ||
| from | Yes | ||
| confirm | Yes | ||
| purpose | Yes | ||
| access_id | Yes | ||
| series_id | Yes | ||
| accessed_at | Yes | ||
| research_id | Yes | ||
| data_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the entire burden, and it does so thoroughly. It discloses the append-only nature, idempotent retries for the same access_id, conflict failure, the exact interval semantics [from,to), the requirement for confirm:true, and the absence of side effects like chart access, orders, or file paths.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and information-dense. Each sentence adds necessary context: the core purpose, required confirmation, key parameter guidance, interval semantics, idempotency behavior, and explicit non-goals. It is front-loaded with the primary action and avoids redundant restatements of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having 9 required parameters and no output schema, the description is complete enough for an agent to understand what this tool does, what side effects it has, what constraints apply, and how it differs from journaling or validation workflows. The mention of idempotency and conflict failures covers the practical outcome expectations, and the explicit non-goals prevent misuse.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so description-level parameter explanation is essential. The description explains series_id stability, data_version as a content hash, confirm:true, the [from,to) interval, purpose, accessed_at, and access_id idempotency. It does not explicitly define research_id, but most critical parameters gain meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action: 'Record a user-reported research data access in a local append-only journal.' It clearly identifies the resource and behavior, and it is distinct from related siblings like check_research_period_usage or validate_research_protocol because it emphasizes the write/record nature and the journaling behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context: this is for user-reported data access recording, requires confirm:true, and has explicit exclusions such as 'No chart access, orders or file paths.' It also clarifies what the tool is not for ('not preregistration or proof of an unused OOS period'). However, it does not explicitly name sibling alternatives or state when to prefer one over another, so it falls just short of full guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
record_strategy_experimentA
Append one exact strategy experiment result to the research journal. The record binds the hypothesis, population, Pine versions, full-ledger ids, known metrics, guardrails, and decision. It stores no OHLC or source code and never touches a chart.
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | ||
| symbol | Yes | ||
| baseline | Yes | ||
| decision | Yes | ||
| candidate | Yes | ||
| timeframe | Yes | ||
| population | Yes | ||
| experiment_id | Yes | ||
| hypothesis_id | Yes | ||
| conditions_matched | Yes | ||
| minimum_trades_met | Yes | ||
| methodology_version | Yes | ||
| parent_experiment_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose append-only behavior, data exclusions (no OHLC/source code), and no chart side effects. But it omits auth requirements, duplicate handling, and whether the operation returns a confirmation, leaving significant behavior undisclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The first sentence front-loads the core purpose, and the second adds important scoping exclusions. Excellent structure for quick agent parsing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 13-parameter tool with nested objects, no output schema, and no annotations, the description gives a solid overview but lacks guidance on how to map an experiment's result to fields, when to use it relative to run_strategy_experiment, and what the expected return/confirmation is.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It groups key parameters into meaningful categories (hypothesis, population, Pine versions, full-ledger ids, metrics, guardrails, decision) which is helpful, but it leaves experiment_id, symbol, timeframe, methodology_version, and parent_experiment_id unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Append'), resource ('research journal'), and precise scope ('one exact strategy experiment result'). It enumerates the bound entities and explicitly excludes OHLC/source code/chart interactions, which clearly separates it from siblings that run or compare experiments.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The journal-append context implies this is the persistence step after running a strategy experiment, and the 'never touches a chart' clause acts as an exclusion. However, no alternative tools are named and there is no explicit when-to-use or when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
register_event_study_hypothesisA
Register one immutable event-study or observational feature-study hypothesis and its outcome contract in the local append-only research journal. Use the optional journal field of run_market_event_study or compute_feature_outcome_relationships to record evidence without copying results by hand.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| thesis | Yes | ||
| hypothesis_id | Yes | ||
| audit_definition | Yes | Exact standard falsification-audit CLI input. It is canonicalized and hash-bound in the immutable journal entry. | |
| evaluation_contract | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and does disclose important traits: the entry is immutable, the journal is append-only, and the journal is local. However, it omits duplicate-ID behavior, error handling, required permissions, and what the function returns, leaving meaningful ambiguity for a mutation/registration operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler, with the core purpose and behavioral constraints front-loaded and the alternative usage placed second. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a complex tool with five required parameters, nested objects, no output schema, and no annotations. The description covers the high-level purpose but leaves out return values, duplicate handling, validation behavior, and most parameter semantics, so an agent still faces significant ambiguity before invoking it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 20%, yet the description adds little parameter-level meaning beyond referring to an 'outcome contract,' which loosely maps to evaluation_contract. It does not explain hypothesis_id, title, thesis, audit_definition, or how the evaluation_contract fields relate to the hypothesis, so the description fails to compensate for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Register'), a specific resource ('immutable event-study or observational feature-study hypothesis and its outcome contract'), and a specific destination ('local append-only research journal'). It also distinguishes itself from siblings like register_strategy_hypothesis and the run_* study tools by clearly naming the domain of hypotheses it handles.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete routing guidance by telling users to use the optional journal field of run_market_event_study or compute_feature_outcome_relationships for recording evidence instead of copying results manually. It does not explicitly say when not to use this tool or mention protocol validation, but the intended workflow is reasonably clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
register_strategy_hypothesisA
Register one immutable strategy-research hypothesis and its evaluation contract in a local append-only journal. This does not access TradingView or run a test. Reusing a hypothesis_id with a different definition is rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| thesis | Yes | ||
| hypothesis_id | Yes | ||
| evaluation_contract | Yes | ||
| parent_experiment_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly communicates immutability, append-only journaling, non-execution of tests, no TradingView access, and rejection of reused hypothesis IDs with different definitions. These are concrete behavioral traits beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only three sentences, with the core purpose front-loaded. Every sentence adds a meaningful constraint or clarification, and there is no redundant restatement of the tool name or schema fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a rich nested schema, the description appropriately focuses on purpose, side effects, and constraints rather than repeating schema details. It clearly establishes that this is a registration-only action, not a test runner, and explains immutability and ID uniqueness. The main gap is the lack of explicit guidance on how this tool fits into the larger workflow with sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description needed to explain parameter meanings, but it only generically references 'hypothesis' and 'evaluation contract'. It does add one useful semantic for hypothesis_id (reuse with a different definition is rejected), but it leaves title, thesis, evaluation_contract fields, and parent_experiment_id unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Register'), a specific resource ('one immutable strategy-research hypothesis and its evaluation contract'), and a specific destination ('a local append-only journal'). It also differentiates itself from siblings like register_event_study_hypothesis and run_backtest by clarifying that this is for strategy research and does not run a test.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates when to use this tool: to persist a hypothesis and its evaluation contract before testing. It also gives a when-not signal by stating it does not access TradingView or run a test. However, it does not explicitly name alternative tools such as run_strategy_experiment or run_backtest for those testing needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_owned_studyA
Preview or remove one on-chart instance of the user's OWN saved Pine script. The tool verifies the USER pine_id against both list_pine_scripts and the study's hidden Pine id before removal. It also fails closed if the chart symbol or timeframe changed. Without confirm=true nothing is removed.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | ||
| pine_id | Yes | ||
| study_id | Yes | ||
| chart_index | No | ||
| expected_symbol | Yes | ||
| expected_timeframe | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden and does so well. It explicitly reveals verification against list_pine_scripts and the hidden Pine id, fail-closed behavior on symbol/timeframe mismatch, and the confirm=true requirement before any removal. This gives an agent critical safety-relevant behavior beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences with no filler. The main action and ownership constraint are front-loaded, followed by safety mechanisms. Every sentence adds necessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with no annotations and no output schema, the description covers the essential safety context: ownership verification, fail-closed guards, and confirmation requirement. It does not describe return values or preview output details, but those are less critical than the removal safeguards and the description is strong enough for safe invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It meaningfully explains confirm as the removal gate, pine_id as the user's own verified id, study_id as related to the study's hidden Pine id, and expected_symbol/expected_timeframe as guards that must match current chart context. chart_index is only implicitly covered by 'one on-chart instance', but overall the description adds substantial parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the specific action: preview or remove one on-chart instance of the user's own saved Pine script. It differentiates itself from sibling tools like add_pine_to_chart, save_pine_script, and list_pine_scripts by emphasizing ownership verification and chart-scoped removal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool: to preview or remove an owned saved Pine script from a chart, with confirm=true required for actual removal. It does not explicitly name sibling alternatives or state when not to use it, but the ownership and chart-context guardrails make the intended scenario clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_backtestA
Backtest one of the user's OWN saved strategies on the active chart's current symbol and timeframe: temporarily applies the strategy, waits for the Strategy Tester report, returns it (same shape as get_strategy_report) and removes the strategy again so the chart is left unchanged (set keep_on_chart to keep it). Get strategy pine_ids (kind 'strategy') from list_pine_scripts. Combine with set_symbol/set_timeframe to test other markets.
| Name | Required | Description | Default |
|---|---|---|---|
| pine_id | Yes | Strategy script id from list_pine_scripts, e.g. 'USER;71f1e4e6807c4bb48bd55edb886908a0' | |
| trades_limit | No | Max most-recent trades to include. Default: 20 | |
| keep_on_chart | No | Leave the strategy on the chart after the test. Default: false (auto-remove) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does so well. It discloses that the strategy is temporarily applied, that the tool waits for the Strategy Tester report, that the report has the same shape as get_strategy_report, that the strategy is removed afterward to leave the chart unchanged, and that keep_on_chart overrides cleanup.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense yet efficient: the first sentence covers action, scope, workflow, return shape, and cleanup; the second covers the prerequisite; the third covers companion tools. Every sentence earns its place with no repetition or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, referencing get_strategy_report's shape is valuable and sufficient. The description also covers prerequisites (list_pine_scripts), optional persistence (keep_on_chart), cleanup behavior, and how to extend to other symbols/timeframes. Nothing critical for calling the tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema documents all three parameters, including the pine_id format and trades_limit bounds. The description reinforces keep_on_chart's meaning and the source of pine_id, adding modest context, but it does not substantially extend parameter semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action ('Backtest'), a specific resource ('the user's OWN saved strategies'), and a precise scope ('active chart's current symbol and timeframe'). It also references get_strategy_report's shape, which helps the agent understand what this tool produces and how it relates to a sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit guidance on where to get valid strategy IDs ('Get strategy pine_ids ... from list_pine_scripts') and how to test other markets ('Combine with set_symbol/set_timeframe'). It does not explicitly contrast this tool with run_backtest_matrix or run_strategy_walk_forward, but it provides clear context for the common workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_backtest_matrixA
Run a bounded, serial matrix of saved Pine strategies across explicit symbol, timeframe, and input combinations. The matrix is limited to 24 jobs and a soft runtime budget. Each strategy is temporarily added, bound to a full-ledger SHA-256 id, removed, and the original chart state is restored after every job. Failures and insufficient samples remain as rows; results are never ranked. Without confirm=true this only returns the resolved execution plan. It never places orders.
| Name | Required | Description | Default |
|---|---|---|---|
| jobs | Yes | ||
| confirm | No | Must be true to change the chart and run the matrix. Default: false | |
| minimum_trades | No | Closed trades required per job. Default: 30 | |
| expected_symbol | Yes | Exact active-chart symbol before and after the matrix | |
| expected_timeframe | Yes | Exact active-chart timeframe before and after the matrix | |
| max_runtime_seconds | No | Do not start another job after this soft deadline. Default: 600, maximum: 1800 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so excellently. It discloses the 24-job cap, soft runtime budget, temporary strategy add/remove lifecycle, full-ledger SHA-256 id binding, chart-state restoration, handling of failures/insufficient samples, non-ranking of results, confirm-gated execution, and that it never places orders.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, each dense with critical operational information. The main purpose is front-loaded, and the safety-related behavior ('never places orders', 'confirm=true') is positioned where it matters. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex matrix execution tool with no output schema and no annotations, the description covers execution planning, confirmation semantics, safety (no orders), state restoration, job bounds, runtime limits, and result-row behavior. An agent has enough to decide whether and how to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already high at 83%, so the baseline is 3. The description adds meaningful meaning on top by explaining job lifecycle semantics, the confirm execution-plan gate, the soft runtime budget, and the meaning of insufficient samples relative to minimum_trades. This goes beyond the schema's basic field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Run') and a precise resource ('a bounded, serial matrix of saved Pine strategies across explicit symbol, timeframe, and input combinations'). This clearly distinguishes it from single-run tools like run_backtest, and the matrix framing is unique among sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when this tool is appropriate: when running multiple saved Pine strategy jobs across explicit combinations. It also explains the confirm=true gate and the non-order-placing behavior, but it does not explicitly name alternative tools or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_carry_core_primary_testB
Run the frozen carry_core_primary_v1 specification on the five-pair core FX panel. It uses only locally first-seen policy-rate versions that were available by each anchor-date close, fits pair fixed effects, and refits the regression in anchor-date moving-block bootstrap samples. It returns not_evaluable until the pre-registered first-seen history has at least 60 complete anchor-date clusters.
| Name | Required | Description | Default |
|---|---|---|---|
| as_of | No | ||
| count | No | ||
| confirm | No | ||
| chart_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavior. It explains the methodology: local first-seen policy-rate versions, pair fixed effects, moving-block bootstrap refits, and the not_evaluable condition until 60 complete clusters exist. This is substantive transparency, though it omits side effects and return structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three tightly written sentences with no filler. The opening sentence front-loads the main action, the second explains the key methodology, and the third states a critical return condition. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description gives good methodological context but is incomplete for invoking the tool correctly: there is no output schema, no parameter semantics, and no return-value description beyond the not_evaluable condition. An agent still cannot confidently know what a successful response contains or how to set the parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any of the four parameters: as_of, count, confirm, or chart_index. An agent cannot determine which parameter controls what, why chart_index is required, or what confirm does, leaving the invocation semantics almost entirely underspecified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Run the frozen carry_core_primary_v1 specification on the five-pair core FX panel.' This clearly identifies what the tool does and distinguishes it from the many sibling research/audit tools, which target different panels or specifications.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives, and it names no sibling tools or exclusions. It implies that the test is only meaningful once sufficient history exists, but it does not tell an agent when to choose this over readiness checks or preflight tools like get_carry_core_primary_readiness.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_event_study_falsification_auditA
Calibrate one frozen FVG-retest or session-auction event-study decision rule against deterministic, predictability-free synthetic OHLC. It runs each selected null model separately and returns the candidate rate, Wilson interval, seed range, and failures. A candidate requires a global mean confidence interval wholly above zero plus positive evidence in every synthetic fold. It does not read or change TradingView, record a journal entry, rank variants, or establish profitability.
| Name | Required | Description | Default |
|---|---|---|---|
| bars | No | Synthetic closed bars per replica. Default: 5000 | |
| study | Yes | ||
| models | No | Separate null-model runs. Default: all three; model rates are never pooled | |
| first_seed | No | ||
| volatility | No | ||
| replications | No | Per-model independent replicas. Default: 400 | |
| nominal_alpha | No | Reference candidate rate. Default: 0.05 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does so well. It explicitly describes separate null-model runs, the candidate criterion, the returned metrics, and important non-behaviors such as not touching TradingView, not journaling, not ranking variants, and not establishing profitability.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four dense, information-packed sentences with the purpose front-loaded. Every sentence contributes either scope, output, acceptance criteria, or side-effect boundaries; there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with no annotations and no output schema, the description covers core outputs, the candidate rule, and behavioral boundaries well. However, it omits one supported study type and does not explain how failures are represented or when to choose this over sibling falsification/power audit tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning for models, synthetic folds, and the seed-range output, but leaves first_seed and volatility behavior implicit. It also underrepresents the study parameter by naming only FVG-retest and session-auction while the schema includes a third variant.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb 'Calibrate' and a specific resource—one frozen event-study decision rule against synthetic OHLC—and enumerates the key outputs. It also distinguishes itself from ranking/profitability tools, though it omits the event_aftershock_retest variant that appears in the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended usage is implied: use when a single frozen event-study rule needs falsification against synthetic data with separate null-model runs. Negative boundaries are given, but no explicit alternative tool or when-not condition is named, so the agent must infer routing from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_external_label_studyA
Measure forward outcomes for caller-supplied point-in-time labels on the active chart, so an external series such as daily open interest, settlement statistics or survey data can be tested with the same outcome, fold, interval and journal machinery as the built-in conditions. Each label is attached to a bar at least one bar after the one it carries, because an external label is rarely public when its own bar closes; a zero lag is refused rather than trusted. Horizons count subsequent observed bars, so a daily series is not voided by weekends. Unlike run_market_event_study this accepts daily and weekly timeframes. Label correctness and revisions belong to whoever supplied them; only the join is point-in-time here. Signal-bar close is an event reference, not an assumed fill. It never ranks labels, changes the chart, or places orders.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Most recent loaded bars to inspect. Default: 1000 | |
| folds | No | ||
| journal | No | ||
| horizons | Yes | ||
| event_limit | No | Maximum per-event rows to return. Aggregate metrics always use all events. Default: 50 | |
| observations | Yes | Point-in-time labels. time must identify a loaded bar, exactly or by a UTC date only one bar carries | |
| minimum_events | Yes | ||
| overlap_policy | No | Exclude later events whose window overlaps an earlier one, or keep them for a dense daily label series and accept intervals narrower than the effective sample. Default: exclude_later_event | |
| accepted_labels | Yes | Labels to evaluate and the direction each one implies. Other labels are counted and dropped | |
| expected_symbol | Yes | ||
| confidence_level | No | ||
| target_return_bps | Yes | ||
| expected_timeframe | Yes | ||
| configuration_trials | No | ||
| observation_lag_bars | Yes | Closed bars between the observation bar and the signal bar. Minimum 1 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral disclosure burden, and it does so exceptionally. It reveals that zero lag is refused, horizons count subsequent observed bars so weekends do not void daily series, label correctness belongs to the caller, signal-bar close is not an assumed fill, and the tool never ranks labels, changes the chart, or places orders.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is lengthy but every sentence carries specific operational information. The core purpose is front-loaded, and the subsequent caveats about lag, horizons, timeframes, and side effects are all necessary for correct invocation. There is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter tool with no annotations and no output schema, the description provides strong contextual grounding around the data join, lag behavior, timeframe support, and non-effects. It is not fully complete because it never describes the return shape or how fold/journal/confidence configurations interact, and some required quantitative parameters are left to inference. Still, it is far above the minimum viable definition.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 40%, so the description must compensate. It does add real meaning for the central concepts: observation lag, horizons, labels, and accepted label directions. However, required parameters such as target_return_bps, minimum_events, folds, and journal settings receive little or no descriptive help, and expected_symbol/expected_timeframe matching against the active chart is implied rather than stated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Measure forward outcomes for caller-supplied point-in-time labels on the active chart', giving a specific verb, resource, and input type. It also explicitly distinguishes itself from run_market_event_study by noting daily/weekly timeframe support, so an agent can tell which tool is appropriate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly states the intended use case: testing external series such as open interest, settlement statistics, or survey data with the same machinery as built-in conditions. It directly names the main alternative, run_market_event_study, and explains the differentiator that this tool accepts daily and weekly timeframes, effectively providing when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_feature_outcome_falsification_auditA
Calibrate the frozen feature-outcome candidate gate against deterministic synthetic null OHLC. A candidate must pass the horizon-one, non-overlapping Newey-West, Bonferroni, and fixed 1,000-replication empirical-null rule. It does not read or change TradingView, record a journal entry, rank variants, or establish profitability.
| Name | Required | Description | Default |
|---|---|---|---|
| bars | No | ||
| models | No | ||
| features | Yes | ||
| horizons | Yes | ||
| timeframe | Yes | ||
| first_seed | No | ||
| volatility | No | ||
| atr_lookback | No | ||
| replications | No | ||
| nominal_alpha | No | ||
| range_lookback | No | ||
| confidence_level | No | ||
| gap_atr_threshold | No | ||
| minimum_effect_bps | Yes | ||
| streak_minimum_bars | No | ||
| body_ratio_threshold | No | ||
| configuration_trials | Yes | ||
| minimum_observations | Yes | ||
| range_position_lower | No | ||
| range_position_upper | No | ||
| atr_baseline_lookback | No | ||
| wick_imbalance_threshold | No | ||
| atr_compression_low_ratio | No | ||
| atr_compression_high_ratio | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral disclosure burden, and it does so well by stating that the tool uses deterministic synthetic null OHLC, applies a specific statistical rule set, and has no TradingView or journal side effects. It does not mention computational cost or output behavior, but the side-effect profile and methodology are clearly disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three tight sentences: purpose, statistical criterion, and exclusions. Information is front-loaded and every sentence earns its place, with no redundant filler or restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high complexity (24 parameters, 6 required, no annotations, no output schema), the description is too sparse to fully support correct invocation. It explains the high-level methodology but omits what the tool returns, how results are reported, and how to choose the six required parameters, making it incomplete for an agent facing novel inputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the tool has 24 parameters, yet the description provides almost no parameter-level guidance. Terms like 'horizon-one' and '1,000-replication' hint at horizons and replications, but required parameters such as minimum_observations, minimum_effect_bps, and configuration_trials are not explained, leaving an agent without enough information to set values correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Calibrate the frozen feature-outcome candidate gate'), a precise target ('deterministic synthetic null OHLC'), and enumerates what the tool does not do, which distinguishes it from sibling tools such as event-study or ranking-related audits. This is far from a tautology and gives an agent a clear operational picture.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys clear context: use this tool to calibrate a feature-outcome candidate gate against synthetic null data and apply specified falsification rules. It also provides explicit exclusions (does not read/change TradingView, journal, rank, or establish profitability), which helps an agent avoid misuse, though it does not name alternative sibling tools or state an explicit when-to-use formula.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_feature_outcome_power_auditA
Measure how often the frozen feature-outcome candidate gate detects a predeclared signed next-bar effect injected after one body-direction bucket. It is synthetic sensitivity evidence, not market alpha.
| Name | Required | Description | Default |
|---|---|---|---|
| bars | No | ||
| models | No | ||
| features | Yes | ||
| horizons | Yes | ||
| timeframe | Yes | ||
| effect_bps | Yes | ||
| first_seed | No | ||
| volatility | No | ||
| atr_lookback | No | ||
| replications | No | ||
| nominal_alpha | No | ||
| target_bucket | Yes | ||
| range_lookback | No | ||
| confidence_level | No | ||
| gap_atr_threshold | No | ||
| minimum_effect_bps | Yes | ||
| streak_minimum_bars | No | ||
| body_ratio_threshold | No | ||
| configuration_trials | Yes | ||
| minimum_observations | Yes | ||
| range_position_lower | No | ||
| range_position_upper | No | ||
| atr_baseline_lookback | No | ||
| wick_imbalance_threshold | No | ||
| atr_compression_low_ratio | No | ||
| atr_compression_high_ratio | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It transparently states that the tool injects a synthetic effect, measures detection rates, and that output is sensitivity evidence rather than alpha. It does not mention side effects or persistency, but the core synthetic experimental behavior is clearly conveyed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact at two sentences and front-loads the core measurement action, with the important 'not market alpha' caveat placed second. However, the dense jargon around 'frozen feature-outcome candidate gate' and 'injected after one body-direction bucket' harms readability, though every phrase contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 26 parameters, no output schema, no annotations, and zero schema description coverage, the description is far from complete. It establishes purpose but omits required parameter guidance, output expectations, operational constraints, and any invocation prerequisites, making it insufficient for correct use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no parameter-level guidance. Terms like 'predeclared signed next-bar effect' and 'body-direction bucket' only weakly map to effect_bps, horizons, or target_bucket, leaving the agent unable to construct a valid call for a 26-parameter tool with 8 required parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and target: 'Measure how often the frozen feature-outcome candidate gate detects a predeclared signed next-bar effect injected after one body-direction bucket.' It also clarifies this is synthetic sensitivity evidence, not market alpha, which distinguishes it from sibling falsification audits and outcome studies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for synthetic sensitivity testing and warns against treating results as market alpha, but it never names sibling alternatives or gives explicit criteria for when to choose this audit over run_feature_outcome_falsification_audit or compute_feature_outcome_relationships. The context is clear but exclusions are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_lead_lag_falsification_auditB
Calibrate the frozen lead-lag candidate rule against paired nulls. Factor variants carry contemporaneous dependence but no lagged predictability; independent variants isolate marginal path effects. Every replication runs the rule's own circular-shift empirical null after the v3 default's fixed causal prior-20-return RMS scaling. The result carries its fully resolved configuration and a hash of it, so a quoted rate can be reproduced. It does not read or change TradingView and does not establish profitability.
| Name | Required | Description | Default |
|---|---|---|---|
| rho | No | ||
| bars | No | ||
| folds | Yes | ||
| model | No | ||
| timeframe | Yes | ||
| first_seed | No | ||
| max_lag_bars | Yes | ||
| replications | No | ||
| nominal_alpha | No | ||
| confidence_level | No | ||
| configuration_trials | Yes | ||
| minimum_observations | Yes | ||
| return_standardization | No | Default causal_prior_20_rms is the v3 contract. none is the invalidated legacy v2 contract for reproduction only. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description compensates by disclosing the null mechanism (circular-shift empirical null after v3 default scaling), reproducibility through a configuration hash, and non-effects (does not read/change TradingView, does not establish profitability). It stops short of failure modes or resource costs, but covers the most decision-relevant behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four dense sentences, front-loaded with purpose, and each sentence adds a distinct behavioral fact: null method, scaling, reproducibility, and side-effect absence. It is not bloated, though the third sentence packs several technical clauses that could be split for readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
High parameter count, near-zero schema description coverage, no annotations, and no output schema place a heavy burden on the description, which it only partially meets. It provides methodology and side-effect context, but not enough for correct invocation of required parameters or interpretation of the returned result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 8%, so the description must carry parameter semantics; it explains null variants and default scaling but never maps concepts to specific parameters like model, folds, replications, or nominal_alpha. Only return_standardization has any schema-level description, leaving required inputs largely undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('Calibrate') and a specific resource ('frozen lead-lag candidate rule') against paired nulls, making the tool's core function clear. It is distinguishable from sibling falsification audits because it targets lead-lag rules specifically, though terms like 'frozen' and 'candidate rule' rely on domain context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is provided, and no alternative tools are named even though sibling falsification audits exist. The factor/independent variant explanation hints at use cases but does not state prerequisites or how to choose among the 13 parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_market_event_studyA
Run a bounded, read-only market event study on closed OHLC bars from the active chart. Condition session_auction classifies the first break of a prior local-session range as accepted outside closes or a failed return inside. Condition session_exhaustion_handoff tests whether a closed-bar prior-session direction fails to extend in an early handoff session and reverses; its outcomes begin only after the configured handoff window has fully closed. Condition event_aftershock_retest evaluates caller-supplied, canonical economic-event timestamps through a post-event initial range, close breakout, and first boundary retest. Condition failed_breakout evaluates a first sweep beyond a completed local-session range that closes back inside it, with optional opposite-direction confirmation closes. It returns directional forward returns, MFE, MAE, target timing, explicit exclusions, and optional non-overlapping time folds with bounded mean and rate confidence intervals. The caller can declare the number of configurations inspected; serial dependence and multiple testing are not silently adjusted. An optional regime split joins each event only to a price/volatility label whose bar closed before the signal bar began, and keeps sparse cells not evaluable. Signal-bar close is an event reference, not an assumed fill. It never ranks parameters, changes the chart, or places orders.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Most recent loaded bars to inspect. Default: 5000; up to 30,000 after explicit history loading | |
| folds | No | ||
| regime | No | Optional point-in-time price/volatility regime split using only bars closed before each signal bar | |
| journal | No | ||
| horizons | Yes | ||
| condition | Yes | ||
| event_limit | No | Maximum per-event rows to return. Aggregate metrics always use all events. Default: 50 | |
| minimum_events | Yes | ||
| expected_symbol | Yes | ||
| confidence_level | No | Confidence level for normal-approximation mean and Wilson rate intervals. Default: 0.95 | |
| target_return_bps | Yes | ||
| expected_timeframe | Yes | ||
| configuration_trials | No | Total related parameter/configuration trials inspected so far, including this one |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden and does so thoroughly. It discloses read-only semantics, closed-bar usage, the point-in-time regime join, the signal-bar-close-is-not-a-fill caveat, the lack of silent multiple-testing adjustment, and the absence of side effects such as ranking, chart changes, or order placement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but each sentence earns its place, front-loading the core purpose and then covering condition semantics, outputs, statistical honesty, and side-effect limitations. It could benefit from bulleted structure given the number of distinct behavioral claims, but the length is justified for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is strong for the aspects it covers, including return metrics, exclusions, confidence intervals, and regime behavior, but it omits two condition types present in the schema: fair_value_gap_retest and composite_condition. Given the high complexity and absence of an output schema, these omissions leave the description somewhat incomplete for full autonomous invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite low schema description coverage, the prose adds meaningful semantics to the most complex parameters: it explains each major condition type, the regime split's lookahead safety, non-overlapping time folds, and caller-declared configuration trials. It does not elaborate on simpler required parameters like horizons or target_return_bps, but those are reasonably inferable from their names and schema constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Run a bounded, read-only market event study on closed OHLC bars from the active chart.' It clearly explains what the tool produces and enumerates several condition types, but it does not explicitly distinguish itself from related sibling studies such as run_event_study_falsification_audit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys clear usage context by specifying that it operates on the active chart, is bounded and read-only, and never ranks parameters, changes the chart, or places orders. This helps the agent understand when to use it, though it does not explicitly name alternatives or state 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.
run_price_action_pattern_studyA
Measure what the three price-action patterns are worth as naked entries on the chart's own bars: enter at the signal bar's close in the direction the pattern reads, exit h bars later, with no stop, target or filter. Uses the same rules as the Pine template at its default settings. Reports each pattern's forward return with an IID normal-approximation interval for description only alongside the clock hours it fires in and what any bar in those hours does anyway, because a pattern that only fires at a session boundary will otherwise report that boundary as an effect.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Bars to read. More bars is a longer sample, never a different rule. | |
| chart_index | No | ||
| expected_symbol | Yes | ||
| expected_timeframe | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does so thoroughly. It discloses the entry rule, exit horizon, absence of stops/targets/filters, the use of Pine template default rules, the description-only IID normal-approximation interval, and the session-boundary caveat that prevents a common misinterpretation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a dense but well-structured single paragraph. It front-loads the core purpose, then adds methodology, output details, and a valuable interpretive caveat without filler. Every clause earns its place given the complexity of the study.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a research tool with no output schema, the description explains the study design, what is reported, and how to avoid misreading the results. Minor gaps remain around which three patterns are studied, the exact meaning of 'h', and chart_index semantics, but the required parameters and study behavior are largely inferable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25%, with only 'count' documented. The description does not explain expected_symbol, expected_timeframe, or chart_index, so it does not compensate for the coverage gap. It only implicitly references the chart through 'chart's own bars,' which is not enough parameter-level guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb, 'Measure', and a specific object: what the three price-action patterns are worth as naked entries on the chart's own bars. It adds concrete entry/exit rules, which makes the tool's distinct purpose clear relative to the many sibling event-study and audit tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly establishes the intended use: evaluating price-action patterns with no stop, target, or filter, and comparing them against the same hours' baseline behavior. It does not explicitly name alternatives or state when not to use it, but the context is unambiguous enough for an agent to select this tool over sibling studies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_strategy_experimentA
Run one bounded baseline-versus-candidate Strategy Tester experiment on the active chart. Both variants are resolved to exact saved Pine versions, applied serially with optional input overrides, bound to full-ledger SHA-256 ids, and removed after collection. Returns metric deltas without a synthetic score. Without confirm=true it only previews the experiment. It never places orders.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | Must be true to temporarily add strategies and run the experiment. Default: false | |
| baseline | Yes | ||
| candidate | Yes | ||
| minimum_trades | No | Closed trades required per variant. Default: 30 | |
| expected_symbol | Yes | Exact active-chart symbol, e.g. OANDA:USDJPY | |
| expected_timeframe | Yes | Exact active-chart timeframe, e.g. 240 or 1D |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral disclosure burden, and it does so thoroughly. It explains that strategies are temporarily added, resolved to exact saved Pine versions, applied serially, bound to full-ledger ids, removed after collection, and that the tool never places orders. This gives an agent a clear safety and side-effect profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences with no filler. It front-loads the core purpose, then provides constraints, cleanup behavior, output characteristics, preview semantics, and a critical safety guarantee. Every sentence contributes meaningful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no output schema, the description adequately covers outputs ('Returns metric deltas without a synthetic score'), execution requirements, cleanup, and the confirm prerequisite. The tool is complex with nested objects, but the description gives enough context for an agent to understand what happens and what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, and the description adds meaning beyond the schema by explaining baseline-versus-candidate semantics, optional input overrides, exact saved Pine version resolution, and the confirm gate. It does not fully describe every parameter, but it enriches the less-documented nested baseline/candidate objects and the overall experimental flow.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Run one bounded baseline-versus-candidate Strategy Tester experiment on the active chart.' It clearly distinguishes this tool from siblings like run_backtest or run_strategy_walk_forward by emphasizing the comparison structure, boundedness, and absence of a synthetic score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context, especially the preview-versus-execute distinction: 'Without confirm=true it only previews the experiment.' It also gives safety guidance by stating 'It never places orders.' It does not explicitly name sibling alternatives or when-not-to-use conditions, 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.
run_strategy_regime_analysisA
Run one exact saved Pine Strategy temporarily, collect its complete immutable trade ledger, and join each closed trade to the latest market-regime bar whose nominal close was available by entry time. Returns PF, expectancy, win rate, closed-trade drawdown, run-up/drawdown, and coverage by directional, volatility, and combined regime. Dry-run by default; confirm=true is required. The strategy is removed and the original chart fingerprint is verified. It never ranks regimes, changes the saved Pine source, or places orders.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Most recent loaded bars used for regime evidence. Default: 20000 | |
| inputs | No | ||
| confirm | No | Must be true to add the strategy temporarily and run the analysis. Default: false | |
| pine_id | Yes | ||
| sessions | No | Optional DST-aware session windows used for entry-time grouping | |
| atr_lookback | No | ||
| pine_version | Yes | ||
| trend_lookback | No | ||
| event_proximity | No | Optional scheduled-event entry-time groups; caller supplies canonical UTC timestamps | |
| expected_symbol | Yes | ||
| correlation_regime | No | Optional rolling correlation groups from a second bound chart with the same timeframe | |
| expected_timeframe | Yes | ||
| max_regime_age_bars | No | Maximum age of the prior closed regime evidence. Default: 3 bars | |
| low_volatility_ratio | No | ||
| minimum_group_trades | No | Joined trades required for an individual regime group. Default: 30 | |
| session_match_policy | No | Session overlap handling. Default: all_matches_non_exclusive; exclusive uses input order | |
| high_volatility_ratio | No | ||
| minimum_coverage_ratio | No | Eligible closed trades that must join to a regime. Default: 0.8 | |
| minimum_classified_bars | No | Regime observations required before evaluation is complete. Default: 100 | |
| range_efficiency_threshold | No | ||
| trend_efficiency_threshold | No | ||
| volatility_baseline_lookback | No | ||
| directional_move_atr_threshold | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the entire burden of behavioral disclosure. It does this exceptionally well: temporary strategy addition, immutable ledger, dry-run by default, mandatory confirm, strategy removal, chart fingerprint verification, and explicit no-op guarantees (no ranking, no source changes, no orders).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense yet compact. Each sentence delivers distinct value: the action and ledger, the returned metrics, the dry-run/confirm requirement, the cleanup/fingerprint verification, and the negative guarantees. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 23 parameters, no annotations, and no output schema, the description provides a strong high-level overview and return metrics, but leaves many configuration semantics unexplored. The schema covers some parameters, but the overall context is not fully sufficient for reliably invoking such a complex tool with correct optional parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 43%, so the description should compensate, but it only clarifies the confirm parameter ('confirm=true is required') and the generic regime-join concept. Most parameters (atr_lookback, trend_lookback, event_proximity, correlation_regime, thresholds, lookbacks) are not explained in the description and some lack schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Run one exact saved Pine Strategy temporarily'), the resource, and the analysis pipeline (join trades to regime bars). It also distinguishes itself by explicitly saying it 'never ranks regimes', which separates it from siblings like run_strategy_regime_matrix.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly states when to use: for analyzing one saved strategy's trades against regimes. It provides key preconditions like 'Dry-run by default; confirm=true is required' and exclusions ('never ranks regimes... or places orders'). However, it does not explicitly name alternative tools for different use cases, 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.
run_strategy_regime_matrixA
Run a bounded serial matrix of exact saved Pine Strategies across explicit symbols and timeframes, then join each complete trade ledger to point-in-time market regimes. Each job reads loaded closed OHLC, temporarily adds one strategy, removes it, and verifies restoration of the original chart. Returns coverage and descriptive performance by regime without ranking or automatic adoption. Dry-run by default; confirm=true is required. It never changes saved Pine source or places orders.
| Name | Required | Description | Default |
|---|---|---|---|
| jobs | Yes | ||
| count | No | ||
| confirm | No | ||
| sessions | No | Optional DST-aware session windows used for entry-time grouping | |
| atr_lookback | No | ||
| load_more_bars | No | History load per job before OHLC capture, split into 5000-bar requests. Default: 0 | |
| trend_lookback | No | ||
| event_proximity | No | Optional scheduled-event entry-time groups; caller supplies canonical UTC timestamps | |
| expected_symbol | Yes | Exact active-chart symbol before and after the matrix | |
| correlation_regime | No | Optional matrix-default rolling correlation groups from one reference chart | |
| expected_timeframe | Yes | Exact active-chart timeframe before and after the matrix | |
| max_regime_age_bars | No | ||
| max_runtime_seconds | No | Do not start another job after this soft deadline. Default: 900 | |
| low_volatility_ratio | No | ||
| minimum_group_trades | No | ||
| session_match_policy | No | Session overlap handling. Default: all_matches_non_exclusive; exclusive uses input order | |
| high_volatility_ratio | No | ||
| minimum_coverage_ratio | No | ||
| minimum_classified_bars | No | ||
| range_efficiency_threshold | No | ||
| trend_efficiency_threshold | No | ||
| volatility_baseline_lookback | No | ||
| directional_move_atr_threshold | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden and handles it exceptionally well. It discloses that strategies are temporarily added and removed, chart restoration is verified, the operation reads closed OHLC, dry-run is the default, confirm=true is required, and saved Pine source is never changed nor orders placed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four focused sentences with no filler: purpose, process, output, and safety constraints each occupy a distinct and necessary sentence. Key operational facts such as 'Dry-run by default; confirm=true is required' are front-loaded and impossible to miss.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high complexity, absent output schema, and no annotations, the description is unusually complete: it covers behavior, side effects, safety guarantees, and the high-level return content. It does not detail return structure or error conditions, but for agent selection and invocation the provided context is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 35%, so the description must compensate, but it only indirectly clarifies a few parameters such as confirm, jobs, symbols, and timeframes. The many regime thresholds, lookback windows, session configurations, and ratio parameters remain unexplained by the description, leaving the agent to infer their meaning from names and schema constraints alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Run'), a concrete resource ('a bounded serial matrix of exact saved Pine Strategies'), and a clear scope ('across explicit symbols and timeframes'). It also distinguishes itself by noting the output is descriptive and 'without ranking or automatic adoption', which separates it from related analysis tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides strong contextual guidance: it is a dry-run by default, confirm=true is required, and ranking/adoption are intentionally excluded. However, it does not explicitly name alternative sibling tools or state precise conditions for choosing this tool over them, so usage 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.
run_strategy_walk_forwardA
Run a bounded Pine Strategy walk-forward evaluation from full, immutable trade ledgers. Two to eight exact saved strategy/input candidates are collected serially on the bound chart, then partitioned into two to twelve explicit train, embargo, and test windows by closed-trade entry/exit time. Selection uses train metrics only; only the selected candidate's test metrics are exposed. Candidate failure, ledger quality issues, cost-condition differences, ties, and insufficient samples are not silently ignored. Without confirm=true this only previews the plan. Never places orders.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | ||
| folds | Yes | ||
| confirm | No | ||
| candidates | Yes | ||
| embargo_bars | No | Closed bars between train and test. Default: 1 | |
| expected_symbol | Yes | ||
| selection_metric | No | Train-only metric to maximize. Default: expectancy | |
| expected_timeframe | Yes | ||
| falsification_audit | No | Optional #45 ledger-level falsification audit. It replays the same candidate selection and OOS rule over centered, shared-calendar-block sign-flipped trade profits after full ledgers are collected. Candidate status requires a one-sided empirical post-selection OOS net-profit p-value at nominal alpha. | |
| max_runtime_seconds | No | Do not start another candidate after this soft deadline. Default: 600 | |
| minimum_test_trades | No | Trades required for each selected OOS fold. Default: 10 | |
| minimum_train_trades | No | Trades required to select a candidate in each train fold. Default: 30 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and succeeds: 'Never places orders,' 'Without confirm=true this only previews the plan,' 'Selection uses train metrics only; only the selected candidate's test metrics are exposed,' and the explicit list of failure conditions that are 'not silently ignored' are all material disclosures beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Six short sentences, each adding unique information. The main purpose is front-loaded, and there is no filler or tautology; even the list of failure conditions is compressed into one clause.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex 12-parameter tool with no output schema and no annotations, the description covers the execution model, preview behavior, data source, and safety profile. Remaining gaps are minor: no explicit guidance on mode, expected symbol/timeframe, or alternative tool routing, though the schema partially fills those gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50%, and the description adds meaning to core required parameters: candidates are 'exact saved strategy/input candidates collected serially,' folds are explicit partitions with train/embargo/test windows, and confirm controls preview versus execution. It does not explain anchored vs rolling mode or expected_symbol/timeframe, so it is not a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Run a bounded Pine Strategy walk-forward evaluation from full, immutable trade ledgers.' It further differentiates the tool by describing candidate collection, train/embargo/test partitioning, and selection semantics, making it clearly distinct from the many backtest and experiment siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear context for when to use this tool: bounded walk-forward evaluation using exact saved candidates and explicit train/embargo/test folds. It does not explicitly name alternatives or state 'use run_backtest instead,' 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.
run_volume_profile_poc_reversion_studyA
Run the separately frozen descriptive #61b 60-minute POC-reversion study on CME exchange-volume chart bars and the exact audited Bushido Volume Profile Context proxy. A signal is the first completed close outside VAH or VAL and at least 20 bps from the completed prior POC; it measures return toward that POC, POC-touch frequency, and a same-prior-regime non-event baseline. This is not the VAH/VAL reaction study and its evidence must not be combined with that population. It is descriptive only and never ranks or adopts a branch.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Most recent closed chart/profile rows. Default: 5000; up to 15000 after explicit history loading | |
| folds | No | ||
| pine_id | Yes | ||
| study_id | Yes | ||
| signal_to | No | ||
| chart_index | No | ||
| event_limit | No | ||
| signal_from | No | ||
| expected_symbol | Yes | ||
| expected_timeframe | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It states the study is descriptive only, never ranks or adopts a branch, is separately frozen, and uses an exact audited proxy. It does not disclose operational side effects such as history loading, resource usage, or whether prior chart state is touched, but the core non-mutating, non-decision-making behavior is clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no filler. It front-loads the tool's core purpose, then defines the signal and measurements, and ends with the key exclusions. Every sentence contributes distinct information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The definition is conceptually rich and clarifies what the study measures, which is helpful since there is no output schema. However, for a 10-parameter tool with no annotations and very low schema coverage, it lacks operational guidance on required identifiers, fold definitions, signal windows, and event limits. An agent could select the tool correctly but would still struggle to fill several parameters correctly without external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 10%, so the description should compensate for the ten parameters. It does not explain required fields like pine_id, study_id, expected_symbol, expected_timeframe, nor optional controls like folds, signal_from, signal_to, or event_limit. The description adds useful conceptual context about the signal and measurements, but it does not help an agent map concepts to specific parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the exact study to run (the separately frozen descriptive #61b 60-minute POC-reversion study), the data scope (CME exchange-volume chart bars and the audited Bushido Volume Profile Context proxy), and the signal definition. It also explicitly distinguishes itself from the VAH/VAL reaction study, so a reader can identify its unique purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states a when-not condition: it is not the VAH/VAL reaction study and its evidence must not be combined with that population. It also says it is descriptive only and never ranks or adopts a branch, which prevents misuse for decision-making. However, it does not explicitly name a positive alternative tool or give a precise selection rule among the many study siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_volume_profile_reaction_studyB
Run one frozen descriptive #61b reaction-study variant on CME exchange-volume chart bars and the exact audited Bushido Volume Profile Context proxy. The 240-minute v1 and 60-minute v1 variants are separate methodologies and their evidence must not be combined. Both fix 24 rows, 70% value area, four rejection/acceptance branches, horizons 1/2/4/8 and a 20 bps descriptive target. It also compares each branch with non-event bars in the same prior-closed directional-plus-volatility regime, standardized to the event regime mix. It verifies source, placement, inputs, symbol and timeframe and never ranks or adopts a branch. Native VP, order flow and assumed fills are explicitly out of scope.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Most recent closed chart/profile rows. Default: 5000; the 60-minute variant supports up to 15,000 after explicit history loading | |
| folds | No | ||
| pine_id | Yes | ||
| study_id | Yes | ||
| signal_to | No | ||
| chart_index | No | ||
| event_limit | No | ||
| signal_from | No | ||
| expected_symbol | Yes | ||
| expected_timeframe | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden, and it discloses several meaningful non-obvious behaviors: the tool compares branches against non-event bars in a matched regime, verifies source/placement/inputs/symbol/timeframe, never ranks or adopts a branch, and explicitly excludes native VP, order flow, and assumed fills. It does not disclose potential side effects such as whether results are persisted to a journal or ledger, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a dense four-sentence block of roughly 90 words; the main verb and resource are front-loaded in the first sentence, but the heavy jargon makes it difficult to parse quickly. Each sentence adds real information, so it is not padded, yet the lack of segmentation or plain-language summary reduces readability for an AI agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a high-complexity tool: 10 parameters, no output schema, no annotations, and a multi-variant methodology with strict evidence-handling rules. The description covers the methodology, fixed parameters, exclusions, and the combine-prohibition, but omits the return/result format, persistence or side effects, prerequisites, and any meaning for the majority of parameters. An agent would need substantial probing to invoke this tool confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 10% (the count parameter), so the description needed to compensate but only loosely does. It clarifies that the 60-minute variant supports up to 15,000 rows (relevant to count) and implies expected_symbol/expected_timeframe are verified, but the other nine parameters (folds, signal_from, signal_to, pine_id, study_id, chart_index, event_limit) receive no meaning in either the schema or the description. The methodology terms (70% value area, four branches, 20 bps target) are not mapped to any concrete parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Run') and an unusually precise resource: the frozen descriptive #61b reaction-study variant on CME exchange-volume chart bars with the audited Bushido Volume Profile Context proxy. It further scopes the tool by listing fixed methodology parameters (24 rows, 70% value area, four branches, horizons 1/2/4/8, 20 bps target) and exclusions, which differentiates it from the similar-sounding sibling run_volume_profile_poc_reversion_study. The heavy domain jargon slightly obscures the plain-language purpose, so it doesn't earn a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives; no sibling tool is named and no selection conditions are stated. The warning that the 240-minute and 60-minute variants must not be combined is a methodological constraint, not usage routing. This is the weakest dimension for a tool in a large sibling set of research/audit studies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_yield_price_nonconfirmation_studyA
Run a bounded, read-only cross-asset event study over two exact TradingView charts, with an optional third-chart OHLC regime or fixed DXY Pine gate on the target chart. A driver impulse becomes usable only after its nominal bar close; the study then tests whether the target fails to break in the expected direction and confirms an opposite structural close. It uses an as-of join without forward-fill and returns forward return, MFE, MAE, target timing, fold results, and explicit exclusions. Signal-bar close is an event reference, not an assumed fill. It never changes charts, ranks parameters, or places orders.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Most recent loaded bars to inspect on each chart. Default: 5000 | |
| folds | No | ||
| horizons | Yes | Observed-bar return horizons. Only horizon 1 can be statistically candidate-eligible. | |
| event_limit | No | Maximum per-event rows to return. Aggregate metrics always use all events. Default: 50 | |
| signal_from | No | Inclusive signal-bar timestamp for a fixed forward collection window | |
| relationship | Yes | ||
| context_regime | No | ||
| minimum_events | Yes | ||
| driver_lag_bars | No | Lag offset in target bars after driver impulse close (default: 0) | |
| driver_lookback | Yes | ||
| trigger_lookback | Yes | ||
| context_indicator | No | ||
| target_return_bps | Yes | ||
| driver_chart_index | Yes | ||
| target_chart_index | Yes | ||
| max_driver_age_bars | Yes | ||
| trigger_within_bars | Yes | ||
| configuration_trials | No | Number of evaluated lead/lag and parameter trials for multiple testing reference (default: 1) | |
| nonconfirmation_bars | Yes | ||
| expected_driver_symbol | Yes | ||
| expected_target_symbol | Yes | ||
| driver_change_threshold | Yes | ||
| price_breakout_lookback | Yes | ||
| expected_driver_timeframe | Yes | ||
| expected_target_timeframe | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden and does so exceptionally. It explicitly discloses read-only behavior, bounded execution, as-of join without forward-fill, no assumed fill at signal-bar close, explicit exclusions, and states it never changes charts, ranks parameters, or places orders.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four dense sentences with no filler. The opening sentence front-loads the core purpose and safety profile, and each subsequent sentence adds distinct value: event logic, join and output semantics, fill reference, and side-effect guarantees.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high complexity (25 parameters, no output schema, no annotations), the description is unusually complete. It explains the study mechanics, the optional gate variants, the join behavior, the returned metrics, and the tool's non-mutating guarantees, giving an agent enough context to invoke it appropriately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 24%, and no output schema is present, so the description must compensate. It supplies essential semantics for many required parameters by defining the driver impulse, signal-bar close timing, as-of join behavior, optional third-chart gate, and the output metrics. It does not enumerate every parameter, but the conceptual model it provides is substantial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: "Run a bounded, read-only cross-asset event study over two exact TradingView charts." It further distinguishes itself by naming the nonconfirmation logic, optional DXY gate, and the fact that it is a study rather than a chart-mutating action, which separates it from the many sibling event-study tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when this tool is appropriate: when analyzing a driver impulse against a target nonconfirmation with an optional regime gate. It does not name sibling tools or explicitly state when not to use it, but the event pattern and read-only bounded study framing give an agent enough context to select it over unrelated tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_pine_scriptA
Save Pine source to the user's script library — the ONLY write tool, with a confirm flow: without confirm=true nothing is written and a dry-run preview is returned; show it to the user and get their approval before calling again with confirm=true. Non-destructive by design: creates a new script (name, no pine_id) or a new version of an existing one (pine_id), and every older version stays retrievable via get_pine_source(pine_id, version). Compile errors are returned with line numbers; note the version is stored even if compilation fails (see revertHint). Typical PDCA loop: get_pine_source -> edit -> save_pine_script -> run_backtest.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Script name — required when creating a new script, optional rename otherwise | |
| source | Yes | Full Pine source, e.g. starting with //@version=5 | |
| confirm | No | Must be true to actually write. Default: false = dry run only | |
| pine_id | No | Existing script to save a NEW VERSION of. Omit to create a new script |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full burden, and it delivers: it discloses the dry-run behavior, non-destructive design, versioning semantics, compile-error reporting with line numbers, and the fact that a version is stored even on compile failure. This goes far beyond a typical tool description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence earns its place. It front-loads the single most important fact (write tool with confirm flow) and then layers mode details, versioning, error behavior, and a workflow example without unnecessary filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema and no annotations, the description covers what an agent needs: the write path, the dry-run path, error behavior, version retention, and the recommended surrounding workflow. It is sufficiently complete for correct invocation and user-facing behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although schema coverage is 100%, the description adds meaning above the schema: confirm defaults to false and is required for actual writes, name is needed for new scripts while pine_id targets an existing script for a new version, and older versions remain retrievable. This helps the agent understand the relationship between parameters and side effects.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Save Pine source to the user's script library.' It explicitly marks itself as 'the ONLY write tool' and distinguishes the two modes of operation (new script vs new version), making it easy to differentiate from read-oriented siblings like get_pine_source and list_pine_scripts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The confirm-flow is clearly explained: call once without confirm=true to get a dry-run preview, then call again with confirm=true only after user approval. It also gives explicit guidance on when to omit pine_id (new script) versus provide it (new version), and even provides a typical PDCA loop: get_pine_source -> edit -> save_pine_script -> run_backtest.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scan_marketA
Screen a market for symbols matching field filters via TradingView's scanner API, e.g. RSI < 30 sorted by volume. Markets: 'america', 'japan', 'crypto', 'forex', 'global', etc. Filter fields use scanner names like 'RSI', 'close', 'volume', 'change', 'market_cap_basic', 'Recommend.All'.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results. Default: 20 | |
| market | Yes | Market to screen, e.g. 'japan', 'america', 'crypto', 'forex' | |
| columns | No | Data fields to return per match | |
| filters | No | Conditions, e.g. [{field:'RSI', operation:'less', value:30}] | |
| sort_by | No | Field to sort by, e.g. 'volume' | |
| sort_order | No | Default: desc |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It usefully discloses that this is an external TradingView scanner API call and gives relevant domain conventions. However, it does not explicitly state whether the operation is read-only, whether rate limits or auth are involved, or what happens on API failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the core purpose. The market list and scanner-field examples are useful, though the market list partially duplicates the schema's example values.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the well-described schema and the tool's relatively simple screening purpose, the contextual picture is mostly complete. The main gap is the lack of explicit output-shape information, but the schema's 'columns' parameter and the phrase 'symbols matching field filters' imply the return format adequately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds real value by explaining that filter fields use scanner names like 'RSI', 'close', 'volume', 'market_cap_basic', and 'Recommend.All', and by giving an example filter ('RSI < 30') that maps directly to the schema's operation enum.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Screen a market for symbols matching field filters') and the means ('TradingView's scanner API'), so an agent knows what the tool does. It does not explicitly differentiate from sibling watchlist/quote/snapshot tools, but the screening function is immediately recognizable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear use context: scanner-style market screening with filter examples and supported market names. It does not mention alternatives or when-not-to-use cases, but the examples and phrasing make the intended usage reasonably explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_indicator_inputA
Change input values of an indicator or strategy already on a chart — the write counterpart to get_indicator_inputs. The Pine source is untouched, but the study's input values on the chart remain changed until set back (this is a live chart edit, like opening the study's Settings dialog, and may be captured by TradingView's own layout autosave). Works for both plain indicators and strategies (for a strategy, follow up with get_strategy_report to read the recalculated backtest). Use this to A/B-test parameters without re-saving the script each time, and restore the original values when done.
| Name | Required | Description | Default |
|---|---|---|---|
| inputs | Yes | Inputs to change, e.g. [{id:'in_0', value:14}]. Get ids/current values from get_indicator_inputs | |
| study_id | Yes | Indicator/strategy id from get_chart_context or add_pine_to_chart/run_backtest(keep_on_chart:true) | |
| chart_index | No | Chart index in a multi-chart layout. Default: the active chart |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it discloses that the Pine source is untouched, that changes are live chart edits persisting until reset, that TradingView layout autosave may capture them, and that strategy backtests recalculate. This gives an agent accurate expectations about side effects without relying on annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences deliver action, side-effect transparency, use case, and follow-up guidance with no filler. Key scoping ('Pine source untouched') is front-loaded and every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is strong for a mutating tool: it covers scope, persistence, autosave caveat, strategy workflow, and restoration. It does not describe the return value or failure behavior, and with no output schema that small gap keeps it just shy of complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema descriptions already explain study_id, inputs, and chart_index with examples and source hints. The description adds overall workflow context but not additional per-parameter semantics, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific action and resource: 'Change input values of an indicator or strategy already on a chart,' and immediately labels itself 'the write counterpart to get_indicator_inputs,' making the read/write distinction explicit. This clearly differentiates it from sibling tools like get_indicator_inputs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a concrete use case ('A/B-test parameters without re-saving the script each time') and says to restore original values when done. It also notes the strategy-specific follow-up with get_strategy_report. However, it does not explicitly name an alternative like save_pine_script for cases where permanent source changes are needed, though 'Pine source is untouched' implies the distinction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_symbolA
Change one TradingView chart to a different symbol, e.g. 'BTCUSD', 'OANDA:EURUSD', 'NASDAQ:AAPL'. chart_index selects a pane in multi-chart layouts; the active chart is used by default. The target pane is read back and failures are rolled back.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Symbol to display, optionally exchange-prefixed | |
| chart_index | No | Chart index in a multi-chart layout. Default: active chart |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral transparency burden. It discloses that the target pane is read back and failures are rolled back, which is meaningful for a mutating tool. It does not mention permissions or persistence, but the core side effects are sufficiently transparent for this simple operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with the core action front-loaded, useful examples, and no redundant filler. Every clause contributes either to scope, parameter behavior, or failure handling.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter mutating tool with no output schema, the description is complete: it specifies what changes, acceptable symbol formats, how to target a pane, the default behavior, and the rollback guarantee. Nothing essential is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds value by giving real symbol format examples and clarifying that chart_index selects a pane in multi-chart layouts with the active chart as default. This goes beyond the bare schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a precise verb and resource: 'Change one TradingView chart to a different symbol.' It gives concrete symbol format examples ('BTCUSD', 'OANDA:EURUSD', 'NASDAQ:AAPL') and is clearly distinct from sibling set_timeframe, which changes a different chart property.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly explains chart_index usage and the default behavior for the active chart, giving an agent enough context to invoke the tool correctly. It does not explicitly name alternatives or exclusions, but the operation is unambiguous and no competing sibling performs the same symbol-change task.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_timeframeA
Change one TradingView chart's timeframe. Examples: '1', '5', '15', '60', '240' (minutes), '1D', '1W', '1M'. chart_index selects a pane in multi-chart layouts; the target pane is read back and failures are rolled back.
| Name | Required | Description | Default |
|---|---|---|---|
| resolution | Yes | Timeframe/resolution string | |
| chart_index | No | Chart index in a multi-chart layout. Default: active chart |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden, and it does add meaningful disclosure: 'the target pane is read back and failures are rolled back,' revealing verification and transactional-rollback behavior. This partially compensates for the missing annotation layer. However, it omits other behavioral traits an agent would want, such as persistence effects, what a 'failure' condition looks like, and any prerequisites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core action, then examples, then the multi-chart qualifier. Every sentence earns its place and there is no redundant boilerplate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter setter, the description covers the action, valid values, multi-chart behavior, and verification semantics. But with no output schema or annotations, it leaves gaps: the return/confirmation format after the read-back is unspecified, error behavior beyond rollback is vague, and there is no statement about whether a chart/pane must already exist.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds genuine value beyond the schema by giving concrete resolution examples ('1', '5', '15', '60', '240' (minutes), '1D', '1W', '1M'), which clarifies the units and format that a bare 'Timeframe/resolution string' does not. The chart_index explanation mostly mirrors the schema, but the resolution semantics push this above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: 'Change one TradingView chart's timeframe.' It also clarifies scope with 'one' (single-pane) and provides concrete valid values. It does not explicitly name a sibling it is not (e.g., set_symbol), so it doesn't fully earn a 5, but the action and target are unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied rather than explicit: an agent can infer this tool is for changing a chart's timeframe, and the chart_index explanation gives multi-chart layout guidance. However, there is no when-not-to-use guidance or mention of alternatives such as set_symbol, and no prerequisite stated (e.g., a chart must be open).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_chart_replayA
Preview or start TradingView Bar Replay on the active chart at one historical instant. expected_symbol and expected_timeframe are checked immediately before the write. confirm=true is required. Replay Trading orders and autoplay are never used.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | Must be true to enter Bar Replay. Default: false | |
| start_at | Yes | ||
| expected_symbol | Yes | ||
| expected_timeframe | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. It does reveal meaningful behavior: expected_symbol and expected_timeframe are checked immediately before the write, confirm=true is required, and Replay Trading orders/autoplay are never used. However, it leaves ambiguity around what 'Preview' means, whether an existing replay is replaced, and what side effects or return values occur after the write.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences with no filler. The primary purpose is front-loaded, and the key constraints are stated clearly. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no annotations and no output schema, so the description needs to cover more context. It covers the core action and critical guardrails, but it lacks guidance on follow-up tools, expected return behavior, and what happens to any existing replay session. It is adequate for a simple start action but still leaves clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low at 25%, so the description must compensate. It adds semantic meaning for expected_symbol and expected_timeframe by saying they are checked immediately before the write, and it clarifies that confirm must be true. However, start_at is only implied by 'one historical instant' and is not explicitly linked to the parameter, and no additional parameter semantics are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Preview or start'), a specific resource ('TradingView Bar Replay on the active chart'), and a precise scope ('at one historical instant'), distinguishing this from sibling tools like step_chart_replay, stop_chart_replay, and get_replay_status. It is not a tautology and immediately communicates what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides useful context: it is for entering replay at one historical instant, confirm=true is required, and Replay Trading orders/autoplay are never used. However, it does not explicitly state when to use this tool versus alternatives such as step_chart_replay, stop_chart_replay, or get_replay_status, or mention prerequisites like having an active chart.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
step_chart_replayA
Advance an already started, paused TradingView Bar Replay by 1-100 bars. Each step is read back and must advance the replay cursor. Autoplay and Replay Trading orders are not supported.
| Name | Required | Description | Default |
|---|---|---|---|
| steps | No | Bars to advance. Default: 1 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It adds important behavioral context beyond the name: the replay cursor must advance with each step, and autoplay/Replay Trading orders are unsupported. It could mention failure modes, but the core behavior is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short, information-dense sentences with no filler. The core action is front-loaded, and each sentence provides a distinct piece of necessary guidance: what the tool does, its state prerequisite, and its limitations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema, the description covers the essential invocation context: state prerequisite, step range, and unsupported modes. It does not specify error behavior or return value shape, but the information provided is sufficient for correct use in most cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema fully documents the 'steps' parameter including min, max, default, and a descriptive label. The description adds little beyond restating 'by 1-100 bars', so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Advance') and resource ('TradingView Bar Replay'), and further clarifies the exact operation (advance by 1-100 bars) and the required state (already started, paused). This clearly distinguishes it from sibling tools like start_chart_replay, stop_chart_replay, and get_replay_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states the prerequisite condition ('already started, paused') and explicitly lists unsupported modes ('Autoplay and Replay Trading orders are not supported'). It does not name alternative tools explicitly, but the conditions make the intended use case clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stop_chart_replayA
Preview or stop TradingView Bar Replay and return the chart to real-time mode. confirm=true is required when replay or its toolbar is active.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | Must be true to leave Bar Replay. Default: false |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It explains the primary effect (returning to real-time mode) and the key requirement that confirm=true is needed when replay or its toolbar is active. It does not detail edge cases such as calling it when no replay is active, but the core behavior is transparent enough for safe invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded, with the action and effect stated first and the parameter requirement second. It loses a point because 'Preview or stop' is slightly awkward and could be more direct, but there is no wasted content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one simple boolean parameter and no output schema, the description is largely complete: it states what the tool does, the condition under which confirm is required, and the resulting chart state. It could mention what happens when replay is not active, but that is a minor gap given the low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents the confirm parameter at 100% coverage, so the baseline is 3. The description adds value by clarifying that confirm=true is required specifically when replay or its toolbar is active, which is a useful condition beyond the schema's 'Must be true to leave Bar Replay.'
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action on a specific resource: it stops or exits TradingView Bar Replay and returns the chart to real-time mode. This distinguishes it from sibling tools like start_chart_replay and step_chart_replay, though the phrase 'Preview or stop' introduces slight ambiguity about whether previewing and stopping are different actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: this tool is used when Bar Replay or its toolbar is active and the chart should return to real-time mode. It does not explicitly name alternatives or state when not to use it, but the sibling tool names make the intended usage easy to infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stress_test_strategyA
Run bounded robustness tests for one exact saved Pine strategy. After a dry-run preview, confirm=true collects a baseline full ledger, applies modeled cost, commission, period-start, and seeded bootstrap scenarios, and can serially rerun up to eight explicit Pine input-override scenarios for Entry-delay, Stop/Target, or parameter-neighbor effects. Every temporary Strategy is removed and the chart fingerprint is checked before continuing. Results include failures, distributions, worst cases, and degradation without ranking, adoption, fabricated fills, or orders.
| Name | Required | Description | Default |
|---|---|---|---|
| inputs | No | ||
| confirm | No | ||
| pine_id | Yes | ||
| bootstrap | No | ||
| scenarios | Yes | ||
| protocol_id | Yes | ||
| pine_version | Yes | ||
| evaluation_to | Yes | ||
| minimum_trades | Yes | ||
| evaluation_from | Yes | ||
| expected_symbol | Yes | ||
| rerun_scenarios | No | ||
| expected_timeframe | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description fully carries the behavioral burden. It discloses side effects and safeguards: every temporary Strategy is removed, the chart fingerprint is checked before continuing, and results explicitly exclude ranking, adoption, fabricated fills, and orders.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences front-load the purpose, then describe the execution flow, then cover safety and result content. There is no filler and no repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex 13-parameter tool with no output schema and no annotations, the description covers the execution lifecycle, scenario taxonomy, cleanup behavior, and result summary. It omits exact output structure and some required parameter semantics, but the schema names and constraints fill much of that gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate. It adds meaning for scenario kinds, bootstrap, confirm, and rerun overrides, but it does not explain required parameters like protocol_id, expected_symbol, expected_timeframe, evaluation range, minimum_trades, or top-level inputs. Significant value added, but a clear gap remains for several required params.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific operation: 'Run bounded robustness tests' on 'one exact saved Pine strategy,' with explicit scenario types and result exclusions. This clearly distinguishes it from sibling tools like run_backtest or run_strategy_experiment by emphasizing non-adopting, bounded stress testing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear invocation workflow: dry-run preview first, then confirm=true to execute, with a limit of eight rerun input-override scenarios. It does not explicitly name alternative tools or when-not-to-use conditions, so it stops just short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
summarize_backtest_ledgerA
Summarize a locally registered immutable backtest ledger by SHA-256 artifact ID. Filter exact symbols, direction, and exit timestamps (UTC, from inclusive/to exclusive); group by symbol/year/month. Requires explicit flat round-trip cost in bps. Recomputes PF from trade-level net wins/losses, never averages PFs. Reports sample break-even flat round-trip cost and signed cost headroom for each population; not an execution guarantee or confidence bound. Returns the entire-ledger baseline, selected subset and excluded complement at the same cost, with complete-case common-opportunity deltas. All filters including dates define selection, not the baseline. Missing outcomes remain missing. No chart access, orders, imports, or arbitrary file paths. Register normalized direction-adjusted gross-bps evidence with the local import CLI first. Optional research_id explicitly enables a local append-only slice exploration journal write before returning metrics; it also records automatic period usage for the entire ledger trade envelope, not underlying price lookbacks. Optional usage_access_id with research_id makes period-record retries idempotent; slice call counts still increment. omitting it is explicitly untracked. Recording failure returns an error without metrics. Counts cover recorded calls for this research ID and artifact only, not all searches or independent trials.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | ||
| from | No | ||
| group_by | No | none | |
| direction | No | ||
| artifact_id | Yes | ||
| research_id | No | ||
| exclude_symbols | No | ||
| include_symbols | No | ||
| usage_access_id | No | ||
| round_trip_cost_bps | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden and succeeds. It explains PF recomputation, baseline/subset/complement outputs, filter selection semantics, missing outcomes, research_id journal side effects, usage_access_id idempotency, recording failure behavior, and the exact scope of call counts.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but front-loaded and dense: core action and filters appear first, then requirements, outputs, and side-effect caveats. A few phrases are minimally redundant, but no sentence is filler for a tool this complex.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter tool with no output schema and no annotations, this is remarkably complete. It covers prerequisites, return populations, cost semantics, limitations, and side effects, so an agent can invoke it correctly and interpret results without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Every schema parameter is effectively explained in prose: artifact_id, round_trip_cost_bps, symbol filters, direction, from/to inclusivity, group_by values, research_id, and usage_access_id. This is especially valuable because the schema description coverage is 0%.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description opens with a specific verb+resource: 'Summarize a locally registered immutable backtest ledger by SHA-256 artifact ID.' This clearly distinguishes the tool from siblings like get_strategy_trade_ledger and compare_research_evidence, and the filtering/grouping details further pin down its exact function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides solid invocation context: requires the evidence to be locally registered via the import CLI first, requires an explicit round-trip cost, and states what the tool does not do or guarantee. It doesn't explicitly name alternative tools for other use cases, 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.
validate_research_protocolA
Validate a frozen strategy-research protocol before adoption decisions. Resolves and statically audits one exact saved Pine strategy version, then checks IS/OOS overlap, future windows, forming-bar use, candidate multiplicity, minimum trades, explicit costs, restart-difference evidence, and definition changes after OOS access. This is read-only and does not run a backtest, inspect the chart, or prove non-repainting.
| Name | Required | Description | Default |
|---|---|---|---|
| costs | Yes | ||
| pine_id | Yes | ||
| windows | Yes | ||
| pine_version | Yes | ||
| candidate_ids | Yes | ||
| minimum_trades | Yes | ||
| observed_trades | No | ||
| closed_bars_only | Yes | ||
| oos_first_viewed_at | No | ||
| definition_frozen_at | Yes | ||
| restart_diff_checked | Yes | ||
| definition_last_changed_at | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears the full burden and does substantial work: it declares the operation read-only and static, limits scope to 'one exact saved Pine strategy version', lists all audit checks, and discloses non-actions. It stops short of describing the result/verdict format or whether the validation outcome is persisted, which is meaningful for an adoption-decision tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with zero filler, purpose front-loaded in the first sentence, the audit checklist packed efficiently into the second, and the non-goal exclusions isolated in the third. Each sentence earns its place and the structure makes scanning easy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 12 parameters, nested objects, no annotations, and no output schema, the description is rich on purpose and inputs but silent on what the agent receives back — there is no return-value or verdict-structure hint, and failure behavior is unstated. Since the tool exists to inform adoption decisions, the absence of output expectations is a notable gap that the description could not offload to annotations or an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does: nearly every audit dimension maps to parameter groups (minimum trades → minimum_trades, explicit costs → costs, forming-bar use → closed_bars_only, candidate multiplicity → candidate_ids, definition changes after OOS access → definition_frozen_at/definition_last_changed_at, IS/OOS and future windows → windows). Observed_trades is the one parameter not conceptually referenced, and the description doesn't explain how to structure nested objects beyond the schema, but the compensation is strong.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Validate a frozen strategy-research protocol before adoption decisions') and enumerates the exact audit dimensions (IS/OOS overlap, future windows, forming-bar use, candidate multiplicity, minimum trades, explicit costs, restart-difference evidence, definition changes after OOS access). It also distinguishes itself from siblings by explicitly listing what it is not ('does not run a backtest, inspect the chart, or prove non-repainting'), which differentiates it from run_backtest, get_chart_context, and repainting audit tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear when-to-use context ('before adoption decisions') and explicit when-not-to-use exclusions (does not run a backtest, inspect the chart, or prove non-repainting). However, it never names an alternative sibling to route the agent to when those non-goals are actually needed, so the guidance stops at exclusion rather than active redirection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_trade_planA
Validate a proposed trade plan without changing TradingView, Pine, alerts, orders, or journals. Returns structured quality issues and cost-adjusted Target 1 risk/reward.
| Name | Required | Description | Default |
|---|---|---|---|
| bias | Yes | ||
| note | No | ||
| stop | Yes | ||
| events | No | ||
| symbol | Yes | ||
| targets | Yes | ||
| entry_low | Yes | ||
| timeframe | Yes | ||
| confidence | Yes | ||
| entry_high | Yes | ||
| expires_at | No | ||
| analysis_id | Yes | ||
| analyzed_at | Yes | ||
| confirmation | No | ||
| invalidation | Yes | ||
| current_price | Yes | ||
| market_observed_at | Yes | ||
| minimum_risk_reward | No | ||
| max_market_age_seconds | No | ||
| minimum_event_importance | No | ||
| event_blackout_after_minutes | No | ||
| event_blackout_before_minutes | No | ||
| estimated_round_trip_cost_price | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It explicitly states the tool is non-mutating with respect to TradingView, Pine, alerts, orders, and journals, and it discloses the key output types. It does not discuss failure modes, data staleness, or authentication needs, but for a validation-only tool the most important behavioral trait is clearly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The purpose is front-loaded, the side-effect guarantee is stated immediately, and the outputs are summarized efficiently. Every part of the description earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 23 parameters, no parameter descriptions, no output schema, and no annotations, yet the description provides only a high-level overview. An agent would not know what a valid trade plan payload looks like, what quality issues are covered, how the cost adjustment is calculated, or what the exact response structure is. Given this complexity, the description is not complete enough for reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 23 parameters, and the description provides no parameter-level guidance. It does not explain how to construct a valid 'proposed trade plan', what fields are required, how targets map to risk/reward, or what 'cost-adjusted' means. The description adds essentially no meaning beyond what the schema's raw types and constraints already show.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb + resource combination: 'Validate a proposed trade plan'. It clearly states what the tool does (validation) and what it returns (quality issues and cost-adjusted Target 1 risk/reward), and it distinguishes itself from execution/alert/order-producing siblings by explicitly saying it changes nothing in TradingView, Pine, alerts, orders, or journals.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: use this when a proposed trade plan needs validation before any execution or side effects. It does not explicitly name alternatives or exclusion conditions, but the 'without changing...' phrasing effectively implies when not to use it. Absence of explicit sibling routing keeps it from a 5.
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.
105 tool updates
v0.1.10- First observed
add_pine_to_chart - First observed
apply_analysis_overlay - First observed
audit_pine_indicator - First observed
carry_panel_preflight - First observed
check_research_period_usage - First observed
classify_cross_asset_shocks - First observed
compare_indicator_observations - First observed
compare_research_evidence - First observed
compare_strategy_experiments - First observed
compute_correlation_regimes - First observed
compute_feature_outcome_relationships - First observed
compute_lead_lag_relationships - First observed
compute_market_features - First observed
compute_market_regimes - First observed
compute_position_size - First observed
compute_round_trip_cost - First observed
compute_session_profile - First observed
create_analysis_alerts - First observed
ensure_analysis_overlay - First observed
estimate_carry_panel_effective_sample - First observed
evaluate_analysis_overlay_outcome - First observed
evaluate_cross_asset_shock_outcomes - First observed
evaluate_due_analyses - First observed
get_aligned_history - First observed
get_analysis_calibration - First observed
get_analysis_journal - First observed
get_analysis_overlay_status - First observed
get_analysis_overlay_template - First observed
get_analysis_performance - First observed
get_carry_core_primary_readiness - First observed
get_chart_context - First observed
get_chart_screenshot - First observed
get_cme_gold_open_interest - First observed
get_cot_crowding_unwind_context - First observed
get_cot_crowding_unwind_overlay_template - First observed
get_dxy_context_gate_template - First observed
get_economic_events - First observed
get_event_study_journal - First observed
get_execution_snapshot - First observed
get_exploratory_policy_rate_history - First observed
get_futures_flow_context - First observed
get_indicator_graphics - First observed
get_indicator_inputs - First observed
get_indicator_tables - First observed
get_indicator_values - First observed
get_key_levels - First observed
get_market_snapshot - First observed
get_mtf_overview - First observed
get_oanda_flow_collection_readiness - First observed
get_ohlcv - First observed
get_pine_source - First observed
get_policy_rate_context - First observed
get_positioning_context - First observed
get_price_action_context - First observed
get_price_action_context_template - First observed
get_quotes - First observed
get_real_yield_context - First observed
get_replay_status - First observed
get_strategy_report - First observed
get_strategy_trade_ledger - First observed
get_trade_decision_context - First observed
get_volume_profile_context - First observed
get_volume_profile_context_template - First observed
get_watchlist - First observed
list_alerts - First observed
list_pine_scripts - First observed
load_more_history - First observed
measure_carry_panel_dependence - First observed
preflight_bookmap_flow_price_join - First observed
preflight_cross_asset_shock - First observed
reconcile_gold_open_interest - First observed
record_research_period_usage - First observed
record_strategy_experiment - First observed
register_event_study_hypothesis - First observed
register_strategy_hypothesis - First observed
remove_owned_study - First observed
run_backtest - First observed
run_backtest_matrix - First observed
run_carry_core_primary_test - First observed
run_event_study_falsification_audit - First observed
run_external_label_study - First observed
run_feature_outcome_falsification_audit - First observed
run_feature_outcome_power_audit - First observed
run_lead_lag_falsification_audit - First observed
run_market_event_study - First observed
run_price_action_pattern_study - First observed
run_strategy_experiment - First observed
run_strategy_regime_analysis - First observed
run_strategy_regime_matrix - First observed
run_strategy_walk_forward - First observed
run_volume_profile_poc_reversion_study - First observed
run_volume_profile_reaction_study - First observed
run_yield_price_nonconfirmation_study - First observed
save_pine_script - First observed
scan_market - First observed
set_indicator_input - First observed
set_symbol - First observed
set_timeframe - First observed
start_chart_replay - First observed
step_chart_replay - First observed
stop_chart_replay - First observed
stress_test_strategy - First observed
summarize_backtest_ledger - First observed
validate_research_protocol - First observed
validate_trade_plan
TDQS
Scored across 105 tools
The set contains multiple near-synonymous clusters—run_*_study/audit tools, strategy backtest/regime variants, and template/context/outcome trios—so an agent can easily select the wrong specialized variant. Detailed descriptions help, but the sheer number of overlapping research and backtest tools creates real ambiguity.
Almost all tools follow a snake_case verb_noun pattern (get_, set_, run_, compute_, validate_), and categories use predictable prefixes. Minor deviations like carry_panel_preflight and get_oanda_flow_collection_readiness are more noun-heavy, but no naming convention is mixed within a cluster.
105 tools is far beyond the well-scoped range and well over the 50-tool extreme threshold. Even for a broad TradingView automation server, this number creates excessive selection overhead and makes the toolkit feel overgrown.
The surface is remarkably comprehensive: chart control, Pine script lifecycle, backtesting, research audit, journaling, alerts, market data, and risk sizing are all covered. Obvious gaps such as alert update/delete, watchlist modification, and direct script deletion exist, but core workflows have few dead ends.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Crypto market signals, technical indicators, and sentiment analysis for AI agents.
AI-powered charts with indicators and trade execution for forex, gold, indices & crypto.
LuxAlgo Library — the encyclopedia of trading & technical analysis for AI agents. Free, keyless.
Real-time market data, screeners, technical analysis & backtesting for stocks, crypto and forex.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to interact with TradingView Desktop charts for analysis, Pine Script development, and workflow automation via Chrome DevTools Protocol.81-
- FlicenseNot gradedqualityBmaintenanceEnables AI assistants to interact with locally running TradingView Desktop for chart analysis, Pine Script development, and workflow automation via Chrome DevTools Protocol.816,046-
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to interact with locally running TradingView Desktop for chart analysis, Pine Script development, and automation via Chrome DevTools Protocol.81-
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to interact with TradingView Desktop charts via Chrome DevTools Protocol for chart analysis, Pine Script development, and workflow automation.81-