mcpbeat Sign in

Tickerbot MCP Server

by tickerbot Your server? Claim it
answering

Tickerbot is answering right now. Last checked moments ago. 38 installs a week from npm. It exposes 32 tools. Last commit 18 Sep 2026.

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

Installs per day peak 16 · avg 7 · +50% w/w
a month agotoday
Uptime history 47 days of history · worst day 99%
47 days agonow
100.0%
Uptime 24h
92 of 92 checks
32
Tools
read from the server
454 ms
Response time
average over 24h
38
Installs / week
npm and PyPI

What changed 103

Every tool that appeared, vanished or quietly changed what it asks for. Recorded since 10 August 2026. No other catalogue keeps this.

18 Sep 4 tools changed the parameters they ask for tickerbot_list_events, tickerbot_list_tickers, tickerbot_scan and 1 more
17 Sep 26 tool descriptions were rewritten tickerbot_create_custom_signal, tickerbot_create_universe, tickerbot_create_webhook and 23 more
17 Sep 23 tools changed the parameters they ask for tickerbot_create_custom_signal, tickerbot_create_universe, tickerbot_create_webhook and 20 more
17 Sep 8 tools disappeared tickerbot_get_signals_match, tickerbot_get_ticker_bars, tickerbot_get_ticker_history and 5 more
17 Sep 6 tools appeared tickerbot_get_bars, tickerbot_get_etf_holdings, tickerbot_get_etf_sectors and 3 more
15 Sep 9 tool descriptions were rewritten tickerbot_get_series, tickerbot_get_signals_match, tickerbot_get_ticker and 6 more
15 Sep 3 tools changed the parameters they ask for tickerbot_get_series, tickerbot_list_events, tickerbot_update_custom_signal
14 Sep 2 tools changed the parameters they ask for tickerbot_get_ticker_bars, tickerbot_list_events
14 Sep a tool disappeared tickerbot_list_signal_events
8 Sep 2 tool descriptions were rewritten tickerbot_get_ticker, tickerbot_list_tickers
and 19 more, back to 10 August 2026

Tickerbot missed one check this week

Everything else answered, so this is steady rather than shaky. We check every 15 minutes, which is how a one-off gets told apart from the start of a pattern, and how you hear about the next one within the hour instead of from your users.

Three servers free · no card

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 0 min ago.

run in your terminal
claude mcp add mcp-server --transport http https://api.tickerbot.io/mcp
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "mcp-server": {
      "url": "https://api.tickerbot.io/mcp"
    }
  }
}
~/.codex/config.toml
[mcp_servers.mcp-server]
url = "https://api.tickerbot.io/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "mcp-server": {
      "url": "https://api.tickerbot.io/mcp"
    }
  }
}
.vscode/mcp.json
{
  "mcpServers": {
    "mcp-server": {
      "url": "https://api.tickerbot.io/mcp"
    }
  }
}

This one needs environment variables set before it will start: TICKERBOT_API_KEY (Tickerbot API key (tb_live_… or tb_test_…). Get one at https://tickerbot.io/dashboard.). The author declared them in the registry entry; get the values from the project itself.

Available tools 32

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

tickerbot
tickerbot_create_custom_signal
A named boolean predicate you can reference anywhere a built-in signal goes.
tickerbot_create_universe
Create a named ticker list owned by your account.
tickerbot_create_webhook
Canonical create: a webhook is a trigger plus a delivery. Trigger shapes: scan {type:"scan", q, universe?}; ticker {type:"ticker", ticker, condition}; signal {type:"signal", signal, ticker?, universe?, condition?}; event {type:"event", kinds, tickers?, universe?, event_q?}. The subscribe tools are flat sugar over exactly this. Webhooks need a paid plan (Free has no webhook slots).
tickerbot_delete_custom_signal
Delete one of your custom signals. Refused by default if another of your signals references it.
tickerbot_delete_universe
Permanently delete one of your universes. Webhooks that reference the deleted universe fail on their next eval — clean those up first.
tickerbot_delete_webhook
Delete a webhook subscription, and its delivery history with it.
tickerbot_enable_webhook
Re-enable a disabled webhook and start it clean. Clears match-state, so the next eval treats every currently-matching ticker as new.
tickerbot_get_bars
OHLCV bars from 1-second through monthly. The feed underneath the table.
tickerbot_get_etf_holdings
Returns an ETF's constituents 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 means a real ETF whose holdings are not ingested yet. The reverse lookup ("which ETFs hold NVDA") is a scan filter on `etf_holders`, not this tool.
tickerbot_get_etf_sectors
Returns an ETF's sector weights, heaviest first. Always complete, since sector breakdowns are small. When the ticker is not an ETF, `is_etf` is false and `sectors` is empty.
tickerbot_get_series
Any signals for any tickers on one shared time grid — up to 50 tickers by 25 columns per call. One flat row per ticker per interval step, cursor-paged backward. `transitions_only: true` with boolean signals returns only the rows where a boolean flipped.
tickerbot_get_signal
The state of a signal is the set of tickers matching it right now, or with `asof`, as of any moment. One name, the whole market, one call. Booleans need no `condition`; numerics need one like ">70". Sorted by signal value desc for numerics.
tickerbot_get_ticker
The full ticker row, every signal on the schema page, for one symbol or a comma list of up to 50. Right now, or with `asof`, as of any past date. Pass a comma list of up to 50 symbols for a batch (`data` keyed by symbol plus `not_found`). Crypto is the X-prefixed pair (X:BTCUSD) — bare BTC/ETH are US-listed ETFs.
tickerbot_get_ticker_coverage
For one ticker, what we hold and how far back — so an empty result is never ambiguous. Ask this before treating a gap in bars or series as an outage. `minute_tier.included: false` with `on_demand: true` is not a gap — sub-hour bars fetch from the provider on first request.
tickerbot_get_universe
Returns the universe doc. Use `top_10`/`top_100` to fetch a system universe; any other slug must be one your account owns.
tickerbot_get_webhook
The current state of one webhook subscription.
tickerbot_list_events
One timeline across every ticker: earnings, dividends, splits, insider filings, analyst actions, plus opt-in signal firings and news. Requires at least one bound: a ticker scope (ticker/tickers/universe), a time window (from/to), or firm/action — `q` alone is not a bound. `firm`/`action` match case-insensitively; a `q` payload match is case-sensitive. `join: state` attaches the ticker state as of each event.
tickerbot_list_signals
Every signal you can name in a query — the built-in signals and your own custom signals, in one catalog. Use to discover the signal names and `q` vocabulary before composing a scan; custom signals appear with `kind: custom`.
tickerbot_list_tickers
Every symbol we track, active or delisted, as one identity row each. Use `/v2/tickers/{ticker}` for the full row.
tickerbot_list_universes
Every universe you can reference: your own named ticker lists and the built-in ones. `owner: system` lists the built-in universes (top_10, top_100); `all` lists both. Use a slug as `universe` on scan, signal, and subscribe tools.
tickerbot_list_webhook_deliveries
Recent deliveries for one webhook — what was sent, and what came back.
tickerbot_list_webhooks
Every webhook subscription on this account, newest first.
tickerbot_scan
Every ticker matching a SQL WHERE clause. Right now, or with `asof`, as of any past date. The `q` grammar is a flat SQL WHERE over signal names: AND/OR/NOT, comparisons, numeric and string literals, custom signals by name. No JOIN or subqueries. With `group_by` the result is rollup rows, not tickers. Example: `gap_up AND market_cap < 2000000000 AND NOT earnings_this_week`.
tickerbot_search_news
SQL query over the news archive. Article rows, or rollups when you group them. Filter to a ticker with the `ticker` param, or in `q` via the auto-unnest alias `tk = 'NVDA'`. `search` is full-text over title and summary. Rollups with group_by/having return `truncated: true` instead of paging.
tickerbot_subscribe_events
Push new events: we POST your endpoint when events of the kinds you chose land in the archives. Webhooks need a paid plan (Free has no webhook slots). `q` filters the ticker STATE; `event_q` filters the EVENT payload in the /v2/events grammar. Latency is the ingest cadence (analyst ≤1h, corporate kinds daily), not sub-minute.
tickerbot_subscribe_scan
Push a whole query: we POST your endpoint every time the match set changes. Webhooks need a paid plan (Free has no webhook slots). Use for "alert me when this happens" requests.
tickerbot_subscribe_signal
Push one signal: we POST your endpoint whenever any ticker starts matching it. Webhooks need a paid plan (Free has no webhook slots). Omit `ticker` to watch the whole universe.
tickerbot_subscribe_ticker
Push one ticker: we POST your endpoint whenever it matches the condition you give. Webhooks need a paid plan (Free has no webhook slots). Omit `target_url` for in-app delivery.
tickerbot_test_webhook
Send a real-shape test POST to your endpoint, instantly. One-shot: a failed test never retries and never auto-disables the webhook. 400 when the webhook has no target_url.
tickerbot_update_custom_signal
Update a custom signal you own — its expression, description, or name.
tickerbot_update_universe
Update one of your universes: its name, description, or members. `tickers` replaces the whole list; `add`/`remove` adjust it. System universes cannot be edited.
tickerbot_update_webhook
Edit a webhook in place — send only the fields you want to change. The trigger and channel are immutable — delete and re-create to change what fires or where it delivers. Unknown fields are a 400.

Tools removed

Tools this server used to expose. Anything built against them stopped working on the day they went.

tickerbot_explain_scan
removed 7 Aug 2026
tickerbot_get_signal_history
removed 7 Aug 2026
tickerbot_get_ticker_events
removed 7 Aug 2026
tickerbot_get_ticker_history_series
removed 7 Aug 2026
tickerbot_list_analyst_events
removed 7 Aug 2026
tickerbot_list_signal_events
removed 14 Sep 2026
tickerbot_get_signals_match
removed 17 Sep 2026
tickerbot_get_ticker_bars
removed 17 Sep 2026
tickerbot_get_ticker_history
removed 17 Sep 2026
tickerbot_get_ticker_holdings
removed 17 Sep 2026
tickerbot_get_ticker_sectors
removed 17 Sep 2026
tickerbot_list_signals_catalog
removed 17 Sep 2026
tickerbot_list_system_universes
removed 17 Sep 2026
tickerbot_patch_webhook
removed 17 Sep 2026

Endpoints

URLTransportStateLatencyChecked
https://api.tickerbot.io/mcp streamable-http answering 425 ms 0 min ago

Alternatives to Tickerbot

same job, measured the same way
Better Stack MCP
by servosity

Every Better Stack Uptime feature, plus an offline SQLite mirror and cross-resource fleet analytics

local only
KnowBe4 MCP
by servosity

Every KnowBe4 KMSAT reporting feature plus a local SQLite store that answers the cross-client

local only
Autotask MCP
by servosity

Every Autotask entity at the command line, plus a local SQLite mirror that answers ticket-aging

local only
IT Glue MCP
by servosity

Every IT Glue resource, plus an offline SQLite mirror, fleet-wide cross-resource search, and

local only
SentinelOne MCP
by servosity

Every SentinelOne v2.1 management endpoint, plus an offline SQLite store and cross-entity analytics

local only
LINQ to DB
by linq2db

Inspect database schemas and execute SQL queries across multiple database providers with LINQ to DB.

local only
DBConvert Streams (Federated SQL)
by dbconvert

Read-only SQL across your PostgreSQL, MySQL, S3 buckets and local data files, in one query.

71 installs/wk local only
Tactical RMM MCP
by servosity

Every Tactical RMM endpoint as a typed command, plus an offline SQLite mirror and cross-entity

local only

Tickerbot — questions

Answers built from our own checks of this server.

What can Tickerbot do?
It exposes 32 tools, read directly from the server on our last check. Among them: tickerbot_create_custom_signal, tickerbot_create_universe, tickerbot_create_webhook, tickerbot_delete_custom_signal, tickerbot_delete_universe, tickerbot_delete_webhook and 26 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
Is Tickerbot working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 92 of 92 checks got a reply (100.0%), average response time 454 ms. The bar chart above shows every period we have measured.
Did Tickerbot ever remove tools?
Yes. tickerbot_explain_scan, tickerbot_get_signal_history, tickerbot_get_ticker_events, tickerbot_get_ticker_history_series and 10 more are no longer exposed — we recorded the date each one disappeared. A tool vanishing usually means a breaking change for anything that depended on it.
How do I connect Tickerbot?
Copy the ready config from this page — we generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each with the file path that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does Tickerbot need an API key?
No. Tickerbot completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 32 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is Tickerbot?
It answers our handshake in 454 ms on average, which is faster than 32% of all working MCP servers we measure. The comparison comes from our own checks across the whole registry, every 15 minutes.
How many people use Tickerbot?
The npm package @tickerbot/mcp-server was installed 38 times in the last week. Week over week that is +50%. We show installs rather than GitHub stars on purpose: a star is a bookmark, an install is someone actually running it.
Is Tickerbot open source?
We cannot say either way: written in TypeScript and 0 stars on GitHub, but we could not determine the licence, and without one the code is not open source by default.