io.github.tickerbot/mcp-server
io.github.tickerbot/mcp-server · v0.1.3 · MCP 2024-11-05
The stock market, in SQL — scan, replay, or subscribe across ~12k US tickers and top 100 cryptos.
Reachability
reachable
checked 2026-07-14 04:29 UTC
Registry status active
Tools pinned 32
097bb21be940
Tools last changed
unchanged since first capture 2026-07-14
Provenance
Registry namespace io.github.tickerbot
(GitHub-account verified by the official registry)
Repository
github.com/tickerbot/tickerbot-mcp
Website
https://tickerbot.io/mcp-server
Remote endpoints
https://api.tickerbot.io/mcp (streamable-http)
Observed changes
| When (UTC) | Event | Detail |
|---|---|---|
| 2026-07-14 03:21 | first capture | 32 tools pinned |
Pinned tool definitions (32)
| Tool | Description |
|---|---|
| tickerbot_list_tickers | List active tickers from the Tickerbot universe (~12,000 US equities + top 100 crypto). Use `tickers` for bulk lookup of named symbols (returns full rows); otherwise walks the universe alphabetically with `cursor` pagination. Supports... |
| tickerbot_get_ticker | 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 `asof` (YYYY-MM-DD) for the row as it stood at the... |
| tickerbot_get_ticker_history | Time-travel: get the full wide row for one ticker as it stood at a past date. Returns indicators, boolean flags, and the most-recent fundamentals known on that date. Use for backtests and reconstructions. |
| tickerbot_get_ticker_events | Get the discrete corporate-event log for one ticker — dividends, splits, and insider transactions — merged newest-first. (Analyst rating changes are NOT here; they are a separate feed.) Optional `kind` filter and `before` back-paging. |
| tickerbot_get_ticker_bars | 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 symbol. Use `asof` for a single point-in-time bar, or... |
| tickerbot_get_ticker_holdings | 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. (The reverse lookup "which ETFs hold NVDA" is a scan filter on the `etf_holders` column, not... |
| tickerbot_get_ticker_sectors | 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. |
| tickerbot_list_signals_catalog | List the unified signal catalog: every built-in column on the schema (`kind: builtin`) plus the caller's custom signals (`kind: expression`). Use to discover what `q=` clauses and signal names are available before composing a scan. |
| tickerbot_get_signals_match | Find tickers that match a single signal right now (or at a past date with `asof`). Booleans need no condition. Numerics need a `condition` like ">70" or "<=200". Sorted by signal value desc for numerics. |
| tickerbot_get_signal_history | Get the time series of one signal for one ticker at a chosen interval (1m, 1h, 1d, 1w). |
| tickerbot_list_signal_events | Discrete firings of a boolean signal for one ticker, newest-first. |
| tickerbot_create_custom_signal | Save a SQL WHERE expression as a named custom signal the caller can reference by name in future scans. |
| tickerbot_update_custom_signal | Edit one of the caller's custom signals — supply `expr`, `description`, or both. Providing `expr` recompiles it against the live column whitelist. Built-in signals are read-only; only custom signals the caller owns can be patched. Scale... |
| tickerbot_delete_custom_signal | 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: true` to delete anyway — existing references will break... |
| tickerbot_scan | Run a SQL WHERE clause against the live ticker universe (or against a past trading day with `asof`). Returns matching tickers sorted by chosen column. The `q` grammar is a flat WHERE: column names from the schema, AND/OR/NOT, comparison... |
| tickerbot_list_universes | List the caller's saved universes. |
| 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 regardless of plan. Use these slugs as `universe` in... |
| tickerbot_get_universe | Get one universe by slug, including its ticker list. |
| tickerbot_create_universe | Create a new universe (named set of tickers) for scoping future scans. |
| tickerbot_update_universe | 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 universes (`top_10`/`top_100`) cannot be edited. |
| tickerbot_delete_universe | 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 those up first. |
| tickerbot_list_analyst_events | List per-event analyst rating history (upgrades, downgrades, initiations, price-target changes) from the analyst_events archive (history back to 2012). Plan-gated: Scale+ required. Filters are AND-combined and at least one of `ticker`,... |
| tickerbot_search_news | Search the news archive (back to 2015) with a SQL WHERE clause. Plan-gated: Scale+ required for the archive. Columns on news_article include `time_published`, `title`, `summary`, `source`, `source_domain`, `category`, `authors`,... |
| tickerbot_subscribe_ticker | 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"). Pass `target_url` for an https POST, or... |
| tickerbot_subscribe_signal | 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 universe. Pass `target_url` for an https POST, or... |
| tickerbot_subscribe_scan | 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 for in-app delivery in the dashboard. `cadence` is... |
| tickerbot_list_webhooks | List the caller's webhook subscriptions (rules created via the subscribe tools), newest-first. Use `status` to filter to active or disabled rules. |
| tickerbot_get_webhook | 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_webhook_deliveries | 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 stored. |
| tickerbot_test_webhook | 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 `X-Tickerbot-Test: true` header. Returns the inline... |
| tickerbot_enable_webhook | 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 auto-disable. No-op on an already-active webhook. |
| tickerbot_delete_webhook | Delete a webhook subscription by id. Use after listing webhooks when the user wants to remove an alert. |
Status badge
[](https://toolpin.dev/servers/io.github.tickerbot/mcp-server)
Maintain this server? Add the badge to your README — it links your users to this live status page.