@Saccc_c: Claude Code + TradingView = The Most Awesome Trading Charting Combo TradingView is the most commonly used charting tool for US stock and crypto investors, and now it can be fully integrated with Claude Code via MCP. In less than 5 minutes, you can...
Summary
This article introduces an open-source tool called TradingView MCP Bridge, which connects Claude Code with the locally running TradingView Desktop via the MCP protocol, enabling AI to read charts in real time, develop Pine Script strategies, perform historical backtesting, etc., forming a powerful trading charting combo.
View Cached Full Text
Cached at: 05/31/26, 08:59 PM
Claude Code + TradingView = The Most Powerful Trading Setup
TradingView is the most popular charting tool for stock and crypto investors. Now, it can be fully integrated with Claude Code via MCP. In under 5 minutes, you’ll be able to:
- Real-time monitoring: Connect directly to TradingView — the AI reads prices and indicators in real time to help you watch the market and place orders instantly.
- Chart analysis: The AI analyzes your candlestick charts, identifies trends and key levels, and provides entry references.
- Strategy development: Describe your strategy in natural language, and the AI automates the entire Pine Script development workflow.
- Historical replay: Use Replay mode to simulate trades, track P&L, and review efficiently.
Installation: Paste this into Claude Code: “Install the TradingView MCP server. Clone https://github.com/tradesdontlie/tradingview-mcp…, run npm install, add it to my MCP config file at ~/.claude/.mcp.json, and launch TradingView with the debug port enabled.”
tradesdontlie/tradingview-mcp
Source: https://github.com/tradesdontlie/tradingview-mcp
TradingView MCP Bridge
Personal AI assistant for your TradingView Desktop charts. Connects Claude Code to your locally running TradingView app via Chrome DevTools Protocol for AI-assisted chart analysis, Pine Script development, and workflow automation.
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.
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
- Execute real trades (chart interaction only)
- 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
- Monitor 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 output - Launch 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/tradesdontlie/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/tradesdontlie/tradingview-mcp.git
cd tradingview-mcp
npm install
2. Launch TradingView with CDP
TradingView Desktop must be running with Chrome DevTools Protocol enabled on port 9222.
Mac:
./scripts/launch_tv_debug_mac.sh
Windows:
scripts\launch_tv_debug.bat
Linux:
./scripts/launch_tv_debug_linux.sh
Or launch manually on any platform:
/path/to/TradingView --remote-debugging-port=9222
Or 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
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 changes
All 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 / scroll
Streaming
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?” | chart_get_state → data_get_study_values → quote_get |
| “What levels are showing?” | data_get_pine_lines → data_get_pine_labels |
| “Read the session table” | data_get_pine_tables with study_filter |
| “Give me a full analysis” | quote_get → data_get_study_values → data_get_pine_lines → data_get_pine_labels → data_get_pine_tables → data_get_ohlcv (summary) → capture_screenshot |
| “Switch to AAPL daily” | chart_set_symbol → chart_set_timeframe |
| “Write a Pine Script for…” | pine_set_source → pine_smart_compile → pine_get_errors |
| “Start replay at March 1st” | replay_start → replay_step → replay_trade |
| “Set up a 4-chart grid” | pane_set_layout → pane_set_symbol for each pane |
| “Draw a level at 24500” | draw_shape (horizontal_line) |
| “Take a screenshot” | capture_screenshot |
Tool Reference (78 MCP tools)
Chart Reading
| Tool | When to use | Output size |
|---|---|---|
chart_get_state | First call — get symbol, timeframe, all indicator names + IDs | ~500B |
data_get_study_values | Read current RSI, MACD, BB, EMA values from all indicators | ~500B |
quote_get | Get latest price, OHLC, volume | ~200B |
data_get_ohlcv | Get price bars. Use summary: true for compact stats | 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 |
|---|---|---|
data_get_pine_lines | Read horizontal price levels (support/resistance, session levels) | ~1-3KB |
data_get_pine_labels | Read text annotations + prices (“PDH 24550”, “Bias Long”) | ~2-5KB |
data_get_pine_tables | Read data tables (session stats, analytics dashboards) | ~1-4KB |
data_get_pine_boxes | 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 |
|---|---|
chart_set_symbol | Change ticker (BTCUSD, AAPL, ES1!, NYMEX:CL1!) |
chart_set_timeframe | Change resolution (1, 5, 15, 60, D, W, M) |
chart_set_type | Change style (Candles, HeikinAshi, Line, Area, Renko) |
chart_manage_indicator | Add/remove indicators. Use full names: “Relative Strength Index” not “RSI” |
chart_scroll_to_date | Jump to a date (ISO: “2025-01-15”) |
chart_set_visible_range | Zoom to exact range (unix timestamps) |
symbol_info / symbol_search | Symbol metadata and search |
indicator_set_inputs / indicator_toggle_visibility | Change indicator settings, show/hide |
Multi-Pane Layouts
| Tool | What it does |
|---|---|
pane_list | List all panes with symbols and active state |
pane_set_layout | Change grid: s, 2h, 2v, 2x2, 4, 6, 8 |
pane_focus | Focus a specific pane by index |
pane_set_symbol | Set symbol on any pane |
Tab Management
| Tool | What it does |
|---|---|
tab_list | List open chart tabs |
tab_new / tab_close | Open/close tabs |
tab_switch | Switch to a tab by index |
Pine Script Development
| Tool | Step |
|---|---|
pine_set_source | 1. Inject code into editor |
pine_smart_compile | 2. Compile with auto-detection + error check |
pine_get_errors | 3. Read compilation errors if any |
pine_get_console | 4. Read log.info() output |
pine_save | 5. Save to TradingView cloud |
pine_get_source | Read current script (warning: can be 200KB+ for complex scripts) |
pine_new | Create blank indicator/strategy/library |
pine_open / pine_list_scripts | Open or list saved scripts |
pine_analyze | Offline static analysis (no chart needed) |
pine_check | Server-side compile check (no chart needed) |
Replay Mode
| Tool | Step |
|---|---|
replay_start | Enter replay at a date |
replay_step | Advance one bar |
replay_autoplay | Auto-advance (set speed in ms) |
replay_trade | Buy/sell/close positions |
replay_status | Check position, P&L, date |
replay_stop | Return to realtime |
Drawing, Alerts, UI Automation
| Tool | What it does |
|---|---|
draw_shape | Draw horizontal_line, trend_line, rectangle, text |
draw_list / draw_remove_one / draw_clear | Manage drawings |
alert_create / alert_list / alert_delete | Manage price alerts |
capture_screenshot | Screenshot (regions: full, chart, strategy_tester) |
batch_run | Run action across multiple symbols/timeframes |
watchlist_get / watchlist_add | Read/modify watchlist |
layout_list / layout_switch | Manage saved layouts |
ui_open_panel / ui_click / ui_evaluate | UI automation |
tv_launch / tv_health_check / tv_discover | Connection management |
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 |
verbose: true | Pass on any pine tool to get raw data with IDs/colors when needed |
study_filter | 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 | /Applications/TradingView.app/Contents/MacOS/TradingView |
| Windows | %LOCALAPPDATA%\TradingView\TradingView.exe, %PROGRAMFILES%\WindowsApps\TradingView*\TradingView.exe |
| Linux | /opt/TradingView/tradingview, ~/.local/share/TradingView/TradingView, /snap/tradingview/current/tradingview |
The key flag: --remote-debugging-port=9222
Testing
# Requires TradingView running with --remote-debugging-port=9222
npm test
29 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 (78 tools) + CLI (
tvcommand, 30 commands with 66 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 the Chrome DevTools Protocol (CDP), a standard debugging interface built into all Chromium-based applications by Google. It does not reverse engineer any proprietary TradingView prot
Similar Articles
tradesdontlie/tradingview-mcp
A tool that connects Claude Code to TradingView Desktop via Chrome DevTools Protocol, enabling AI-assisted chart analysis, Pine Script development, and workflow automation. All data processing is local and requires a valid TradingView subscription.
@milesdeutscher: How to vibe code custom trading indicators with the TradingView MCP + Claude Fable 5. I'm not technical at all, and I w…
A guide on using the TradingView MCP with Claude Code to create custom trading indicators in Pine Script without needing technical skills.
@BTCqzy1: After Claude integrates real financial data, it really takes stock research to a new level~ Now through MCP, it directly calls real-time stock prices and other data, and every judgment given has data support. I have organized a set of Prompts I use in my daily trading: from pre-market scan → entry confirmation → position management →...
User shares a set of Prompts for stock trading after connecting Claude to real financial data (real-time stock prices, etc.) via the MCP protocol, covering pre-market scan, entry confirmation, position management, and other stages, demonstrating practical cases of AI-assisted investment decisions.
@WEB3_furture: 34-second video — Directly analyze stocks/financial reports with Claude Code. Claude Code now natively supports the official financial-datasets MCP server, integrating real-time stock prices, financial statements, SEC filings, news, cryptocurrency prices, and more…
Claude Code now natively supports the financial-datasets MCP server, enabling direct analysis of stock prices, financial reports, and crypto data via a simple command-line integration.
@GitTrend0x: DesktopCommanderMCP (Give Claude Full Desktop Control) Give your Claude complete desktop superpowers! wonderwhy-er/DesktopCommanderMCP MCP server gives Claude terminal...
DesktopCommanderMCP is a server based on the MCP protocol that gives AI like Claude full desktop control, including terminal command execution, file system search, file operations, and advanced editing. It supports multiple AI clients and emphasizes security and privacy.