Remote MCP

Remote MCP is a hosted MCP service provided by Tiger OpenAPI. Add the service URL to any AI tool that supports MCP, complete OAuth2 authorization with your Tiger account, and then query quotes, accounts, and orders in natural language.

No SDK installation, local process, or Tiger ID and private key configuration is required. Which accounts the AI tool can access and what it can do are determined by the accounts and permission scopes selected during authorization.

⚠️

Remote MCP uses OAuth2 authorization and currently supports individual users only.

Service URL

https://mcp.tigerfintech.com/mcp

Enter the full URL without a trailing slash.

Prerequisites

  1. Tiger OpenAPI is activated, and the live or paper trading accounts to be authorized are bound in the Developer Center.
  2. The AI tool supports remote MCP (Streamable HTTP and OAuth 2.1).
  3. Market data is subject to the OpenAPI market data permissions already attached to the account. Real-time quotes, trade ticks, and market depth require a separately purchased API market data permission, which is independent of the permissions in the Tiger Trade app; the available range of candlestick bars (K-line) is determined by the historical market data quota tier. See Market data permissions and limits for details.

Setup

In your client, add a remote MCP server, select HTTP / Streamable HTTP as the transport, and enter https://mcp.tigerfintech.com/mcp as the URL. After adding it, connect to the service and follow the prompts to sign in and authorize in your browser.

Claude Code

Run the following command in a terminal to add the remote MCP server:

claude mcp add --transport http tiger-mcp https://mcp.tigerfintech.com/mcp

By default, the command adds the server to the current project. To make it available in all projects, append --scope user.

After adding it, run /mcp in Claude Code, select tiger-mcp, and follow the prompts to complete authorization.

Claude Desktop

  1. Open Settings → Connectors.
  2. Click Add custom connector.
  3. Enter Tiger MCP as the name and https://mcp.tigerfintech.com/mcp as the URL.
  4. After saving, sign in to your Tiger account and complete authorization as prompted.

Custom connectors require the corresponding subscription plan; refer to the current version of your client for details.

Codex

Run the following command in a terminal to add the remote MCP server:

codex mcp add tiger-mcp --url https://mcp.tigerfintech.com/mcp

Then complete OAuth sign-in:

codex mcp login tiger-mcp

Your browser opens the authorization page automatically. Run codex mcp list to confirm the server has been added, and run /mcp in Codex to view the connection status.

Cursor

  1. Open Cursor settings and go to the MCP page.
  2. Add a remote MCP server and select HTTP / Streamable HTTP as the transport.
  3. Enter Tiger MCP as the name and https://mcp.tigerfintech.com/mcp as the URL.
  4. After saving, click Connect, sign in to your Tiger account in the browser, and complete authorization.

Other clients

Add an MCP server of type remote / HTTP / Streamable HTTP, enter the service URL, and complete authorization. Clients that only support local processes (stdio) cannot use this service.

Authorization flow

On first connection, the client automatically opens a browser:

  1. Sign in to your Tiger account.
  2. Select the accounts this authorization grants access to. Live and paper trading accounts can be selected separately (multiple each), and only the selected accounts are authorized.
  3. Select the capability scopes (scope) this authorization grants. Nothing is selected by default; you must choose actively.
  4. Confirm the authorization.

After authorization, the browser redirects back to the client; no manual token copying is required.

  • A single authorization lasts up to 15 days; you need to reauthorize after it expires.
  • To revoke authorization, use authorization management in the Developer Center.

Permission scopes

ScopeGrantsCapabilities
api.basic:readBasic data, including API permissions and quotasDetermines whether stock quotes return real-time data
api.quote:readMarket dataSymbol search, quotes, candlestick bars, timeline, market depth, trade ticks, option chain, screener, and more
api.account:readAccount informationAccount assets, positions, historical asset performance
api.trade:readTrade queriesTrade contracts, orders, transactions
  • get_accounts only requires either api.account:read or api.trade:read.
  • Stock quotes return real-time data only when api.quote:read, api.basic:read, and the real-time market data permission are all present; otherwise they return 15-minute delayed data. Each quote indicates its data type via quote_type.

Tools

📘

The tool list may change with server-side configuration; integrators should rely on the tool list their client retrieves. Click a tool name to view its parameters.

Trading and additional tools will be rolled out over time.

📈

Symbols & Market Data

Search symbols, query quotes, candlestick bars, market depth, options, and the screener
18 tools

All of the following tools require api.quote:read.

search_symbolsSearch symbols

Purpose: Search for standard symbols by name, product, or code; returns symbols only, not prices.

ParameterTypeRequiredDescription
querystringYesName, product, or code keyword
limitintegerNoMaximum number of results, default 10, range 1–30
get_quoteGet quotes

Purpose: Query the latest quotes for one or more symbols.

ParameterTypeRequiredDescription
symbolsstringYesComma-separated standard symbols, such as AAPL, 00700, CL2509, BTC.USD; up to 50 symbols of the same type and market
sec_typeenumNoSTK/OPT/FUT/CC, default STK
include_hour_tradingbooleanNoStocks only; whether to include pre-market and after-hours prices, default true
limitintegerNoMaximum number of results, default 20, range 1–50
get_barsGet candlestick bars

Purpose: Query historical candlestick bars (OHLCV) for a single symbol.

ParameterTypeRequiredDescription
symbolstringYesStandard symbol
periodenumNoday/week/month/year/1min/5min/15min/30min/60min, default day
sec_typeenumNoSTK/OPT/FUT/CC, default STK
begin_timeintegerNoStart time, Unix milliseconds
end_timeintegerNoEnd time, Unix milliseconds, default is the current time
datestringNoyyyyMMdd, stock minute bars only; cannot be used together with begin_time, end_time, or limit
limitintegerNoMaximum number of results, default 100, range 1–500
get_timelineGet timeline

Purpose: Query the timeline price series for the current day or a specified date.

ParameterTypeRequiredDescription
symbolstringYesStandard symbol
sec_typeenumNoSTK/OPT/CC, default STK
datestringNoyyyyMMdd, stocks only; mutually exclusive with period and begin_time
periodenumNoday/day5, default day; not supported for options
trade_sessionenumNoPreMarket/Regular/AfterHours/All, default All; stocks only
begin_timeintegerNoUnix milliseconds, current-day timeline for stocks and crypto only
get_depthGet market depth

Purpose: Query buy and sell market depth orders.

ParameterTypeRequiredDescription
symbolstringYesStandard symbol
sec_typeenumNoSTK/OPT/FUT, default STK
marketenumNoUS/HK/CN; stocks only
sessionenumNoRegular/PreMarket/AfterHours/All; stocks only
langenumNozh_CN/zh_TW/en_US; futures only, default zh_CN
get_ticksGet trade ticks

Purpose: Query trade tick details.

ParameterTypeRequiredDescription
symbolstringYesStandard symbol
sec_typeenumNoSTK/OPT/FUT, default STK
trade_sessionenumNoPreMarket/Regular/AfterHours/All, default Regular; stocks only
langenumNozh_CN/zh_TW/en_US; stocks only, default zh_CN
begin_indexintegerNoStart of the index range; must be provided together with end_index
end_indexintegerNoEnd of the index range, exclusive
limitintegerNoMaximum number of results, default 50, range 1–200
get_market_statusGet market status

Purpose: Query the current trading status of a market.

ParameterTypeRequiredDescription
marketenumNoALL/US/HK/CN/SG/AU/NZ/UK, default ALL
langenumNozh_CN/zh_TW/en_US
get_contractGet quote contracts

Purpose: Query quote contracts for options, HK warrants, or CBBCs.

ParameterTypeRequiredDescription
symbolstringYesUnderlying stock code
sec_typeenumNoOPT/WAR/IOPT, default OPT
expirystringNoyyyyMMdd, 8 digits; required for options
langenumNozh_CN/zh_TW/en_US; mutually exclusive with expiry
get_hk_option_symbolsGet HK option symbols

Purpose: Query the mapping between HK stock codes and HK option underlying codes.

ParameterTypeRequiredDescription
underlyingstringNo5-digit zero-padded HK stock code, such as 00700; when omitted, returns the mapping list, up to 50 rows
get_stock_brokerGet HK broker seats

Purpose: Query buy and sell broker seats for HK stocks.

ParameterTypeRequiredDescription
symbolstringYes5-digit zero-padded HK stock code
limitintegerNoNumber of levels per side, default 40, range 1–60
get_future_exchangesGet futures exchanges

Purpose: Query exchanges that support the futures contract discovery API.

ParameterTypeRequiredDescription
limitintegerNoMaximum number of results, default 50, range 1–100
langenumNozh_CN/zh_TW/en_US
get_future_contractsGet futures contracts

Purpose: Query futures contract codes on a specified exchange.

ParameterTypeRequiredDescription
exchange_codestringYesExchange code, from get_future_exchanges
langenumNozh_CN/zh_TW/en_US
limitintegerNoMaximum number of results, default 50, range 1–200
include_untradablebooleanNoWhether to include contracts that are currently not tradable, default false
get_crypto_symbolsGet crypto symbols

Purpose: Query supported crypto codes.

ParameterTypeRequiredDescription
limitintegerNoMaximum number of results, default 200, range 1–500
get_capital_flowGet capital flow

Purpose: Query net capital inflow trends and large, medium, and small order distribution for stocks.

ParameterTypeRequiredDescription
symbolstringYesStock code
periodenumNointraday/day/week/month/quarter/6month/year, default day; intraday is not supported for A-shares
marketenumNoUS/HK/CN; inferred from the symbol when omitted
limitintegerNoMaximum number of results, default 20, range 1–200
get_option_expirationsGet option expirations

Purpose: Query the option expiration dates of a symbol.

ParameterTypeRequiredDescription
symbolstringYesUnderlying stock code
marketenumNoUS/HK, default US
get_option_chainGet option chain

Purpose: Query the option chain for a specified expiration date.

ParameterTypeRequiredDescription
symbolstringYesUnderlying stock code
expirystringYesyyyy-MM-dd, from get_option_expirations
marketenumNoUS/HK, default US
moneyness_rangeintegerNoNumber of strike levels to keep above and below at-the-money, default 10, range 1–50
rightenumNoALL/CALL/PUT, default ALL
describe_screener_fieldsDescribe screener fields

Purpose: Query the filter fields and tag values supported by the screener.

ParameterTypeRequiredDescription
marketenumNoUS/HK/SG/AU; required when querying dynamic tag values such as industries and concepts
categoryenumNobase/accumulate/financial/tag/period
limitintegerNoMaximum number of results, default 60, range 1–200
tag_fieldsarrayNoMultiTagField identifiers whose tag values should be expanded
keywordstringNoSearch by field name, API name, or Chinese/English alias
screen_stocksScreen stocks

Purpose: Screen stocks and ETFs by screener conditions.

ParameterTypeRequiredDescription
marketenumYesUS/HK/SG/AU
base_filtersarrayNoBasic metric ranges. Each item includes field (string, required), min (number), max (number), and no_filter (boolean)
accumulate_filtersarrayNoAccumulated metric ranges. Each item includes field (string, required), period (string), min, max, and no_filter
financial_filtersarrayNoFinancial metric ranges. Each item includes field (string, required), min, max, and no_filter
tag_filtersarrayNoTag conditions. Each item includes field (string, required), tags (array of string), and no_filter
sortobjectNoSorting. Includes field (required), field_type (required, stock/accumulate/financial/tag), direction (required, asc/desc), and period (required for accumulated metrics)
pageintegerNoPage number, starting from 0, default 0
page_sizeintegerNoNumber of results per page, default 50, range 1–200
cursor_idstringNoPagination cursor; pass it back unchanged

Fields such as market value use absolute currency units, for example a US$200 billion total market value is passed as 200000000000. Numeric ranges are inclusive, and financial ratios use decimals, for example 10% is passed as 0.1. Results include ETFs by default; to keep only common stocks, add MultiTagField_Type with a tag value of 0.

💼

Accounts & Orders

Query authorized accounts, assets, positions, orders, and transactions
7 tools

get_accounts requires api.account:read or api.trade:read; assets, positions, and historical asset performance require api.account:read; orders, transactions, and trade contracts require api.trade:read.

get_accountsGet authorized accounts

Purpose: List the account numbers and account types available within this authorization.

No parameters. When there is exactly one authorized account, also returns default_account.

get_assetsGet account assets

Purpose: Query the current account asset snapshot, including available balance, buying power, and more.

ParameterTypeRequiredDescription
accountstringNoAuthorized account number; required when multiple accounts exist
base_currencyenumNoALL/USD/HKD/CNH/SGD/AUD/JPY/EUR/GBP/CAD/NZD; no FX conversion is performed
consolidatedbooleanNoWhether to return consolidated assets, default true; only supported for some account types
get_positionsGet positions

Purpose: Query the current positions of an account.

ParameterTypeRequiredDescription
symbolstringNoSymbol code
marketenumNoUS/HK/CN
sec_typeenumNoSTK/OPT/FUT/FUND, default STK
accountstringNoAuthorized account number
limitintegerNoMaximum number of results, default 50, range 1–200
get_ordersGet orders

Purpose: Query a single order by order ID, or list account orders by conditions.

ParameterTypeRequiredDescription
accountstringNoAuthorized account number
order_scopeenumNoALL/FILLED/ACTIVE/INACTIVE, default ALL
order_idintegerNoGlobal order ID; in single-order mode, cannot be combined with list filter parameters
symbolstringNoSymbol code
marketenumNoUS/HK/CN/ALL
sec_typeenumNoSTK/OPT/FUT/FUND
statusstringNoComma-separated exact statuses; only available when order_scope=ALL
start_timeintegerNoStart time, Unix milliseconds
end_timeintegerNoEnd time, Unix milliseconds
is_briefbooleanNoWhether to return brief information, default false; only supported for some accounts
limitintegerNoNumber of results per page, default 20, range 1–100
page_tokenstringNoThe next_page_token returned from the previous page

List mode queries all orders by default, with a time range of the most recent 7 days and 20 results per page.

get_transactionsGet transactions

Purpose: Query transaction details.

ParameterTypeRequiredDescription
accountstringNoAuthorized account number
order_idintegerNoQuery transactions by order; in this case only the account, order ID, count, and cursor parameters are accepted
symbolstringNoProvide when querying transactions by symbol; must be used together with sec_type
sec_typeenumNoSTK/OPT/FUT/FUND
expirystringNoOption expiration date
strikenumberNoOption strike price
put_callenumNoPUT/CALL
start_timeintegerNoStart time, Unix milliseconds
end_timeintegerNoEnd time, Unix milliseconds
limitintegerNoNumber of results per page, default 20, range 1–100
page_tokenstringNoThe next_page_token returned from the previous page

Either order_id or symbol + sec_type must be provided. When querying options by symbol, expiry, strike, and put_call must also be provided. The default time range is the most recent 7 days.

get_analytics_assetGet historical asset performance

Purpose: Query an account's historical asset performance and daily asset records.

ParameterTypeRequiredDescription
accountstringNoAuthorized account number; only supported for some account types
start_datestringNoyyyy-MM-dd
end_datestringNoyyyy-MM-dd
segment_typeenumNoSEC/FUT/ALL
currencyenumNoALL/USD/HKD/CNH/SGD/AUD/JPY/EUR/GBP/CAD/NZD; no FX conversion is performed

The default is the most recent 30 days.

get_trade_contractGet trade contract

Purpose: Query the account-level trading attributes of a contract, such as shares per lot, minimum price increment, margin, and short-sell eligibility.

ParameterTypeRequiredDescription
symbolstringYesStock code, option underlying code, or futures contract code
sec_typeenumNoSTK/OPT/FUT, default STK
expirystringNoOption expiration date; required for options
strikenumberNoOption strike price; required for options
put_callenumNoPUT/CALL; required for options
accountstringNoAuthorized account number

Rules for using the account parameter:

  • If account is omitted, the account is used automatically only when there is exactly one authorized account.
  • If no account is authorized, or multiple accounts are authorized, call get_accounts first and then specify the account.
  • Passing an unauthorized account returns an error; the server does not fall back to another account.

Usage examples

After authorization, you can make requests in natural language:

  • "Check the latest prices of AAPL and NVDA."
  • "Pull the daily candlestick bars for 00700 over the last 60 trading days."
  • "Show me which stocks my US account currently holds."
  • "List my unfilled orders from the last 7 days."

Did this page help you?