io.github.tickerbot/mcp-server
Official19 toolsby tickerbot · TypeScript
The stock market, in SQL — scan, replay, or subscribe across ~12k US tickers and top 100 cryptos.
Query and subscribe to stock market data across ~12k US tickers and top 100 cryptos in SQL.
Captured live from the server via tools/list.
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 filters: search, asset_type, exchange, sector, min_market_cap.
Parameters (8)
- tickersstring
Comma-separated symbols (max 50). When set, returns full rows for these symbols and pagination params are ignored.
- limitinteger
Page size. Max 1000. Default 50.
- cursorstring
Opaque cursor from a prior response.
- searchstring
Case-insensitive substring filter on ticker/name. Orders results by market_cap desc.
- asset_typestring
Filter by asset type (e.g. "equity", "crypto").
- exchangestring
Filter by exchange (e.g. "XNYS", "XNAS", "BATS").
- sectorstring
Exact-match sector filter (e.g. "Technology").
- min_market_capnumber
Minimum market cap in USD. Orders results by market_cap desc.
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 close of a past trading day.
Parameters (2)
- tickerstringrequired
Symbol. Case-insensitive. Equities: bare symbol (AAPL). Crypto: bare symbol (BTC).
- asofstring
Optional YYYY-MM-DD. Returns the row at close of that day.
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.
Parameters (2)
- tickerstringrequired
Symbol.
- asofstringrequired
Target date as YYYY-MM-DD or full ISO timestamp.
tickerbot_get_ticker_events
Get the discrete event log for one ticker (splits, dividends, analyst rating changes), newest-first. Optional date window and event-kind filter.
Parameters (6)
- tickerstringrequired
Symbol.
- fromstring
Earliest event timestamp (inclusive). YYYY-MM-DD or ISO.
- tostring
Latest event timestamp (inclusive). YYYY-MM-DD or ISO.
- kindstring
Filter by event kind.
- limitinteger
Page size. Max 1000. Default 100.
- cursorstring
Opaque cursor.
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.
Parameters (3)
- kindstring
Filter by kind. Omit for both.
- limitinteger
Page size for custom slice. Max 200. Default 50.
- cursorstring
Opaque cursor.
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.
Parameters (6)
- signalstringrequired
Column name on ticker (e.g. golden_cross_today, rsi_14, market_cap).
- conditionstring
Required for numerics. Single bound: <op><value>, ops in (>, >=, =, !=, <, <=).
- asofstring
Optional YYYY-MM-DD. Match against historical daily state.
- universestring
Optional universe slug.
- limitinteger
Page size. Max 200. Default 50.
- cursorstring
Opaque cursor.
tickerbot_get_signal_history
Get the time series of one signal for one ticker at a chosen interval (1m, 1h, 1d, 1w).
Parameters (7)
- signalstringrequired
Column name.
- tickerstringrequired
Symbol.
- intervalstringrequired
Bar interval.
- fromstring
Earliest bar timestamp.
- tostring
Latest bar timestamp.
- limitinteger
Page size.
- cursorstring
Opaque cursor.
tickerbot_list_signal_events
Discrete firings of a boolean signal for one ticker, newest-first.
Parameters (6)
- signalstringrequired
Boolean signal column.
- tickerstringrequired
Symbol.
- fromstring
Earliest event timestamp.
- tostring
Latest event timestamp.
- limitinteger
Page size.
- cursorstring
Opaque cursor.
tickerbot_create_custom_signal
Save a SQL WHERE expression as a named custom signal the caller can reference by name in future scans.
Parameters (3)
- namestringrequired
Snake_case identifier.
- exprstringrequired
SQL WHERE expression. Same grammar as scan `q`.
- descriptionstring
Optional human description.
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 operators, numeric/string literals. No JOIN, GROUP BY, or subqueries. Example: `gap_up AND market_cap < 2000000000 AND NOT earnings_this_week`.
Parameters (8)
- qstringrequired
SQL WHERE expression. Max 4000 chars.
- universestring
Optional universe slug.
- asofstring
Optional YYYY-MM-DD for historical scan.
- orderstring
Sort column. Default day_change_pct.
- dirstring
Sort direction.
- fieldsstring
Comma-separated extra columns to include.
- limitinteger
Page size. Max 100. Default 50.
- cursorstring
Opaque cursor.
tickerbot_list_universes
List the caller's saved universes.
Parameters (2)
- limitinteger
Page size.
- cursorstring
Opaque cursor.
tickerbot_get_universe
Get one universe by slug, including its ticker list.
Parameters (1)
- idstringrequired
Universe slug.
tickerbot_create_universe
Create a new universe (named set of tickers) for scoping future scans.
Parameters (2)
- namestringrequired
Human-readable name.
- tickersarrayrequired
List of ticker symbols.
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`, `topics`, `tickers` (array), `overall_sentiment_score`, `overall_sentiment_label`, `url`. To filter to one ticker use `'NVDA' = ANY(tickers)` or the auto-unnest alias `tk = 'NVDA'`. Example: `q=tk='NVDA' AND time_published >= NOW() - INTERVAL '1 day'`. Supports group_by + having for aggregation (e.g. count of articles per day).
Parameters (8)
- qstringrequired
SQL WHERE on news_article. Required.
- selectstring
Comma-separated columns to include. Defaults to a slim set.
- group_bystring
Comma-separated columns for aggregation.
- havingstring
WHERE-style filter on aggregates. Requires group_by.
- orderstring
Sort column or SELECT alias. Default time_published (non-aggregate) or volume (aggregate).
- dirstring
Sort direction.
- limitinteger
Page size.
- cursorstring
Opaque cursor.
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 outbound delivery or omit for in-app.
Parameters (5)
- tickerstringrequired
Symbol.
- conditionstringrequired
SQL WHERE fragment evaluated for this ticker.
- namestring
Human-readable label.
- target_urlstring
Optional https URL for delivery; omit for in-app.
- cadencestring
Evaluation cadence.
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 outbound delivery or omit for in-app.
Parameters (7)
- signalstringrequired
Column name (e.g. golden_cross_today, rsi_14).
- tickerstring
Optional ticker to restrict the watch to one symbol.
- universestring
Optional universe slug.
- conditionstring
Required for numerics: single bound like ">70" or "<=200". Ignored for booleans.
- namestring
Human-readable label.
- target_urlstring
Optional https URL for delivery; omit for in-app.
- cadencestring
Evaluation cadence.
tickerbot_subscribe_scan
Register a webhook that fires when matches for a scan query change. Pass `target_url` to deliver to your own URL (Discord, Slack, server endpoint); omit for in-app delivery in the dashboard. `cadence` is plan-gated (Hobby max 5m, Pro+ 1m). Use to satisfy "alert me when this happens" prompts.
Parameters (5)
- qstringrequired
SQL WHERE expression — same grammar as scan.
- namestring
Human-readable label. Defaults to a truncated version of the query.
- universestring
Optional universe slug to scope the watch.
- target_urlstring
Optional https URL to POST matches to. Omit for in-app delivery.
- cadencestring
Evaluation cadence.
tickerbot_list_webhooks
List the caller's active webhook subscriptions (rules created via the subscribe tools).
Parameters (2)
- limitinteger
Page size.
- cursorstring
Opaque cursor.
tickerbot_delete_webhook
Delete a webhook subscription by id. Use after listing webhooks when the user wants to remove an alert.
Parameters (1)
- idstringrequired
Webhook id (looks like `wh_…`).
README not available yet.
Install
Configuration
TICKERBOT_API_KEYrequiredsecretTickerbot API key (tb_live_… or tb_test_…). Get one at https://tickerbot.io/dashboard.
claude_desktop_config.json
{
"mcpServers": {
"mcp-server": {
"command": "npx",
"args": [
"-y",
"@tickerbot/mcp-server@0.1.3"
],
"env": {
"TICKERBOT_API_KEY": "<YOUR_TICKERBOT_API_KEY>"
}
}
}
}