MCP Tools
This page documents all tools exposed by the TradeIt MCP server. Each tool includes its full parameter schema.
create_trade
Create a trade order for user to review. The trade will not execute until the user confirms and execute_trade is called with the trade ID. You may enable auto-execution by setting "Always Confirm" to false in the Trade It dashboard.
If no account is provided, your default account is used. If no order_type is provided, it defaults to a market order.
ORDER TYPES:
- market (default) -> Executes immediately at current market price. No price fields required.
- limit -> Executes only at a specific limit_price or better. Requires limit_price.
- stop -> Triggers a market order when stop_price is reached. Requires stop_price.
- stop_limit -> Triggers a limit order when stop_price is reached. Requires BOTH stop_price and limit_price.
TIME IN FORCE (if omitted, brokerage default is used):
- day -> Expires at end of trading day
- gtc -> Good til canceled
EXIT CRITERIA:
- take profit -> Closes the position at a certain price or percent above the entry.
- stop loss -> Closes the position at a certain price or percent below the entry.
EXAMPLES:
Buy $1000 of Tesla: {symbol: "TSLA", amount: 1000, unit: "dollars", buy_or_sell: "buy"}
Buy $1000 of Tesla, but only if the price drops to $150 or lower: {symbol: "TSLA", amount: 1000, unit: "dollars", buy_or_sell: "buy", order_type: "limit", limit_price: 150}
Sell 10 shares of Apple if the price falls to $140 or lower: {symbol: "AAPL", amount: 10, unit: "shares", buy_or_sell: "sell", order_type: "stop", stop_price: 140}
Buy a share of Apple if it hits $200: {symbol: "AAPL", amount: 1, unit: "shares", buy_or_sell: "buy", order_type: "stop", stop_price: 200}
Buy 10 shares of Apple if the price rises to $140, but don't pay more than $142 per share: {symbol: "AAPL", amount: 10, unit: "shares", buy_or_sell: "buy", order_type: "stop_limit", stop_price: 140, limit_price: 142}
Buy $1000 of Tesla, take profit at +10%, stop loss at -5%: {symbol: "TSLA", amount: 1000, unit: "dollars", buy_or_sell: "buy", take_profit: {value: 10, unit: "%"}, stop_loss: {value: 5, unit: "%"}}
Buy 5 shares of Apple, sell if it reaches $250 or drops to $180: {symbol: "AAPL", amount: 5, unit: "shares", buy_or_sell: "buy", take_profit: {value: 250, unit: "$"}, stop_loss: {value: 180, unit: "$"}}
Parameters
Ticker symbol of the asset to trade, e.g. TSLA
How much to trade: a dollar value when unit is dollars, or a share count when unit is shares.
Whether amount is in dollars or shares.
dollarssharesWhether to buy or sell the asset.
buysellOptional context displayed with the draft trade.
Link to the screenshot or chart the user shared as the source of this trade idea, shown alongside the draft.
How the order is priced. Omit for a market order.
marketlimitstopstop_limitMaximum price per share to pay on a buy, or minimum to accept on a sell, in the asset currency. Set for limit and stop_limit orders.
Price per share, in the asset currency, that triggers the order. Set for stop and stop_limit orders.
Take-profit exit for Buy entries. Not supported by all brokerages.
Exit trigger level
Absolute price ($) or percent from entry price (%).
$%Stop-loss exit for Buy entries. Not supported by all brokerages.
Exit trigger level
Absolute price ($) or percent from entry price (%).
$%How long the order stays open: day expires at market close, gtc stays open until canceled. Omit to use the brokerage default.
daygtciocfokID of the brokerage account to trade in, from get_accounts. Omit to use the user's default account.
create_options_trade
Create an options trade order with one or more legs (spreads, single options, etc.). Each leg represents a position in the options trade. For option legs, the OCC (Options Clearing Corporation) format is required.
OCC FORMAT: The OCC format is a standardized string format: YYMMDD[C|P]STRIKE
- YY: 2-digit year (e.g., 24 for 2024)
- MM: 2-digit month, zero-padded (e.g., 01 for January)
- DD: 2-digit day, zero-padded (e.g., 19 for the 19th)
- C or P: Call or Put option
- STRIKE: 8-digit strike price (multiplied by 1000, zero-padded, no decimal point)
EXAMPLES:
Single call option: Buy 1 SPX call option with strike 1950, expiring Jan 19, 2024 {symbol: "SPX", legs: [{type: "option", action: "buy", position_effect: "open", occ: "240119C00195000", quantity: 1}]}
Put spread: Buy 1 SPX put (strike 1950) and sell 1 SPX put (strike 1900), both expiring Jan 19, 2024 {symbol: "SPX", legs: [ {type: "option", action: "buy", position_effect: "open", occ: "240119P00195000", quantity: 1}, {type: "option", action: "sell", position_effect: "open", occ: "240119P00190000", quantity: 1} ]}
Mixed leg: Buy 100 shares of SPX and buy 1 call option {symbol: "SPX", legs: [ {type: "equity", action: "buy", position_effect: null, occ: null, quantity: 100}, {type: "option", action: "buy", position_effect: "open", occ: "240119C00195000", quantity: 1} ]}
ORDER TYPES:
- market (default) -> Executes immediately at current market price
- limit -> Executes only at a specific limit_price or better. Requires limit_price.
- stop -> Triggers a market order when stop_price is reached. Requires stop_price.
- stop_limit -> Triggers a limit order when stop_price is reached. Requires BOTH stop_price and limit_price.
TIME IN FORCE (if omitted, brokerage default is used):
- day -> Expires at end of trading day
- gtc -> Good til canceled
DIRECTION:
- debit -> You pay money to open the position (net cost)
- credit -> You receive money to open the position (net credit)
- even -> No money changes hands (zero-net limit order)
Note: Option legs must have a valid OCC string. Equity legs should have occ set to null.
Parameters
Ticker symbol of the underlying asset, e.g. SPX or TSLA
Array of trade legs. At least one leg is required.
Each item has:
Whether the leg trades an option contract or shares of the underlying.
optionequityWhether the leg buys or sells.
buysellWhether an option leg opens a new position or closes an existing one. Use null for equity legs.
opencloseOption contract in OCC format without the root symbol: YYMMDD, C or P, then the strike x1000 zero-padded to 8 digits, e.g. "240119C00195000" for the Jan 19, 2024 $195 call. Use null for equity legs.
Number of contracts for options or shares for equity
Net cash flow of a multi-leg spread: debit when paying, credit when receiving, even for zero-net. Set for multi-leg spreads only.
debitcreditevenNet price per spread unit for limit and stop_limit orders, in the asset currency. Use 0 with direction even for a zero-net spread.
How the order is priced. Omit for a market order.
marketlimitstopstop_limitPrice per share, in the asset currency, that triggers the order. Set for stop and stop_limit orders.
How long the order stays open: day expires at market close, gtc stays open until canceled. Omit to use the brokerage default.
daygtciocfokID of the brokerage account to trade in, from get_accounts. Omit to use the user's default account.
create_trade_link
Create a shareable Trade Link from a trade configuration. This returns a URL that others can review, edit, and execute on their own brokerage. The tool does not create a brokerage draft trade and does not execute any order.
Use this for trade alerts, shared trade ideas, or any flow where the recipient should review the trade before placing it.
EXAMPLES:
Share a simple stock idea: {config: {ticker: "TSLA", trade_type: 0, action: "buy", amount: 1000, unit: "dollars"}}
Share a two-leg options spread with a $1.25 net-debit limit: {config: {ticker: "MSFT", trade_type: 1, direction: "debit", order_type: "limit", limit_price: 1.25, legs: [ {type: "option", action: "buy", position_effect: "open", occ: "260717C00435000", quantity: 1}, {type: "option", action: "sell", position_effect: "open", occ: "260717C00440000", quantity: 1} ]}}
Parameters
Ticker symbol of the asset, or the underlying for options, e.g. TSLA
0 for a single buy or sell using action, amount, and unit; 1 for an options or multi-leg trade using legs and direction.
01Whether a simple trade buys or sells. Set when trade_type is 0.
buysellHow much a simple trade buys or sells,, as dollars or shares per unit.
Whether amount is a dollar value or a share count.
dollarssharesNet cash flow of a multi-leg trade: debit when paying, credit when receiving, even for zero-net.
debitcreditevenLegs of an options or multi-leg trade. Set when trade_type is 1.
Each item has:
Whether the leg trades an option or the underlying stock.
optionequityWhether the leg buys or sells.
buysellWhether the leg opens or closes a position.
opencloseOCC option contract symbol, e.g. 260717C00435000. Null for stock legs.
Number of option contracts, or shares for a stock leg.
How the order is priced. Omit for a market order.
marketlimitstopstop_limitLimit price in the asset currency for limit and stop_limit orders; per spread unit for multi-leg trades, where 0 with direction even means zero-net.
Price in the asset currency that triggers stop and stop_limit orders.
How long the order stays open: day expires at market close, gtc stays open until canceled. Omit to use the brokerage default.
daygtciocfokTake-profit exit for Buy entries. Not supported by all brokerages.
Exit trigger level
Absolute price ($) or percent from entry price (%).
$%Stop-loss exit for Buy entries. Not supported by all brokerages.
Exit trigger level
Absolute price ($) or percent from entry price (%).
$%Referral source label stored with the link for tracking, e.g. a newsletter name.
cancel_trade
Cancel a draft or cancellable brokerage order. Draft trades are canceled immediately. Submitted orders are canceled at the brokerage when their current state permits it. Because an order may fill while cancellation is in progress, always use the returned trade status as the latest known state.
Parameters
ID of the trade to cancel, from create_trade, create_options_trade, or get_trades.
execute_trade
Execute a draft trade order. Call after reviewing a trade to place it on your brokerage.
Parameters
ID of the draft trade to execute, as returned by create_trade or create_options_trade.
get_accounts
Get all brokerage accounts for the user and link new ones. Use refresh=true to pull fresh balances and buying power from the brokerage when eligible with a Pro plan; otherwise the last synced values are returned. Check each account's synced_at to see how fresh the values are. Currently supported: Charles Schwab, Coinbase, ETrade, Kraken, Moomoo, Public, Robinhood, Tastytrade, TradeStation, TradeStation Paper, Webull
Parameters
When true, requests the freshest available brokerage data. Real-time refresh requires a Pro plan and has a 1 minute per-account cooldown. Omit or false to return the last synced data.
get_holdings
Get holdings for a brokerage account. Use refresh=true to request fresh data when eligible with a Pro plan; otherwise cached daily data is returned.
Parameters
ID of the brokerage account to inspect, from get_accounts.
When true, requests the freshest available brokerage data. Real-time refresh requires a Pro plan and has a 1 minute per-account cooldown. Omit or false to return the last synced data.
get_trades
Get the user's recent trades with cursor pagination. Use refresh=true to request fresh brokerage sync when eligible with a Pro plan; otherwise existing synced trades are returned.
Parameters
Number of trades to return per page. Omit for 12.
Cursor from a previous get_trades response. Pass next_cursor to continue paginating older trades.
When true, requests the freshest available brokerage data. Real-time refresh requires a Pro plan and has a 1 minute per-account cooldown. Omit or false to return the last synced data.
search_assets
Gets info on a stock or crypto by ticker symbol or name. Returns latest price and metadata.
EXAMPLES:
Look up Tesla: {query: "TSLA"}
Look up Bitcoin: {query: "BTC"}
Parameters
The ticker symbol or name of the asset