TradingView MCP Server Beta
Back to TradingView

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

https://mcp.tradingview.com/mcp

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.

  1. Open Claude → Settings → Connectors
  2. Click “Add custom connector”
  3. Paste the server URL → Add
  4. Authorize with your TradingView account

Claude Code

  1. Add the server in your terminal: claude mcp add --transport http mcp-tradingview https://mcp.tradingview.com/mcp
  2. Run /mcp in Claude Code and authorize with your TradingView account in the browser

ChatGPT and Codex desktop UI

  1. Open ChatGPT → Settings → Plugins → Add → MCPs → Add → Add MCP Server
  2. Set name to Tradingview Official MCP Server
  3. Set Type to “Streamable HTTP”
  4. Paste https://mcp.tradingview.com/mcp as URL
  5. Hit “Save”
  6. Open Plugins → MCPs
  7. Hit “Authenticate” on “Tradingview Official MCP Server”
  8. Authorise in paid TradingView account if prompted
  9. Allow the access for the tools

ChatGPT and Codex terminal

  1. Add the server in your terminal: codex mcp add tradingview --url https://mcp.tradingview.com/mcp
  2. Authorize with your TradingView account in the browser
  3. 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.

Watchlists

mcp-watchlist

Watchlists

list_watchlists

Read-only

List the user's watchlists.

No parameters.

get_watchlist

Read-only

Get a watchlist data with its companies by id.

  • watchlist_idstringrequired

    Numeric id of the watchlist

get_active_watchlist

Read-only

Get 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

Write

Create 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

Write

Delete a watchlist.

  • watchlist_idstringrequired

    Numeric id of the watchlist

add_to_watchlist

Write

Add 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

Write

Remove companies from a watchlist.

  • watchlist_idstringrequired

    Numeric id of the watchlist

  • symbolsstring[]required

    Symbols in EXCHANGE:TICKER format, e.g. NASDAQ:AAPL

update_watchlist

Write

Update 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-mcp

Market data

get_ohlcv

Read-only

Fetch 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-only

Time 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-only

Catalog 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

Screener

get_symbol_data

Read-only

Fetch 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-only

Run 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-only

Quotes/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-only

Catalog 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-only

Full 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-only

Latest 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-only

Full 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-only

Analyst consensus: recommendation + score, buy/hold/sell distribution, price targets with upside_pct, EPS/revenue estimates.

  • symbolstringrequired

    Symbol in EXCHANGE:TICKER format

get_financials

Read-only

Current 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-only

Quarterly/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-only

List 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-only

Text 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-only

Future/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-only

Macro 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-only

Dividend 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

Write

Create 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

Write

Update 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

Write

Delete alerts by ids (their fire history is deleted too).

  • alert_idsinteger[]required

    Alert ids

stop_alerts

Write

Pause alerts without deleting: id, history and settings are preserved.

  • alert_idsinteger[]required

    Alert ids

restart_alerts

Write

Resume paused alerts without recreating them.

  • alert_idsinteger[]required

    Alert ids

list_alerts

Read-only

List 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-only

Full 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-only

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