Labsco
MCP SERVER · OFFICIAL PROJECT

Tickory MCP Server

by tickory

Build and run market scans written as CEL expressions, read why an alert fired or was suppressed, and trace a TradingView webhook through every destination it was supposed to reach.

Notifications & Alerting to HumansOfficial source
Summary
explain_alert_event and replay_relay_event are the two tools that answer 'why did nothing happen' — the question every alerting system leaves you to work out alone.

An alert pipeline fails silently by nature: the scan matched but the alert was suppressed, or the alert fired but one destination rejected it, and both look identical from the outside, which is no notification. Here the suppression has its own explanation call, and a relay event carries a per-route status with a stored payload and a single-route replay. That is a system built by someone who has debugged one of these at two in the morning. describe_indicators is the other considered piece — a scan is a CEL expression, and exposing the variables, guards and ranges as a tool means the agent can write a valid one instead of guessing at syntax and getting an empty result set that reads like a market with no matches.

What it is

A market-scanning and alert-routing client with two halves: scans that evaluate indicator expressions against tracked symbols, and a TradingView relay that takes inbound webhooks and fans them out to Telegram, Discord, email or a webhook of your own.

What you get
  • Scans as saved objects — list, fetch, create, replace — plus run_scan to execute one now and return matching symbols with their indicator values.
  • run_ad_hoc_scan executes a one-off without creating or touching a saved scan, so experimenting does not leave residue.
  • describe_indicators returns the CEL variables, guards, ranges and example expressions a scan can be written against, which is what makes the expression language usable without leaving the client.
  • Alert events list and open individually, and explain_alert_event says why one triggered or was suppressed — the suppression case being the one that is otherwise invisible.
  • get_market_data returns live price, indicators and metadata for one or more symbols, and list_symbols filters by exchange, contract type or search.
  • The relay: create a source and get back its webhook URL, secret and TradingView-ready configuration; add destinations for Telegram, webhook, Discord or email; and list inbound events with per-route status.
  • get_relay_trace returns one event's full lifecycle including the stored payload, and replay_relay_event re-sends a single failed route rather than the whole event.
Requirements

TICKORY_API_BASE_URL and TICKORY_API_KEY. Scans and alert events are scoped to the key's owner, so what is visible depends on which key is loaded.

Setup effort

One command plus a key — npx @tickory/mcp, then supply credentials