TradingView Alerts MCP Server
Manages TradingView alerts programmatically, allowing creation, listing, pausing, resuming, and deletion of strategy alerts, with optional webhook support and inspection of firing history.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@TradingView Alerts MCP ServerCreate a webhook alert from my RSI strategy on ETHUSDT 15m"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
TradingView 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?"
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 installRequires 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.
Log in to tradingview.com in your browser
Open DevTools (
F12orCmd+Option+I)Go to Application → Storage → Cookies →
https://www.tradingview.comCopy the values of these four cookies:
Cookie | What it is |
| Your session token |
| Signature for the session token |
| Device token |
| 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.jsonWindows —
%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 shellPATH, so a bare"node"fails withspawn node ENOENT. Find yours withwhich node.
Restart Claude Desktop.
Install in Cursor
Same block as above in ~/.cursor/mcp.json, then restart Cursor.
Tools
Tool | What it does |
| Every alert with status, symbol, timeframe and |
| New alert from a saved Pine strategy, with optional webhook |
| Stop alerts firing, keeping them on the account |
| Reactivate paused alerts |
| Permanently delete alerts |
| Your saved Pine scripts, flagging which are strategies |
| Firing history |
| Resolve |
| 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 all alerts |
| Create |
| Pause (takes |
| Resume (takes |
| Delete (takes |
| 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:
symbol-search/v3resolves the symbol and itscurrency-idpine-facade/list?filter=savedfinds the script'spine_idand versionpine-facade/translate/<id>/<version>returns the compiled metadata containing the script's default input valuescreate_alertposts atype: "strategy"condition wrappingStrategyScript@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 test58 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.PLive 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 |
| MCP wiring and tool definitions |
| Tool implementations, targeting and state confirmation |
| The six lifecycle operations and payload construction |
| Saved script lookup and strategy input extraction |
| Symbol and currency-id resolution |
| Normalising raw alert objects |
| Request handling and error mapping |
| 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 toolscheck_authA
Verify the TradingView session is valid and report the account and alert counts. Run this first if anything returns an authorization error.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| No | Send email on fire. Default false. | ||
| popup | No | Show popup in TradingView. Default true. | |
| inputs | No | Override strategy inputs, e.g. {"in_0": 21}. Defaults come from the script. | |
| symbol | Yes | EXCHANGE:TICKER, e.g. "BYBIT:BTCUSDT.P" or "BINANCE:ETHUSDT". | |
| message | No | Alert message. Supports {{strategy.order.action}}, {{ticker}} etc. | |
| strategy | Yes | Saved strategy name, title or pine_id. See list_saved_strategies. | |
| web_hook | No | Webhook URL to POST the alert message to. | |
| resolution | No | Timeframe in minutes, or "D"/"W". Default "15". | |
| mobile_push | No | Send push notification. Default true. | |
| expiration_days | No | Days until the alert expires. Default 31. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Match alerts whose title or message contains this text. | |
| status | No | Restrict to alerts currently active or paused. | |
| symbol | No | Match alerts whose symbol contains this, e.g. "BTCUSDT" or "BYBIT:". | |
| alert_ids | No | Explicit alert ids from list_alerts. Most precise way to target alerts. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Default 25. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Filter by title or message substring. | |
| status | No | ||
| symbol | No | Filter by symbol substring, e.g. "BTCUSDT". | |
| include_details | No | Include webhook URL, message template, Pine id and expiry. Default false. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| strategies_only | No | Exclude indicators and libraries. Default true. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Match alerts whose title or message contains this text. | |
| status | No | Restrict to alerts currently active or paused. | |
| symbol | No | Match alerts whose symbol contains this, e.g. "BTCUSDT" or "BYBIT:". | |
| alert_ids | No | Explicit alert ids from list_alerts. Most precise way to target alerts. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | e.g. "BYBIT:BTCUSDT.P" |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Match alerts whose title or message contains this text. | |
| status | No | Restrict to alerts currently active or paused. | |
| symbol | No | Match alerts whose symbol contains this, e.g. "BTCUSDT" or "BYBIT:". | |
| alert_ids | No | Explicit alert ids from list_alerts. Most precise way to target alerts. |
TDQS
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.
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.
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.
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.
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.
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
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.
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.
9 tools is well-scoped for an alerts management server, covering authentication, alert CRUD, strategy discovery, and symbol resolution without unnecessary bloat.
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
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
Hosted MCP for stocks, options, Greeks, brokers, order previews, alerts, and workflows.
Live LinReg fan charts, 64-setup playbook, 11-section MTF TA. Remote MCP, no API key.
Automate 1,000+ services from any MCP-compatible AI agent: build Applets, run actions and queries.
Trade 16 crypto exchanges + MetaTrader 5 from your AI assistant via one MCP connection.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceEnables 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.-
- AlicenseNot gradedqualityDmaintenanceControls 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
- FlicenseNot gradedqualityDmaintenanceA 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.5525-
- FlicenseNot gradedqualityBmaintenanceMCP server that connects AI assistants to TradingView Desktop via Chrome DevTools Protocol, enabling chart analysis, Pine Script development, and workflow automation through natural language.552-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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