Prototyp · Vorschau: alle Server aus der offiziellen Registry, alle 30 Minuten synchronisiert. Mit Google anmelden, um Bewertungen zu schreiben.Prototyp · alle 30 Min. aktualisiert
PopNx MCPMCP-Server für alle, die KI nutzen · in einfachen Worten erklärt

TickerDB

von tickerdbVersion 1.8.6i★ 5iComputer oder Cloud
Name in der Registrycom.tickerdb/mcp-server

So installierst du es

What it does

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

  • Connects Computer oder Cloud
  • Account or key Cloud: No key needed · Local: Needs TICKERDB_KEY
  • Category Buchhaltung, Finanzen & Steuern

Installation

Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.

5/5 Prüfungen bestanden · Was du fragst, läuft über den Server des Anbieters (mcp.tickerdb.com) · ✓ Befehle geprüft am 13. Nov. 2026

Zuerst: Welche KI nutzt du?

Wähle deine App, dann erscheinen die Schritte unten.

Klappt mit Claude · etwa 2 Min.

Kein Schlüssel, nichts zu installieren · Einmal auf claude.ai oder in der Desktop-App einrichten, dann im Chat nutzen · kostenlose Konten können 1 hinzufügen · bei Team/Enterprise fügt ein Owner ihn hinzu

  1. Öffne die Connectors-Seite von Claude

    CustomizeConnectors

    CustomizeConnectors1Add2https://…3Add4
  2. Klicke „Add“ → „Custom“ → „Web“ und fülle diese 2 Felder aus

    Kopiere jeden Wert in das gleichnamige Feld in Claude und klicke Continue

    Name · NameTickerDB
    Remote MCP server URL · Adressehttps://mcp.tickerdb.com/mcp

    Klicke auf der von Claude erkannten Anmelde-Seite auf Continue · wähle bei Authentication, was der Anbieter angibt (Sign in now, Sign in when needed oder No sign in), dann Add

  3. Im Chat einschalten

    +ConnectorsTickerDB

  4. Ausprobieren

    Nutze TickerDB und sag mir, was du für mich tun kannst; zeig mir dann eine Sache

    ✓ Wenn Claude sagt, dass es TickerDB nutzt, oder ein Werkzeug von TickerDB in der Antwort zeigt, bist du verbunden

Menünamen am 11. Nov. 2026 mit der Hilfe von Anthropic abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen

Klappt mit ChatGPT je nach Tarif

Volles MCP: ChatGPT Business, Enterprise oder Edu im Web · Pro: verbindet mit Lese-/Abrufrechten, Werkzeuge, die Daten ändern, gehen evtl. nicht · Plus: in der Doku nicht bestätigt; siehst du auf der Plugins-Seite eine Option für eigene MCP-Server, kannst du es versuchen · nur Web

  1. In ChatGPT im Web die Seite zum Hinzufügen von MCP öffnen

    Plugins+Add custom MCP server

    ChatGPTPlugins1+2https://…3Create4
  2. Name und Adresse eintragen

    Namen eingeben, Adresse unter Connection einfügen, Risikohinweis abhaken und Create as a plugin klicken

    Name · NameTickerDB
    Connection · Adressehttps://mcp.tickerdb.com/mcp
  3. TickerDB im Chat auswählen

    Neuen Chat öffnen und vor dem Tippen TickerDB aus deinen Plugins wählen

  4. Ausprobieren

    Nutze TickerDB und sag mir, was du für mich tun kannst; zeig mir dann eine Sache

    ✓ Wenn ChatGPT sagt, dass es TickerDB nutzt, oder ein Werkzeug von TickerDB in der Antwort zeigt, bist du verbunden

Menünamen am 11. Nov. 2026 mit der Hilfe von OpenAI abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen

Klappt mit Claude Code · etwa 2 Min.

Kein Schlüssel, nichts zu installieren

  1. Terminal öffnen

    Mac: Command+Leertaste drücken und Terminal tippen · Windows: PowerShell öffnen

  2. Diesen Befehl einfügen und Enter drücken

    claude mcp add --transport http --scope user tickerdb https://mcp.tickerdb.com/mcp
  3. /mcp in Claude Code eingeben

    TickerDB sollte in der Liste als verbunden erscheinen

  4. Ausprobieren

    Nutze TickerDB und sag mir, was du für mich tun kannst; zeig mir dann eine Sache

    ✓ Wenn Claude Code sagt, dass es TickerDB nutzt, oder ein Werkzeug von TickerDB in der Antwort zeigt, bist du verbunden

Menünamen am 11. Nov. 2026 mit der Hilfe von Anthropic abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen

Klappt mit Cursor · etwa 2 Min.

Kein Schlüssel, nichts zu installieren

  1. Mit diesem Button Cursor öffnen

    In Cursor öffnen

    Cursor fragt nach einer Bestätigung; klicke Install

  2. KI-Chat in Cursor im Agent-Modus öffnen

  3. Ausprobieren

    Nutze TickerDB und sag mir, was du für mich tun kannst; zeig mir dann eine Sache

    ✓ Wenn Cursor sagt, dass es TickerDB nutzt, oder ein Werkzeug von TickerDB in der Antwort zeigt, bist du verbunden

Menünamen am 11. Nov. 2026 mit der Hilfe von Cursor abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen

Klappt mit VS Code · etwa 2 Min.

Kein Schlüssel, nichts zu installieren

  1. Mit diesem Button VS Code öffnen

    In VS Code öffnen

    VS Code fragt nach einer Bestätigung; klicke Install

  2. KI-Chat in VS Code im Agent-Modus öffnen

  3. Ausprobieren

    Nutze TickerDB und sag mir, was du für mich tun kannst; zeig mir dann eine Sache

    ✓ Wenn VS Code sagt, dass es TickerDB nutzt, oder ein Werkzeug von TickerDB in der Antwort zeigt, bist du verbunden

Menünamen am 11. Nov. 2026 mit der Hilfe von VS Code abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen

Andere Apps mit MCP, etwa Windsurf, Zed oder Gemini CLI, fügen Server unterschiedlich hinzu. Sieh in der App-Liste nach

Alle Apps mit MCP ansehen →

Adresse für Apps, die über das Web verbinden

Adressehttps://mcp.tickerdb.com/mcp

JSON-Einstellungen stehen unten unter „Für Entwickler“

Hängst du fest? Frag Leute, die TickerDB nutzen💬 Diskussion →
Für Entwickler: Terminal-Befehle und JSON-Einstellungen

Über das Web

Claude Code

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

Cursor (~/.cursor/mcp.json)

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

VS Code (mcp.json)

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

Auf deinem Computer installiert

Claude Code

claude mcp add --scope user tickerdb --env TICKERDB_KEY=your-value -- npx -y tickerdb-mcp

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "tickerdb": {
      "command": "npx",
      "args": [
        "-y",
        "tickerdb-mcp"
      ],
      "env": {
        "TICKERDB_KEY": "your-value"
      }
    }
  }
}

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "tickerdb": {
      "command": "npx",
      "args": [
        "-y",
        "tickerdb-mcp"
      ],
      "env": {
        "TICKERDB_KEY": "your-value"
      }
    }
  }
}

VS Code (mcp.json)

{
  "servers": {
    "tickerdb": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "tickerdb-mcp"
      ],
      "env": {
        "TICKERDB_KEY": "your-value"
      }
    }
  }
}

Werte, die du selbst einträgst

  • TICKERDB_KEY geheim erforderlich env
    Your TickerDB API key (get one at tickerdb.com/dashboard)

Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.

Auf einen Blick

Downloads pro Wochei
80/Wo.
Bestätigte Domain
✓ tickerdb.com
Verbindung
Computer oder Cloud
Transport
stdio, streamable-http
Neueste Versioni
1.8.6
In der Registry veröffentlichti
9. Juli 2026
Code zuletzt geänderti
13. Nov. 2026
Entwickler
tickerdb
Pakete
npm: tickerdb-mcp
Registry-Status
Aktiv

Welche Apps ihn nutzen können

Basierend darauf, wie sich dieser Server verbindet, und auf der eigenen Doku jeder App, geprüft am 10. Nov. 2026.

Verbinden sich über das Internet in

ClaudeChatGPTGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatOpen WebUIRaycast

Laufen auf deinem Computer in

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast

Alle Apps, mit Vor- und Nachteilen →

Was er kann

Tool-Namen und -Beschreibungen genau so, wie der Server sie am 13. Nov. 2026 gemeldet hat. Geschrieben hat sie der Entwickler, nicht wir; wir zeigen sie als reinen Text.

  • get_schema

    Look up field names, descriptions, units and band values. Search rather than pulling everything (~230 KB): search="bull flag", category=patterns, level=market. Names are _ [_ ]; bands end in a category word (_zone, _state, _trend), raw numbers in a unit (_pct, _ratio, _usd). Ever

  • query

    Any cross-section or history (one ticker's full snapshot: get_summary). Give fields and filters (names from get_schema), then EITHER date (default latest) OR start+end. One date with filters, tickers, sort_by or limit: a ranked screen. One date with only fields: every asset. A ra

  • get_summary

    One ticker's state: latest snapshot, one date, a start/end series (up to 50 rows; for a longer range add sample=even or use query), or band events. For events give field and optionally band: each says when the band was entered, what it left and how long that had lasted; stats=tru

  • get_market

    Market-level rows, one per date, point in time: US equity market regime (market_*) and economy (macro_*) bands and values, e.g. market_regime_zone, macro_yield_curve_zone. changes=true returns only dates where a band changed. Field list: get_schema level=market. To find tickers u

  • get_ohlcv

    End-of-day OHLCV candles for one ticker, daily or weekly (weeks dated by Sunday). Paged: pass next_cursor back as cursor, or use store_as with fetch_all for the whole range in one call.

  • search_tools

    Find the other TickerDB endpoints: changes, insiders, insider trades and holdings, funds, fund holdings and holders, indexes, index members, TickerDB's trading models (list, detail, history, holdings, trades; Pro and Commercial plans), status, account, and the raw search and univ

  • call_tool

    Run an endpoint found with search_tools: its name plus a params object. store_as, append and fetch_all work as on the other data tools.

  • query_data

    Read-only SQL (SQLite) over tables saved with store_as: SELECT or WITH, plus SHOW TABLES and DESCRIBE . Returns at most 200 rows. Nested fields are flattened with _ (trend.direction -> trend_direction); booleans are 1/0. Tables are kept per API key and deleted 24 h after last use

Basischecksi

Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 14. Nov. 2026

  • ✓ Bestanden

    Entwickler passt zum Repo

    Der Registry-Name wurde über die Domain tickerdb.com bestätigt (die Registry prüft, wem die Domain gehört)

  • ✓ Bestanden

    Wird noch gepflegt

    Code zuletzt geändert: gestern

  • ✓ Bestanden

    Hat eine Lizenz

    Nutzt MIT

  • ✓ Bestanden

    Endpunkt antwortet

    Antwort in 94 ms (HTTP 200)

  • – Nicht zutreffend

    Anmeldung mit OAuth

    Keine Anmeldung nötig

  • ✓ Bestanden

    Keine versteckten Anweisungen in Tool-Beschreibungen

    Wir haben 8 Tool-Beschreibungen gelesen und keine versteckten Anweisungen an die KI gefunden

Diskussion

Fragen, Tipps teilen oder melden, dass etwas nicht geht. Sortiert nach „hilfreich“.

Noch keine Beiträge. Stell die erste Frage oder teile einen Tipp.

Beiträge hier stammen von Nutzern, nicht vom PopNx-Team.

Mit Google anmelden, um zu posten

Nutzerbewertungen

Noch keine Bewertungen

Mit Google anmelden, um zu bewerten

Im Vergleich mit anderen in Buchhaltung, Finanzen & Steuerni

  • Mehr Sterne als 95 % der anderen 3208 Server in dieser Kategorie
  • Neuer in der Registry veröffentlicht als 16 % der anderen 3208 Server in dieser Kategorie
  • Basischecks gleich gut wie oder besser als bei 100 % der anderen 3208 Server in dieser Kategorie

Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.

Häufige Fragen

Ist TickerDB sicher?

Er hat 5 von 5 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.

Welche Schlüssel oder Codes braucht er?

Das musst du eintragen: TICKERDB_KEY

Läuft er auf meinem Computer oder in der Cloud?

Beides geht: Installiere ihn auf deinem Computer oder verbinde dich mit der Cloud-Version.

Wird er noch gepflegt?

Das GitHub-Repo wurde zuletzt gestern geändert, und die neueste Version (1.8.6) kam vor 4 Monaten in die Registry.

Welche Apps können ihn nutzen?

Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Er verbindet sich per URL und funktioniert daher auch in Apps mit Remote-MCP, etwa ChatGPT im Web (volles MCP ab Business; Pro nur lesend).

Was kann ich stattdessen nutzen?

In derselben Kategorie: CCXT, Finance Toolkit, AKQuant

Andere in derselben Kategorie

Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.

So liest du eine Karte:↓ Downloads pro Wochei★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti

CCXT

Official CCXT MCP server - Market data and trading across 100+ exchanges and prediction markets

von ccxtWeit verbreitet↓ 667/Wo.★ 44.876 Sterne des ganzen ReposAktualisiert vor 2 Monaten

Läuft auf deinem Computer

Finance Toolkit

500+ transparent financial methods calculated from raw statements, not third-party endpoints.

von JerBoumaWeit verbreitet↓ 15.624/Wo.★ 5523Aktualisiert vor 5 Tagen

Computer oder Cloud

AKQuant

Write and backtest trading strategies with AKQuant: API lookup, strategy checks, backtest runs

von akfamilyWeit verbreitet↓ 3280/Wo.★ 2604Aktualisiert gestern

Läuft auf deinem Computer

README vom Entwickler

README öffnen

Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.

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.

ClientHow
Claude (web and Desktop)Settings → Connectors → + → Add custom connector → enter the URL → Add → Connect
Claude Codeclaude mcp add --transport http --scope user tickerdb https://mcp.tickerdb.com/mcp, then /mcp and select TickerDB
ChatGPTPlugins → + → enter the URL → Create
CursorIn .cursor/mcp.json: {"mcpServers": {"tickerdb": {"url": "https://mcp.tickerdb.com/mcp"}}}
Any other clientStreamable HTTP transport (not legacy SSE) with the URL above
An agent with no browserSend your API key as a header: Authorization: Bearer tdb_...

Step-by-step instructions for each client are in the MCP docs.

Local server (npm)

For clients that run a local process over stdio (Claude Desktop, Claude Code, Codex, Cursor). Needs Node 22.5 or newer.

{

"mcpServers": { "tickerdb": { "command": "npx", "args": ["tickerdb-mcp"] } } }

No API key yet? Ask your agent to follow tickerdb.com/setup. It gets a free key by device login and saves it where the server looks, so the config above needs no env block. The server starts without a key and looks again on each call, so you don't need to restart it.

Where the server looks for a key, in order:

  1. the TICKERDB_API_KEY environment variable;
  2. a TICKERDB_API_KEY= line in the .env of the directory the server runs in;
  3. the config file written by device login, {"api_key": "tdb_..."}:
  • macOS / Linux: $XDG_CONFIG_HOME/tickerdb/config.json (default ~/.config/tickerdb/config.json)
  • Windows: %APPDATA%\tickerdb\config.json

To pass a key yourself, add "env": {"TICKERDB_API_KEY": "tdb_..."} to the config. The key is never logged.

Optional environment variables:

VariableDefaultWhat it does
TICKERDB_API_BASEhttps://api.tickerdb.com/v1Points the server at another TickerDB deployment
TICKERDB_FETCH_MAX_PAGES500Most pages one fetch_all call follows
TICKERDB_FETCH_MAX_ROWS2,000,000Most rows one fetch_all call stores
TICKERDB_INLINE_MAX_CHARS40,000Results longer than this are stored in a table; 0 turns that off

Try it

"Which stocks are forming a bull flag while their insiders are buying?"

The agent looks up the field names with get_schema, then calls query with two filters: pattern_bull_flag_state = mature, and insider_cluster_buying_state = cluster (three or more insiders bought on the open market in the last 30 days). The filtering happens on the server, so only the matches reach the agent. It can follow up with get_summary on any of them.

"When has NVDA started a new uptrend?"

get_summary with timeframe=weekly, field=trend_stage and band=stage_2_growth returns each time it happened: the date, the stage NVDA left, and how long it had been there. Add stats=true to get how often each stage was entered.

"Test a rule: each week, buy the 20 cheapest S&P 500 stocks by P/E. Since 2019."

query with fields=["fundamentals_pe_ratio"], member_of=sp500, start/end, ohlcv=true, store_as=rule and fetch_all=true pulls the whole history into a table in one call. Each row has the P/E and the index's members as they were known that week, so the test sees what it would have seen then. The agent runs the test with SQL in query_data, and the hundreds of thousands of rows stay out of its context. How far back you can go depends on your plan.

Tools

Eight tools. Field lists live in get_schema, and the less common endpoints sit behind search_tools and call_tool, which keeps the tool list short.

ToolWhat it does
get_schemaLooks up field names, units and band values: search="rsi zone", category=patterns, level=market (or level=model)
queryAny cross-section or history. One date with filters, tickers, a sort or a limit is a ranked screen (/v1/search). One date with only fields is every asset (/v1/universe). start and end is every row in the range (/v1/history, weekly by default past about 6 months)
get_summaryOne ticker: its latest snapshot, one date, a series, or each time a band was entered (field, band, stats=true)
get_marketMarket (market_*) and economy (macro_*) regime rows, one per date, and the dates a regime changed
get_ohlcvDaily or weekly end-of-day candles
search_toolsFinds the other endpoints and their parameters: changes, insiders, insider trades and holdings, funds, fund holdings and holders, indexes, index members, TickerDB's own trading models, status, account, and the raw search and universe routes
call_toolRuns an endpoint found with search_tools
query_dataRead-only SQL (SQLite) over results saved with store_as
Large pulls

Every data tool takes store_as= , and fetch_all=true to follow every page. The rows go into a SQLite table and the tool returns a short summary: row count, columns and five sample rows. Read the table with query_data (SELECT or WITH, SHOW TABLES, DESCRIBE ). It returns at most 200 rows; format=csv returns CSV text. A result over 40,000 characters is stored automatically.

Where the tables live:

  • Local server: in memory, until the process ends. query_data also takes output_path to write the full result to a CSV file.
  • Hosted server: in a store per API key, deleted 24 hours after last use.
Plans

Every plan has every tool, field and timeframe except the trading model data, which needs Pro or Commercial. Plans differ by credits and by how far back they read: Free reads the last 30 days (250 credits a month), Plus the last 3 years, Pro and Commercial everything from 2019. See pricing.

Trading models

TickerDB runs trading models of its own and publishes what each holds and how it has performed (the model level, model_* fields). Six endpoints read that record. They need a Pro or Commercial plan; on Free and Plus they return 403 tier_restricted. Run them with call_tool. slug is the model id from get_models, for example garp-core-10.

call_tool nameRouteReturns
get_models/v1/modelsEvery model: description, status, newest row, stats per segment. Params: asset_class, filters, sort_by, order
get_model/v1/models/{slug}One model: rules, newest row with change markers, stats with yearly returns. Param: slug
get_model_history/v1/models/{slug}/historyRows over time. Params: slug, start, end, fields, order, limit
get_model_holdings/v1/models/{slug}/holdingsThe book on a date: held, entering, exiting. Each held row has return_zone, age_zone, weight_zone, max_gain_pct, max_loss_pct. Params: slug, date, state
get_model_trades/v1/models/{slug}/tradesTrades, open and closed, with bands per trade (exit type, outcome, path, result against the benchmark, duration, entry market regime). Params: slug, status, segment, ticker, exit_type, outcome_zone, path_zone, relative_zone, duration_zone, entry_market_regime_zone, start, end, order, limit, offset
get_models_holdings/v1/models/holdingsHoldings across models, each at its newest date. Params: ticker, asset_class, state, return_zone, weight_zone, limit, offset

Reading the rows:

  • Backtest and live. model_segment on every row says which. A backtest row replays the model's rules over history; a live row is what the model decided on the day. Both current models went live on 2026-11-09. stats.live is null until two live rows exist.
  • Band filters take one label or a comma-separated list: outcome_zone=big_win,win.
  • Trade percentiles and `duration_zone` rank a trade against the model's earlier closed trades, and are null until 10 exist.
  • Benchmark fields are null for shorts.
  • An open trade has its entry context and its best and worst return so far.
  • Position bands are null on entering rows.

These endpoints report what each model did. They are not investment advice or a recommendation.

Why bands, and not only raw bars

An agent can compute RSI from price bars. Other things aren't in the bars at all: that three insiders bought last month, what a company's P/E was on a date in 2021 using only what was public then, which stocks were in the S&P 500 that week. And some are in the bars but cost a lot to find, like a bull flag, or a support level that has held four times.

TickerDB has done that work already. The agent reads pattern_bull_flag_state: "mature" and starts on the question you asked. The numbers behind each band are there when it needs them.

History works the same way. Finding every time NVDA began an uptrend since 2019 is one get_summary call.

For contributors

Structure

Three-package monorepo:

  • `shared/`: tool definitions, endpoint catalog (shared/src/hybrid/ops.ts), query routing, 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; only the store_as table store differs (local/src/sqlite-store.ts, remote/src/store.ts). The MCP server is a thin client: 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. Cloudflare Worker memory is isolate-local, and stateless mode avoids edge session loss that can invalidate connector-discovered namespaces. Set MCP_SESSION_MODE=stateful for explicit session debugging. The only state is the store_as tables, which live in the TickerDbStore Durable Object (binding TICKERDB_STORE, SQLite storage, one object per API key, everything deleted by an alarm 24 hours after last use), so they survive across stateless requests.

Development
npm install                              # workspace dependencies

npm run build # type-check remote + shared npx wrangler deploy --dry-run --outdir /tmp/mcp-build # bundle the Worker without deploying npx wrangler dev # remote dev server cd local && npm install && npm run build # npm package

Tests

cd local && npm test # stdio server against a stub API TICKERDB_WEBSITE_DIR=../tickerdb.com npm test # Worker tests + API parity

The parity test (`remote/test/api-parity.te

Nur der Anfang wird gezeigt; den Rest findest du im Repo