mcp-server

tickerbot: фондовый рынок как SQL — сканер, история и подписки по ~12 000 тикеров и топ-100 крипто

От сообщества: Добавлен пользователем или импортирован; проверьте владельца перед подключениемРаботаетНужен API-ключГлобальныйБесплатноТолько чтение

Что умеет

  • Искать и получать данные по тикерам и ETF
  • Сканировать рынок по условиям и подписываться на сканы
  • Создавать и настраивать собственные сигналы
  • Получать исторические свечи и события
  • Управлять вселенными тикеров и вебхуками

Какие данные видит

Доступ по API-ключу к рыночным данным и настройкам подписок владельца ключа.

Нужен ли аккаунт

Нужен API-ключ из настроек сервиса

MCP-сервер позволяет запрашивать данные фондового и криптовалютного рынка структурировано, будто через SQL: сканировать по критериям, воспроизводить исторические свечи, подписываться на события и сигналы. Поддерживает кастомные сигналы и вселенные тикеров.

Как подключить

Как подключить mcp-server к Claude

Адрес сервера, который нужно вставить в настройках Claude:

https://api.tickerbot.io/mcp

  1. Откройте Claude (сайт claude.ai или приложение для компьютера).
  2. Перейдите в Настройки → Коннекторы (в английском интерфейсе: Settings → Connectors).
  3. Нажмите Добавить пользовательский коннектор (Add custom connector).
  4. Вставьте адрес сервера, скопированный ниже, в поле URL удалённого MCP-сервера и нажмите Добавить.
  5. В чате нажмите + → Коннекторы и включите новый коннектор.

Пользовательские коннекторы доступны на тарифах Free, Pro, Max, Team и Enterprise. На Free можно добавить только один. В Team и Enterprise коннектор сначала добавляет владелец организации в Настройки организации → Коннекторы.

Авторизация

После нажатия Добавить откроется окно входа в сервис. Войдите под своим аккаунтом и подтвердите доступ. Пароль Claude не видит.

Как подключить mcp-server к ChatGPT

Адрес сервера, который нужно вставить в настройках ChatGPT:

https://api.tickerbot.io/mcp

  1. Откройте ChatGPT в браузере (chatgpt.com). Нужен тариф Plus, Pro, Business, Enterprise или Edu.
  2. Один раз включите режим разработчика: Настройки → Приложения → Дополнительные настройки → Режим разработчика (Settings → Apps → Advanced settings → Developer mode).
  3. Откройте Настройки → Коннекторы и нажмите Создать (Create).
  4. Заполните форму: Название (любое), Описание (одна фраза, что делает сервис), URL MCP-сервера (скопируйте ниже).
  5. В поле Аутентификация выберите OAuth, если сервис требует вход, иначе Нет. Нажмите Создать.
  6. В новом чате откройте + → Приложения/Коннекторы и включите коннектор.

Название раздела у OpenAI менялось (Connectors → Apps/Plugins). Если пункт называется иначе, ищите «режим разработчика» в настройках. В рабочих пространствах Business/Enterprise администратор должен разрешить пользовательские коннекторы.

Авторизация

При первом использовании ChatGPT откроет окно входа в сервис. Войдите и подтвердите доступ.

Как подключить mcp-server к Cursor

Адрес сервера, который нужно вставить в настройках Cursor:

https://api.tickerbot.io/mcp

Быстрый способ: нажмите кнопку Открыть в Cursor ниже, Cursor сам предложит добавить сервер.

Вручную:

  1. В Cursor откройте Settings → Cursor Settings → MCP и нажмите Add new global MCP server.
  2. Вставьте JSON, скопированный ниже, в открывшийся файл ~/.cursor/mcp.json (для одного проекта: .cursor/mcp.json в корне проекта).
  3. Сохраните файл. Сервер появится в списке MCP; при необходимости пройдите авторизацию по кнопке рядом с ним.

Авторизация

Если сервис требует вход, рядом с сервером в списке MCP появится кнопка авторизации.

Список инструментов сервера (32)

Технические названия из tools/list. Нужны только разработчикам.

tickerbot_list_tickersEvery symbol we track, active or delisted, as one identity row each. Use `/v2/tickers/{ticker}` for the full row.
tickerbot_get_tickerThe 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_subscribe_tickerPush 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_get_ticker_coverageFor 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_list_signalsEvery 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_create_custom_signalA named boolean predicate you can reference anywhere a built-in signal goes.
tickerbot_update_custom_signalUpdate a custom signal you own — its expression, description, or name.
tickerbot_delete_custom_signalDelete one of your custom signals. Refused by default if another of your signals references it.
tickerbot_get_signalThe 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_subscribe_signalPush 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_scanEvery 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_subscribe_scanPush 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_get_seriesAny 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_barsOHLCV bars from 1-second through monthly. The feed underneath the table.
tickerbot_list_eventsOne 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_subscribe_eventsPush 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_search_newsSQL 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_get_etf_holdingsReturns 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_sectorsReturns 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_list_universesEvery 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_create_universeCreate a named ticker list owned by your account.
tickerbot_get_universeReturns the universe doc. Use `top_10`/`top_100` to fetch a system universe; any other slug must be one your account owns.
tickerbot_update_universeUpdate one of your universes: its name, description, or members. `tickers` replaces the whole list; `add`/`remove` adjust it. System universes cannot be edited.
tickerbot_delete_universePermanently delete one of your universes. Webhooks that reference the deleted universe fail on their next eval — clean those up first.
tickerbot_list_webhooksEvery webhook subscription on this account, newest first.
tickerbot_create_webhookCanonical 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_get_webhookThe current state of one webhook subscription.
tickerbot_update_webhookEdit 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.
tickerbot_delete_webhookDelete a webhook subscription, and its delivery history with it.
tickerbot_list_webhook_deliveriesRecent deliveries for one webhook — what was sent, and what came back.
tickerbot_enable_webhookRe-enable a disabled webhook and start it clean. Clears match-state, so the next eval treats every currently-matching ticker as new.
tickerbot_test_webhookSend 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.