TradeTrack MCP
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: mcp-stock-quote
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 when they start selling it or a stop is hit. 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 after the last refresh, naming the time zone (16:30 America/New_York for US), with a prompt such as "unattended, live account, US only": it then drafts instructions without asking, skips a market that did not trade that day, 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…
Stock market data for AI agents: real-time quotes, financials, options, SEC filings and news.
Provide access to Chinese stock market data including historical prices, real-time data, news, and…
China A-share data for AI agents: 57 read-only tools plus 6 tools for your own watchlist.
Related MCP Servers
- AlicenseAqualityCmaintenanceProvides real-time stock market data and analysis from Chinese markets through 34 MCP tools, including K-line charts, technical indicators, fundamental analysis, financial metrics, and market insights without requiring authentication or API tokens.3455MIT
- AlicenseAqualityBmaintenanceEnables AI assistants to fetch realtime stock quotes, fundamentals, and search for stocks across A-share, Hong Kong, and US markets without requiring API keys.59 npmMIT
- AlicenseAqualityCmaintenanceEnables AI agents to query free public market data through 21 tools spanning 29 datasets sourced from SEC EDGAR/XBRL, FINRA, CFTC, the Federal Reserve, USAspending and exchange APIs. Covers short interest, insider and fund holdings, company financials, macro and policy rates, funding rates, crypto market metrics, IPOs and federal contracts, with no API key required to start.22115 npmApache 2.0
- AlicenseAqualityBmaintenanceExposes 16 Chinese A-share financial data tools covering quotes, announcements, dragon-tiger lists, margin financing, share unlocks, IPO calendars, and valuation anchors, all through public interfaces with no API key, login, or configuration. Every call returns a uniform JSON envelope carrying source, timestamp, and warning metadata rather than fabricated numbers.1665 PyPI1MIT