Skip to main content
Glama
pbajkovic-hub

tv-cdp-mcp

tv_create_alert

Destructive

Clone an existing TradingView alert to create a new one, optionally overriding symbol, timeframe, name, message, or webhook. Ensures strategy conditions stay intact while retargeting the alert.

Instructions

MUTATES: create a new alert by CLONING an existing one (from_id) server-side and retargeting the clone through the UI's own modifyRestartAlert path, with optional overrides for symbol, resolution (applied to the alert AND every condition - they move together), name, message and web_hook (empty string removes the webhook). Clone-based because it must be: /create_alert rejects every hand-built payload (invalid_request), and only an existing alert carries the live study plots + pineId a strategy condition needs. The new alert is created PAUSED by default - resuming it is a separate, explicit tv_resume_alerts call. ARMED WINDOW: when overrides are applied, modify_restart re-arms the clone and the stop rail lands right after (~1s) - a fire inside that window would deliver the alert's real message/webhook; a pure clone with no overrides never arms. If the retarget fails the clone is deleted again automatically. Returns { new_id, cloned_from, active, alert, warning? }. Clone -> modify -> stop path verified live 2026-09-05 on defanged throwaway clones. Alerts on this account fire real webhooks that place live orders.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNonew alert name
activeNoleave the alert running; default false = created paused
layoutNochart layout id, target id, or 0-based index; default = the chart tab that is actually painting
symbolNonew symbol in EXCHANGE:TICKER form, e.g. "BYBIT:SOLUSDT.P" - overrides the .symbol key of the model's parsed symbol and proSymbol objects
from_idYesid of the existing alert to clone, as returned by tv_list_alerts
messageNonew alert message (the webhook payload body)
web_hookNonew webhook URL; empty string removes the webhook
resolutionNonew chart timeframe: minutes (e.g. "90") or "D"/"W"/"M" - applied to the alert-level resolution AND every condition resolution
expect_layoutNolayout id the tab is expected to show right now; the call refuses if it differs (a tab keeps its target id when the user opens another layout in it)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.6/5.0
Behavior5/5

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

The description discloses critical behavioral traits beyond annotations: the clone is created paused by default, the armed window when overrides are applied, the auto-delete on retarget failure, and the fact that alerts fire real webhooks placing live orders. It also notes the path was verified live on defanged throwaway clones. This is rich behavioral context that annotations alone don't provide.

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

Conciseness4/5

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

The description is dense and information-rich, front-loading the core purpose and mechanism. Every sentence earns its place, covering the clone rationale, paused default, armed window, failure cleanup, return value, and verification. It is longer than typical but justified by the complexity and risk profile of the tool.

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

Completeness5/5

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

Given the tool's complexity, the 100% schema coverage, and the absence of an output schema, the description is remarkably complete. It covers the return shape, the failure mode, the safety window, the verification status, and the real-world consequence of firing webhooks. An agent has everything needed to invoke it correctly and understand the risks.

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%, so the schema already documents all 9 parameters. The description adds meaning for key parameters like symbol, resolution, message, and web_hook, explaining how they behave (e.g., resolution applied to alert AND every condition, empty string removes webhook). However, it doesn't add much beyond the schema for parameters like layout, expect_layout, or active, so a 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 states a specific verb and resource: create a new alert by cloning an existing one, with explicit overrides. It clearly distinguishes this from other alert tools by explaining the clone-based mechanism and why it must be clone-based. The description also names the sibling tv_resume_alerts for the separate resume step.

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 explains when to use this tool: when creating an alert that must carry live study plots and pineId, because /create_alert rejects hand-built payloads. It also states that resuming is a separate explicit tv_resume_alerts call, and mentions the armed window risk. This gives clear context for when to use it vs alternatives.

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