tradingview-mcp
This server connects an MCP-capable AI assistant to a locally running TradingView Desktop app via Chrome DevTools Protocol for chart analysis, Pine Script development, UI automation, and broker-connected order management.
Chart reading & navigation: get current state, change symbols/timeframes/chart types, OHLCV data, quotes, visible ranges, symbol search and metadata.
Indicator data: read study values and Pine-drawn lines, labels, tables, boxes with study filtering and compact context-saving output.
Pine Script development: create, open, edit, compile, validate, analyze, check errors, read console output, save, and list scripts.
Chart control: add/remove indicators, adjust inputs, toggle visibility, draw shapes, manage drawings, create/list/delete alerts.
Multi-pane and multi-tab workflows: list/focus/set symbols on panes, change layouts, open/close/switch tabs, manage saved layouts and watchlists.
Replay mode: start/step/autoplay/stop, trade in replay, and check replay status.
UI automation: open/close panels, click, hover, type, keyboard shortcuts, scroll, find elements, evaluate JavaScript, toggle fullscreen, take screenshots.
Trading operations: check broker connection status, connect, list/switch accounts, get account summaries, view positions and orders, place/cancel/modify orders with TIF and SL/TP brackets, close positions, and set/clear brackets — with fail-closed order confirmation.
Batch and streaming capabilities: run actions across multiple symbols/timeframes and stream quotes, bars, indicator values, and drawings.
Connection management: health checks, auto-discovery of TradingView installs, and launching TradingView with the debug port enabled.
Provides tools to interact with a locally running TradingView Desktop instance for chart navigation, indicator analysis, Pine Script editing and compilation, drawing, alerts, replay, multi-pane layouts, screenshots, streaming, and live order placement/confirmation through connected TradingView brokers.
Click on "Deploy 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-mcp Place a market order for 0.1 BTC with stop-loss and take-profit"
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 — EzyDubs
Personal AI assistant and execution agent for your TradingView Desktop charts. Connects your AI to a locally running TradingView app via Chrome DevTools Protocol for AI-assisted chart analysis, Pine Script development, workflow automation — and live order execution with any connected TradingView broker (native Paper or BlackBull cTrader). This is the EzyDubs fork: hardened broker trading with fail-closed mutations, order-history-based confirmation, and a strict two-indicator resource plan for cleaner charts.
This tool is not affiliated with, endorsed by, or associated with TradingView Inc. It interacts with your locally running TradingView Desktop application via Chrome DevTools Protocol. Review the Disclaimer before use.
Requires a valid TradingView subscription. This tool does not bypass or circumvent any TradingView paywall or access control. It reads from and controls the TradingView Desktop app already running on your machine.
All data processing occurs locally on your machine. No TradingView data is transmitted, stored, or redistributed externally by this tool.
This tool accesses undocumented internal TradingView APIs via the Electron debug interface. These can change or break without notice in any TradingView update. Pin your TradingView Desktop version if stability matters to you.
How It Works (and why it's safe to run)
This tool does not connect to TradingView's servers, modify any TradingView files, or intercept any network traffic. It communicates exclusively with your locally running TradingView Desktop instance via Chrome DevTools Protocol (CDP) — a standard debugging interface built into all Chromium/Electron applications by Google, including VS Code, Slack, and Discord.
The debug port is disabled by default and must be explicitly enabled by you using a standard Chromium flag (--remote-debugging-port=9222). Nothing happens without that deliberate step.
Related MCP server: TradingView MCP Bridge
What This Tool Does Not Do
Connect to TradingView's servers or APIs
Store, transmit, or redistribute any market data
Work without a valid TradingView subscription and installed Desktop app
Bypass any TradingView paywall or access restriction
Move markets or gain better-than-market fills (fills always come from the broker's live feed)
Work if TradingView changes their internal Electron structure
Research Context
This project explores an open research question: how can LLM-based agents interact with professional trading interfaces to support human decision-making?
Specifically it investigates:
How structured tool APIs (MCP) can bridge LLMs and stateful desktop financial applications
What latency, context, and reliability constraints emerge when an agent operates on live chart data
How agents handle ambiguous financial UI state (e.g. interpreting Pine Script output, reading indicator tables)
Whether natural language is an effective interface for chart navigation and Pine Script development
The failure modes of LLM agents operating in real-time data environments
This is not a trading bot. It is an interface layer that makes a trading application legible to an LLM agent, allowing researchers and developers to study human-AI collaboration in financial workflows.
See RESEARCH.md for open questions, findings, and related work.
Prerequisites
TradingView Desktop app (paid subscription required for real-time data)
Node.js 18+
Claude Code with MCP support (for MCP tools) or any terminal (for CLI)
macOS, Windows, or Linux
What It Does
Gives your AI assistant eyes and hands on your own chart:
Pine Script development — write, inject, compile, debug, and iterate on scripts with AI assistance
Chart navigation — change symbols, timeframes, zoom to dates, add/remove indicators
Visual analysis — read your chart's indicator values, price levels, and annotations
Draw on charts — trend lines, horizontal lines, rectangles, text annotations
Manage alerts — create, list, and delete price alerts
Replay practice — step through historical bars, practice entries/exits
Screenshots — capture chart state for AI visual analysis
Multi-pane layouts — set up 2x2, 3x1, etc. grids with different symbols per pane
Place and manage orders — market/limit/stop/stop-limit with stop-loss and take-profit brackets, TIF, on any connected TradingView broker (native Paper or BlackBull)
Order confirmation — verifies fills/resting orders/rejections against the broker's order history instead of trusting an empty
placeOrderresolve, so rejections surface as actionable errorsMonitor your chart — stream JSONL from your locally running chart for local monitoring scripts
CLI access — every MCP tool is also a
tvCLI command, pipe-friendly with JSON outputLaunch TradingView — auto-detect and launch with debug mode from any platform
Install with Claude Code
Paste this into Claude Code and it will handle the rest:
Install the TradingView MCP server. Clone https://github.com/ezydubs/tradingview-mcp.git, run npm install, add it to my MCP config at ~/.claude/.mcp.json, and launch TradingView with the debug port. Then verify the connection with tv_health_check.
Or follow the manual steps below.
Quick Start
1. Install
git clone https://github.com/ezydubs/tradingview-mcp.git
cd tradingview-mcp
npm install2. Launch TradingView with CDP
TradingView Desktop must be running with Chrome DevTools Protocol enabled on port 9222.
Mac:
./scripts/launch_tv_debug_mac.shWindows:
scripts\launch_tv_debug.batLinux:
./scripts/launch_tv_debug_linux.shOr launch manually on any platform:
/path/to/TradingView --remote-debugging-port=9222Or use the MCP tool (auto-detects your install):
"Use tv_launch to start TradingView in debug mode"
3. Add to Claude Code
Add to your Claude Code MCP config (~/.claude/.mcp.json or project .mcp.json):
{
"mcpServers": {
"tradingview": {
"command": "node",
"args": ["/path/to/tradingview-mcp/src/server.js"]
}
}
}Replace /path/to/tradingview-mcp with your actual path.
4. Verify
Ask Claude: "Use tv_health_check to verify TradingView is connected"
CLI
Every MCP tool is also accessible as a tv CLI command. All output is JSON for piping with jq.
# Install globally (optional)
npm link
# Or run directly
node src/cli/index.js <command>Quick Examples
tv status # check connection
tv quote # current price
tv symbol AAPL # change symbol
tv ohlcv --summary # price summary
tv screenshot -r chart # capture chart
tv pine compile # compile Pine Script
tv pane layout 2x2 # 4-chart grid
tv pane symbol 1 ES1! # set pane symbol
tv stream quote | jq '.close' # monitor price changesAll Commands
tv status / launch / state / symbol / timeframe / type / info / search
tv quote / ohlcv / values
tv data lines/labels/tables/boxes/strategy/trades/equity/depth/indicator
tv pine get/set/compile/analyze/check/save/new/open/list/errors/console
tv draw shape/list/get/remove/clear
tv alert list/create/delete
tv watchlist get/add
tv indicator add/remove/toggle/set/get
tv layout list/switch
tv pane list/layout/focus/symbol
tv tab list/new/close/switch
tv replay start/step/stop/status/autoplay/trade
tv stream quote/bars/values/lines/labels/tables/all
tv ui click/keyboard/hover/scroll/find/eval/type/panel/fullscreen/mouse
tv screenshot / discover / ui-state / range / scrollStreaming
The tv stream commands poll your locally running TradingView Desktop instance at regular intervals via Chrome DevTools Protocol on localhost.
No connection is made to TradingView's servers. All data stays on your machine.
Programmatic consumption of TradingView data may conflict with their Terms of Use regardless of the data source. You are solely responsible for ensuring your usage complies.
tv stream quote # price tick monitoring
tv stream bars # bar-by-bar updates
tv stream values # indicator value monitoring
tv stream lines --filter "NY Levels" # price level monitoring
tv stream tables --filter Profiler # table data monitoring
tv stream all # all panes at once (multi-symbol)How Claude Knows Which Tool to Use
Claude reads CLAUDE.md automatically when working in this project. It contains a complete decision tree:
You say... | Claude uses... |
"What's on my chart?" |
|
"What levels are showing?" |
|
"Read the session table" |
|
"Give me a full analysis" |
|
"Switch to AAPL daily" |
|
"Write a Pine Script for..." |
|
"Start replay at March 1st" |
|
"Set up a 4-chart grid" |
|
"Draw a level at 24500" |
|
"Take a screenshot" |
|
Tool Reference (97 MCP tools)
Chart Reading
Tool | When to use | Output size |
| First call — get symbol, timeframe, all indicator names + IDs | ~500B |
| Read current RSI, MACD, BB, EMA values from all indicators | ~500B |
| Get latest price, OHLC, volume | ~200B |
| Get price bars. Use | 500B (summary) / 8KB (100 bars) |
Custom Indicator Data (Pine Drawings)
Read line.new(), label.new(), table.new(), box.new() output from any visible Pine indicator.
Tool | When to use | Output size |
| Read horizontal price levels (support/resistance, session levels) | ~1-3KB |
| Read text annotations + prices ("PDH 24550", "Bias Long") | ~2-5KB |
| Read data tables (session stats, analytics dashboards) | ~1-4KB |
| Read price zones / ranges as {high, low} pairs | ~1-2KB |
Always use study_filter to target a specific indicator: study_filter: "Profiler".
Chart Control
Tool | What it does |
| Change ticker (BTCUSD, AAPL, ES1!, NYMEX:CL1!) |
| Change resolution (1, 5, 15, 60, D, W, M) |
| Change style (Candles, HeikinAshi, Line, Area, Renko) |
| Add/remove indicators. Use full names: "Relative Strength Index" not "RSI" |
| Jump to a date (ISO: "2025-01-15") |
| Zoom to exact range (unix timestamps) |
| Symbol metadata and search |
| Change indicator settings, show/hide |
Two-indicator resource plan. To keep charts clean and indicator reads readable, the EzyDubs build enforces a maximum of 2 visible indicators at a time. Adding a third is rejected until you remove one. Pick synergistic pairs (e.g. one trend/volume + one momentum) and swap them out per timeframe as needed.
Multi-Pane Layouts
Tool | What it does |
| List all panes with symbols and active state |
| Change grid: |
| Focus a specific pane by index |
| Set symbol on any pane |
Tab Management
Tool | What it does |
| List open chart tabs |
| Open/close tabs |
| Switch to a tab by index |
Pine Script Development
Tool | Step |
| 1. Inject code into editor |
| 2. Compile with auto-detection + error check |
| 3. Read compilation errors if any |
| 4. Read log.info() output |
| 5. Save to TradingView cloud |
| Read current script (warning: can be 200KB+ for complex scripts) |
| Create blank indicator/strategy/library |
| Open or list saved scripts |
| Offline static analysis (no chart needed) |
| Server-side compile check (no chart needed) |
Replay Mode
Tool | Step |
| Enter replay at a date |
| Advance one bar |
| Auto-advance (set speed in ms) |
| Buy/sell/close positions |
| Check position, P&L, date |
| Return to realtime |
Drawing, Alerts, UI Automation
Tool | What it does |
| Draw horizontal_line, trend_line, rectangle, text |
| Manage drawings |
| Manage price alerts |
| Screenshot (regions: full, chart, strategy_tester) |
| Run action across multiple symbols/timeframes |
| Read/modify watchlist |
| Manage saved layouts |
| UI automation |
| Connection management |
Trading / Order Placement (any connected broker)
Place and manage real orders with any connected TradingView broker (native Paper or BlackBull cTrader). Mutations are fail-closed — they refuse to run unless a broker is actively connected (no more Paper-only gate). Evidence and paths: docs/PAPER_TRADING_DISCOVERY.md (native Paper) and docs/BLACKBULL_CTRADER_ORDER_API.md (BlackBull cTrader order-API validation surface).
How order placement was hardened. TradingView's placeOrder() broker call often resolves to an empty object (BlackBull's cTrader adapter delivers failures as UI toasts instead of throwing). Rather than trust that empty resolve, the adapter now:
Snapshots the broker's order history before submitting, then polls for a new order on the same symbol/side and classifies it by status (
filled/working= success;rejected/cancelled= rejection).Reads "Order rejected" toasts only to enrich the reason — never as the success/failure decision.
Rejects orders that fail to confirm (market orders fail closed, resting orders surface a "verify with list_orders" note).
Serializes concurrent submissions to avoid the parallel-place "phantom confirm" bug.
Correctly parses account rows by on-screen label (not array index), handling broker-specific ordering and
%-suffixed formatted strings.Adds
margin_leveland per-broker account summary fields.
Tool | What it does |
| Session, panel, connection, broker id, |
| Open/close/toggle Trading Panel ( |
| Connect the currently selected broker |
| Account summary and switch active account |
| Open positions and active/history orders |
| Market/limit/stop/stop_limit; optional TIF ( |
| Manage working orders |
| Close positions; set or clear SL/TP |
CLI: tv paper status|panel|connect|account|accounts|switch-account|positions|orders|place|cancel|modify|close|brackets.
BlackBull cTrader (DurationId) caveat. Empirical testing against BlackBull's cTrader-hosted order endpoint (demo account) found the backend is stricter than the UI advertises: the DurationId enum rejects DAY (and human-readable TIF names like Day/GTDate/On Close), accepts sub-minimum qty down to 0.005 vs a documented 0.01, uses Unix-seconds (not ISO) for GTD expiry, and silently drops invalid SL/TP magnitudes. See docs/BLACKBULL_CTRADER_ORDER_API.md for the full validation surface. The native Paper broker does not share these quirks.
If the MCP/CLI points at the wrong Desktop instance, set TV_CDP_PORT (and optionally TV_CDP_HOST) to the process launched with --remote-debugging-port.
Context Management
Tools return compact output by default to minimize context usage. For a typical "analyze my chart" workflow, total context is ~5-10KB instead of ~80KB.
Feature | How it saves context |
Pine lines | Returns deduplicated price levels only, not every line object |
Pine labels | Capped at 50 per study, text+price only |
Pine tables | Pre-formatted row strings, no cell metadata |
Pine boxes | Deduplicated {high, low} zones only |
OHLCV summary mode | Stats + last 5 bars instead of all bars |
Indicator inputs | Encrypted/encoded blobs auto-filtered |
| Pass on any pine tool to get raw data with IDs/colors when needed |
| Target one indicator instead of scanning all |
Finding TradingView on Your System
Launch scripts and tv_launch auto-detect TradingView. If auto-detection fails:
Platform | Common Locations |
Mac |
|
Windows |
|
Linux |
|
The key flag: --remote-debugging-port=9222
Testing
# Requires TradingView running with --remote-debugging-port=9222
npm test29 tests covering: Pine Script static analysis, server-side compilation, and CLI routing.
Architecture
Claude Code ←→ MCP Server (stdio) ←→ CDP (port 9222) ←→ TradingView Desktop (Electron)Transport: MCP over stdio (97 tools) + CLI (
tvcommand, 31 commands with 67 subcommands)Connection: Chrome DevTools Protocol on localhost:9222
Streaming: Poll-and-diff loop with deduplication, JSONL output to stdout
No dependencies beyond
@modelcontextprotocol/sdkandchrome-remote-interface
Attributions
This project is not affiliated with, endorsed by, or associated with:
TradingView Inc. — TradingView is a trademark of TradingView Inc.
Anthropic — Claude and Claude Code are trademarks of Anthropic, PBC.
This tool is an independent MCP server that connects to Claude Code via the standard MCP protocol. It does not contain or modify any Anthropic software.
Disclaimer
This project is provided for personal, educational, and research purposes only.
How this tool works: This tool uses Chrome DevTools Protocol (CDP), the standard debugging interface built into Chromium-based applications. It does not reverse engineer any proprietary TradingView protocol, connect to TradingView's servers, or bypass any access controls. The debug port must be explicitly enabled by the user via a standard Chromium command-line flag (--remote-debugging-port=9222).
By using this software, you acknowledge and agree that:
You are solely responsible for ensuring your use of this tool complies with TradingView's Terms of Use and all applicable laws.
TradingView's Terms of Use restrict automated data collection, scraping, and non-display usage of their platform and data. This tool uses Chrome DevTools Protocol to programmatically interact with the TradingView Desktop app, which may conflict with those terms.
You assume all risk associated with using this tool. The authors are not responsible for any account bans, suspensions, legal actions, or other consequences resulting from its use.
This tool must not be used for, including but not limited to:
Redistributing, reselling, or commercially exploiting TradingView's market data
Circumventing TradingView's access controls or subscription restrictions
Performing automated trading or algorithmic decision-making using extracted data
Violating the intellectual property rights of Pine Script indicator authors
Connecting to TradingView's servers or infrastructure (all access is via the locally running Desktop app)
The streaming functionality monitors your locally running TradingView Desktop instance only. It does not connect to TradingView's servers or extract data from TradingView's infrastructure.
Market data accessed through this tool remains subject to exchange and data provider licensing terms. Do not redistribute, store, or commercially exploit any data obtained through this tool.
This tool accesses internal, undocumented TradingView application interfaces that may change or break at any time without notice.
Use at your own risk. If you are unsure whether your intended use complies with TradingView's terms, do not use this tool.
License
MIT — see LICENSE for details.
The MIT license applies to the source code of this project only. It does not grant any rights to TradingView's software, data, trademarks, or intellectual property.
Available Tools
97 toolsalert_createA
Create a price alert on the current chart symbol via TradingView's alert API
Inputs: price (required), condition (required), message.
alert_deleteA
Delete a specific alert by id, or all active alerts
Inputs: alert_id, delete_all.
alert_listA
List active alerts
Inputs: no named parameters.
batch_runB
Run an action across multiple symbols and/or timeframes
Inputs: action (required), symbols (required), delay_ms, timeframes, +1 more.
cancel_orderA
Cancel an active trading order by id.
Inputs: order_id (required).
capture_screenshotB
Take a screenshot of the TradingView chart
Inputs: method, region, filename, wait_for_render.
chart_get_stateA
Get current chart state (symbol, timeframe, chart type, indicators)
Inputs: no named parameters.
chart_get_visible_rangeA
Get the visible date range (unix timestamps) and bars range on the chart
Inputs: no named parameters.
chart_manage_indicatorC
Add or remove an indicator/study on the chart
Inputs: action (required), inputs, entity_id, indicator.
chart_scroll_to_dateA
Jump the chart view to center on a specific date
Inputs: date (required).
chart_set_symbolC
Change the chart symbol
Inputs: symbol (required).
chart_set_timeframeB
Change the chart timeframe/resolution
Inputs: timeframe (required).
chart_set_typeC
Change chart type
Inputs: chart_type (required).
chart_set_visible_rangeB
Zoom the chart to a specific date range (unix timestamps)
Inputs: to (required), from (required).
close_positionC
Close a trading position (full or partial).
Inputs: qty, symbol, position_id.
connectB
Connect the currently selected TradingView broker. Fails if not logged in.
Inputs: no named parameters.
data_get_equityA
Get equity curve data from Strategy Tester
Inputs: no named parameters.
data_get_indicatorC
Get indicator/study info and input values
Inputs: entity_id (required).
data_get_ohlcvA
Get OHLCV bar data from the chart. Use summary=true for compact stats instead of all bars (saves context).
Inputs: count, summary.
data_get_pine_boxesA
Read box/zone boundaries drawn by Pine Script indicators (box.new). Returns deduplicated {high, low} price zones. Use study_filter to target a specific indicator.
Inputs: verbose, study_filter.
data_get_pine_labelsA
Read text labels drawn by Pine Script indicators (label.new). Returns text and price pairs. Use study_filter to target a specific indicator.
Inputs: verbose, max_labels, study_filter.
data_get_pine_linesA
Read horizontal price levels drawn by Pine Script indicators (line.new). Returns deduplicated price levels per study. Use study_filter to target a specific indicator.
Inputs: verbose, study_filter.
data_get_pine_tablesA
Read table data drawn by Pine Script indicators (table.new). Returns formatted text rows per table. Use study_filter to target a specific indicator.
Inputs: study_filter.
data_get_strategy_resultsA
Get strategy performance metrics from Strategy Tester. Auto-opens the panel and auto-unhides a hidden strategy (TradingView never computes reports for hidden strategies); result includes unhidden_strategies when that happened.
Inputs: no named parameters.
data_get_study_valuesA
Get current indicator values from the data window for all visible studies (RSI, MACD, Bollinger Bands, EMAs, custom indicators with plot()).
Inputs: no named parameters.
data_get_tradesA
Get trade list from Strategy Tester. Auto-opens the panel and auto-unhides a hidden strategy.
Inputs: max_trades.
depth_getA
Get order book / DOM (Depth of Market) data from the chart
Inputs: no named parameters.
draw_clearA
Remove all drawings from the chart
Inputs: no named parameters.
draw_get_propertiesA
Get properties and points of a specific drawing
Inputs: entity_id (required).
draw_listA
List all shapes/drawings on the chart
Inputs: no named parameters.
draw_remove_oneA
Remove a specific drawing by entity ID
Inputs: entity_id (required).
draw_shapeC
Draw a shape/line on the chart
Inputs: point (required), shape (required), text, point2, +1 more.
get_accountA
Get the active trading account summary (balance, equity, PnL, margin, available funds). Requires a broker connected.
Inputs: no named parameters.
get_statusA
Report TradingView trading status: desktop CDP, auth session, Trading Panel, connection, active broker id, and whether mutations are safe (safe_for_paper_mutation is true when a broker is connected).
Inputs: no named parameters.
indicator_addA
Search the Indicators dialog and add a result to the chart by name. Works for strategies and community scripts, not just built-ins. Returns the new study entity_id.
Inputs: query (required), match, section.
indicator_searchA
Search TradingView's Indicators dialog for indicators, strategies, and community/public scripts by keyword. Returns matching titles grouped by section (Technicals, Community, My scripts, etc.).
Inputs: query (required), limit.
indicator_set_inputsB
Change indicator/study input values (e.g., length, source, period)
Inputs: inputs (required), entity_id (required).
indicator_toggle_visibilityB
Show or hide an indicator/study on the chart
Inputs: visible (required), entity_id (required).
layout_listB
List saved chart layouts
Inputs: no named parameters.
layout_newA
Create a new named blank chart layout (opens in a new tab)
Inputs: name.
layout_switchA
Switch to a saved chart layout by name or ID
Inputs: name (required).
list_accountsB
List trading accounts for the connected broker.
Inputs: no named parameters.
list_ordersA
List trading orders (active by default, or order history).
Inputs: history.
list_positionsA
List open trading positions.
Inputs: no named parameters.
modify_orderB
Modify an active trading order (qty / price / stop_price).
Inputs: order_id (required), qty, price, stop_price.
open_panelA
Open, close, or toggle the Trading Panel (bottom widget paper_trading) via the internal bottomWidgetBar API.
Inputs: action.
pane_focusA
Focus a specific chart pane by index (0-based)
Inputs: index (required).
pane_listA
List all chart panes in the current layout with their symbols and active state
Inputs: no named parameters.
pane_set_layoutB
Change the chart grid layout (e.g., single, 2x2, 2h, 3v)
Inputs: layout (required).
pane_set_symbolB
Set the symbol on a specific pane by index
Inputs: index (required), symbol (required).
pine_analyzeA
Run static analysis on Pine Script code WITHOUT compiling — catches array out-of-bounds, unguarded array.first()/last(), bad loop bounds, and implicit bool casts. Works offline, no TradingView connection needed.
Inputs: source (required).
pine_checkA
Compile Pine Script via TradingView's server API without needing the chart open. Returns compilation errors/warnings. Useful for validating code before injecting into the chart.
Inputs: source (required).
pine_compileB
Compile / add the current Pine Script to the chart
Inputs: no named parameters.
pine_get_consoleB
Read Pine Script console/log output (compile messages, log.info(), errors)
Inputs: no named parameters.
pine_get_errorsB
Get Pine Script compilation errors from Monaco markers
Inputs: no named parameters.
pine_get_sourceA
Get current Pine Script source code from the editor
Inputs: no named parameters.
pine_list_scriptsA
List saved Pine Scripts
Inputs: no named parameters.
pine_newB
Create a new blank Pine Script
Inputs: type (required).
pine_openB
Open a saved Pine Script by name
Inputs: name (required).
pine_saveA
Save the current Pine Script (Ctrl+S)
Inputs: no named parameters.
pine_set_sourceC
Set Pine Script source code in the editor
Inputs: source (required).
pine_smart_compileB
Intelligent compile: detects button, compiles, checks errors, reports study changes
Inputs: no named parameters.
place_orderB
Place an order with the connected broker. Types: market, limit, stop, stop_limit. Optional TIF (DAY/WEEK/MONTH/GTD), take_profit / stop_loss brackets.
Inputs: qty (required), side (required), tif, type, +6 more.
quote_getA
Get real-time quote data for a symbol (price, OHLC, volume). If symbol is provided and differs from the current chart, the chart is briefly switched to fetch the quote and then restored — adds ~1-2s and serializes parallel calls.
Inputs: symbol.
replay_autoplayA
Toggle autoplay in replay mode, optionally set speed
Inputs: speed.
replay_startB
Start bar replay mode, optionally at a specific date
Inputs: date.
replay_statusA
Get current replay mode status
Inputs: no named parameters.
replay_stepA
Advance one bar in replay mode
Inputs: no named parameters.
replay_stopA
Stop replay and return to realtime
Inputs: no named parameters.
replay_tradeB
Execute a trade action in replay mode (buy, sell, or close position)
Inputs: action (required).
set_bracketsA
Add, change, or clear stop loss / take profit on an open position.
Inputs: clear, symbol, stop_loss, position_id, +1 more.
switch_accountB
Switch the active trading account by id.
Inputs: account_id (required).
symbol_infoA
Get detailed metadata about the current symbol (name, exchange, type, description)
Inputs: no named parameters.
symbol_searchB
Search for symbols by name or keyword
Inputs: query (required), type.
tab_closeA
Close the current chart tab
Inputs: no named parameters.
tab_listA
List all open TradingView chart tabs
Inputs: no named parameters.
tab_newA
Open a new chart tab. Optionally pick what to load in it: layout "new" creates a named blank layout, or pass a saved layout name to open it.
Inputs: name, layout.
tab_switchB
Switch to a chart tab by index
Inputs: index (required).
tv_discoverA
Report which known TradingView API paths are available and their methods
Inputs: no named parameters.
tv_health_checkB
Check CDP connection to TradingView and return current chart state
Inputs: no named parameters.
tv_launchA
Launch TradingView Desktop with Chrome DevTools Protocol (remote debugging) enabled. Auto-detects install location on Mac, Windows, and Linux, including Windows MSIX/Store installs. If a Store install blocks the debug port, automatically relaunches from a local package copy (result then includes msix_local_copy: true; the first fallback launch copies ~330MB one time, so it can take a minute).
Inputs: port, kill_existing.
tv_ui_stateA
Get current UI state: which panels are open, what buttons are visible/enabled/disabled
Inputs: no named parameters.
tv_updateA
Update this MCP server to the latest version: git fast-forward of origin/main + npm ci when dependencies changed. Safe by design — refuses on non-git installs, dirty working trees, non-main branches, or diverged history. After a successful update the MCP server must be restarted to load the new code.
Inputs: no named parameters.
ui_clickB
Click a UI element by aria-label, data-name, text content, or class substring
Inputs: by (required), value (required).
ui_evaluateB
Execute JavaScript code in the TradingView page context for advanced automation
Inputs: expression (required).
ui_find_elementA
Find UI elements by text, aria-label, or CSS selector and return their positions
Inputs: query (required), strategy.
ui_fullscreenA
Toggle TradingView fullscreen mode
Inputs: no named parameters.
ui_hoverA
Hover over a UI element by aria-label, data-name, or text content
Inputs: by (required), value (required).
ui_keyboardB
Press keyboard keys or shortcuts (e.g., Enter, Escape, Alt+S, Ctrl+Z)
Inputs: key (required), modifiers.
ui_mouse_clickB
Click at specific x,y coordinates on the TradingView window
Inputs: x (required), y (required), button, double_click.
ui_open_panelB
Open, close, or toggle TradingView panels (pine-editor, strategy-tester, watchlist, alerts, trading)
Inputs: panel (required), action (required).
ui_scrollB
Scroll the chart or page up/down/left/right
Inputs: direction (required), amount.
ui_type_textA
Type text into the currently focused input/textarea element
Inputs: text (required).
watchlist_addB
Add a symbol to the TradingView watchlist
Inputs: symbol (required).
watchlist_add_bulkA
Add multiple symbols to the TradingView watchlist
Inputs: symbols (required).
watchlist_getA
Get all symbols from the current TradingView watchlist with last price, change, and change%
Inputs: no named parameters.
watchlist_removeA
Remove one or more symbols from the active TradingView watchlist
Inputs: symbols (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 97 tools
Although tools are grouped by domain, several boundaries overlap: chart_manage_indicator vs indicator_add, chart_set_visible_range vs chart_scroll_to_date, and ui_open_panel vs open_panel can lead to misselection. With 97 tools, the sheer number of similar state, indicator, and panel operations makes it hard for an agent to pick the intended one without reading descriptions closely.
The tools generally use readable snake_case domain prefixes like chart_, pine_, draw_, replay_, and ui_, but the verb/noun ordering is inconsistent: data_get_ohlcv and depth_get coexist with symbol_info, get_status, and open_panel. Overall it is navigable, but the convention is mixed rather than uniform.
97 tools is far above the 50+ threshold and creates an extreme selection burden for agents, even though the server covers a broad desktop-automation domain. The count itself is a major usability problem for MCP tool discovery and routing.
For its stated purpose, the tool surface is very complete: charting, Pine scripting, data extraction, drawings, alerts, replay, watchlist, UI automation, layouts/tabs/panes, and broker trading all have solid lifecycle coverage. Minor omissions like alert modification or drawing-property updates are easily worked around, and there are no obvious dead-end operations.
Maintenance
Related MCP Connectors
Connect AI assistants to your approved computer for files, commands, browser and desktop tasks.
A paid remote MCP for AI agent browser DevTools MCP, built to return verdicts, receipts, usage logs,
Live browser debugging for AI assistants — DOM, console, network via MCP.
Give AI agents a real cloud Chrome: open sessions, navigate, read pages, click, type and screenshot.
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.89 npm-
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with locally running TradingView Desktop for chart analysis, Pine Script development, and workflow automation via Chrome DevTools Protocol.89 npm-
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to interact with TradingView Desktop charts via Chrome DevTools Protocol for chart analysis, Pine Script development, and workflow automation.89 npm-
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with TradingView Desktop via Chrome DevTools Protocol for chart analysis, Pine Script development, and workflow automation, all locally without external data transmission.89 npm1-