Mmcp.market

MCP Server

by tickerbot·io.github.tickerbot/mcp-server·v0.1.3

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

A90/100grade A
What users say
No reviews yet
Be the first
Safety scan
A90/100

full report

Adoption
Growing

0 stars80 downloads/wk

Reviews

Write one

Nobody has reviewed MCP Server yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

MCP Server tools (32, 10 write)

write = sends, deletes, buys or posts
  • tickerbot_create_custom_signalwrite actionFree

    A named boolean predicate you can reference anywhere a built-in signal goes.

  • tickerbot_create_universewrite actionFree

    Create a named ticker list owned by your account.

  • tickerbot_create_webhookwrite actionFree

    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_signalwrite actionFree

    Delete one of your custom signals. Refused by default if another of your signals references it.

  • tickerbot_delete_universewrite actionFree

    Permanently delete one of your universes. Webhooks that reference the deleted universe fail on their next eval — clean those up first.

  • tickerbot_delete_webhookwrite actionFree

    Delete a webhook subscription, and its delivery history with it.

  • tickerbot_enable_webhookFree

    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_barsFree

    OHLCV bars from 1-second through monthly. The prices underneath the table.

  • tickerbot_get_etf_holdingsFree

    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_sectorsFree

    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_seriesFree

    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_signalFree

    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`; every other type needs one, typed like the signal: ">70" (numeric), "<YYYY-MM-DDTHH:MM:SSZ" (timestamp), ">=YYYY-MM-DD" (date), "=ETF" (string). Sorted by signal value desc for non-booleans.

  • tickerbot_get_tickerFree

    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_coverageFree

    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_universeFree

    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_webhookFree

    The current state of one webhook subscription.

  • tickerbot_list_eventsFree

    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_signalsFree

    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_tickersFree

    Every symbol we track, active or delisted, as one identity row each. Use `/v2/tickers/{ticker}` for the full row.

  • tickerbot_list_universesFree

    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_deliveriesFree

    Recent deliveries for one webhook — what was sent, and what came back.

  • tickerbot_list_webhooksFree

    Every webhook subscription on this account, newest first.

  • tickerbot_scanFree

    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_newsFree

    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_eventsFree

    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_scanFree

    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_signalFree

    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_tickerFree

    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_webhookwrite actionFree

    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_signalwrite actionFree

    Update a custom signal you own — its expression, description, or name.

  • tickerbot_update_universewrite actionFree

    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_webhookwrite actionFree

    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.

Public scan report

scanner v0.1.9 · 2026-09-27 · same rubric, same numbers if you re-run it

no findings
  • Code scan8 source files scanned25/25
  • Live reliabilityremote reachable in 348ms20/20
  • Tool poisoning32 tool descriptions checked15/15
  • Auth qualityAPI key sent as a header8/15
  • Maintenancelast push 9 days ago15/15
  • Maintainer identityregistry namespace matches repository owner7/10
Overall 90/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

What the publisher says

From the MCP Server repository's README, as published. We do not edit it. Read it on GitHub

@tickerbot/mcp-server

Model Context Protocol server for Tickerbot — the stock market, in SQL. Install in Claude, Cursor, VS Code Copilot, and other MCP-compatible clients to scan ~14,500 US-listed equities plus a curated set of rates, FX and crypto series, replay any day, or subscribe a query — across 421+ signal columns.

Install

You need a Tickerbot API key. Get one from your dashboard.

Claude Desktop

Add to ~/Library/Application Support/Claude/claudedesktopconfig.json (macOS) or %APPDATA%/Claude/claudedesktopconfig.json (Windows):

{
  "mcpServers": {
    "tickerbot": {
      "command": "npx",
      "args": ["-y", "@tickerbot/mcp-server"],
      "env": {
        "TICKERBOT_API_KEY": "tb_live_..."
      }
    }
  }
}

Restart Claude Desktop.

Claude Code

claude mcp add tickerbot --env TICKERBOT_API_KEY=tb_live_... -- npx -y @tickerbot/mcp-server

Cursor

Add to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "tickerbot": {
      "command": "npx",
      "args": ["-y", "@tickerbot/mcp-server"],
      "env": { "TICKERBOT_API_KEY": "tb_live_..." }
    }
  }
}

VS Code (Copilot)

Add to .vscode/mcp.json in your workspace:

{
  "servers": {
    "tickerbot": {
      "command": "npx",
      "args": ["-y", "@tickerbot/mcp-server"],
      "env": { "TICKERBOT_API_KEY": "tb_live_..." }
    }
  }
}

Tools

19 tools covering tickers, signals, scans, universes, news, and webhook subscriptions.

Strategies are not exposed via MCP — see the REST API docs for those.

Examples

Open Claude and try:

"Find oversold semiconductor stocks bouncing on volume."

"What's NVDA's RSI and short interest right now?"

"How often has the gap-up + small-cap + high-RVOL setup hit over the last 30 days?"

"Save a signal called oversoldwithvolume defined as rsi14 < 30 AND volumeratio20d > 2."*

Configuration

Remote install

For consumer chat apps (Claude.ai web/mobile, ChatGPT) that don't run subprocesses, use the hosted remote MCP endpoint at https://mcp.tickerbot.io instead. See tickerbot.io/mcp-server for setup.

License

MIT

Nothing above is checked by us. What we check is on the safety report.

Install directly

claude mcp add --transport http mcp-server https://api.tickerbot.io/mcp
Add to Cursor

MCP Server: common questions

Is MCP Server safe?
Yes, by our scan: it is graded A (90/100). Read the MCP Server safety report
How do I install MCP Server?
It runs remotely at api.tickerbot.io. Add it to Claude Code, Claude Desktop or Cursor with the snippets above, or call it through the mcp.market gateway without installing anything.
Does MCP Server need an API key?
Yes. The registry entry asks for TICKERBOT_API_KEY, Authorization.
Is MCP Server maintained?
The last commit was 10 days ago (2026-09-17). The latest release is v0.1.3.
Is MCP Server up?
96% of our last 28 checks got an answer. We check remote servers about four times a day.
What can I use instead of MCP Server?
Servers from other publishers that do the same job: LINQ to DB MCP server, DBConvert Streams (Federated SQL) MCP server and DBHub MCP server. Compare all MCP Server alternatives.

Alternatives to MCP Server

Same job from other publishers: the closest match first, then the best rated.

All MCP Server alternatives →
  • LINQ to DB
    Inspect database schemas and execute SQL queries across multiple database providers with LINQ to DB.
    A
  • DBConvert Streams (Federated SQL)
    Read-only SQL across your PostgreSQL, MySQL, S3 buckets and local data files, in one query.
    A
  • DBHub
    Token-efficient database MCP server for PostgreSQL, MySQL, MariaDB, SQL Server, Oracle, SQLite
    A
  • GeoLens
    Read-only access to a self-hosted GeoLens spatial catalog: datasets, features, maps, sandboxed SQL.
    B
  • StackQL MCP Server
    SQL-native query and provisioning engine for cloud infrastructure, served over MCP.
    A

More from tickerbot →