Skip to main content
Glama
daviddme

TradingView Alerts MCP Server

by daviddme

TradingView Alerts MCP Server

Create, list, pause, resume and delete TradingView alerts from Claude, Claude Desktop or Cursor.

An MCP (Model Context Protocol) server for managing TradingView alerts programmatically. Attach a Pine strategy to any symbol and timeframe, wire it to a webhook for your trading bot, and pause or resume the whole set by asking in plain language.

"Pause every BTC alert."
"Create an alert from my RSI strategy on BYBIT:ETHUSDT.P 15m, webhook to my bot."
"Which of my alerts are paused, and why did they stop?"

MCP Node Tests License


WARNING

This server authenticates with your live TradingView session cookies, which grant full access to your account. Never commit auth.json, never paste your cookies into a shared config, and never publish them. auth.json and .env are gitignored here. delete_alerts is permanent and cannot be undone.

Contents

Related MCP server: tradingview-desktop-mcp

What this does

TradingView has no public API for alerts. Everything has to go through the web UI, which makes managing more than a handful of strategy alerts tedious and impossible to automate.

This server exposes the full alert lifecycle as MCP tools:

  • Create an alert from any Pine strategy saved on your account, on any symbol and timeframe, with an optional webhook URL

  • List every alert with its status, symbol, timeframe and webhook

  • Pause and resume alerts individually or in bulk, by symbol or by name

  • Delete alerts permanently

  • Inspect firing history and the reason an alert stopped on its own

Creating a strategy alert correctly is the hard part, and it is handled for you: the symbol and its currency-id are resolved from TradingView's own search, and the strategy's default input values are read from its compiled metadata, so the alert actually fires.

Quick start

git clone https://github.com/daviddme/tradingview-alerts-mcp-server.git
cd tradingview-alerts-mcp-server
npm install

Requires Node.js 20 or newer. Then add your credentials and register it with a client below.

Getting your session cookies

TradingView has no alert API key. Authentication is a logged-in browser session, so the server replays four cookies.

  1. Log in to tradingview.com in your browser

  2. Open DevTools (F12 or Cmd+Option+I)

  3. Go to ApplicationStorageCookieshttps://www.tradingview.com

  4. Copy the values of these four cookies:

Cookie

What it is

sessionid

Your session token

sessionid_sign

Signature for the session token

device_t

Device token

tv_ecuid

Client id

You also need your TradingView username exactly as it appears on your profile.

Supply them either as environment variables in your MCP client config (recommended), or by copying auth.example.json to auth.json and filling it in.

Cookies expire, and logging in on another device can invalidate them. When that happens every tool returns a clear "session rejected" error telling you to refresh them. Run check_auth to test at any time.

Install in Claude Code

claude mcp add tradingview-alerts -s user \
  -e TV_USERNAME=YourUsername \
  -e TV_SESSIONID=... \
  -e TV_SESSIONID_SIGN=... \
  -e TV_DEVICE_T=... \
  -e TV_ECUID=... \
  -- node "$(pwd)/src/server.js"

Install in Claude Desktop

Edit claude_desktop_config.json:

  • macOS~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows%APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "tradingview-alerts": {
      "command": "/absolute/path/to/node",
      "args": ["/absolute/path/to/tradingview-alerts-mcp-server/src/server.js"],
      "env": {
        "TV_USERNAME": "YourUsername",
        "TV_SESSIONID": "your-sessionid-cookie",
        "TV_SESSIONID_SIGN": "your-sessionid_sign-cookie",
        "TV_DEVICE_T": "your-device_t-cookie",
        "TV_ECUID": "your-tv_ecuid-cookie"
      }
    }
  }
}

Use the absolute path to node. Desktop apps do not inherit your shell PATH, so a bare "node" fails with spawn node ENOENT. Find yours with which node.

Restart Claude Desktop.

Install in Cursor

Same block as above in ~/.cursor/mcp.json, then restart Cursor.

Tools

Tool

What it does

list_alerts

Every alert with status, symbol, timeframe and alert_id. Start here

create_strategy_alert

New alert from a saved Pine strategy, with optional webhook

pause_alerts

Stop alerts firing, keeping them on the account

resume_alerts

Reactivate paused alerts

delete_alerts

Permanently delete alerts

list_saved_strategies

Your saved Pine scripts, flagging which are strategies

list_alert_fires

Firing history

resolve_symbol

Resolve EXCHANGE:TICKER to its canonical symbol and currency-id

check_auth

Verify the session works and report alert counts

pause_alerts, resume_alerts and delete_alerts all target alerts the same way: explicit alert_ids, or a symbol / name / status filter. They refuse to run with no target at all rather than acting on everything, and error if a filter matches nothing rather than silently doing nothing.

Example prompts

"List my TradingView alerts and tell me which are paused."

"Create an alert from my 'RSI Breakout' strategy on BYBIT:BTCUSDT.P at 60m, and send it to https://my-bot.example.com/webhook"

"Pause everything on RUNEUSDT, I'm done trading it for today."

"Resume all my paused alerts."

"Delete every alert with 'test' in the name."

"My ETH alert stopped firing. What happened?" (reads last_stop_reason)

The TradingView alerts API

Undocumented and private. The endpoint names below were confirmed empirically: the API answers unauthorized for endpoints that exist and no_such_endpoint for ones that do not, which cleanly separates real endpoints from guesses.

All live on https://pricealerts.tradingview.com:

Endpoint

Purpose

list_alerts

List all alerts

create_alert

Create

stop_alerts

Pause (takes alert_ids[])

restart_alerts

Resume (takes alert_ids[])

delete_alerts

Delete (takes alert_ids[])

list_fires

Firing history

Endpoints that do not exist, despite being plausible: modify_alert, edit_alert, pause_alerts, resume_alerts, deactivate_alerts, and every singular variant such as stop_alert.

Creating a strategy alert is a four-step chain:

  1. symbol-search/v3 resolves the symbol and its currency-id

  2. pine-facade/list?filter=saved finds the script's pine_id and version

  3. pine-facade/translate/<id>/<version> returns the compiled metadata containing the script's default input values

  4. create_alert posts a type: "strategy" condition wrapping StrategyScript@tv-scripting-101

Gotchas worth knowing

Each of these cost real debugging time and is handled by this server.

There is no modify endpoint. Editing an alert means deleting it and creating a replacement. The alert gets a new alert_id.

Activation is asynchronous. create_alert returns active: false, and TradingView flips the alert to active a second or two later. The same applies to stop_alerts and restart_alerts. Reading the response directly tells you the wrong thing, so every state-changing tool here polls until the state settles and reports confirmed.

Strategy inputs are not positional in the way they look. The alert payload wants an in_0, in_1, … map, and metaInfo.inputs is an array, so it is tempting to walk that array by index. That is wrong: the array starts with four hidden internal entries (text, pineId, pineVersion, pineFeatures), so index 0 is the compiled script blob, not in_0. Use metaInfo.defaults.inputs, which is already keyed correctly. An alert built the wrong way is accepted by the API and then never fires, with no error anywhere.

The useful metadata is nested at result.metaInfo, not metaInfo.

symbol is a JSON document inside a string, prefixed with =. This server parses it so you get a plain "BYBIT:BTCUSDT.P" back.

user_id is not required by list_alerts, despite the web app always sending it. The session cookie identifies the account.

last_stop_reason explains self-stopping alerts, with values like pro_plan_expired or auto. Worth checking when an alert goes quiet.

FAQ

Do I need a paid TradingView plan?

To use strategy alerts, yes. TradingView limits how many alerts each plan allows, and strategy alerts need a paid tier. This server surfaces last_stop_reason: "pro_plan_expired" when a plan lapse is what stopped an alert.

Is this an official TradingView API?

No. TradingView publishes no alerts API. This drives the same private endpoints the web app uses, which means they can change without notice. Not affiliated with TradingView.

Will this get my account banned?

It makes the same requests the TradingView web app makes, as your own logged-in user, at a far lower rate than clicking through the UI. That said, you are using a private API, which is your own decision and risk. See NOTICE.md.

Can it create simple price alerts, not just strategy alerts?

Not yet. This server covers Pine strategy alerts, which is the automation-heavy case. Price alerts use a different condition shape. Contributions welcome.

Why does my new alert say it is not active?

Activation is asynchronous. The tool polls for a couple of seconds and reports activation: "confirmed active" when it settles. If it reports otherwise, run list_alerts again or call resume_alerts to force it.

My alert was created but never fires. Why?

Almost always wrong strategy inputs. This server reads inputs from the script's own compiled defaults to avoid exactly that, and reports inputs_applied so you can check the count looks right. Zero applied inputs means something went wrong.

How do I change an alert's settings?

Delete it and create a new one. TradingView has no modify endpoint.

Where are my credentials stored?

Wherever you put them: environment variables in your MCP client config, or a local auth.json that is gitignored. This server never transmits them anywhere except TradingView.

Development

npm test

58 tests, fully offline. The alerts API is stubbed in-memory, so the suite never touches a real account.

npm run smoke -- --strategy "Your Strategy Name" --symbol BYBIT:BTCUSDT.P

Live end-to-end test against your real account. It creates one alert, verifies it, pauses it, resumes it, then deletes it, checking state at every step. It only ever touches the alert it created, verifies your existing alerts are untouched, and cleans up in a finally block even if a step fails.

Project layout

File

Responsibility

src/server.js

MCP wiring and tool definitions

src/tools.js

Tool implementations, targeting and state confirmation

src/alerts.js

The six lifecycle operations and payload construction

src/pine.js

Saved script lookup and strategy input extraction

src/symbols.js

Symbol and currency-id resolution

src/format.js

Normalising raw alert objects

src/http.js

Request handling and error mapping

src/config.js

Credential loading

License

MIT. See LICENSE and NOTICE.md.


Keywords: TradingView alerts MCP server, TradingView MCP, TradingView alert API, Model Context Protocol TradingView, Pine Script alerts automation, TradingView webhook automation, create TradingView alerts programmatically, pause resume TradingView alerts, Claude TradingView alerts, Cursor TradingView MCP, trading bot webhook alerts.

Available Tools

9 tools
check_authA

Verify the TradingView session is valid and report the account and alert counts. Run this first if anything returns an authorization error.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It states the action (verify session validity) and the output (account and alert counts), implying a non-destructive read operation. It could be more explicit about side effects or failure behavior, but the tool is simple and low-risk, so the description is reasonably transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is exceptionally concise: two short sentences that front-load the core purpose and immediately provide a practical usage directive. Every word earns its place, with no redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter tool with no output schema, the description adequately covers what it does and when to use it. It mentions the report contents ('account and alert counts'), giving a basic understanding of the return value. It could specify the exact structure or behavior on invalid sessions, but given the tool's simplicity, the description is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline score is 4. The description adds no parameter details because there are none to describe, and the input schema is empty. It offers no additional semantics beyond what the schema already conveys.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function with a specific verb ('Verify') and resource ('TradingView session'), and also mentions it reports account and alert counts. This distinguishes it from sibling tools that manage alerts or resolve symbols, leaving no ambiguity about its purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly instructs when to use the tool: 'Run this first if anything returns an authorization error.' This gives a clear, actionable trigger context, effectively guiding the agent on when to invoke this tool over others.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_strategy_alertA

Create a new TradingView alert from one of your saved Pine strategies. Resolves the symbol and its currency-id automatically, and reads the strategy's own default input values so the alert actually fires. Optionally set a webhook URL to forward signals to your own trading bot or endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNoSend email on fire. Default false.
popupNoShow popup in TradingView. Default true.
inputsNoOverride strategy inputs, e.g. {"in_0": 21}. Defaults come from the script.
symbolYesEXCHANGE:TICKER, e.g. "BYBIT:BTCUSDT.P" or "BINANCE:ETHUSDT".
messageNoAlert message. Supports {{strategy.order.action}}, {{ticker}} etc.
strategyYesSaved strategy name, title or pine_id. See list_saved_strategies.
web_hookNoWebhook URL to POST the alert message to.
resolutionNoTimeframe in minutes, or "D"/"W". Default "15".
mobile_pushNoSend push notification. Default true.
expiration_daysNoDays until the alert expires. Default 31.

TDQS

A4.1/5.0
Behavior3/5

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 useful context about automatic symbol resolution and reading default inputs, which explains why the alert works. However, it omits details about side effects, error conditions, or permission requirements, so it is informative but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences that front-load the main purpose and include key behavioral details without any fluff. Every sentence contributes value, and it maintains a clear structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description provides a solid overview of the tool's behavior and relies on the rich schema for parameter details. However, it does not mention what the tool returns (e.g., an alert ID or confirmation), which is important for a creation tool especially since there is no output schema. This gap prevents a higher score.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already covers all 10 parameters with detailed descriptions (100% coverage), so the baseline is 3. The description adds extra meaning by highlighting the automatic symbol resolution (relating to 'symbol'), reading default inputs (relating to 'inputs'), and the optional webhook URL (relating to 'web_hook'), which goes beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Create a new TradingView alert') and the resource ('from one of your saved Pine strategies'). It distinguishes itself from siblings like list_alerts and delete_alerts by focusing on creation, and the extra details about resolving symbols and reading default inputs clarify the specific scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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 want to create an alert from a saved strategy) and references list_saved_strategies in the schema, which is a helpful alternative for finding strategy names. However, it does not explicitly state when not to use it or mention other sibling tools like list_alerts for viewing existing alerts.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_alertsA

Permanently delete TradingView alerts. This cannot be undone. TradingView has no edit endpoint, so changing an alert means deleting it and creating a replacement. To stop an alert temporarily, use pause_alerts instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoMatch alerts whose title or message contains this text.
statusNoRestrict to alerts currently active or paused.
symbolNoMatch alerts whose symbol contains this, e.g. "BTCUSDT" or "BYBIT:".
alert_idsNoExplicit alert ids from list_alerts. Most precise way to target alerts.

TDQS

A4.1/5.0
Behavior4/5

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 that deletion is permanent and irreversible, and that changing an alert requires delete+recreate. While it does not mention potential bulk deletion when using filters (e.g., name/status/symbol without IDs), the core destructive behavior is clearly communicated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, no wasted words. The first sentence states the purpose and permanence, the second explains the edit limitation, and the third offers an alternative. Information is front-loaded and easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the core destructive nature and provides an alternative, but it omits a critical safety context: if no alert_ids are given, the tool will delete all alerts matching the provided filters, which could be many. For a destructive tool, this is a significant gap. However, the rest of the context (permanence, no edit endpoint) is present, making it above the bare minimum.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already covers all parameters with descriptions (100% coverage), so the description adds no additional parameter detail. It does not explain how multiple filters combine (AND/OR) or the risk of omitting alert_ids, but the schema's existing descriptions are sufficient to make the parameters understandable. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Permanently delete') and resource ('TradingView alerts'), clearly distinguishing it from other alert-related tools. It also implicitly contrasts with pause_alerts, making the purpose unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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 deletion and explicitly names an alternative: 'To stop an alert temporarily, use pause_alerts instead.' It also explains the delete+recreate pattern due to no edit endpoint. However, it does not mention when not to use it beyond the temporary case, 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.

list_alert_firesA

Show the firing history for your alerts: what triggered, and when.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoDefault 25.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It clarifies the content of the output ('what triggered, and when') indicating a read-only operation, but does not disclose aspects like pagination, sorting, or any side effects. For a simple list tool this is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that immediately states the tool's purpose and key output content. It does not waste words or include irrelevant details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list tool with one optional parameter and no output schema, the description adequately conveys what the tool returns. It lacks explicit mention of whether any filtering or ordering is applied, but given the minimal complexity this is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 100% description coverage for the single 'limit' parameter ('Default 25.'), so the schema provides the necessary semantics. The tool description adds no parameter-specific meaning beyond what the schema already states, making the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'Show the firing history for your alerts: what triggered, and when.' This clearly distinguishes it from siblings like list_alerts (which likely lists alert configurations) and create_strategy_alert (which creates). The purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool by specifying it returns firing history (what triggered and when), which differentiates it from listing alerts themselves. However, it does not explicitly state alternatives or when not to use it, lacking the direct comparison seen in higher-scoring examples.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_alertsA

List TradingView alerts on the authenticated account, with their status (active or paused), symbol, timeframe and alert_id. Start here: every other tool targets alerts by the alert_id this returns. Supports filtering by symbol, name or status.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoFilter by title or message substring.
statusNo
symbolNoFilter by symbol substring, e.g. "BTCUSDT".
include_detailsNoInclude webhook URL, message template, Pine id and expiry. Default false.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden of revealing behavior. It clearly indicates this is a read-only listing operation on the authenticated account and specifies what fields are returned. It does not mention pagination or error behavior, but for a simple list tool the description gives adequate behavioral grounding.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences. The first sentence front-loads the core purpose and output fields; the second adds workflow context and filtering capabilities. Every sentence earns its place without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the tool's purpose, return fields, authentication context, and its key relationship to sibling tools. Since there is no output schema, it adequately describes the main return values. Minor gaps include lack of pagination details and the expanded output when include_details is true, though the schema covers that parameter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 75%, and the description reinforces filtering by symbol, name, or status, which matches the schema properties. It does not add new parameter semantics beyond what the schema already states, and include_details is only documented in the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb-resource pair, 'List TradingView alerts', and enumerates the returned fields (status, symbol, timeframe, alert_id). It also distinguishes itself from siblings by stating 'Start here: every other tool targets alerts by the alert_id this returns.'

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly frames this tool as the entry point for alert workflows: 'Start here: every other tool targets alerts by the alert_id this returns.' It also states that filtering by symbol, name, or status is supported, giving clear guidance on when to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_saved_strategiesA

List the Pine scripts saved on your TradingView account, flagging which are strategies. Only strategies can drive a strategy alert. Use this to find the exact name to pass to create_strategy_alert.

ParametersJSON Schema
NameRequiredDescriptionDefault
strategies_onlyNoExclude indicators and libraries. Default true.

TDQS

A4/5.0
Behavior3/5

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 correctly implies a read-only listing operation and mentions the flagging output, but it doesn't explicitly address auth requirements, side effects, or limitations. The description adds some context beyond the raw tool name but is not richly transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the primary action and purpose. Every sentence contributes value: the first states what the tool does, the second provides the key use case. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity (one optional parameter, no output schema, no nested objects), the description covers the core purpose, use case, and relationship to create_strategy_alert. It lacks a detailed return format explanation, but for a straightforward listing tool, the 'flagging which are strategies' hint is sufficient for an agent to infer expected output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a clear description for the single optional parameter 'strategies_only' ('Exclude indicators and libraries. Default true.'). The description adds no additional parameter semantics beyond what the schema already provides, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists Pine scripts saved on the TradingView account and flags which are strategies. This is a specific verb+resource combination that distinguishes it from sibling tools like list_alerts, and it explicitly ties to create_strategy_alert.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context: use this to find the exact name to pass to create_strategy_alert, and notes that only strategies can drive a strategy alert. It doesn't explicitly mention when not to use it or name alternative tools, but it provides strong situational guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pause_alertsA

Pause (stop) one or more TradingView alerts. Paused alerts stay on your account but stop firing, and can be reactivated with resume_alerts. Target by alert_ids, or by symbol / name / status filter.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoMatch alerts whose title or message contains this text.
statusNoRestrict to alerts currently active or paused.
symbolNoMatch alerts whose symbol contains this, e.g. "BTCUSDT" or "BYBIT:".
alert_idsNoExplicit alert ids from list_alerts. Most precise way to target alerts.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden. It discloses the non-destructive nature ('stay on your account but stop firing') and reversibility ('can be reactivated'). It does not mention edge cases like pausing an already paused alert or behavior with empty filters, but the core behavior is well covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the action, no fluff. Every word adds value by defining scope, behavior, and targeting options.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite the description explaining the effect, it fails to address a critical ambiguity: since all parameters are optional, calling with no filters could pause all alerts. There is no warning about this, and no mention of return values or error behavior. This is a unsafe gap for a mutation tool with no annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already explains each parameter, including alert_ids being the 'most precise way'. The description's mention of targeting modes adds little beyond a summary of the schema, so it earns the baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Pause') and resource ('TradingView alerts'), clearly distinct from siblings like delete_alerts and resume_alerts. It also explains the key side effect (alerts stay but stop firing), which removes ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides two targeting modes ('by alert_ids, or by symbol / name / status filter') and mentions resume_alerts as the reactivation path. However, it does not explicitly say when NOT to use (e.g., for permanent removal use delete_alerts), so it falls 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.

resolve_symbolA

Resolve an EXCHANGE:TICKER into TradingView's canonical symbol plus its currency-id, which alerts require. Useful for checking a symbol exists before creating an alert.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYese.g. "BYBIT:BTCUSDT.P"

TDQS

A4.2/5.0
Behavior3/5

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 explains the purpose and the fact that the output is required for alerts, but it does not disclose error behavior, return structure, or whether the operation is read-only. This is adequate but leaves gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core action, and no extraneous words. Each sentence adds value: one defines the function, the other its practical use.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple lookup tool with one parameter and no output schema, the description covers the purpose, input format, and typical use case. It gives some indication of the output (canonical symbol + currency-id), though it could be more explicit about the return structure and error handling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema only provides an example value ('BYBIT:BTCUSDT.P'), but the description adds the semantic format 'EXCHANGE:TICKER' and explains that the symbol will be resolved to a canonical form plus currency-id. This goes beyond the schema and clarifies the parameter's role.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function with a specific verb ('Resolve') and resource ('EXCHANGE:TICKER' into canonical symbol plus currency-id). It distinguishes itself from sibling tools focused on alerts, auth, and strategies, making it clear this is a symbol-validation/conversion tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a concrete use case: 'Useful for checking a symbol exists before creating an alert.' This gives clear context for when to use the tool, though it doesn't explicitly name alternatives 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.

resume_alertsA

Resume (restart) previously paused TradingView alerts so they fire again. Target by alert_ids, or by symbol / name / status filter.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoMatch alerts whose title or message contains this text.
statusNoRestrict to alerts currently active or paused.
symbolNoMatch alerts whose symbol contains this, e.g. "BTCUSDT" or "BYBIT:".
alert_idsNoExplicit alert ids from list_alerts. Most precise way to target alerts.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses that alerts must be 'previously paused' but does not explain behavior on active alerts, handling of no matches, potential side effects, or return values. This is a reasonable disclosure for the core operation but lacks edge-case detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One concise sentence that front-loads the purpose and then specifies targeting options. Every word adds value; there is no fluff or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is sufficiently complete for a moderate-complexity tool: it covers the core action and the flexible targeting mechanisms. It omits edge-case behaviors (e.g., what happens if no alerts match) and return details, but does not have an output schema to justify more. Slight room for improvement, but not critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (all parameters have descriptions). The description adds a useful grouping ('by alert_ids, or by symbol / name / status filter') but does not provide additional semantics beyond the schema, so it meets the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action ('Resume (restart) previously paused TradingView alerts') and resource, making it unambiguous. It also differentiates from sibling tools like pause_alerts and delete_alerts by explicitly focusing on resuming paused alerts and offering multiple targeting modes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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 restart previously paused alerts), and implies it is the opposite of pause_alerts. However, it does not explicitly state when not to use it or mention alternative tools, so it stops 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.

TDQS

A4.3/5.0
Disambiguation5/5

Each tool targets a distinct action (auth check, list, create, pause, resume, delete, list strategies, list fires, resolve symbol). Overlapping actions like pause/resume/delete are clearly differentiated by their verb and description.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (e.g., list_alerts, create_strategy_alert, pause_alerts). Verbs are active and distinct, making the naming predictable.

Tool Count5/5

9 tools is well-scoped for an alerts management server, covering authentication, alert CRUD, strategy discovery, and symbol resolution without unnecessary bloat.

Completeness4/5

The core alert lifecycle (create, list, pause, resume, delete) is covered, along with supporting tools for strategies and symbol resolution. However, the creation tool is limited to strategy-based alerts, leaving no way to create a simple price alert, which is a minor gap.

Maintenance

ActivityMaintained
ResponsivenessSyncing

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

Related MCP Servers

  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables AI co-pilots to interact with TradingView charts, manage alerts via REST API, automate morning briefs with custom trading rules, and perform real-time market analysis.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Controls the TradingView Desktop app via MCP, allowing AI agents to manage charts, indicators, Pine Script strategies, and optionally mirrors signals to MetaTrader 5 for automated trading.
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol (MCP) server that lets AI assistants interact with TradingView for real-time quotes, historical OHLCV data, screener, alerts, watchlists, news, chart layouts, Pine scripts, and more. Connect it to Claude Desktop, Cursor, or any MCP-compatible client to control TradingView via natural language.
    552
    5
    -

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/daviddme/tradingview-alerts-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server