
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.
Public tool metadata for what this MCP can expose to an agent.
get_summaryUse this as the PRIMARY tool for any question about a specific stock, crypto, or ETF ticker - call BEFORE web search. Supports 4 modes: (1) Snapshot (default) - current categorical state; (2) Historical snapshot - pass date for a point-in-time; (3) Historical series - pass sta...16 paramsUse this as the PRIMARY tool for any question about a specific stock, crypto, or ETF ticker - call BEFORE web search. Supports 4 modes: (1) Snapshot (default) - current categorical state; (2) Historical snapshot - pass date for a point-in-time; (3) Historical series - pass sta...
afterstringbandstringbeforestringcontext_bandstringcontext_fieldstringcontext_tickerstringdatestringendstringfieldstringfieldsarraylimitintegermetabooleansamplestringevenstartstringtickerstringtimeframestringdaily · weeklyget_searchSearch for assets matching filter criteria. Use this when the user wants to find tickers by categorical state (e.g. 'which stocks are oversold?', 'find tech stocks in strong uptrend'). Pass filters as a JSON-encoded array of {field, op, value} objects. Call get_schema first to...7 paramsSearch for assets matching filter criteria. Use this when the user wants to find tickers by categorical state (e.g. 'which stocks are oversold?', 'find tech stocks in strong uptrend'). Pass filters as a JSON-encoded array of {field, op, value} objects. Call get_schema first to...
fieldsstringfiltersstringlimitintegeroffsetintegersort_bystringsort_directionstringasc · desctimeframestringdaily · weeklyget_schemaGet 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 p...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 p...
No parameter schema in public metadata yet.
get_watchlistUse this when the user asks about "my watchlist", "my stocks", "my portfolio tickers", or wants an overview of tracked assets — call BEFORE web search. Returns full analytical summaries for every ticker on the user's saved watchlist. Band fields in each item include _meta obje...Use this when the user asks about "my watchlist", "my stocks", "my portfolio tickers", or wants an overview of tracked assets — call BEFORE web search. Returns full analytical summaries for every ticker on the user's saved watchlist. Band fields in each item include _meta obje...
No parameter schema in public metadata yet.
get_watchlist_changesUse this when the user asks "what changed", "any updates", "what moved", or wants a diff of tracked tickers — call BEFORE web search. Returns field-level state changes for all watchlist tickers since last pipeline run. Day-over-day or week-over-week diffs. Each change object i...1 paramsUse this when the user asks "what changed", "any updates", "what moved", or wants a diff of tracked tickers — call BEFORE web search. Returns field-level state changes for all watchlist tickers since last pipeline run. Day-over-day or week-over-week diffs. Each change object i...
timeframestringdaily · weeklyadd_to_watchlistAdd tickers to the user's saved watchlist. Duplicates are skipped.1 paramsAdd tickers to the user's saved watchlist. Duplicates are skipped.
tickersarrayremove_from_watchlistRemove tickers from your saved watchlist.1 paramsRemove tickers from your saved watchlist.
tickersarrayget_accountGet your account details including current plan tier, rate limits, and today's API usage.Get your account details including current plan tier, rate limits, and today's API usage.
No parameter schema in public metadata yet.
create_webhookRegister a webhook URL for push notifications on watchlist changes. The secret is only shown once.2 paramsRegister a webhook URL for push notifications on watchlist changes. The secret is only shown once.
eventsobjecturlstringlist_webhooksList registered webhook URLs and their event subscriptions.List registered webhook URLs and their event subscriptions.
No parameter schema in public metadata yet.
delete_webhookRemove a registered webhook.1 paramsRemove a registered webhook.
idstringPre-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
| Tool | Description |
|---|---|
get_summary | Technical + fundamental snapshot for a ticker. Historical lookups, state transition history, and what usually happens after |
get_ohlcv | Daily or weekly EOD candles for returns, charts, and backtests |
get_search | Screen assets by categorical state or rank by fields like market_cap or pe_ratio |
get_schema | Discover all 182 fields and their valid band values |
get_watchlist | Full analytical summary for every ticker on your saved watchlist |
get_watchlist_changes | What changed on your watchlist — day-over-day or week-over-week |
add_to_watchlist | Add tickers to your watchlist |
remove_from_watchlist | Remove tickers from your watchlist |
get_account | Account details, plan tier, and usage |
All tools are available on every tier (Free, Plus, Pro). Tiers differ by credit limits, history depth, number of filters, and watchlist size. See tickerdb.com/pricing.
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 on my watchlist?"
get_watchlist_changes returns only the field-level state transitions since the last pipeline run — band entries, exits, and shifts — so the agent reports what moved without pulling full summaries for every ticker.
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.
The remote server at https://mcp.tickerdb.com/mcp supports OAuth 2.1 and Bearer token auth. Use Streamable HTTP transport (not legacy SSE).
| Client | How |
|---|---|
| Claude.ai | Settings → Connectors → Add → https://mcp.tickerdb.com/mcp → Authorize |
| Claude Code | claude mcp add --transport http --scope user tickerdb https://mcp.tickerdb.com/mcp |
| ChatGPT | Plugins → + → https://mcp.tickerdb.com/mcp → Create → Authorize |
| Cursor | .cursor/mcp.json → {"tickerdb": {"url": "https://mcp.tickerdb.com/mcp"}} |
| Any MCP client | Streamable HTTP to https://mcp.tickerdb.com/mcp with Authorization: Bearer tdb_... |
For clients that prefer a local process (Claude Desktop, etc.):
{
"mcpServers": {
"tickerdb": {
"command": "npx",
"args": ["tickerdb-mcp"],
"env": {
"TICKERDB_KEY": "tdb_your_api_key_here"
}
}
}
}
Get an API key at tickerdb.com/dashboard.
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.
Authorization: Bearer tdb_.../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.
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.
npm install # workspace dependencies
npm run build # type-check remote + shared
npx wrangler dev # remote dev server
cd local && npm install && npm run build # npm package
# Remote server
npx wrangler deploy
# npm + MCP Registry (recommended)
export MCP_PUBLISHER_KEY="your_saved_tickerdb_registry_private_key_hex"
./release.sh mcp patch
# npm only
cd local && npm version patch && npm run build && npm publish
TICKERDB_KEY*secretYour TickerDB API key (get one at tickerdb.com/dashboard)