Taiwan Stock Market Data API, built for AI agents | TWMD
Taiwan Stock Market Data API, built for AI agents | TWMD
Verifiable Taiwan stock market data API for AI agents and quant research — every value cryptographically signed, delisted stocks retained to avoid survivorship bias. Point-in-time, look-ahead-safe queries via MCP; also available over REST and straight from Claude & ChatGPT.
This listing identifies a third-party MCP server. MCPBundles is not affiliated with, sponsored by, or endorsed by the service or its operator unless stated on this page.
This server may ask you to sign in when your AI client connects.
Last probed Nov 3, 2026 · mcp.twmarketdata.com
41tools discovered
For AI agents — MCPBundles Directory API
For MCP client apps (human connect):
MCP connect URL: https://mcp.twmarketdata.com/mcp
Skill page: https://www.mcpbundles.com/skills/twmarketdata-mcp-6c2ae2f33a
Explore capabilities (41)
read 23
write 2
Showing 25 of 41
Showing 25 of 41 tools from the public preview. Connect the server to inspect the full live tool list.
Get3
Memory3
List2
Query2
Run2
Other capabilities13
List datasets
read
list_datasets
List available Taiwan-market datasets (discovery entry point). Returns id / 中文名 /
category / tier / one-line description for each. Use this first to find the right data.
Args:
category: optional, e.g. 'chip'(籌碼) 'fundamental'(基本面) 'price'(行情) 'macro'(總經)
'relation'(關聯/產業鏈) 'derivatives'(期權) 'event'(事件) 'rag_text'(文本).
tier: optional minimum plan: 'free' 'starter' 'pro' 'max' 'developer' 'enterprise'.
List datasets — List available Taiwan-market datasets (discovery entry point). Returns id / 中文名 /
category / tier / one-line description for each. Use this first to find the right data.
Args:
category: optional, e.g. 'chip'(籌碼) 'fundamental'(基本面) 'price'(行情) 'macro'(總經)
'relation'(關聯/產業鏈) 'derivatives'(期權) 'event'(事件) 'rag_text'(文本).
tier: optional minimum plan: 'free' 'starter' 'pro' 'max' 'developer' 'enterprise'.
Describe a dataset's semantics — FULL semantics of one dataset: grain (what a row is), field meanings+units, ★TIME-CORRECTNESS
rules (knowledge_time_field / point_in_time_safe — read before backtesting), relations for
cross-table reasoning, agent_hints (when to use), quant_use (which factors). Args: dataset_id.
Query a dataset (PIT-safe) — Query rows with built-in look-ahead protection.
★ POINT-IN-TIME: pass `as_of` (YYYY-MM-DD) for backtesting/agent-learning. For non-point-in-time-safe
datasets (fundamentals, monthly_revenue, dividend_policy…) rows are filtered by DISCLOSURE date <= as_of,
so the agent only sees what was public at that moment. Omit as_of only for present-day lookups (warned).
★ IF A VALUE IS IN `coverage.missing`, IT IS NOT AVAILABLE. Say it is not available. **Never
estimate it, interpolate
Find related datasets and tickers — Traverse the knowledge graph for cross-table / supply-chain reasoning.
- dataset_id: returns join-able datasets (+why) to plan multi-table analysis.
- ticker: returns its industry value-chain node + peers in the same node (supply-chain reasoning).
Args: dataset_id (e.g. 'equity_daily_prices') and/or ticker (e.g. '2330').
Search filings and announcements — Semantic search over MOPS filings, financial-statement notes and company news.
Answers questions a keyword filter cannot: "what risks did this company disclose this quarter?",
"which companies mentioned CoWoS capacity expansion?" — matching on MEANING, so a paragraph that
never uses your exact words still ranks.
★ POINT-IN-TIME: pass `as_of` (YYYY-MM-DD). Chunks are filtered `published_at <= as_of` in SQL
BEFORE ranking, so a backtest cannot retrieve a filing that did not e
Get your MCP into directories
A working endpoint is step one. Directory coverage is the coordinated launch across ChatGPT, Claude, Cursor, the MCP Registry, and community indexes.
What is the Taiwan Stock Market Data API, built for AI agents | TWMD MCP server?
Verifiable Taiwan stock market data API for AI agents and quant research — every value cryptographically signed, delisted stocks retained to avoid survivorship bias. Point-in-time, look-ahead-safe queries via MCP; also available over REST and straight from Claude & ChatGPT.
How do I connect Taiwan Stock Market Data API, built for AI agents | TWMD to my AI agent?
Use the MCP endpoint listed on this page in your MCP client configuration. One-click install pills support Claude, Cursor, VS Code, and other hosts. Copy the remote MCP URL if your client needs a manual entry.
Operate this server?
Request removal if you do not want Taiwan Stock Market Data API, built for AI agents | TWMD listed here, or claim the listing if you want to manage it on MCPBundles.
Operate Taiwan Stock Market Data API, built for AI agents | TWMD?
This server appears in the MCPBundles directory. Verify you operate it to take over the listing — name, description, logo, contact email, and skill content. We email a 6-digit code to a maintainer address your server publishes in /.well-known/security.txt or /.well-known/mcpbundles.json. Free, takes about a minute.
MCPBundles publishes this directory for MCP discovery. Except where we host or operate an offering, third-party services run under their own terms. Product and company names on this page are used in a descriptive, identifying way (including under nominative fair use where applicable); they remain the property of their owners. Nothing here grants you rights in those marks, and nothing here is an offer to sell a third party's services. Terms · Request removal
More in developer tools
Other MCP servers in this category from the directory index
Explain where a value came from — Where did this number come from, and when could anyone have known it? (WP-6)
★ THIS IS THE GROUNDING TOOL. Every other tool's answer is supposed to be expandable through
this one: given a ticker, a field and a date, it names the dataset that serves that field, the
knowledge column, and WHICH as_of rule applies on that date. Use it whenever you are about to
state a number as fact.
★ IT DOES NOT OVERLAP WITH THE OTHER TWO PROVENANCE TOOLS, and they are not substitutes:
Get an inclusion proof — Prove a row was in the snapshot TWMD published — and check it yourself.
Returns the Merkle sibling path, the signed root, and the checkpoint it belongs to. It returns
the PATH rather than a yes/no on purpose: a service that answers "yes, it is included, trust me"
is the opposite of verifiable. Recompute the root from the leaf and the path; the verifier is
~30 lines and is written out in docs/VERIFIABLE_DATA.md.
★ WHAT IT PROVES: integrity (the row was not altered after publ
Cite a served number — Produce a bibliographic citation for TWMD data — APA, BibTeX, and a re-verifiable token.
★ FOR PAPERS, REGULATORY FILINGS AND ANYTHING A REVIEWER WILL RE-CHECK LATER. A dataset is
corrected, backfilled and re-run. Three years from now a reviewer opening our API sees different
numbers than the
paper, and nobody — author, reviewer, or us — can tell whether the data changed or the author
mis-transcribed. So the citation carries `as_of`, the Merkle `checkpoint_root`, and a
`
Read the primary source text — Read the FULL TEXT of filings and announcements — with proof links and a knowledge cutoff.
★ NOT `search_filings`. That one ranks passages by similarity and hands you fragments; this hands
you whole documents so you can read what was actually said and where it sat in the filing.
Similarity is not importance, and a fragment cannot show you its own context.
★ POINT-IN-TIME: pass `as_of` (YYYY-MM-DD). The cutoff is applied in SQL on the source's declared
knowledge-time column
Ask in natural language — Answer a plain-language question in Taiwanese-market vocabulary, sentence by sourced sentence.
★ FOR BEGINNERS WHO DO NOT KNOW WHICH DATASET THEY WANT. Ask "PBR 是什麼" or "什麼叫漲跌停"
in ordinary words; routing happens on our side. `describe_dataset` explains a table you already
named, `search_filings` digs through company disclosures, and `query_dataset` returns rows —
this one turns a beginner's wording into a sourced explanation instead.
★ EVERY SENTENCE CARRIES A CITATION OR
Chart a series — Turn rows you already fetched into a Vega-Lite drawing your chat window can render.
★ IT DRAWS; IT DOES NOT FETCH. Hand it the output of `query_dataset` — this tool never touches
the database, so it cannot bypass the `as_of` filter those rows were selected under. A plotting
tool that fetched its own numbers would be a second data path, and a second path eventually
disagrees with the first about what was knowable when.
★ GAPS BREAK THE LINE INSTEAD OF BEING BRIDGED. A missin
Screen the market — Turn a spoken shortlist description into explicit numeric cut-offs, and show the cut-offs.
★ THE THRESHOLDS COME BACK WITH THE SHORTLIST. "低本益比" becomes `per < 15`, and that 15 is
printed in `applied[]` so you can disagree with it. A filter that hands over thirty names
without saying where it drew the line cannot be checked by anyone — and whether the line was
15 or 20 completely changes which thirty.
★ PHRASES IT CANNOT MAP COME BACK IN `unparsed[]`. It will not quietly in
Query the macro regime — The Taiwan business-cycle light (NDC monitoring indicator) as a monthly series.
★ THIS IS A REVISED FIGURE, NOT A POINT-IN-TIME ONE. Every response carries
`revision_basis: as_revised`. Our source holds exactly one row per month — the CURRENT value,
not the value as first published — and it records no publication date.
★ `as_of` IS REFUSED, AND THE REFUSAL IS THE POINT. There is no honest point-in-time answer
here yet. Do NOT work around it by asking for a date range that e
Upcoming and past events — Sort corporate dates into what is still ahead and what has already passed.
★ TWO DATES, NOT ONE. What is "upcoming" is decided by the date the event HAPPENS; `as_of`
filters on the date it was ANNOUNCED. An ex-dividend declared on 2026-08-01 for 2026-09-15 is
both already known and still ahead on 2026-08-10. Collapsing the two fields either hides every
future date or reports last month's ex-dividend as though it were coming.
★ ELAPSED DATES ARE SEPARATED, NOT DISCARDED. The
Compare tickers — Lay two to five named companies side by side on the same measures, gaps marked as gaps.
★ AN ABSENT FIGURE STAYS ABSENT, AND THE COMPANY STAYS ON THE TABLE. A blank cell is reported
as `available: false`, never filled with a zero, a previous period, or by quietly dropping the
column. Dropping is the worst of the three: it converts "we do not hold this measure for that
company" into "you did not ask about that company".
★ EACH CELL NAMES ITS OWN SOURCE. Margins and instituti
Get a code example — Emit a copy-pasteable HTTP snippet wired to the real endpoint, header and parameter names.
★ FOR WRITING YOUR OWN CLIENT, NOT FOR GETTING DATA. Every other tool here answers a question;
this one hands you source code so your program can ask it directly over HTTPS. Nothing is
fetched and no rows come back.
★ THE CONSTANTS ARE READ OUT OF THE SERVER, NOT REMEMBERED. Base URL, the `X-API-Key` header
spelling, and the route path all come from the code that serves them. The wors
Run a research recipe — Replay a saved multi-step routine over rows you fetched, with every step listed.
★ THREE ROUTINES: `momentum_scan` (rank by a return column), `earnings_surprise`
(actual versus estimate), `dividend_capture` (which ex-dates are still ahead).
★ A SAVED ROUTINE IS NOT A TRADING VIEW. The names are conventional labels for well-known
sequences; what runs is arithmetic over rows you supplied. `steps[]` spells out each operation
so you can disagree with the routine rather than tru
Try a free sample (no key) — Hand an unregistered caller a short taste of an open dataset, plus where to unlock the rest.
★ WHAT AN ACCOUNTLESS CALLER GETS INSTEAD OF A BARE REFUSAL. Somebody arriving through a chat
connector with no plan would otherwise meet a flat rejection, which the host model relays as
"this service turned you down".
★ WHAT IS ACTUALLY FREE, STATED CONCRETELY. The reference resources read with no key at all,
and the five sample tickers (2330, 2317, 2454, 0050, 2603) answer through
Run a backtest — Submit a point-in-time backtest. NON-BLOCKING: returns a run_id at once; poll get_backtest.
`job_status` tells you where it is: `cached` (this exact backtest was already computed — the
stored result is returned immediately), `done` (it finished within `wait_seconds`), or
`queued` / `running` (call `get_backtest(run_id)` until it is `done` or `failed`). The same
spec always has the same run_id, so re-submitting is free and never computes twice.
The run ma
Get a backtest result — Retrieve a previous backtest by run_id — the full record, including why it was rejected.
Only runs in YOUR namespace are visible; a run_id belonging to someone else is simply not
found. Args: run_id (the `twmd_bt_…` handle returned by run_backtest).
Replay a backtest — Re-run a stored backtest and report whether it still produces the same numbers.
Same spec, same `as_of`, same data questions. If the numbers moved, either the engine
version changed or the underlying data was restated — both are reported, neither is
smoothed over. Args: run_id.
List backtests — Browse an INDEX of your past backtest runs — ids and headline metrics only, no re-execution.
Use when you want to find a run whose id you have forgotten. It never re-computes anything:
`run_backtest` executes a new one, `get_backtest` opens a single record in full, and
`replay_backtest` re-derives one to check reproducibility. This is the catalogue, not any of
those three. Args: optional strategy_id filter, limit.
Save to agent memory — Remember something, with its sources and its knowledge time.
Nothing is ever overwritten: saving a `factor_def` or `watchlist` under an existing key
SUPERSEDES the previous version (both rows survive, so "what did I believe in June?" stays
answerable), and saving identical content twice is a no-op rather than a duplicate.
Args:
kind: 'query' | 'factor_def' | 'watchlist' | 'finding' | 'note'.
content: the thing to remember, as an object.
Search agent memory — Recall your own memories — hybrid (semantic + exact-term), with provenance attached.
Every result carries where it came from (`source_query_ids`, replayable), when it was
believed (`valid_from`/`valid_to`) and what knowledge time it is about (`as_of`), plus a
`recall` block stating which model and which filters produced the answer.
Args:
query: what you are looking for, in words.
kinds: restrict to some of 'query' 'factor_def' 'watchlist'
Get the watchlist — Read the tickers on one named watchlist, as it stands right now.
A curated roster you maintain — distinct from `memory_search`, which digs through everything
you ever recorded, and from `list_alerts`, which is about price triggers rather than symbols
you are following. Args: key — the roster's name, default 'default'.
Showing the first 25 tools — full list and schemas: Directory API.
How many tools does Taiwan Stock Market Data API, built for AI agents | TWMD provide?
MCPBundles probed 41 tools on the live server. The tool list on this page reflects what was discovered at the last refresh — connect your client to see the full set available to your session.
What authentication does Taiwan Stock Market Data API, built for AI agents | TWMD require?
Taiwan Stock Market Data API, built for AI agents | TWMD may require signing in to the provider before tools can run. Connect through MCPBundles or your MCP client and complete any provider login when prompted.
Don't want this listed?
Request removal from the MCPBundles directory. We stop publishing this listing on mcpbundles.com.
MCPBundles is an independent platform built on the open Model Context Protocol standard. MCPBundles is not affiliated with, sponsored by, or endorsed by Anthropic PBC.