mcpserver.lol
registry/tickerbot-mcp-server
Connection check verified live · 26h ago

tickerbot-mcp-server

The stock market, in SQL — scan, replay, or subscribe across ~12k US tickers and top 100 cryptos.

Tools 35
GitHub stars
Installs / wk
Licence
Transport streamable-http, stdio
Last checked 26h ago

Tools & capabilities

35 tools

Read from the running server on 26h ago.

tickerbot_create_custom_signal expr*name*description
Save a SQL WHERE expression as a named custom signal the caller can reference by name in future scans.
tickerbot_create_universe idname*tickers*description
Create a new universe (named set of tickers) for scoping future scans.
tickerbot_create_webhook namecadencechannelcolumnstrigger*device_id +2
The canonical webhook create — POST /v2/webhooks with an explicit `trigger` object: { type: "scan" | "ticker" | "signal" | "event", … } plus delivery fields. The subscribe tools ab…
tickerbot_delete_custom_signal name*force
Delete one of the caller's custom signals. Cascade-safe by default: refused with 409 if another custom signal references it (the error lists the referencing signals). Pass `force:…
tickerbot_delete_universe id*
Delete one of the caller's universes. System universes (`top_10`/`top_100`) cannot be deleted. Webhooks that reference the deleted universe will fail on their next eval, so clean t…
tickerbot_delete_webhook id*
Delete a webhook subscription by id. Use after listing webhooks when the user wants to remove an alert.
tickerbot_enable_webhook id*
Re-enable a disabled webhook — flips it back to `active` and clears its match-state so the next eval treats every currently-matching ticker as new. Use after fixing whatever caused…
tickerbot_get_series tofromlimitcursortickercolumns +3
THE series primitive: cross-ticker, multi-column time series on one aligned grid. Pick up to 25 columns (price, OHLCV, indicators like rsi_14, boolean flags, custom signals) and up…
tickerbot_get_signals_match asoflimitcursorsignal*sort_byuniverse +2
Find tickers that match a single signal right now (or at a past moment with `asof`). Booleans need no condition. Numerics need a `condition` like ">70" or "<=200". Sorted by signal…
tickerbot_get_ticker asofticker*
Get the full current row for one ticker — every column on the schema (price, change, indicators like rsi_14, every boolean flag like above_sma_50, fundamentals like pe_ratio). Pass…
tickerbot_get_ticker_bars toasoffromlimitbeforecursor +2
Get OHLCV (open/high/low/close/volume) bars for one or more symbols at a given interval, oldest-first. Pass a comma-separated `ticker` list (up to 50) for a bulk response keyed by…
tickerbot_get_ticker_coverage ticker*
Data-coverage report for one ticker — which intervals and columns exist, from when, at what depth. The honesty endpoint: ask this before assuming a gap in bars/series is a data out…
tickerbot_get_ticker_history asof*ticker*
Time-travel SNAPSHOT: the full wide row for one ticker as it stood at a past date (one row, not a series — for a multi-column time SERIES use tickerbot_get_series). Returns indicat…
tickerbot_get_ticker_holdings limitticker*
Get an ETF's constituent holdings and their weights, heaviest first. When the ticker is not an ETF, `is_etf` is false and `holdings` is empty; `is_etf: true` with zero holdings mea…
tickerbot_get_ticker_sectors ticker*
Get an ETF's sector allocation (sector weights, heaviest first). When the ticker is not an ETF, `is_etf` is false and `sectors` is empty; `is_etf: true` with zero sectors means a r…
tickerbot_get_universe id*
Get one universe by slug, including its ticker list.
tickerbot_get_webhook id*
Fetch one webhook subscription by id (current state, match-set, schedule). Account-scoped: any key on the account can read any of the account's webhooks.
tickerbot_list_events qtodirfirmfromjoin +14
THE events primitive — one timeline over every event log, cross-ticker: dividends, splits, insider transactions, and analyst actions ("all splits this month", "every analyst action…
tickerbot_list_signal_events tofromlimitcursorsignal*ticker* +1
Occurrence SPANS of a boolean signal for one ticker, newest-first. For STATE flags (above_sma_50, in_uptrend) each row is a true-WINDOW: started_at when it flipped true, ended_at w…
tickerbot_list_signals_catalog kindlimitcursor
List the unified signal catalog: every built-in column on the schema (`kind: builtin`) plus the caller's custom signals (`kind: custom`). Built-in rows carry the audited spec metad…
tickerbot_list_system_universes
List the built-in system universes (`top_10`, `top_100` — the most-actively-traded tickers by 30-day trailing dollar volume, rebalanced monthly). Available to every account regardl…
tickerbot_list_tickers limitcursorsearchsectortickersexchange +4
List active tickers from the Tickerbot universe (~14,500 US equities, plus the US Treasury curve and Fed policy rates under `R:`, and major FX pairs, spot metals and crypto under `…
tickerbot_list_universes limitownercursor
List universes — your saved ones and/or the built-in system universes (top_10, top_100). Filter with `owner` (like the signals catalog's `kind`): `me` (default, your own), `system`…
tickerbot_list_webhook_deliveries id*tofromlimitcursorstatus
List recent deliveries (pings and fires) for a webhook, newest-first — for diagnosing failures. Returns metadata only (status, attempt, response code, error); the POST body is not…
tickerbot_list_webhooks limitcursorstatus
List the caller's webhook subscriptions (rules created via the subscribe tools), newest-first. Use `status` to filter to active or disabled rules.
tickerbot_patch_webhook id*namecadenceenabledtarget_url
Edit a webhook in place: `name`, `cadence`, `target_url`, `enabled` (pausing/resuming without losing match-state). The trigger (q) and channel are immutable by design — delete and…
tickerbot_scan q*dirasoffulllimitorder +6
Run a SQL WHERE clause against the live ticker universe (or against a past moment with `asof` — unlimited depth on every plan). Returns matching tickers sorted by chosen column, OR…
tickerbot_search_news q*dirlimitordercursorhaving +3
Search the news archive (back to 2015) with a SQL WHERE clause. Available on every plan. Columns on news_article include `time_published`, `title`, `summary`, `source`, `source_dom…
tickerbot_subscribe_events qnamekinds*channelevent_qtickers +4
Create an event-trigger webhook: fires when NEW events land — dividends, splits, insider filings, analyst actions ("every split in my universe", "Goldman downgrades on large caps")…
tickerbot_subscribe_scan q*namecadencechanneluniversedevice_id +2
Register a webhook that fires when matches for a scan query change. Pass `target_url` for an https POST, or `channel:"discord"` + `discord_url` to post an embed to Discord; omit fo…
tickerbot_subscribe_signal namesignal*tickercadencechanneluniverse +4
Register a webhook that fires when a signal turns true (booleans) or its value crosses a condition (numerics). Optional `ticker` restricts to one symbol; omit to watch the whole un…
tickerbot_subscribe_ticker nameticker*cadencechannelcondition*device_id +2
Register a webhook that fires when one ticker matches a condition. `condition` is a SQL WHERE-clause fragment scoped to that ticker (e.g. "rsi_14 > 70 AND relative_volume > 2"). Pa…
tickerbot_test_webhook id*
Send a real-shape `webhook.fired` POST to the webhook's target_url synchronously, right now. The body is byte-identical to a real fire (same signing); the test marker rides in an `…
tickerbot_update_custom_signal exprname*new_namedescription
Edit one of the caller's custom signals — supply `expr`, `description`, `new_name`, or any combination. Providing `expr` recompiles it against the live column whitelist. Renaming i…
tickerbot_update_universe id*addnameremovetickersdescription
Update one of the caller's universes. Pass `name`/`description` to relabel, `tickers` to replace the whole list, or `add`/`remove` to adjust subsets without replacing. System unive…