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.
A read-only Questrade client covering accounts, positions, balances and orders on one side, and symbol lookup, quotes and historical candles on the other.
- 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.
QUESTRADE_REFRESH_TOKEN, and the Questrade account it belongs to.
One command plus a key — npm install -g questrade-mcp-server, then supply credentials
