Connect TradingView to your AI assistant
Use TradingView data and analytics inside Claude, ChatGPT and any MCP-compatible client through the official MCP server. Included in Essential and above; trial plans don’t include MCP access.
Server URL
One URL for every client. Authentication is OAuth 2.1 — you sign in with your TradingView account, no API keys to manage.
Claude — web, desktop and mobile
Web connectors are available on claude.ai and in the desktop and mobile apps; a connector added once works everywhere you use Claude.
- Open Claude → Settings → Connectors
- Click “Add custom connector”
- Paste the server URL → Add
- Authorize with your TradingView account
Claude Code
-
Add the server in your terminal:
claude mcp add --transport http mcp-tradingview https://mcp.tradingview.com/mcp - Run
/mcpin Claude Code and authorize with your TradingView account in the browser
ChatGPT and Codex desktop UI
- Open ChatGPT → Settings → Plugins → Add → MCPs → Add → Add MCP Server
- Set name to Tradingview Official MCP Server
- Set Type to “Streamable HTTP”
- Paste
https://mcp.tradingview.com/mcpas URL - Hit “Save”
- Open Plugins → MCPs
- Hit “Authenticate” on “Tradingview Official MCP Server”
- Authorise in paid TradingView account if prompted
- Allow the access for the tools
ChatGPT and Codex terminal
- Add the server in your terminal:
codex mcp add tradingview --url https://mcp.tradingview.com/mcp - Authorize with your TradingView account in the browser
- Start a new Codex task and ask it to use TradingView
Other MCP clients
Any client that supports MCP over streamable HTTP with OAuth 2.1 authorization works: point it at the server URL and complete the sign-in when prompted. A typical JSON configuration:
"mcpServers": {
"tradingview": {
"type": "http",
"url": "https://mcp.tradingview.com/mcp"
}
}Tools
TradingView data and platform operations, exposed as MCP tools. Your assistant picks the right tool for the question — you just ask in plain language.
Tool calls are rate-limited to ~100 requests per minute per user.
- Watchlists8
- Market data3
- Symbol search1
- Screener5
- News2
- Fundamentals & forecasts3
- Documents2
- Calendars3
- Alerts8
Watchlists
mcp-watchlistWatchlists
list_watchlists
Read-onlyList the user's watchlists.
No parameters.
get_watchlist
Read-onlyGet a watchlist data with its companies by id.
- watchlist_idstringrequired
Numeric id of the watchlist
get_active_watchlist
Read-onlyGet the active watchlist with its companies. If no watchlist is active, the first custom one is activated; if the user has no watchlists at all, a default one is created.
No parameters.
create_watchlist
WriteCreate a new watchlist.
- namestring
Optional name of the new watchlist (max 500 chars)
- symbolsstring[]
Optional initial symbols in EXCHANGE:TICKER format, e.g. NASDAQ:AAPL
delete_watchlist
WriteDelete a watchlist.
- watchlist_idstringrequired
Numeric id of the watchlist
add_to_watchlist
WriteAdd symbols to a watchlist. A symbol already present in the watchlist is moved to the end.
- watchlist_idstringrequired
Numeric id of the watchlist
- symbolsstring[]required
Symbols in EXCHANGE:TICKER format, e.g. NASDAQ:AAPL
remove_from_watchlist
WriteRemove companies from a watchlist.
- watchlist_idstringrequired
Numeric id of the watchlist
- symbolsstring[]required
Symbols in EXCHANGE:TICKER format, e.g. NASDAQ:AAPL
update_watchlist
WriteUpdate an existing watchlist: change its name and/or description. At least one of name / description must be provided.
- watchlist_idstringrequired
Numeric id of the watchlist
- namestring
New name of the watchlist (max 500 chars)
- descriptionstring
New description text for the watchlist
Market data, research & alerts
tv-mcpMarket data
get_ohlcv
Read-onlyFetch historical OHLCV bars for a symbol at an interval. Returns aggregate summary and (unless summary=true) the raw bars [{t (unix sec UTC), o, h, l, c, v}].
- symbolstringrequired
Symbol in EXCHANGE:TICKER format, e.g. NASDAQ:NVDA or BINANCE:BTCUSDT
- intervalstring
Bar interval (use M / 1mo / month for monthly)
Options:1m5m15m30m1h4h1D1WMdefault: 1D - countinteger
Number of bars, max 5000
default: 300 - summaryboolean
If true, omit the raw bars array and return aggregate statistics only
get_economic_data
Read-onlyTime series for an economic indicator (e.g. ECONOMICS:USIRYY): [{date, value}] where value is the actual release value, plus unit/scale when available. Tickers are ECONOMICS:<COUNTRY><INDICATOR>; use get_economic_symbols to discover the available countries and indicator codes instead of guessing.
- symbolstringrequired
Economic ticker ECONOMICS:<COUNTRY><INDICATOR>, e.g. ECONOMICS:USIRYY
- date_fromstring
ISO date, start of the series window (inclusive)
- date_tostring
ISO date, end of the series window (inclusive)
get_economic_symbols
Read-onlyCatalog of economic tickers accepted by get_economic_data (ECONOMICS:<COUNTRY><INDICATOR>). Without arguments returns a compact overview: indicator categories with counts plus every country code. Pass category or search for indicator codes and names; add country to get ready-to-use tickers.
- countrystring
Two-letter country/region code, e.g. US, DE, EU, CN. When set, returns ready-to-use ECONOMICS:* tickers instead of bare indicator codes
- categorystring
Return indicators of one category
Options:gdplbrprcehlthmnytrdgovbsnsscnsmhsetxsenrgclmt - searchstring
Return indicators whose code or name contains this substring (case-insensitive), e.g. inflation
Symbol search
search_symbols
Read-onlyResolve a ticker or company name into routable EXCHANGE:TICKER symbols via fuzzy search. Returns symbol, description, type, exchange, logoid.
- querystringrequired
Ticker, company name or description to fuzzy-search
- type_filterstring
Filter by instrument type
Options:stocketfbondforexindexfuturescryptodefault: all
Screener
get_symbol_data
Read-onlyFetch arbitrary TradingView screener columns for one symbol (escape hatch for advanced queries). Use get_screener_columns to discover valid column names.
- symbolstringrequired
Symbol in EXCHANGE:TICKER format
- columnsstring[]
TradingView screener columns to fetch
default: name description close change change_abs volume market_cap_basic price_earnings_ttm sector industry
run_screener
Read-onlyRun the TradingView screener with filters ({field: [min, max]} plus index/sector/industry/analyst_rating), sorting, presets and column selection. Returns rows and totalCount. Use get_screener_columns to discover valid column names for columns and filters.
- marketstring
Screener market: america, crypto, forex, futures, bonds, cfd, uk, germany, india, japan, …
default: america - filtersobject
Filters as {field: [min, max]} (null side = unbounded) plus special keys index / sector / industry / analyst_rating, e.g. {"index": "S&P 500", "pe": [null, 15], "rsi": [null, 40], "div_yield": [2, null]}
- sort_bystring
Column to sort by
default: volume - sort_orderstring
Sort direction
Options:ascdescdefault: desc - limitinteger
Max rows to return, cap 1000
default: 100 - columnsstring[]
Screener columns to return
- symbol_typesstring[]
Instrument types to include, e.g. ["stock"]
- filter_presetstring
Named preset
Options:pullback_with_reversalbreakout_with_volumeoversold_healthyearnings_runuprelative_strengthnew_highs - symbolsetstring[]
Explicit symbol universe, e.g. ["SYML:SP;SPX"]
get_symbol_data_batch
Read-onlyQuotes/columns for up to 50 symbols in one call; unresolved symbols are reported in `missing` instead of fabricated zeros. Use get_screener_columns to discover valid column names.
- symbolsstring[]required
Symbols in EXCHANGE:TICKER format, up to 50, deduplicated
- columnsstring[]
TradingView screener columns to fetch
default: name description close change change_abs volume market_cap_basic price_earnings_ttm sector industry
get_screener_columns
Read-onlyCatalog of all TradingView screener column names accepted by get_symbol_data, get_symbol_data_batch and run_screener. Without group/search returns a compact overview: groups with column names only. Pass group or search to get descriptions and period/timeframe variants; market narrows the catalog.
- marketstring
Filter by screener market
Options:stocketfcryptobondalldefault: all - groupstring
Return full details (descriptions and period/timeframe variants) for one group, e.g. valuation, technicals, income_statement
- searchstring
Return full details for columns whose name or description contains this substring (case-insensitive), e.g. margin
get_technicals_rating
Read-onlyFull single-timeframe indicator snapshot: RSI, Stoch K/D, CCI20, ADX, MACD, Momentum, AO, EMA/SMA 10-200, VWMA, HullMA9 plus 3 Recommend aggregates (summary/MA/other).
- symbolstringrequired
Symbol in EXCHANGE:TICKER format
- intervalstring
Timeframe
Options:1m5m15m30m1h2h4h1D1W1Mdefault: 1D
News
get_news
Read-onlyLatest news headlines for a symbol: id, title, published (unix), provider, urgency (1=top, 2=normal), storyPath, link, permission, relatedSymbols, paywall. Paginated: returns limit (default 25) headlines from offset; response carries total_available and has_more — increase offset to read older headlines (up to 200 total).
- symbolstringrequired
Symbol in EXCHANGE:TICKER format
- langstring
Language code
Options:enrudefresptitpltrarhekojavithmsidzh-Hanszh-Hantroen_INdefault: en - limitinteger
Max headlines per call, cap 200
default: 25 - offsetinteger
Skip this many newest headlines; use with limit to page through all available news (see has_more/total_available in the response)
get_news_story
Read-onlyFull text of a news story by its id from get_news: ast_description (AST as string), short_description, summary, permission, provider, copyright.
- idstringrequired
Story id in urn format from get_news, e.g. urn:newsml:mtnewswires.com:20260810:A123:0
- langstring
ISO 639-1 language code
default: en - user_prostatusstring
Viewer plan status
Options:pronon_prodefault: non_pro - user_countrystring
ISO country code
Fundamentals & forecasts
get_forecasts
Read-onlyAnalyst consensus: recommendation + score, buy/hold/sell distribution, price targets with upside_pct, EPS/revenue estimates.
- symbolstringrequired
Symbol in EXCHANGE:TICKER format
get_financials
Read-onlyCurrent fundamental snapshot: P/E, P/B, margins, ROE/ROA, TTM revenue/income/EBITDA/FCF and YoY growth. Optional metric subset and reporting period.
- symbolstringrequired
Symbol in EXCHANGE:TICKER format
- metricstring[]
Optional subset of financial metrics (aliases like pe, roe, revenue, fcf or raw TV columns); omit for the full set
- periodstring
Reporting period for metric columns
Options:fyfqttmfhcurrentdefault: ttm
get_financial_history
Read-onlyQuarterly/annual history of fundamentals (revenue, gross profit, operating income, net income, FCF, EPS, EBITDA, total debt) with yoy_pct and period labels.
- symbolstringrequired
Symbol in EXCHANGE:TICKER format
- periodstring
fq (quarterly) or fy (annual)
Options:fqfydefault: fq - date_fromstring
ISO date, start of the reporting window
- date_tostring
ISO date, end of the reporting window
Documents
get_documents
Read-onlyList filings and transcripts (10-K/10-Q/8-K, earnings calls) for a symbol with view ids for get_document_view. Supports category/event filters and historical event-date windows.
- symbolstringrequired
Symbol in EXCHANGE:TICKER format
- categorystring
Category slug; also accepts 10-K / 10-Q / 8-K aliases
Options:allannual_reportsquarterly_reportsinterim_reportscompany_eventsinsider_transactionstranscriptspresentationspress_releasesother - eventstring
Event filter
Options:earningcorporate_event - start_datestring
RFC3339 start of the EVENT-date window (inclusive), historical windows work
- end_datestring
RFC3339 end of the EVENT-date window (inclusive)
- limitinteger
Max documents to return
default: 20
get_document_view
Read-onlyText of a specific document view (summary/transcript) by views[].id from get_documents. Never construct view ids manually.
- view_idstringrequired
Document view id from get_documents views[].id, verbatim — never construct or edit it
Calendars
get_earnings_calendar
Read-onlyFuture/past earnings dates for a list of symbols with EPS and revenue consensus forecasts.
- symbolsstring[]required
Symbols in EXCHANGE:TICKER format
- date_fromstring
ISO date; past dates allowed
default: today - date_tostring
ISO date
default: +180d
get_economic_calendar
Read-onlyMacro events (CPI, GDP, rates) filtered by countries, currencies, category and importance. Past windows work (data since 2003-09-01), forward ~31 days.
- countriesstring
Comma-separated 2-letter country codes plus regions like EU
default: US - currenciesstring
Comma-separated ISO currency codes to filter by: USD,JPY,EUR
- categorystring
Event category
Options:gdpbondsbusinessconsumergovermenthealthhousinglabormoneypricestradetaxesdefault: all - date_fromstring
UTC date/time: YYYY-MM-DD or RFC3339. Past works (data since 2003-09-01)
default: today 00:00 - date_tostring
UTC date/time. Forward window ~31 days
default: today 23:59 - min_importanceinteger
Minimum importance: -1 (all), 0 (medium+high), 1 (high only)
default: -1
get_dividends_calendar
Read-onlyDividend data: ex-dates, amount, yield, payment date. Per-symbol mode via symbols[] or market screening mode via date window.
- symbolsstring[]
Per-symbol mode: symbols in EXCHANGE:TICKER format
- marketstring
Market screening mode (uses date_from/date_to), e.g. america
- date_fromstring
ISO date, screening-mode ex-date window start
default: now - date_tostring
ISO date, screening-mode ex-date window end
default: +30d - limitinteger
Max rows in screening mode, cap 200
default: 50
Alerts
create_alert
WriteCreate a TradingView alert with a simple price condition (price + cross/cross_up/cross_down). Returns the created alert payload with alert_id (persist it for updates/deletion).
- symbolstringrequired
Symbol in EXCHANGE:TICKER format
- pricenumber
Price threshold for a simple price condition
- conditionstring
Price condition type
Options:crosscross_upcross_downgreaterlessdefault: cross - messagestring
Message shown when the alert fires (max 4000 chars)
- namestring
Alert name (max 300 chars)
- resolutionstring
Chart resolution the alert is evaluated on: 1, 60 (hour), 1D, …
default: 1 - expirationstring
ISO expiration time
default: now+30d - auto_deactivateboolean
Deactivate the alert after the first fire
default: false - emailboolean
Send email on fire
default: false - mobile_pushboolean
Send mobile push on fire
default: true - popupboolean
Show popup on fire
default: true - webhookstring
Webhook URL to call on fire (requires TV plan with webhooks and 2FA)
- monitorboolean
Opt-in monitoring webhook for LLM analysis on fire
update_alert
WriteUpdate settings of an existing alert (message, name, expiration, notifications, webhook) and reactivate it. Conditions/symbol/timeframe can NOT be changed — delete and create instead.
- alert_idintegerrequired
Alert id returned by create_alert / list_alerts
- messagestring
New message; omit to keep current
- namestring
New name; omit to keep current
- expirationstring
New ISO expiration; empty string removes expiration (premium); omit to keep current
- auto_deactivateboolean
New auto-deactivate flag; omit to keep current
- emailboolean
New email flag; omit to keep current
- mobile_pushboolean
New mobile push flag; omit to keep current
- popupboolean
New popup flag; omit to keep current
- webhookstring
New webhook URL; empty string removes the webhook; omit to keep current
delete_alert
WriteDelete alerts by ids (their fire history is deleted too).
- alert_idsinteger[]required
Alert ids
stop_alerts
WritePause alerts without deleting: id, history and settings are preserved.
- alert_idsinteger[]required
Alert ids
restart_alerts
WriteResume paused alerts without recreating them.
- alert_idsinteger[]required
Alert ids
list_alerts
Read-onlyList all user alerts (active + inactive) in normalized form: alert_id, name, symbol, active, condition_type, threshold, resolution, timestamps.
- symbolstring
Filter by symbol in EXCHANGE:TICKER format
- activeboolean
Filter by active state
get_alerts
Read-onlyFull payload of specific alerts by id including raw conditions — required before recreating an alert copy with changed conditions. The message and webhook URL fields are filtered out (has_webhook flag is returned instead).
- alert_idsinteger[]required
Alert ids
get_alerts_log
Read-onlyAlert fire history: when each alert fired, with symbol, message and webhook delivery status.
- daysinteger
Look-back window in days
default: 7 - symbolstring
Filter by symbol in EXCHANGE:TICKER format
- limitinteger
Max events to return, cap 2000
default: 100
The toolset is in beta and expands over time — ask your assistant to list the available TradingView tools to see the current set.
Read-only tools never modify the account; Write tools create, change or delete user data.