TickerDB

com.tickerdbPublished by tickerdb.comOfficial publisherv1.8.6Updated Oct 24, 2026

Pre-computed market data that improves agent reasoning, reduces token usage, and replaces pipelines.

VerifiedStreamable HTTPWeb executableFinanceData & Analytics

Overview

AI-generated overview

TickerDB gives an assistant pre-computed stock, ETF and crypto market states, screeners, OHLCV history and watchlist tools instead of raw price math.

What you can do
  • Look up pre-computed market intelligence for a ticker: latest snapshot, historical snapshot or series, and what usually happens after a state
  • Pull end-of-day or weekly OHLCV candles for returns, charts and backtests
  • Screen assets by categorical states or rank fields, and inspect the schema of fields and bands
  • Read watchlist summaries and field-level changes, and add or remove tickers on request
  • Query account plan, credit limits and usage
When to use it
Useful when an assistant should reason about US stocks, ETFs or crypto from named states such as oversold or strong uptrend, screen for setups, or report what changed on a watchlist, without computing indicators from raw bars.
Requirements
Either the hosted Streamable HTTP endpoint with OAuth or a Bearer token, or the local npm package tickerdb-mcp run through npx. A TickerDB API key is required for the local package via the TICKERDB_KEY environment variable; a paid plan tier governs credit limits and history depth.
Before you install
The API key is a secret and should be kept out of shared configs. Usage is metered by credits and plan tiers, so heavy screening or history queries can consume quota or incur overage. The add and remove watchlist tools change saved account data, though removal is reversible.

Installation

In SourceWeft

  1. Open TickerDB in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/com.tickerdb%2Fmcp-server/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "tickerdb": {
      "type": "http",
      "url": "https://mcp.tickerdb.com/mcp"
    }
  }
}

README

TickerDB — Stock market data for agents.

Pre-computed stock market data for AI agents. TickerDB returns indicators like trend_direction, support_level, and analyst_consensus as named states — plus what changed and what usually happens next.

10,000+ US stocks, ETFs, and crypto pairs · 182 indicators across trend, momentum, volatility, volume, patterns, support/resistance, fundamentals, and sector context · 7 years of history · tickerdb.com

Tools

ToolDescription
get_summaryTechnical + fundamental snapshot for a ticker. Historical lookups, state transition history, and what usually happens after
get_ohlcvDaily or weekly EOD candles for returns, charts, and backtests
get_searchScreen assets by categorical state or rank by fields like market_cap or pe_ratio
get_schemaDiscover every field (ticker level and market level) and its valid band values
get_marketMarket and macro regime bands (market_, macro_): latest, history, regime changes; combine with get_search to screen tickers under a regime
get_changesWhat changed on the newest date for up to 50 tickers — day-over-day or week-over-week
get_universeSelected fields for every asset on one date, in one call (trading-model input)
get_insidersFind insiders (CEOs, directors, 10% owners, funds) by name, ticker or role
get_insider_tradesOne insider's disclosed trades by disclosure time (copy/inverse insider models)
get_fundsFind ETFs and mutual funds that file SEC N-PORT holdings, by name or ticker
get_fund_holdingsA fund's full portfolio as public on a date (point in time by filing date)
get_fund_holdersWhich funds held a stock on a date, plus its tracked index memberships
get_indexesTracked indexes (S&P 500/400/600/100, Nasdaq-100, Russell 1000/2000) and their source funds
get_index_membersAn index's members on a date (point in time; also member_of in get_universe/get_search)
get_statusWhen data was last released (daily/weekly, preliminary or final): poll this, not ticker tools
get_accountAccount details, plan tier, and usage

All tools are available on every tier (Free, Plus, Pro). Tiers differ by credit limits, history depth, and number of filters. See tickerdb.com/pricing.

Quick start

Connect TickerDB to Claude, ChatGPT, or another MCP client (see Setup below), then try:

"Show me oversold large-cap stocks near support"

The agent calls get_search with filters for momentum_rsi_zone = oversold and market_cap_tier in [large, mega], then follows up with get_summary on individual results. No raw number crunching — the agent reads categorical states and reasons over them directly.

"What usually happens when AAPL goes oversold?"

get_summary with field=momentum_rsi_zone, band=oversold, stats=true returns aggregate aftermath distributions: how the stock performed 5, 10, 20, 50, and 100 days after each oversold entry over 7 years of history.

"What changed for AAPL, MSFT and NVDA today?"

get_changes returns only the field-level state transitions of the newest date — band entries, exits, and shifts — so the agent reports what moved without pulling full summaries for every ticker.

Why not just pass raw OHLCV?

A model can compute RSI from raw bars. But ask "Does AAPL look bullish?" with raw OHLCV and it burns its context on arithmetic — computing indicators one by one — instead of doing what you actually asked: noticing that RSI just hit oversold while institutions are accumulating, that the pullback is sharp but the 200-day uptrend is intact, that insiders have been selling all quarter. That's the analysis. Raw bars bury it under computation.

With TickerDB, the model sees "oversold", "accumulation", "strong_uptrend" and connects them immediately.

State transitions go further. "What happened the last time BTC was this oversold?" means computing RSI across 7 years of daily bars, finding every oversold entry, and calculating what happened after each one. With TickerDB it's one call: get_summary with field=momentum_rsi_zone, band=oversold, stats=true.

Setup

Hosted server (recommended)

The remote server at https://mcp.tickerdb.com/mcp supports OAuth 2.1 and Bearer token auth. Use Streamable HTTP transport (not legacy SSE).

ClientHow
Claude.aiSettings → Connectors → Add → https://mcp.tickerdb.com/mcp → Authorize
Claude Codeclaude mcp add --transport http --scope user tickerdb https://mcp.tickerdb.com/mcp
ChatGPTPlugins → + → https://mcp.tickerdb.com/mcp → Create → Authorize
Cursor.cursor/mcp.json → {"tickerdb": {"url": "https://mcp.tickerdb.com/mcp"}}
Any MCP clientStreamable HTTP to https://mcp.tickerdb.com/mcp with Authorization: Bearer tdb_...

npm package (local stdio)

For clients that prefer a local process (Claude Desktop, etc.):

json
{  "mcpServers": {    "tickerdb": {      "command": "npx",      "args": ["tickerdb-mcp"],      "env": {        "TICKERDB_KEY": "tdb_your_api_key_here"      }    }  }}

Get an API key at tickerdb.com/dashboard.

Structure

Three-package monorepo:

  • shared/ — Tool definitions, API client, and server factory (internal)
  • remote/ — Cloudflare Worker at mcp.tickerdb.com (Streamable HTTP + OAuth 2.1)
  • local/ — Published npm package tickerdb-mcp (stdio)

Both transports use the same tool definitions. The MCP server is a thin proxy — access control, rate limiting, and field filtering are handled by the TickerDB API.

Authentication

  • Bearer token — Authorization: Bearer tdb_...
  • OAuth 2.1 — dynamic client registration, PKCE, token exchange, revocation. /authorize redirects to tickerdb.com for consent.

Unauthenticated initialize and tools/list are permitted for tool discovery; tools/call requires auth and returns a 401 Bearer challenge with resource_metadata for clean re-authorization.

Session strategy

The remote worker defaults to stateless transport — intentionally. All tools are request/response stateless, and Cloudflare Worker memory is isolate-local. Stateless mode avoids edge session loss that can invalidate connector-discovered namespaces. Set MCP_SESSION_MODE=stateful for explicit session debugging.

Development

bash
npm install                              # workspace dependenciesnpm run build                            # type-check remote + sharednpx wrangler dev                         # remote dev servercd local && npm install && npm run build  # npm package

Deployment

bash
# Remote servernpx wrangler deploy
# npm + MCP Registry (recommended)export MCP_PUBLISHER_KEY="your_saved_tickerdb_registry_private_key_hex"./release.sh mcp patch
# npm onlycd local && npm version patch && npm run build && npm publish

Source: README.md at commit 1b2e0b0

Tools

9

get_summary

Get pre-computed market intelligence for a specific stock, crypto, or ETF ticker. Supports 4 modes: (1) Snapshot (default) for the latest categorical state; (2) Historical snapshot by date; (3) Historical series with start and end dates; (4) Events by field and optional band, including aftermath fields on paid tiers, weekly trend_stage analysis, pattern setup states such as pattern_bull_flag and pattern_ascending_triangle, MA signal fields, trend_ma_crossover_event, MA distance lookbacks such as trend_distance_ma40, and stock-only fundamentals_free_cash_flow events. Add stats=true in event mode to return aggregate event-band and aftermath distributions instead of raw rows. Results can include freshness via as_of_date, same-candle OHLCV, market_cap, market_cap_tier, trend, momentum (including raw rsi, stochastic_k, stochastic_d alongside their zones, divergence_detected, divergence_type, stochastic_zone), volatility (including squeeze_active, squeeze_days), volume (including climax_detected, climax_type), patterns, support/resistance, levels (paid tiers), sector_context (rsi_zone, trend, agreement, asset_vs_sector_rsi), and stock-only fundamentals such as raw pe_ratio (latest ratio on or before the snapshot date; negative values preserved and unavailable values null), free_cash_flow, growth_zone, earnings_proximity, earnings_proximity_basis, analyst_consensus, valuation_percentile, and nested insider_activity when available. Raw momentum values (momentum.rsi 0-100, momentum.stochastic_k, momentum.stochastic_d) are the exact numbers behind their zones for all asset classes and both timeframes, null while lookbacks form; query zone transitions via momentum_rsi_zone / momentum_stochastic_zone, not the raw values. Summary keeps sibling _meta objects off by default; set meta=true or request explicit *_meta fields when paid-tier stability metadata is needed.

Parametersendbanddatemetaafterfieldlimitstartstatsbeforefieldssample+5 more

get_ohlcv

Get stored end-of-day OHLCV candles for a stock, ETF, or crypto ticker, daily or weekly. Use this for exact-return calculations, charts, and backtests after get_summary identifies a setup. Results are paginated; pass next_cursor back as cursor to continue. Equity and ETF bars are split-and-dividend adjusted; crypto bars are unadjusted. Credit cost is 1 credit per 100 bars returned, rounded up, with a 1 credit minimum.

Parametersendlimitorderstartcursortickerrequiredtimeframe

get_schema

Get the schema of all available fields and their valid band values. Use this when the user asks 'what fields are available?', 'what bands does momentum_rsi_zone have?', 'what sectors exist?', or when you need to validate field/band names before calling get_summary with event parameters or get_search with filters.

Takes no parameters.

get_account

Get your account details including current plan tier, monthly credit limits, and current usage. Response includes tier, limits (monthly_requests, overage_enabled, watchlist_limit, search_results, webhook_urls, history_days), and usage (monthly_requests_used, monthly_requests_remaining, credit_balance for pay-per-use accounts). Also returns scheduled_tier and scheduled_change_at if a plan change is pending.

Takes no parameters.

get_watchlist

Get analytical summaries for every ticker on the user's saved watchlist. This supports requests about the user's watchlist, tracked stocks, portfolio tickers, or an overview of tracked assets. Each item includes trend, momentum, volatility, volume, extremes, support/resistance prices, and a notable_changes array of human-readable day-over-day change alerts (e.g. 'entered deep_oversold', 'volume spike', 'trend reversed to downtrend', 'earnings within days', 'squeeze activated', 'MA crossover: golden cross'). Additional per-item fields include squeeze_active, squeeze_days, climax_detected, climax_type, divergence_detected, divergence_type. Plus/Pro plans also return analyst_consensus, earnings_proximity, growth_zone, free_cash_flow. Pro plans also return insider_activity and insider_net_direction. Band fields include _meta stability objects on Plus and Pro plans. Use this only for questions that span the whole tracked set; for a question about one specific ticker use get_summary instead, even if that ticker is on the watchlist. When the question is only whether anything changed, prefer get_watchlist_changes: it returns just the deltas, whereas this returns a full summary per ticker and grows large on a watchlist of many assets. Use add_to_watchlist to save tickers first; an empty watchlist means the user has not saved any tickers yet, not that the lookup failed.

Takes no parameters.

get_watchlist_changes

Get field-level state changes for all tickers on the user's saved watchlist since the last pipeline run. Supports daily day-over-day and weekly week-over-week comparisons. Each change object includes stability metadata such as stability, periods_in_current_state, flips_recent, and flips_lookback when available. Stability metadata requires a Plus or Pro plan. Prefer this over get_watchlist for monitoring questions such as whether anything moved, turned bearish, or became overbought, and for tracking a watchlist over time: it returns only what changed, while get_watchlist returns full summaries for every tracked ticker and is far larger on a big watchlist. Use get_watchlist when the current state of the whole list is needed rather than just the deltas. This is the only way to get week-over-week changes; the notable_changes array on get_watchlist is day-over-day only.

Parameterstimeframe

add_to_watchlist

Add tickers to the user's saved watchlist. Duplicates are skipped. Only call this when the user explicitly asks to track, save, or watch a ticker; do not add tickers just because they came up in conversation. The watchlist is capped by the plan's watchlist_limit (see get_account), so the request can be rejected or accepted only in part. Report back which tickers the response actually confirms rather than assuming every requested ticker was added.

Parameterstickersrequired

remove_from_watchlist

Remove tickers from the user's saved watchlist. Only call this when the user explicitly asks to stop tracking, remove, or drop a ticker; never prune the watchlist on your own initiative. Removal only stops tracking and can be undone with add_to_watchlist.

Parameterstickersrequired

Version history

1
  1. v1.8.6LatestSep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts