Labsco
MCP SERVER

Questrade MCP Server

by zachmelin

Read Questrade accounts, positions and per-currency balances, look up symbols and their quotes and candles, and list orders over a time window and state filter.

Equity & Fund Market DataVerified
Summary
Orders can be read and not placed, so the worst a bad call produces here is a wrong number rather than a wrong trade.

get_orders lists and filters by state, and there is no tool anywhere in the set that creates, amends or cancels one. get_balances is the tool worth reading before you use its output: it returns an object keyed by currency in native denominations and says to report them separately, which is exactly where a model would otherwise add CAD and USD into one figure. Access runs on a refresh token, and refreshing is an explicit tool rather than something that happens quietly in the background.

What it is

A read-only Questrade client covering accounts, positions, balances and orders on one side, and symbol lookup, quotes and historical candles on the other.

What you get
  • get_accounts for every account on the login, with get_positions and get_balances per accountNumber.
  • Balances returned keyed by currency, each in its native denomination — CAD holdings in CAD, USD holdings in USD — with the instruction to report them separately and apply an exchange rate for a combined total.
  • get_orders for one account over a startTime and endTime window with a stateFilter.
  • Symbols: search_symbols by prefix with an offset, and get_symbol for one symbolId's detail.
  • Market data: get_quotes for a set of symbolIds, and get_candles for a symbol over a start and end time at a chosen interval.
  • refresh_token, which refreshes the API access token.
Requirements

QUESTRADE_REFRESH_TOKEN, and the Questrade account it belongs to.

Setup effort

One command plus a key — npm install -g questrade-mcp-server, then supply credentials