asian-etf-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@asian-etf-mcpshow me the top performing industries in the HK market"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
asian-etf-mcp
An MCP server that exposes thematic ETF data across 5 Asian markets + the US (Hong Kong, China A-Share, Taiwan, South Korea, US) as tools an LLM agent — or Claude Code / Claude Desktop — can call.
It fetches public OHLCV data from Yahoo Finance, computes industry returns /
momentum / rankings, and serves them through a small set of well-described tools.
Every result carries its source files and as_of date, so answers built on it
are auditable.
Tools
tool | args | returns |
| — | every market → industries → ETFs (call first to discover) |
|
| each ETF's total return vs the benchmark |
|
| per-industry 5d / 21d / 63d / YTD return, absolute + relative |
|
| industries ranked by return |
|
| raw daily OHLCV bars |
market accepts hk / cn / tw / sk / us (or full names). Dates are ISO
strings like 2025-06-01.
Related MCP server: eastmoney-skills2mcp
Quick start
git clone https://github.com/ivyyy0601/etf-mcp.git
cd etf-mcp # (or the asian-etf-mcp directory)
python3.10+ -m venv .venv
./.venv/bin/pip install -r requirements.txt
# Build the data cache once (fetches ~55 symbols from Yahoo Finance, ~2-3 min)
./.venv/bin/python build_cache.pyThat's it — the server is self-contained. The market/industry/ETF definitions
ship in configs/, and the data comes from public Yahoo Finance, so you don't
need any account, API key, or access to anyone's server.
Use with Claude Code
claude mcp add asian-etf -- /abs/path/to/.venv/bin/python /abs/path/to/src/server.pyThen ask, e.g. “use asian-etf to show which US sector has the strongest momentum.”
How it works
Two layers, kept separate on purpose:
src/server.py the "menu": thin FastMCP wrapper, one @mcp.tool() per function
│ calls
src/data_access.py the "kitchen": reads CSVs, computes returns/momentum/rankingsdata_access.py has no MCP dependency — it returns plain Python objects and
can be imported by anything (tests, a notebook, a LangGraph agent). server.py
only adds the protocol + tool descriptions.
Caching (fast reads). build_cache.py precomputes every standard view into
cache.json once. Default-parameter tool calls are served from that cache
(instant); only custom date ranges are computed on the fly.
Refresh-on-use (always current, zero babysitting). When a tool is called and the cache is older than the latest trading day, the server rebuilds it first (fetches the latest data), then answers. So you never have to run a cron or open anything — it self-maintains.
Configuration
env var | default | meaning |
|
| where OHLCV CSVs are stored (generated) |
|
| market/industry/ETF definitions (shipped) |
To add a market or ETF, edit the JSON files in configs/ — no code changes.
Keeping it fresh
Anyone: nothing to do — refresh-on-use fetches the latest from Yahoo Finance when needed. Or run
python build_cache.pywhenever you want.Maintainer fast-path (optional): if you run the companion data collector on a server,
sync_data.shcan pull its daily CSVs andbuild_cache.py --no-liverecomputes from them in seconds. Requires SSH access to that server; everyone else simply uses the live Yahoo Finance path.
Project layout
src/server.py MCP server (5 tools)
src/data_access.py Streamlit-free data + cache layer
build_cache.py refresh job: fetch + precompute → cache.json
configs/ market definitions (committed)
sync_data.sh maintainer fast-path (optional)
test_data_access.py smoke test for the data layer (no MCP needed)This server cannot be deployed
Maintenance
Related MCP Connectors
Market analyst tools + AI agent: crypto, US equities, options, Korea, fundamentals, macro, backtests
Read-only China A-share data for AI agents: market, limit-up, capital flow and disclosures.
AI agent access to Asian crypto markets. Korean exchange routing and x402 paid APIs.
Taiwan finance open data: ETF, funds, TAIEX, sentiment, business climate, FX. Free & read-only.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides AI assistants with real-time and historical Chinese stock, ETF, index, and futures data via Tushare Pro API, enabling natural language queries for financial analysis and market monitoring.5MIT
- AlicenseNot gradedqualityDmaintenanceProvides 11 MCP tools for querying A-share market data, financial reports, stock screening, hot topics, self-selected stocks, and LOF arbitrage using natural language, powered by East Money / Miaoxiang APIs.MIT
- AlicenseAqualityCmaintenanceProvides 46 financial data tools for AI assistants covering A-share, HK, US markets, macroeconomics, funds, and derivatives, powered by AKShare.54MIT
- AlicenseAqualityAmaintenanceWraps Taiwan Stock Exchange OpenAPI into MCP tools for searching datasets, fetching stock data, and obtaining ETF snapshots, enabling AI models to access TWSE market information.510 npmMIT