{
  "markdown": "# TickerDB — Stock market data for agents.\n\nPre-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*.\n\n10,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](https://tickerdb.com)\n\n## Tools\n\n| Tool | Description |\n|---|---|\n| `get_summary` | Technical + fundamental snapshot for a ticker. Historical lookups, state transition history, and what usually happens after |\n| `get_ohlcv` | Daily or weekly EOD candles for returns, charts, and backtests |\n| `get_search` | Screen assets by categorical state or rank by fields like `market_cap` or `pe_ratio` |\n| `get_schema` | Discover all 182 fields and their valid band values |\n| `get_watchlist` | Full analytical summary for every ticker on your saved watchlist |\n| `get_watchlist_changes` | What changed on your watchlist — day-over-day or week-over-week |\n| `add_to_watchlist` | Add tickers to your watchlist |\n| `remove_from_watchlist` | Remove tickers from your watchlist |\n| `get_account` | Account details, plan tier, and usage |\n\nAll 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](https://tickerdb.com/pricing).\n\n## Quick start\n\nConnect TickerDB to Claude, ChatGPT, or another MCP client (see [Setup](#setup) below), then try:\n\n> **\"Show me oversold large-cap stocks near support\"**\n\nThe 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.\n\n> **\"What usually happens when AAPL goes oversold?\"**\n\n`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.\n\n> **\"What changed on my watchlist?\"**\n\n`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.\n\n## Why not just pass raw OHLCV?\n\nA 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.\n\nWith TickerDB, the model sees `\"oversold\"`, `\"accumulation\"`, `\"strong_uptrend\"` and connects them immediately.\n\n**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`.\n\n## Setup\n\n### Hosted server (recommended)\n\nThe remote server at `https://mcp.tickerdb.com/mcp` supports OAuth 2.1 and Bearer token auth. Use Streamable HTTP transport (not legacy SSE).\n\n| Client | How |\n|---|---|\n| Claude.ai | Settings → Connectors → Add → `https://mcp.tickerdb.com/mcp` → Authorize |\n| Claude Code | `claude mcp add --transport http --scope user tickerdb https://mcp.tickerdb.com/mcp` |\n| ChatGPT | Plugins → + → `https://mcp.tickerdb.com/mcp` → Create → Authorize |\n| Cursor | `.cursor/mcp.json` → `{\"tickerdb\": {\"url\": \"https://mcp.tickerdb.com/mcp\"}}` |\n| Any MCP client | Streamable HTTP to `https://mcp.tickerdb.com/mcp` with `Authorization: Bearer tdb_...` |\n\n### npm package (local stdio)\n\nFor clients that prefer a local process (Claude Desktop, etc.):\n\n```json\n{\n  \"mcpServers\": {\n    \"tickerdb\": {\n      \"command\": \"npx\",\n      \"args\": [\"tickerdb-mcp\"],\n      \"env\": {\n        \"TICKERDB_KEY\": \"tdb_your_api_key_here\"\n      }\n    }\n  }\n}\n```\n\nGet an API key at [tickerdb.com/dashboard](https://tickerdb.com/dashboard).\n\n## Structure\n\nThree-package monorepo:\n\n- **`shared/`** — Tool definitions, API client, and server factory (internal)\n- **`remote/`** — Cloudflare Worker at `mcp.tickerdb.com` (Streamable HTTP + OAuth 2.1)\n- **`local/`** — Published npm package `tickerdb-mcp` (stdio)\n\nBoth 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.\n\n### Authentication\n\n- **Bearer token** — `Authorization: Bearer tdb_...`\n- **OAuth 2.1** — dynamic client registration, PKCE, token exchange, revocation. `/authorize` redirects to tickerdb.com for consent.\n\nUnauthenticated `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.\n\n### Session strategy\n\nThe 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.\n\n## Development\n\n```bash\nnpm install                              # workspace dependencies\nnpm run build                            # type-check remote + shared\nnpx wrangler dev                         # remote dev server\ncd local && npm install && npm run build  # npm package\n```\n\n## Deployment\n\n```bash\n# Remote server\nnpx wrangler deploy\n\n# npm + MCP Registry (recommended)\nexport MCP_PUBLISHER_KEY=\"your_saved_tickerdb_registry_private_key_hex\"\n./release.sh mcp patch\n\n# npm only\ncd local && npm version patch && npm run build && npm publish\n```\n",
  "bytes": 6144,
  "sha": "7d3b8275fa33800df6cb4163202adc55391f7f3edc0efae89f0d188fb41444e6",
  "repo_slug": "tickerdb/tickerdb-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_com_tickerdb_mcp_server_4b0fcc07/readme"
}