Skip to content

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. This creates a DRAFT order for user review. The trade WILL NOT execute until user presses the Execute button in the UI. After creating the draft, tell the user: "When you are ready, you can place the order by pressing the Execute button.

If no amount is provided, the user's default amount is used. If no account is provided, the user's 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

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}

Parameters

symbolstringrequired

Ticker symbol of the asset, e.g. TSLA

amountnumberrequired

The amount to trade, interpreted as dollars or shares based on unit.

unitenum: "dollars" | "shares"required

Whether amount is in dollars or shares.

buy_or_sellenum: "buy" | "sell"required
metadataobject
image_urlstring

URL of the image used to create the trade

order_typeenum: "market" | "limit" | "stop" | "stop_limit"

Type of order: market (default), limit, stop, or stop_limit

limit_pricenumber

Required for limit or stop-limit orders

stop_pricenumber

Required for stop or stop-limit orders

time_in_forceenum: "day" | "gtc" | "ioc" | "fok"

How long the order remains active: day, gtc. Omit to use brokerage default.

account_idnumber | string

ID of the brokerage account to execute the trade on. Omit to use default.

create_options_trade

(BETA) 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)

Note: Option legs must have a valid OCC string. Equity legs should have occ set to null.

Parameters

symbolstringrequired

Ticker symbol of the underlying asset, e.g. SPX, TSLA

legsarray of objectrequired

Array of trade legs. At least one leg is required.

Each item has:

typeenum: "option" | "equity"required

Type of leg: "option" for options, "equity" for stock/crypto

actionenum: "buy" | "sell"required

Trade action: "buy" or "sell"

position_effectenum: "open" | "close"

Open a new position or close an existing one. Required for option legs; null for equity legs.

occstringrequired

OCC format string for options (e.g., "240119C00195000" for Jan 19, 2024 $1950 call). Required for option legs, null for equity legs. Format: YYMMDD[C|P]STRIKE

quantitynumberrequired

Number of contracts for options or shares for equity

directionenum: "debit" | "credit"

Required only for multi-leg spreads. "debit" if you pay money; "credit" if you receive money

order_typeenum: "market" | "limit" | "stop" | "stop_limit"

Type of order: market (default), limit, stop, or stop_limit

limit_pricenumber

Required for limit or stop-limit orders

stop_pricenumber

Required for stop or stop-limit orders

time_in_forceenum: "day" | "gtc" | "ioc" | "fok"

How long the order remains active: day, gtc. Omit to use brokerage default.

account_idnumber | string

ID of the brokerage account to execute the trade on. Omit to use default.

execute_trade

Execute a draft trade order. Call ONLY when the user EXPLICITLY requests to execute a specific trade after reviewing it. DO NOT call this immediately after create_trade - the user must review and confirm first.

Parameters

trade_idnumber | stringrequired

ID of the trade to execute

get_accounts

Get all brokerage accounts for the user and link new ones. Currently supported: Robinhood, ETrade, Coinbase, Kraken, Charles Schwab, Webull, Public, Tastytrade

Parameters

No parameters.

search_assets

Gets info on a stock or crypto by ticker symbol or name. Returns latest price and metadata.

Parameters

querystringrequired

The ticker symbol or name of the asset