Skip to main content
Glama
BukeLy

TradeTrack MCP

by BukeLy

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-mcp

The 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

tradetrack

market (US/HK), lists (default: all four), period (today, yesterday, last_month; last_3_months/last_6_months for top_hold)

Latest lists

tradetrack_history

market, date_from, date_to (≤ 31 days), lists, symbol

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.md

Then 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>.jsonl

Each 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

MIT

Available Tools

2 tools
tradetrackTradetrackA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
listsNo
marketYes
periodNotoday

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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 HistoryA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
listsNo
marketYes
symbolNo
date_toNo
date_fromYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

  1. 2 tool updatesv0.1.2
    • First observedtradetrack
    • First observedtradetrack_history

TDQS

A3.7/5.0

Scored across 2 tools

Disambiguation4/5

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.

Naming Consistency4/5

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.

Tool Count3/5

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.

Completeness3/5

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

ActivityNo data
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Provides 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.
    34
    55
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI assistants to fetch realtime stock quotes, fundamentals, and search for stocks across A-share, Hong Kong, and US markets without requiring API keys.
    5
    9 npm
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables 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.
    22
    115 npm
    Apache 2.0
  • A
    license
    A
    quality
    B
    maintenance
    Exposes 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.
    16
    65 PyPI
    1
    MIT