tradeit
Trade It is an MCP server for brokerage-aware investing workflows.
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.
How to connect
How to connect tradeit to Claude
The server address to paste into Claude settings:
https://tradeit--trade-it.run.tools
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- In a chat, click + → Connectors and switch the new connector on.
Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.
Authorization
After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.
How to connect tradeit to ChatGPT
The server address to paste into ChatGPT settings:
https://tradeit--trade-it.run.tools
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- In a new chat open + → Apps/Connectors and enable the connector.
OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.
Authorization
On first use ChatGPT opens the service's sign-in window. Sign in and approve access.
How to connect tradeit to Cursor
The server address to paste into Cursor settings:
https://tradeit--trade-it.run.tools
Fastest: click Open in Cursor below and confirm the prompt.
Manually:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - Save the file. The server appears in the MCP list; authorize it there if asked.
Authorization
If the service needs sign-in, an authorize button appears next to the server in the MCP list.
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. |