TradeTrack MCP
An unofficial, no-auth MCP server that exposes HSBC TradeTrack data — the US and HK stocks HSBC's most active traders and top 5% performers are buying, selling, and holding.
tradetrack— latest lists for a market (US/HK):hot(most traded, buy% vs sell%),top_buy,top_sell,top_hold;periodoftoday,yesterday,last_month, pluslast_3_months/last_6_monthsfortop_holdonly.Rich per-stock detail — buy/sell %, new vs added positions, partial reduce vs full exit %, average buy/sell price and currency, and ranks for today / yesterday / last month / 3m / 6m.
tradetrack_history— every intraday snapshot of the "today" lists collected since 2026-10-16, up to 31 days per call, optionally filtered to onesymbol.Freshness metadata — each result carries
trading_date,is_today(false before the day's first refresh),refreshed_at,next_refresh_at, andfetched_atfor history.Deploy anywhere — local stdio via
uvx, or self-hosted streamable HTTP for cloud agents; no HSBC account, key, or login required.Companion skill —
tradetrack-followturns top-5% signals into drafted IBKR order instructions (via IBKR's MCP connector); nothing trades automatically.Caveats — unofficial, not affiliated with HSBC, data may be delayed or wrong, and nothing here is investment advice.
Provides access to HSBC TradeTrack public endpoints for US and Hong Kong stocks, including hot traded stocks, buy/sell ratios, and the top buys, sells, and holdings of HSBC's top 5% performing traders, plus historical intraday snapshots.
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., "@TradeTrack MCPWhich US stocks are HSBC's top 5% traders buying today?"
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.
hsbc-tradetrack-mcp
Unofficial MCP server for HSBC TradeTrack (汇丰交易追踪 / 匯豐交易追蹤): the US and Hong Kong stocks HSBC personal banking investors trade most, and what HSBC's top 5% performing traders buy, sell and hold.
All data comes from HSBC's public, no-login endpoints (the same ones behind the pre-logon TradeTrack page). No HSBC account, API key or authentication is needed.
关键词:汇丰交易追踪、汇丰热门股票、前5%表现最好投资者、买入卖出比例、美股、港股、MCP。
Status: early (0.x). The tool schema may still change between minor versions.
Quick start
Runs locally over stdio and needs uv. Requests go from your machine straight to HSBC.
claude mcp add hsbc-tradetrack -- uvx hsbc-tradetrack-mcp{
"mcpServers": {
"hsbc-tradetrack": { "command": "uvx", "args": ["hsbc-tradetrack-mcp"] }
}
}Self-host for remote and cloud agents
Agents that need a URL rather than a local command (claude.ai, cloud-hosted agents, other machines) can run their own instance over streamable HTTP. There is no public instance.
FASTMCP_TRANSPORT=http FASTMCP_HOST=0.0.0.0 FASTMCP_PORT=8000 uvx hsbc-tradetrack-mcpThe endpoint is http://<host>:8000/mcp. Any platform that runs a command works (a VPS, Railway, Render, Fly.io); put TLS in front of it. The server has no auth of its own, so add your platform's access control if you don't want the URL to be open.
On FastMCP Cloud, fork this repo and deploy it with the entrypoint src/hsbc_tradetrack_mcp/server.py:mcp; the free plan keeps the server private to your account.
Tools
Tool | Arguments | Returns |
|
| Latest lists |
|
| Every intraday snapshot collected since 2026-10-16 |
Example prompt: "Which US stocks are HSBC's top 5% traders buying today that they weren't buying yesterday?"
Related MCP server: Stock MCP
Use with Interactive Brokers
skills/tradetrack-follow is an example agent workflow that follows the top 5% traders through IBKR's official MCP connector: entries when they buy a stock two days in a row, exits on a stop or after a holding period (each run re-decides leveraged ETFs). It drafts IBKR order instructions; nothing trades until you submit them in IBKR. The strategy is untested: use a paper account.
claude mcp add --transport http ibkr https://api.ibkr.com/v1/api/mcp-public
curl -fsSL --create-dirs -o ~/.claude/skills/tradetrack-follow/SKILL.md \
https://raw.githubusercontent.com/BukeLy/hsbc-tradetrack-mcp/main/skills/tradetrack-follow/SKILL.mdThen run /tradetrack-follow in Claude Code, optionally with overrides such as "US only, stop loss 5%".
To run it as a scheduled task, schedule it on weekdays, naming the time zone, before the open to review against pre-market quotes (08:30 America/New_York for US), optionally adding an "exits only" run after the first intraday refresh (12:00), with a prompt such as "unattended, live account, US only": it then drafts instructions without asking, skips a market that is closed, and skips stocks that already have a draft or working order. In ChatGPT, add this server (see Self-host) and the Interactive Brokers plugin, then give SKILL.md to Plugin Creator to bundle the three.
Lists
List | What it shows | US refresh (ET) | HK refresh (HKT) |
Hot (all investors) | Top 10 most actively traded stocks, buy % vs sell % | 09:35, then every 30 min 10:00–16:00 | 09:35, then every 30 min 10:00–16:30 |
Top buy (top 5%) | Top 10 stocks bought; split into new vs added positions | 11:30, 13:00, 16:00 | 12:30, 15:30, 16:10 |
Top sell (top 5%) | Top 10 stocks sold; split into partial vs full exits | same | same |
Top hold (top 5%) | Top 10 holdings with 1d / 1m / 3m / 6m ranks | same | same |
"Top 5%" means active HSBC stock traders whose portfolios returned the top 5% over the past 6 months.
Historical data
HSBC only serves today, yesterday and last month. A scheduled workflow appends every new snapshot to the data branch, one file per market per trading day:
https://raw.githubusercontent.com/BukeLy/hsbc-tradetrack-mcp/data/<US|HK>/<YYYY-MM-DD>.jsonlEach line is {"list", "dateType", "fetched_at", "raw"}, where raw is HSBC's unmodified response.
Disclaimer
Not affiliated with, endorsed by, or connected to HSBC. "HSBC" and "TradeTrack" are trademarks of their owner. The data belongs to HSBC and may be delayed, incomplete or wrong. Nothing here is investment advice.
License
Available Tools
2 toolstradetrackTradetrackARead-onlyIdempotent
Latest HSBC TradeTrack lists for a market. lists defaults to all four.
period picks the ranking window: today, yesterday or last_month for every list;
last_3_months and last_6_months for top_hold only.
| Name | Required | Description | Default |
|---|---|---|---|
| lists | No | ||
| market | Yes | ||
| period | No | today |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so safety is covered. The description goes beyond them by disclosing the `lists` default behaviour and an important cross-parameter constraint (last_3_months/last_6_months apply only to top_hold), which is not expressible in the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the core purpose front-loaded, followed by the two non-obvious parameter rules. No filler, every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need no explanation, and the parameter semantics and default behaviour are well covered for a 3-param tool. The main shortfall is the absence of any routing guidance relative to tradetrack_history.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, and it largely does: it documents the default for `lists` and explains that `period` selects the ranking window, including which values are valid for which list. Only `market` is left unaddressed, and its US/HK enum is self-explanatory.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (latest HSBC TradeTrack lists), scope (per market), and implies the time dimension with 'Latest'. It is clear what the tool returns, though it never mentions the sibling tradetrack_history, so the boundary between 'latest' and 'history' is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: 'Latest' nudges the agent toward this tool over tradetrack_history for current data, but there is no explicit when-to-use statement, no exclusion, and the alternative is never named. Adequate but with a clear gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tradetrack_historyTradetrack HistoryARead-onlyIdempotent
Past intraday snapshots of the "today" lists, one per HSBC refresh, oldest first, collected since 2026-10-16.
Dates are trading days (market-local), inclusive, at most 31 days per call. Pass symbol to keep only
snapshots that contain that stock (HK codes may omit leading zeros). Days without trading return nothing.
| Name | Required | Description | Default |
|---|---|---|---|
| lists | No | ||
| market | Yes | ||
| symbol | No | ||
| date_to | No | ||
| date_from | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, open-world, so the safety profile is covered. The description adds genuinely new traits beyond that: oldest-first ordering, the 31-day window cap, the data collection start date, and that non-trading days yield no results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences with no filler; the core scoping constraint (past snapshots, one per refresh) is front-loaded. Slightly cluttered by the parenthetical HK note but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be described, and annotations cover the safety profile. The remaining gap is that the `lists` filter and its enum are unexplained, and the relationship to the sibling tradetrack is left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the burden. It clarifies `symbol` (HK codes may omit leading zeros) and the date parameters (trading days, inclusive, 31-day max), and 'market-local' implies `market` values. But `lists` and the enum values (hot/top_buy/top_sell/top_hold) and US/HK enumeration receive no explanation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource ('past intraday snapshots of the "today" lists') and an explicit verb-like framing, plus a collection start date. It implicitly contrasts with the sibling tradetrack (current vs. historical), though it never names the sibling to make the routing explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives operational constraints (trading-day dates, inclusive, at most 31 days per call, empty days return nothing) that tell the agent how to call it. However, it never states when to use this tool instead of the sibling tradetrack, leaving the historical-vs-live choice to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
v0.1.2- First observed
tradetrack - First observed
tradetrack_history
TDQS
Scored across 2 tools
The two tools are separated on a clear axis: tradetrack returns the latest lists, while tradetrack_history returns archived snapshots over a date range. A boundary is still slightly fuzzy because both operate on the same 'today' lists and an agent could plausibly reach for either without reading the date-range parameter carefully.
Both names share a consistent 'tradetrack' prefix with a single modifier suffix (_history), which reads predictably. However, neither name follows a verb_noun convention and the bare base name 'tradetrack' is less descriptive on its own than 'get_current' or 'list_tradetrack' would be.
Two tools is thin for a server whose domain includes multiple markets, lists, and periods; much of the surface is pushed into parameters rather than tools. It is defensible given the narrow read-only scope, but it sits at the borderline of feeling under-scoped.
Coverage of the read-only retrieval lifecycle (latest plus historical) is reasonable, but notable gaps exist: no tool to enumerate available markets/symbols, and period support is asymmetric (last_3_months/last_6_months only apply to top_hold, which is not surfaced anywhere as a constraint an agent can inspect).
Maintenance
Related MCP Connectors
Access real-time and historical market data for China A-shares and Hong Kong stocks, along with ne…
Provide access to Chinese stock market data including historical prices, real-time data, news, and…
Live crypto + IDX stock market intelligence for AI agents — 19 tools, no API key.
China A-share data for AI agents: 57 read-only tools plus 6 tools for your own watchlist.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to pull live China A-share market data through 24 tools spanning real-time quotes, K-lines, five-level order books, financials, money flow, dragon-tiger lists, sector and valuation data, convertible bonds, ETFs, IPOs, macro indicators, and factor-based stock screening. Five of the tools work with no API key, while the rest require a paid key.305 npmMIT
- FlicenseNot gradedqualityAmaintenanceEnables AI agents and backend services to retrieve and analyze A-share, US equity, ETF, index, and crypto data, including technical indicators, fundamentals, money flow, filings, and news through MCP tools and HTTP APIs.-
- FlicenseNot gradedqualityAmaintenanceEnables AI agents and regular backends or scripts to access standardized financial market data and analysis across A-shares, US equities, ETFs, indices, and crypto, including technical indicators, fundamentals, money flow, news, filings, and CSV/JSON exports.-
- FlicenseNot gradedqualityAmaintenanceEnables AI agents and HTTP clients to access standardized financial market data, technical indicators, fundamentals, news, money-flow, and filings across A-shares, US equities, ETFs, indices, and crypto, with MCP tools and CSV/JSON exports for code workflows.-