Tw Market Data is an MCP server with 41 tools an agent can call, among them agent_activity, approve_action, ask. It answers at https://mcp.twmarketdata.com/mcp over streamable HTTP, and it listed its tools to an anonymous client, so no sign-in was needed for that. Our probes reached it 6 of 6 times since 10 September 2026; the last check, on 19 October 2026, succeeded.
Taiwan stock market data (TWMD): official-source, point-in-time-safe datasets via read-only tools.
Description as the publisher wrote it.
| Tool | What it does |
|---|---|
agent_activity | What YOUR agents have actually done, from the durable audit trail. Every resident agent records what it did and ON WHAT BASIS — the rule and the two closes behind an alert, the coverage and limits behind a risk finding, the run_id and decla Inputs: limit |
approve_action | Record a HUMAN's approval of a proposed action. This writes an audit record naming who approved what, and when. It does NOT execute the action: TWMD has no order or funds path, by design. Execution, if any, happens elsewhere and is performe Inputs: action_id, approver |
ask | 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_data Inputs: question, as_of |
calendar | 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-0 Inputs: rows, today, as_of |
chart | 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 ro Inputs: rows, x_field, y_field, title, mark |
cite_this | 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 rev Inputs: dataset, as_of, row_key |
company_health_check | 一檔股票的誠實體檢:成長、獲利品質、估值、籌碼、紅旗,每個數字可驗證。 ★ 這是**事實整理**,不是投資建議、不是預測、不是目標價。輸出帶 `does_not_prove`,轉述時請一併保留。 ★ POINT-IN-TIME:`as_of` 逐資料集尊重揭露時差 —— 月營收用法定截止日推得的 估計時點,財報用出表日,估值是當日。不給 `as_of` 就用「現在可知的最新」, **不是今天**。 ★ 沒看到的東西會列在 `cannot_see`,並說明是「查了沒有」「查詢失 Inputs: ticker, as_of |
compare | 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 previou Inputs: tickers, metrics, rows_by_ticker, as_of |
delete_alert | Cancel one armed price trigger permanently, by its rule id. Disarms a single watch so it will not fire again — the opposite of `set_price_alert`, and unlike `list_alerts` it changes state rather than reporting it. Cancellation is irreversib Inputs: rule_id |
describe_dataset | 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 Inputs: dataset_id |
explain_provenance | 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 tha Inputs: ticker, field, date, dataset |
find_related | 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 reas Inputs: dataset_id, ticker |
get_backtest | 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_b Inputs: run_id |
get_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 Inputs: intent, language, ticker, as_of |
get_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 Inputs: dataset, row_key, snapshot_version |
get_research | Retrieve one of YOUR previous research reports. Others' runs are simply not found. Args: research_id — the identifier `run_research` returned when it started that run. Inputs: research_id |
list_alerts | Show the price-trigger rules you have armed, and whether each is still armed. A read-only inventory of thresholds you asked to be watched — it arms nothing and cancels nothing (`set_price_alert` arms, `delete_alert` cancels). Another custom |
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 Inputs: strategy_id, limit |
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'(行 Inputs: category, tier |
list_factor_findings | Verdicts from the overnight factor search on YOUR namespace — including the rejections. The rejections are returned deliberately. A research log that keeps only the winners is the highlight reel overfitting lives in, and the acceptance RATE Inputs: limit |
list_pending_actions | Financial actions proposed by your research runs that are waiting for a human decision. Nothing here has been executed or ever will be by this system. These are proposals. |
macro_regime_read | 總經 Regime:景氣信號、利率與殖利率曲線、匯率、資金流。 ★ 這支講的是**整個市場**,不是任何一檔個股 —— 所以它不收 ticker。 ★ 事實整理,不是投資建議、不是預測。輸出帶 `does_not_prove`。 ★ ⚠️ `macro_worldbank` 類的來源會**回溯修訂**歷史年度:今天讀到的舊年度數字 和當時看到的不是同一個,`pit_notes` 會標出來。 ★ Args:只有 `as_of`(選填)—— 它**不收 ticker**,因為主體 Inputs: as_of |
memory_get_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 th Inputs: key |
memory_replay_query | Re-run a remembered query by its `twmd_q_…` id, through the read API's own replay store. This is what makes a recalled finding checkable: the memory says where it came from, and this fetches that same data again. It never re-executes the qu Inputs: query_id |
memory_save | 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 Inputs: kind, content, key, as_of, source_query_ids, agent_id |
memory_search | 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 abou Inputs: query, kinds, as_of, key, agent_id, include_superseded |
positioning_read | 籌碼結構:法人分項、融資融券、借券使用率、大戶集中度、董監質押。 ★ 事實整理,不是投資建議、不是預測、不是目標價。輸出帶 `does_not_prove`。 ★ POINT-IN-TIME:`as_of` 逐資料集尊重揭露時差;不給就用「現在可知的最新」。 ★ 看不到的在 `cannot_see`,並分「查了沒有 / 查詢失敗 / 散佈權未取得」。 ⚠️ 逐券商分點進出**永遠**在 cannot_see —— 散佈權未取得,不要替它估算。 ★ PRECONDITIONS: Inputs: ticker, as_of |
query_dataset | 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 Inputs: dataset_id, tickers, start, end, as_of, limit |
query_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 CURRE Inputs: start, end, as_of, limit |
read_primary_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 actual Inputs: source, tickers, as_of, since, limit |
replay_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, n Inputs: run_id |
risk_assess | Measure a portfolio you state against limits you state, on official point-in-time prices. Reports concentration and peak-to-trough drawdown, and NAMES every position it could not price rather than quietly assessing the rest — an assessment Inputs: positions, as_of, max_position_weight, max_drawdown |
risk_read | 事件與市場結構風險:隱含波動率、注意處置、裁罰訴訟、放空限制、因子。 ★ ⚠️ **部位集中度與回撤不在這裡** —— 那是 `risk_assess` 的職責。重算一份會產生 第二個答案,而兩個都帶著我們的名字。 ★ `checked_and_clear` 是「查過而且確認沒有」(例如近一年無裁罰),和 `cannot_see` 的「不知道」是兩回事。 ★ 事實整理,不是投資建議、不是預測。輸出帶 `does_not_prove`。 ★ Args:`ticker`(例如 " Inputs: ticker, as_of |
run_backtest | Run a point-in-time backtest and return its run_id, metrics, sources and honesty checks. The run may only see data stamped on or before `as_of` — that is enforced structurally, not by convention. Results arrive with the data `query_ids` beh Inputs: strategy_id, start, end, as_of, tickers, universe_kind |
run_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). Inputs: recipe, rows, as_of, today, top_n, min_yield |
run_research | Run a multi-agent research pass and return a structured, sourced report. Six roles run in order — data analyst, factor researcher, backtest engineer, risk officer, portfolio manager, compliance officer. Each step's output carries the `query Inputs: prompt, as_of, tickers, start, end, max_backtests |
screen | 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 Inputs: conditions, as_of, rows |
search_filings | 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 Inputs: query, tickers, doc_type, as_of, source_tier, limit |
set_price_alert | Leave a standing instruction: tell me when this symbol crosses this price. The alert OUTLIVES this conversation. It is evaluated against official daily closes by a resident agent and delivered to your realtime stream and to any webhook endp Inputs: rule_id, symbol, direction, threshold, label, edge_triggered |
supply_chain_read | 供應鏈與同業:產業鏈位置、同業分組、轉投資、外銷訂單 vs 營收。 ★ 事實整理,不是投資建議、不是預測。輸出帶 `does_not_prove`。 ★ ⚠️ `company_peer_groups` 無日期欄:指定過去的 `as_of` 時,回的是**現況**分組, `pit_notes` 會標「非當時分類」。 ★ ⚠️ 質化的客戶/供應商關係與分部營收在年報附註,那條來源**尚未建置** —— 固定列在 `cannot_see`(status=no_loader),不是 Inputs: ticker, as_of |
try_sample
Every block below points at https://mcp.twmarketdata.com/mcp. Pick your client and copy.
claude mcp add --transport http tw-market-data https://mcp.twmarketdata.com/mcp
{
"mcpServers": {
"tw-market-data": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.twmarketdata.com/mcp"]
}
}
}{
"mcpServers": {
"tw-market-data": {
"url": "https://mcp.twmarketdata.com/mcp"
}
}
}{
"servers": {
"tw-market-data": {
"type": "http",
"url": "https://mcp.twmarketdata.com/mcp"
}
}
}{
"context_servers": {
"tw-market-data": {
"url": "https://mcp.twmarketdata.com/mcp"
}
}
}{
"mcpServers": {
"tw-market-data": {
"serverUrl": "https://mcp.twmarketdata.com/mcp"
}
}
}{
"mcpServers": {
"tw-market-data": {
"url": "https://mcp.twmarketdata.com/mcp"
}
}
}name: Tw Market Data
version: 0.0.1
schema: v1
mcpServers:
- name: Tw Market Data
type: streamable-http
url: https://mcp.twmarketdata.com/mcp{
"mcpServers": {
"tw-market-data": {
"httpUrl": "https://mcp.twmarketdata.com/mcp"
}
}
}{
"mcpServers": {
"tw-market-data": {
"type": "http",
"url": "https://mcp.twmarketdata.com/mcp"
}
}
}{
"mcpServers": {
"tw-market-data": {
"url": "https://mcp.twmarketdata.com/mcp"
}
}
}goose://extension?url=https%3A%2F%2Fmcp.twmarketdata.com%2Fmcp&type=streamable_http&id=tw-market-data&name=Tw%20Market%20Data
It answered our last check on 19 October 2026 in 737 ms. Over 6 checks since 10 September 2026 it answered 6. Status here comes from Neuronto's own probes, not from the publisher.
Yes. It is published by twmarketdata.com and served from mcp.twmarketdata.com, the vendor's own domain: https://mcp.twmarketdata.com/mcp.
41, as returned by the server's own tools/list on 11 September 2026: agent_activity, approve_action, ask, calendar, chart, cite_this, company_health_check, compare, and 33 more.
It answered our last check on 19 October 2026 in 737 ms. Over 6 checks since 10 September 2026 it answered 6.
Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://mcp.twmarketdata.com/mcp. The exact JSON is above, with the same setup for Claude Code, Claude Desktop, VS Code, Windsurf, Zed, Gemini CLI and the rest.
It listed its tools to an anonymous client, so reading the tool list needs no key. Individual tools can still ask for credentials in their own inputs.
Publisher: com.twmarketdata. Endpoint host: mcp.twmarketdata.com. ARD identifier: urn:air:com.twmarketdata:mcp:tw-market-data.
First indexed 10 September 2026. The tools are exactly what the server returned; nothing on this page
is inferred from its name. Ranking in Neuronto search is never for sale.