tickerdb avatar

TickerDB

tickerdb/tickerdb-mcp

Connects Claude and other MCP clients to pre-computed market summaries, search, and watchlist tracking from TickerDB's HTTP API. You get technical and fundamental snapshots with moving average distances, event filtering across date ranges, and field-level diffs since the last pipeline run. All 11 tools work on the free tier with rate and history limits by plan. Runs as a remote server at mcp.tickerdb.com with OAuth for Claude.ai or Bearer token auth, or install the npm package locally for stdio transport. The remote worker defaults to stateless MCP transport to avoid session drift across Cloudflare isolates. Useful when you want structured market context without burning tokens on raw price feeds or building your own aggregation layer.

GitHub stars
5
tools
16
auth
Secret needed
transport
STDIO, HTTP
env var
1
last updated
Jul 9, 2026

Install

From registry metadata
$ npx add-mcp https://mcp.tickerdb.com/mcp --name tickerdb

Run in your terminal. add-mcp asks which agents to add it to (Claude Code, Codex, Cursor and more). Add -g to install it for every project.

Review the command, arguments and environment values before installing. MCP servers run with your local permissions.

Other ways

Claude Code

$ claude mcp add --transport http tickerdb https://mcp.tickerdb.com/mcp

Run in your terminal. Add --scope user to make it available in every project.

Tools

Verified live · 16 tools

Verified live against the running server on Nov 6, 2026.

get_summaryGet 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 (...18 params

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 (...

Parameters* required
adjustmentstring
Price basis. split (default): today's share basis, every split applied. split_dividend: splits plus cash dividends (a total-return series). raw: as traded on each date (prices in the ohlcv block).one of split · split_dividend · raw
afterstring
Return events after this date (YYYY-MM-DD). Only used with field.
bandstring
Filter events to a specific band value (e.g. deep_oversold, strong_uptrend, stage_2_growth, extreme_fear). For MA distance event fields such as trend_distance_ma40_zone, grouped aliases above and b...
beforestring
Return events before this date (YYYY-MM-DD). Only used with field.
context_bandstring
Only return events where the context ticker was in this band (e.g. downtrend). For MA distance context fields, grouped aliases above and below are also supported. Must be provided with context_tick...
context_fieldstring
Band field to check on the context ticker (e.g. trend_direction, trend_stage, or trend_distance_ma40_zone). Must be provided with context_ticker and context_band.
context_tickerstring
Cross-asset correlation: a second ticker to filter against (e.g. SPY). Requires context_field and context_band. Plus/Pro only.
datestring
Historical date (YYYY-MM-DD) for a point-in-time snapshot. Requires Plus or Pro plan. Omit for latest.
endstring
Range end date (YYYY-MM-DD). Use with start for historical series.
fieldstring
Band field name for event queries (e.g. momentum_rsi_zone, extremes_condition, trend_direction, trend_stage, pattern_bull_flag_state, pattern_ascending_triangle_state, pattern_rising_wedge_state, t...
fieldsarray
Optional summary fields to return. Identity fields such as market_cap_usd and market_cap_tier are always kept. Pass sections like ohlcv, trend, momentum, volatility, volume, patterns, extremes, sup...
limitinteger
For event mode: max results (1-50), returned newest-first by default. For sample=even date ranges: requested sampled rows, capped by plan (Free 3, Plus 10, Pro 50).
metaboolean
Snapshot and history modes only. Add true to include sibling _meta / status_meta stability objects across the response. Explicit *_meta field paths in fields still work without this flag.
samplestring
Date range mode only. Use 'even' to evenly distribute snapshots across the full start/end range.one of even
startstring
Range start date (YYYY-MM-DD). Use with end for historical series.
statsboolean
Event mode only. Add true to return aggregate stats instead of raw event rows.
ticker*string
Ticker symbol, e.g. AAPL, BTCUSD, SPY
timeframestring
Analysis timeframe. Daily snapshots are Pro and Commercial only (Free and Plus read weekly; daily returns 403). Default: daily on Pro and Commercial, weekly on Free and Plusone of daily · weekly
get_ohlcvGet 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. Prices are stored as...8 params

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. Prices are stored as...

Parameters* required
adjustmentstring
Price basis. split (default): today's share basis, every split applied. split_dividend: splits plus cash dividends (a total-return series). raw: as traded on each date (daily only for ohlcv).one of split · split_dividend · raw
cursorstring
Exclusive date cursor from next_cursor for pagination (YYYY-MM-DD).
endstring
Inclusive end date (YYYY-MM-DD). Compared against the candle date.
limitinteger
Maximum candles to return (1-1000). Default: 100.
orderstring
Sort by candle date. Default: desc.one of asc · desc
startstring
Inclusive start date (YYYY-MM-DD). Compared against the candle date, so for weekly this is the Sunday week end. Lookback is limited by plan.
ticker*string
Ticker symbol, e.g. AAPL, BTCUSD, SPY
timeframestring
Candle timeframe. Daily snapshots are Pro and Commercial only (Free and Plus read weekly; daily returns 403). Default: daily on Pro and Commercial, weekly on Free and Plus. Weekly candles cover Mon...one of daily · weekly
get_searchSearch for assets matching filter criteria, including categorical states (e.g. oversold assets, strong uptrends, bull/bear flag setups, triangle or wedge setups, free-cash-flow surplus or burn, recent golden crosses, weekly stage 2 assets near the 40w MA with high volume, vola...11 params

Search for assets matching filter criteria, including categorical states (e.g. oversold assets, strong uptrends, bull/bear flag setups, triangle or wedge setups, free-cash-flow surplus or burn, recent golden crosses, weekly stage 2 assets near the 40w MA with high volume, vola...

Parameters* required
datestring
Historical snapshot date (YYYY-MM-DD). Omit for latest per asset class. Do not combine with start/end.
endstring
Date-range screen end (YYYY-MM-DD), with start.
fieldsstring
JSON-encoded array of column names to return. Example: ["ticker", "sector", "market_cap_usd", "fundamentals_pe_ratio", "trend_stage", "trend_ma40_price", "trend_ma50_slope_zone", "trend_ma_crossove...
filters*string
JSON-encoded filter array. Each filter: {"field": "column_name", "op": "eq|neq|in|gt|gte|lt|lte", "value": "..."}. Example: [{"field": "momentum_rsi_zone", "op": "in", "value": ["oversold", "deep_o...
held_bystring
Only assets this fund held on each row's date: fund ticker (e.g. "IVV", "ARKK") or SEC series id (find with get_funds). Point in time like member_of.
limitinteger
Max results to return. Tier-gated: Starter 25, Plus 100, Pro 500. Default: 20
member_ofstring
Only members of this index on each row's date, e.g. "sp500", "nasdaq100", "russell2000" (list: get_indexes). Point in time: the tracking fund's N-PORT portfolio public on that date (typically 2-5 m...
sort_bystring
Ticker field to sort results by (e.g. "market_cap_usd", "fundamentals_pe_ratio", "fundamentals_peg_ratio", "fear_greed_score", "garp_core_score", "extremes_condition_rarity_percentile", "fundamenta...
sort_directionstring
Sort direction. Default: desc. Use 'asc' for lowest-first (e.g. cheapest valuation percentile).one of asc · desc
startstring
Date-range screen start (YYYY-MM-DD), with end. Requires at least one market_* or macro_* filter, which selects the dates; rows then carry date, newest first.
timeframestring
Analysis timeframe. Daily snapshots are Pro and Commercial only (Free and Plus read weekly; daily returns 403). Default: daily on Pro and Commercial, weekly on Free and Plusone of daily · weekly
get_schemaGet the schema of all available fields and their valid band values, with a plain-words description, unit and minimum plan for each. Every field has level: ticker (per-asset snapshot columns for get_search, get_summary) or market (market_* and macro_* regime bands, one row per...

Get the schema of all available fields and their valid band values, with a plain-words description, unit and minimum plan for each. Every field has level: ticker (per-asset snapshot columns for get_search, get_summary) or market (market_* and macro_* regime bands, one row per...

No parameters. Call it with no arguments.

get_marketGet the market level: regime bands for the whole US equity market (market_*) and the US economy (macro_*), one row per date, point in time. Use it for 'what regime is the market in?', 'is breadth washed out?', 'is the yield curve inverted?', 'is the economy in stagflation?', '...9 params

Get the market level: regime bands for the whole US equity market (market_*) and the US economy (macro_*), one row per date, point in time. Use it for 'what regime is the market in?', 'is breadth washed out?', 'is the yield curve inverted?', 'is the economy in stagflation?', '...

Parameters* required
changesstring
true = only dates where at least one selected band changed (each row gets changes: [{field, from, to}]); or a JSON array of bands to watch, e.g. ["market_regime_zone","macro_regime_zone"]. Plus and...
datestring
One date (YYYY-MM-DD). Omit date, start and end for the newest row.
endstring
Range end (YYYY-MM-DD), with start.
fieldsstring
JSON-encoded array of market fields to return, e.g. ["market_regime_zone","macro_regime_zone","macro_yield_curve_zone","macro_yield_curve_10y_minus_2y_pct"]. Omit for every band and raw value; ["*"...
filtersstring
JSON-encoded filter array on market fields, markers included. Example (yield curve just un-inverted): [{"field":"macro_yield_curve_zone_prev","op":"in","value":["inverted","deeply_inverted"]},{"fie...
limitinteger
Range rows to return. Default 100, max 2000.
orderstring
Range order by date. Default: desc (newest first).one of asc · desc
startstring
Range start (YYYY-MM-DD), with end.
timeframestring
daily (every US equity session) or weekly (Sunday-dated). Daily snapshots are Pro and Commercial only (Free and Plus read weekly; daily returns 403). Default: daily on Pro and Commercial, weekly on...one of daily · weekly
get_accountGet your account details including current plan tier, monthly credit limits, and current usage. Response includes tier, limits (monthly_requests, overage_enabled, search_results, history_days), and usage (monthly_requests_used, monthly_requests_remaining, credit_balance for pa...

Get your account details including current plan tier, monthly credit limits, and current usage. Response includes tier, limits (monthly_requests, overage_enabled, search_results, history_days), and usage (monthly_requests_used, monthly_requests_remaining, credit_balance for pa...

No parameters. Call it with no arguments.

get_changesGet field-level band changes of the newest published date for up to 50 tickers: day-over-day for daily, week-over-week for weekly. Each change is {field, from, to}; Plus and Pro also get stability, periods_in_current_state and recent flips. ticker_context gives each ticker's l...2 params

Get field-level band changes of the newest published date for up to 50 tickers: day-over-day for daily, week-over-week for weekly. Each change is {field, from, to}; Plus and Pro also get stability, periods_in_current_state and recent flips. ticker_context gives each ticker's l...

Parameters* required
tickers*array
Ticker symbols, e.g. ["AAPL", "MSFT"]. At most 50.
timeframestring
daily (day-over-day) or weekly (week-over-week). Daily snapshots are Pro and Commercial only (Free and Plus read weekly; daily returns 403). Default: daily on Pro and Commercial, weekly on Free and...one of daily · weekly
get_universeGet selected fields for EVERY asset on one date in a single call (about 11,000 rows), ordered by ticker: the input of a daily or weekly trading model run. Fields use the same names as get_search and are tier-gated the same way; at most 60 per call. Costs 5 credits per 10 field...6 params

Get selected fields for EVERY asset on one date in a single call (about 11,000 rows), ordered by ticker: the input of a daily or weekly trading model run. Fields use the same names as get_search and are tier-gated the same way; at most 60 per call. Costs 5 credits per 10 field...

Parameters* required
asset_classstring
Only this asset class. Omit for all.one of stock · etf · crypto
datestring
Date (YYYY-MM-DD). Omit for each asset class's newest published date. History depth depends on plan.
fields*array
Fields to return, e.g. ["trend_direction", "momentum_rsi_zone", "market_cap_usd"]. Same names and aliases as get_search; at most 60.
held_bystring
Only assets this fund held on each row's date: fund ticker (e.g. "IVV", "ARKK") or SEC series id (find with get_funds). Point in time like member_of.
member_ofstring
Only members of this index on each row's date, e.g. "sp500", "nasdaq100", "russell2000" (list: get_indexes). Point in time: the tracking fund's N-PORT portfolio public on that date (typically 2-5 m...
timeframestring
daily, or weekly (Sunday-dated). Daily snapshots are Pro and Commercial only (Free and Plus read weekly; daily returns 403). Default: daily on Pro and Commercial, weekly on Free and Plusone of daily · weekly
get_insidersFind insiders (people and organisations whose trades are disclosed in SEC Form 4: CEOs, officers, directors, 10%+ owners including funds) by name, ticker or type, or list them most active first. Step 1 of a copy/inverse insider model ('make a model that copies Bezos'): search...7 params

Find insiders (people and organisations whose trades are disclosed in SEC Form 4: CEOs, officers, directors, 10%+ owners including funds) by name, ticker or type, or list them most active first. Step 1 of a copy/inverse insider model ('make a model that copies Bezos'): search...

Parameters* required
active_sincestring
YYYY-MM-DD: last disclosure on or after this date.
limitinteger
Results per page, default 20, max 100.
offsetinteger
Paging offset, default 0.
qstring
Name to search, e.g. "jeff bezos" or "pershing square". Omit to list.
rolestring
Role ever held at any company.one of ceo · cfo · coo · president · chair · officer
tickerstring
Only insiders who filed at this company, e.g. "AMZN".
typestring
person or organization (funds, trusts, companies).one of person · organization
get_insider_tradesOne insider's disclosed transactions (SEC Form 4), ordered by disclosure time: the event series of a copy/inverse insider model. Get the slug from get_insiders first. Two rules for backtests: act at disclosed_at (when it became public), never trade_date (up to lag_days earlier...9 params

One insider's disclosed transactions (SEC Form 4), ordered by disclosure time: the event series of a copy/inverse insider model. Get the slug from get_insiders first. Two rules for backtests: act at disclosed_at (when it became public), never trade_date (up to lag_days earlier...

Parameters* required
endstring
Last disclosure date YYYY-MM-DD (default: today).
exclude_plannedboolean
true: drop pre-planned Rule 10b5-1 trades.
insider*string
Insider slug from get_insiders, e.g. "jeffrey-p-bezos".
limitinteger
Rows per page, default 100, max 1000.
offsetinteger
Paging offset, default 0.
open_market_onlyboolean
true: only open-market purchases and sales (P/S).
orderstring
desc (default, newest first) or asc.one of asc · desc
startstring
First disclosure date YYYY-MM-DD (default: start of the plan's history).
tickerstring
Only transactions in this company, e.g. "AMZN".
get_statusWhen the data last changed (free, 0 credits): for daily and weekly snapshots and each asset class, the newest published date, whether it is preliminary or final (eod), its row count and when it was released; the market level's newest date; recent releases; and the release sche...

When the data last changed (free, 0 credits): for daily and weekly snapshots and each asset class, the newest published date, whether it is preliminary or final (eod), its row count and when it was released; the market level's newest date; recent releases; and the release sche...

No parameters. Call it with no arguments.

get_fundsFind funds (ETFs and mutual funds) that publish holdings to the SEC on Form N-PORT, by name words or ticker, largest first. Each fund has fund_id (SEC series id), tickers, is_etf, its first and newest public portfolio dates. Then use get_fund_holdings for a portfolio, or held_...5 params

Find funds (ETFs and mutual funds) that publish holdings to the SEC on Form N-PORT, by name words or ticker, largest first. Each fund has fund_id (SEC series id), tickers, is_etf, its first and newest public portfolio dates. Then use get_fund_holdings for a portfolio, or held_...

Parameters* required
etf_onlyboolean
true: only ETFs listed in TickerDB.
limitinteger
Rows per page, default 20, max 100.
offsetinteger
Paging offset, default 0.
qstring
Words of the fund's name, any order, e.g. "ark innovation" or "core s&p 500".
tickerstring
A fund ticker (e.g. "IVV", "VFIAX") or SEC series id ("S000004310").
get_fund_holdingsA fund's full portfolio as public on one date (SEC Form N-PORT), largest positions first: every line as filed (stocks, bonds, cash funds, derivatives) with ticker (TickerDB symbol on that date when the CUSIP maps to an asset we cover, else null), cusip, isin, balance, value_us...4 params

A fund's full portfolio as public on one date (SEC Form N-PORT), largest positions first: every line as filed (stocks, bonds, cash funds, derivatives) with ticker (TickerDB symbol on that date when the CUSIP maps to an asset we cover, else null), cusip, isin, balance, value_us...

Parameters* required
datestring
Date YYYY-MM-DD (default today). History depth depends on plan.
fund*string
Fund ticker (e.g. "IVV", "ARKK", "VFIAX") or SEC series id; find with get_funds.
limitinteger
Lines per page, default 500, max 5000.
offsetinteger
Paging offset, default 0.
get_fund_holdersWhich funds held a stock on one date (SEC Form N-PORT, point in time: each fund's newest portfolio filed by the date), largest positions first, plus the tracked indexes it belonged to (index_memberships) and totals over every holder (fund_count, fund_shares). Each fund's share...5 params

Which funds held a stock on one date (SEC Form N-PORT, point in time: each fund's newest portfolio filed by the date), largest positions first, plus the tracked indexes it belonged to (index_memberships) and totals over every holder (fund_count, fund_shares). Each fund's share...

Parameters* required
datestring
Date YYYY-MM-DD (default today). History depth depends on plan.
etf_onlyboolean
true: only ETFs listed in TickerDB.
limitinteger
Funds per page, default 100, max 1000.
offsetinteger
Paging offset, default 0.
ticker*string
Stock or ETF ticker, e.g. "AAPL" (former symbols resolve).
get_indexesList the indexes whose membership TickerDB tracks (sp500, sp400, sp600, sp100, nasdaq100, russell1000, russell2000), each with the fund it is read from (e.g. IVV for the S&P 500), its first covered date (late 2019) and today's member count. Membership is the SEC Form N-PORT ho...

List the indexes whose membership TickerDB tracks (sp500, sp400, sp600, sp100, nasdaq100, russell1000, russell2000), each with the fund it is read from (e.g. IVV for the S&P 500), its first covered date (late 2019) and today's member count. Membership is the SEC Form N-PORT ho...

No parameters. Call it with no arguments.

get_index_membersAn index's members on one date, point in time: the long stock positions of its tracking fund's newest SEC N-PORT portfolio FILED by that date (source.report_date is the portfolio's own quarter-end date, source.filed_on when it became public; a stock added to the index after re...2 params

An index's members on one date, point in time: the long stock positions of its tracking fund's newest SEC N-PORT portfolio FILED by that date (source.report_date is the portfolio's own quarter-end date, source.filed_on when it became public; a stock added to the index after re...

Parameters* required
datestring
Date YYYY-MM-DD (default today). History depth depends on plan.
index*string
Index id from get_indexes, e.g. "sp500", "nasdaq100", "russell2000".

Sponsors

Configuration

TICKERDB_KEY*secret

Your TickerDB API key (get one at tickerdb.com/dashboard)

Readme

TickerDB MCP server

Market data for AI trading agents. This server connects Claude, ChatGPT, Cursor or any MCP client to TickerDB, so your agent can screen the market, read a stock's state and backtest a trading model.

TickerDB covers 10,000+ US stocks, ETFs and crypto pairs, daily and weekly, with history from 2019. Each value comes as a number and as a named band, including things an agent can't work out from price bars: pattern_bull_flag_state is "mature", fundamentals_valuation_zone is "undervalued". Every row uses only what was public by its date, so a backtest sees what it would have seen live.

Connect

Hosted server

Add https://mcp.tickerdb.com/mcp to your client. A TickerDB page opens in your browser: sign in and click Allow. You don't need an API key, and a free account works.


View the full README on GitHub

Details

Repository
github.com/tickerdb/tickerdb-mcp
Categories
AI & LLM Tools, Data & Analytics
Package
tickerdb-mcp
Transport
STDIO, HTTP
Auth
Required
Registry
MCP registry, active
Tools verified
Nov 6, 2026

Related AI & LLM Tools MCP servers

View all
1eltociear avatarSkill Audit Mcpeltociear/skill-audit-mcpMCP server: static security scanner for MCP servers, agent skills & plugins. 17 attack patterns.5stars
2bamchi avatarScrapibamchi/scrapi-mcp-serverWeb scraping for AI agents. Converts URLs to clean, LLM-ready Markdown with anti-bot bypass.5stars
3eidetic-works avatarNucleuseidetic-works/nucleus-mcpPersistent memory for AI agents — shared .brain across Claude Code, Cursor & Codex5stars
4kokogo100 avatarRagalgokokogo100/ragalgo-mcp-serverDynamic RAG Engine preventing AI hallucinations in Korean Finance and Crypto markets.5stars
5lumabyteco avatarClarifypromptlumabyteco/clarifyprompt-mcpAI prompt optimization for 58+ platforms across 7 categories with custom platforms5stars
6mcp-s-ai avatarImage Recognition Mcpmcp-s-ai/image-recognition-mcpMCP server for AI-powered image recognition and description using OpenAI vision models.5stars