tradeit
Trade It is an MCP server for brokerage-aware investing workflows.
Community: Submitted by a user or imported; check the owner before granting accessOnlineNo sign-inGlobalFreeCan modify data
What it can do
- Hello: Responds to user's greetings with an introductory message. Show this when user asks what Trade It can do.
- Search Assets: Gets info on a stock or crypto by ticker symbol or name. Returns latest price and metadata.
- Create Trade: Create a trade order for user to review. This creates a draft order for user review. The trade will not execute until the user confirms and execute_trade is called with the trade ID. Use
What data it sees
Do you need an account
No: the server works without sign-in
Trade It is an MCP server for brokerage-aware investing workflows. It lets AI assistants search stocks and crypto, list and link supported brokerage accounts, inspect holdings and recent trades, create draft stock, ETF, crypto, and options orders, and execute live trades only after explicit user approval. Trade It supports Robinhood, ETrade, Charles Schwab, Webull, Public, Tastytrade, Coinbase, and Kraken, and authenticates with OAuth or user-created API keys.
Server tool list (8)
Raw names from tools/list. Only developers need these.
| hello | Responds to user's greetings with an introductory message. Show this when user asks what Trade It can do. |
| search_assets | Gets info on a stock or crypto by ticker symbol or name. Returns latest price and metadata. |
| create_trade | Create a trade order for user to review. This creates a draft order for user review. The trade will not execute until the user confirms and execute_trade is called with the trade ID. Users may enable auto-execution by setting "Always Confirm" to false in the Trade It dashboard. 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} |
| 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) Note: Option legs must have a valid OCC string. Equity legs should have occ set to null. |
| get_accounts | Get all brokerage accounts for the user and link new ones. Currently supported: Charles Schwab, Coinbase, ETrade, Kraken, Public, Robinhood, Tastytrade, Webull |
| get_holdings | Get holdings for a brokerage account. Returns a flat holdings list normalized across brokerages. Use refresh=true to request fresh data when eligible; otherwise cached daily data is returned. |
| get_trades | Get the user's recent trades with cursor pagination. Use refresh=true to request fresh brokerage sync when eligible; otherwise existing synced trades are returned. |
| 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. |