Trade It MCP Skill

Enables AI agents to connect to brokerage accounts, facilitating asset search, balance inquiry, and the placement of real stock, crypto, or options trades via natural language, with a strong emphasis on user confirmation.

46 stars
Complexity: easy

About this skill

The Trade It MCP Skill provides a robust interface for AI agents to interact directly with a user's financial brokerage accounts. It empowers agents to perform key financial operations such as searching for specific stocks or cryptocurrencies, retrieving detailed account balances across multiple linked accounts, and initiating both equity and options trades. The skill is designed with specific tools: `search_assets`, `get_accounts`, `create_trade`, `create_options_trade`, and `execute_trade`. This skill is ideal for users who wish to manage their investments directly through an AI assistant. It allows for quick market research, portfolio monitoring, and the convenient creation and execution of trades using natural language prompts, bypassing traditional trading platforms for routine operations. The core benefit lies in its seamless integration of financial management into an AI agent's workflow. Users would leverage this skill for its efficiency and robust safety model. The "draft-first" execution approach ensures that all critical actions, especially trade execution, require explicit user confirmation, providing peace of mind while offering the convenience of AI-powered financial assistance. It streamlines the investment process by bringing comprehensive brokerage functionalities directly to the AI's conversational interface.

Best use case

The primary use case is direct, natural language-driven financial management and trading through an AI agent. Individual investors, day traders, or anyone wanting to monitor and act on their brokerage accounts without navigating complex trading platforms will benefit most, enabling them to execute trades and manage assets with conversational commands.

Enables AI agents to connect to brokerage accounts, facilitating asset search, balance inquiry, and the placement of real stock, crypto, or options trades via natural language, with a strong emphasis on user confirmation.

Users should expect to successfully search for financial assets, view account balances, and securely place confirmed stock, crypto, or options trades directly via their AI agent, always requiring explicit user confirmation before execution.

Practical example

Example input

What's the current price of NVDA? Then, show me my linked accounts and draft an order to buy 10 shares of NVDA in my largest equity account.

Example output

{ "asset_info": { "ticker": "NVDA", "name": "NVIDIA Corp", "price": 900.50 }, "account_balances": [ { "id": "ABC123", "name": "Main Brokerage", "balance": 50000.00 }, { "id": "XYZ789", "name": "Crypto Wallet", "balance": 12000.00 } ], "draft_order": { "trade_id": "TRD-67890", "symbol": "NVDA", "type": "buy", "quantity": 10, "price": 900.50, "account_id": "ABC123", "status": "draft" }, "message": "I've drafted an order to buy 10 shares of NVIDIA (NVDA) at $900.50 in your 'Main Brokerage' account. When you are ready, you can place the order by pressing the Execute button." }

When to use this skill

  • When you need to quickly check the price and details of a stock or cryptocurrency.
  • When you want to review your brokerage account balances across multiple linked platforms.
  • When you intend to place a buy or sell order for stocks, crypto, or options with explicit confirmation.
  • When you want to manage your investments through conversational AI without logging into a traditional trading app.

When not to use this skill

  • For highly complex or algorithmic trading strategies requiring specialized platforms and real-time, unaided execution.
  • If you are uncomfortable linking your sensitive financial accounts to an AI agent, despite the robust safety model.
  • For managing non-brokerage financial assets like traditional bank accounts, credit cards, or loans.
  • When immediate, high-frequency trade execution is paramount and human review of each draft is not feasible.

How Trade It MCP Skill Compares

Feature / AgentTrade It MCP SkillStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityeasyN/A

Frequently Asked Questions

What does this skill do?

Enables AI agents to connect to brokerage accounts, facilitating asset search, balance inquiry, and the placement of real stock, crypto, or options trades via natural language, with a strong emphasis on user confirmation.

How difficult is it to install?

The installation complexity is rated as easy. You can find the installation instructions above.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

# Trade It MCP Skill

Trade It connects MCP clients directly to the user's brokerage accounts. Use the tools below to search assets, review account balances, and place real trades through natural language.

---

## Available Tools

| Tool | Description |
|---|---|
| `search_assets` | Look up a stock or crypto by ticker or name. Returns current price and metadata. |
| `get_accounts` | List all linked brokerage accounts with balances. Also used to link new accounts. |
| `create_trade` | Create a **draft** equity/crypto buy or sell order for the user to review. |
| `create_options_trade` | Create a **draft** single-leg or multi-leg options order for the user to review. |
| `execute_trade` | Execute a previously created draft trade. Requires explicit user confirmation. |

---

## Safety Model — Read This First

Trade It uses a **draft-first** execution model. Every trade starts as a `draft` and is never placed with the broker until the user explicitly confirms.

**Required flow:**
1. Call `create_trade` or `create_options_trade` → returns a draft order with a `trade_id`
2. Display the order details and inform the user they can execute it
3. Call `execute_trade` **only** when the user explicitly says to execute/confirm/place the trade
4. **Never** call `execute_trade` automatically or immediately after creating a draft

After creating a draft, always tell the user:
> "When you are ready, you can place the order by pressing the Execute button."

---

## Execution Flow

```
User requests trade
       ↓
[Optional] search_assets — confirm ticker, get current price
       ↓
[Optional] get_accounts — identify correct account_id
       ↓
create_trade / create_options_trade → returns draft with trade_id and status: "draft"
       ↓
Display draft details to user, prompt to confirm
       ↓
User confirms → execute_trade(trade_id)
       ↓
Returns updated trade with status: "placed" or "failed"
```

---

## Tool Reference

### search_assets

Look up a stock or crypto by ticker symbol or company/coin name.

**Parameters:**
- `query` *(string)* — ticker symbol or name (e.g., `"TSLA"`, `"Tesla"`, `"bitcoin"`)

**Returns:** Asset info including current price, ticker, exchange, and asset type.

**Example:**
```json
{ "query": "TSLA" }
```

---

### get_accounts

List all linked brokerage accounts. Also used when the user wants to connect a new brokerage.

**Parameters:** *(none)*

**Returns:** Array of accounts, each with `id`, `name`, `brokerage`, `balance`, and `available_cash`.

Use `account.id` as the `account_id` in trade calls when the user specifies a particular account.

---

### create_trade

Create a draft equity or crypto order.

**Parameters:**

| Field | Type | Required | Description |
|---|---|---|---|
| `symbol` | string | ✅ | Ticker symbol, e.g. `"TSLA"` |
| `amount` | number | ✅ | Quantity to trade |
| `unit` | `"dollars"` \| `"shares"` | ✅ | Whether `amount` is in dollars or shares |
| `buy_or_sell` | `"buy"` \| `"sell"` | ✅ | Trade direction |
| `order_type` | `"market"` \| `"limit"` \| `"stop"` \| `"stop_limit"` | ❌ | Defaults to `"market"` |
| `limit_price` | number | Conditional | Required for `limit` and `stop_limit` orders |
| `stop_price` | number | Conditional | Required for `stop` and `stop_limit` orders |
| `time_in_force` | `"day"` \| `"gtc"` \| `"ioc"` \| `"fok"` | ❌ | Omit to use brokerage default |
| `account_id` | number | ❌ | Omit to use user's default account |

**Order Types:**

| Type | When to Use | Price Fields |
|---|---|---|
| `market` | Execute immediately at current price | None |
| `limit` | Execute only at `limit_price` or better | `limit_price` required |
| `stop` | Trigger market order when `stop_price` is hit | `stop_price` required |
| `stop_limit` | Trigger limit order when `stop_price` is hit | Both `stop_price` and `limit_price` required |

**Examples:**

Buy $500 of Apple at market:
```json
{ "symbol": "AAPL", "amount": 500, "unit": "dollars", "buy_or_sell": "buy" }
```

Buy 10 shares of NVDA only if it drops to $800 or below:
```json
{ "symbol": "NVDA", "amount": 10, "unit": "shares", "buy_or_sell": "buy", "order_type": "limit", "limit_price": 800 }
```

Sell 5 shares of Meta if the price falls to $450 (stop loss):
```json
{ "symbol": "META", "amount": 5, "unit": "shares", "buy_or_sell": "sell", "order_type": "stop", "stop_price": 450 }
```

Buy 10 shares of AAPL if it breaks above $200, but pay no more than $202:
```json
{ "symbol": "AAPL", "amount": 10, "unit": "shares", "buy_or_sell": "buy", "order_type": "stop_limit", "stop_price": 200, "limit_price": 202 }
```

Buy $1,000 of Bitcoin:
```json
{ "symbol": "BTC", "amount": 1000, "unit": "dollars", "buy_or_sell": "buy" }
```

Sell all (100 shares) of Tesla, good till canceled:
```json
{ "symbol": "TSLA", "amount": 100, "unit": "shares", "buy_or_sell": "sell", "time_in_force": "gtc" }
```

---

### create_options_trade

Create a draft single-leg or multi-leg options order (spreads, straddles, etc.).

**Parameters:**

| Field | Type | Required | Description |
|---|---|---|---|
| `symbol` | string | ✅ | Underlying ticker, e.g. `"SPY"`, `"TSLA"` |
| `legs` | array | ✅ | One or more legs (see below) |
| `direction` | `"debit"` \| `"credit"` | Multi-leg only | Required for spreads. `"debit"` = you pay; `"credit"` = you receive |
| `order_type` | `"market"` \| `"limit"` \| `"stop"` \| `"stop_limit"` | ❌ | Defaults to `"market"` |
| `limit_price` | number | Conditional | Net debit/credit limit for the spread. Required for `limit` orders. |
| `time_in_force` | `"day"` \| `"gtc"` | ❌ | Omit to use brokerage default |
| `account_id` | number | ❌ | Omit to use default account |

**Leg Fields:**

| Field | Type | Required | Description |
|---|---|---|---|
| `type` | `"option"` \| `"equity"` | ✅ | Leg type |
| `action` | `"buy"` \| `"sell"` | ✅ | Buy or sell this leg |
| `position_effect` | `"open"` \| `"close"` | Option legs only | Whether this opens a new position or closes an existing one |
| `occ` | string | Option legs only | OCC format string (see below). Set to `null` for equity legs. |
| `quantity` | number | ✅ | Contracts (options) or shares (equity) |

---

### OCC Format

Options are identified using the OCC (Options Clearing Corporation) standard format:

```
YYMMDD[C|P]STRIKE
```

| Part | Description | Example |
|---|---|---|
| `YY` | 2-digit year | `25` for 2025 |
| `MM` | Month, zero-padded | `06` for June |
| `DD` | Day, zero-padded | `20` for the 20th |
| `C` or `P` | Call or Put | `C` |
| `STRIKE` | Strike × 1000, 8 digits, zero-padded | `00250000` for $250 |

**OCC Examples:**

| Description | OCC String |
|---|---|
| Jun 20, 2025 $250 Call | `250620C00250000` |
| Jun 20, 2025 $260 Call | `250620C00260000` |
| Mar 21, 2025 $500 Put | `250321P00500000` |
| Dec 19, 2025 $1,500 Call | `251219C01500000` |
| Jan 16, 2026 $50 Put | `260116P00050000` |

**Strike price formula:** Multiply dollar strike by 1000, then zero-pad to 8 digits.
- $250 → 250 × 1000 = 250000 → `00250000`
- $1,500 → 1500 × 1000 = 1500000 → `01500000`
- $50.50 → 50.5 × 1000 = 50500 → `00050500`

---

### Options Examples

**Single call option** — Buy 1 SPY call at $520 strike, expiring Jun 20, 2025:
```json
{
  "symbol": "SPY",
  "legs": [
    { "type": "option", "action": "buy", "position_effect": "open", "occ": "250620C00520000", "quantity": 1 }
  ]
}
```

**Bull call spread (debit)** — Buy TSLA $250 call, sell TSLA $260 call, both expiring Jun 20, 2025:
```json
{
  "symbol": "TSLA",
  "direction": "debit",
  "legs": [
    { "type": "option", "action": "buy", "position_effect": "open", "occ": "250620C00250000", "quantity": 1 },
    { "type": "option", "action": "sell", "position_effect": "open", "occ": "250620C00260000", "quantity": 1 }
  ]
}
```
*Max loss = net debit paid. Max gain = $10 spread width minus net debit.*

**Bear put spread (debit)** — Buy SPY $520 put, sell SPY $510 put, expiring Jun 20, 2025:
```json
{
  "symbol": "SPY",
  "direction": "debit",
  "legs": [
    { "type": "option", "action": "buy", "position_effect": "open", "occ": "250620P00520000", "quantity": 1 },
    { "type": "option", "action": "sell", "position_effect": "open", "occ": "250620P00510000", "quantity": 1 }
  ]
}
```

**Bull put spread (credit)** — Sell SPY $510 put, buy SPY $500 put, expiring Jun 20, 2025:
```json
{
  "symbol": "SPY",
  "direction": "credit",
  "legs": [
    { "type": "option", "action": "sell", "position_effect": "open", "occ": "250620P00510000", "quantity": 1 },
    { "type": "option", "action": "buy", "position_effect": "open", "occ": "250620P00500000", "quantity": 1 }
  ]
}
```

**Bull call spread with limit price** — Same spread, but only if net debit is $3.50 or less:
```json
{
  "symbol": "TSLA",
  "direction": "debit",
  "order_type": "limit",
  "limit_price": 3.50,
  "legs": [
    { "type": "option", "action": "buy", "position_effect": "open", "occ": "250620C00250000", "quantity": 1 },
    { "type": "option", "action": "sell", "position_effect": "open", "occ": "250620C00260000", "quantity": 1 }
  ]
}
```

**Close an existing long call** — Sell to close 2 AAPL $200 calls expiring Mar 21, 2025:
```json
{
  "symbol": "AAPL",
  "legs": [
    { "type": "option", "action": "sell", "position_effect": "close", "occ": "250321C00200000", "quantity": 2 }
  ]
}
```

**Straddle** — Buy 1 TSLA $250 call and 1 TSLA $250 put, both expiring Jun 20, 2025:
```json
{
  "symbol": "TSLA",
  "direction": "debit",
  "legs": [
    { "type": "option", "action": "buy", "position_effect": "open", "occ": "250620C00250000", "quantity": 1 },
    { "type": "option", "action": "buy", "position_effect": "open", "occ": "250620P00250000", "quantity": 1 }
  ]
}
```

---

### execute_trade

Execute a draft trade after the user has reviewed and confirmed it.

**Parameters:**
- `trade_id` *(number)* — The `id` from the draft trade returned by `create_trade` or `create_options_trade`

**Returns:** Updated trade with status `"placed"` (or `"failed"` with error details).

**Call this only when:**
- The user explicitly says "execute", "confirm", "place it", "go ahead", "do it", or similar
- The trade being confirmed is the most recently reviewed draft

**Never call this:**
- Automatically after creating a draft
- Without the user seeing the order details first
- If the trade status is not `"draft"`

---

## Trade Status Reference

| Status | Meaning |
|---|---|
| `draft` | Created, not yet submitted to broker |
| `pending` | Submitted, awaiting broker acknowledgment |
| `placed` | Accepted by broker, awaiting fill |
| `partially_filled` | Some contracts/shares have filled |
| `complete` | Fully filled |
| `canceled` | Canceled by user or broker |
| `failed` | Rejected — check error details |
| `disconnected` | Brokerage connection issue |

---

## Supported Brokerages

| Brokerage | ID | Supports Options |
|---|---|---|
| Robinhood | 1 | ✅ |
| E*TRADE | 2 | ✅ |
| Coinbase | 3 | Crypto only |
| Kraken | 5 | Crypto only |
| Charles Schwab | 7 | ✅ |
| Webull | 8 | ✅ |
| Public | 11 | ✅ |
| Tastytrade | 12 | ✅ |

---

## Clarification Guidelines

Ask for clarification (all at once, not one field at a time) when:
- The order type is ambiguous (e.g., "buy TSLA at $200" — limit or stop?)
- The user requests an options trade but doesn't specify expiry or strike
- Multiple accounts are linked and the user hasn't specified which to use
- The symbol is ambiguous (e.g., ticker collision between stock and crypto)

Do not ask for clarification on fields with clear defaults (amount defaults to the user's default amount, order_type defaults to market, account defaults to the user's primary account).

---

## Disclaimers

- All investing involves risk, including the possible loss of principal
- Trade It is not a financial advisor and does not provide investment advice
- Options trading involves substantial risk and is not appropriate for all investors
- Trade It cannot withdraw funds, transfer assets, or take custody — it can only place trades

Related Skills

customs-trade-compliance

144923
from affaan-m/everything-claude-code

海关文件、关税分类、关税优化、受限方筛查以及多司法管辖区法规合规的编码化专业知识。由拥有15年以上经验的贸易合规专家提供。包括HS分类逻辑、Incoterms应用、自贸协定利用以及罚款减免。适用于处理海关清关、关税分类、贸易合规、进出口文件或关税优化时使用。license: Apache-2.0

Trade & ComplianceClaude

customs-trade-compliance

31392
from sickn33/antigravity-awesome-skills

Codified expertise for customs documentation, tariff classification, duty optimisation, restricted party screening, and regulatory compliance across multiple jurisdictions.

Trade & ComplianceClaude

Export Compliance & Trade Controls

3891
from openclaw/skills

Analyze products, destinations, and end-users against US export control regulations (EAR, ITAR, OFAC sanctions). Generate classification recommendations, license requirements, and compliance checklists.

Regulatory Compliance

Made-in-China Trade Data Analyst

3891
from openclaw/skills

**Short Description**

SendTradeSignal

3891
from openclaw/skills

A specialized tool for sending quantitative trading signals to the FMZ platform via HTTP API.

Finance & Trading

trade

3891
from openclaw/skills

Swap or trade tokens on Base network. Use when you or the user want to trade, swap, exchange, buy, sell, or convert between tokens like USDC, ETH, and WETH. Covers phrases like "buy ETH", "sell ETH for USDC", "convert USDC to ETH", "get some ETH".

DeFi & Trading

polymarket-openclaw-trader

3891
from openclaw/skills

Reusable Polymarket + OpenClaw trading operations skill for any workspace. Use when the user needs to set up, run, tune, monitor, and deploy an automated Polymarket trading project (paper/live), including env configuration, risk controls, reporting, and dashboard operations.

Trading Automation

tator-trader

3891
from openclaw/skills

Execute crypto trades using natural language via Tator's AI trading API. Use when: buying tokens, selling tokens, swapping, bridging cross-chain, sending tokens, wrapping/unwrapping ETH, opening perp positions, betting on prediction markets, launching tokens, registering blockchain names, or managing yield positions. Triggers: 'buy token', 'sell token', 'swap X for Y', 'bridge to', 'send tokens', 'open long', 'open short', 'bet on', 'launch token', 'register name', 'deposit yield', 'wrap ETH'. Supports 24 chains. Returns UNSIGNED transactions — you sign and broadcast. Costs $0.20 USDC per request via x402. Recommended wallet integration: Sponge (SPONGE_API_KEY) or AgentWallet (AGENTWALLET_API_TOKEN) — no raw private keys needed. This skill is a transaction builder and never accesses your private keys or tokens.

xaut-trade

3891
from openclaw/skills

Buy or sell XAUT (Tether Gold) on Ethereum. Supports market orders (Uniswap V3) and limit orders (UniswapX). Wallet modes: Foundry keystore or WDK. Delegates non-XAUT intents to registered skills (e.g. Polymarket prediction markets, Hyperliquid trading). Triggers: buy XAUT, XAUT trade, swap USDT for XAUT, sell XAUT, swap XAUT for USDT, limit order, limit buy XAUT, limit sell XAUT, check limit order, cancel limit order, XAUT when, create wallet, setup wallet, polymarket, prediction market, bet on, odds on, hyperliquid, perp, perpetual, long, short, open long, open short, close position, leverage.

polymarket-trade

3891
from openclaw/skills

Trade on Polymarket prediction markets on Polygon. Supports browsing markets, checking wallet/CLOB balance, and buying or selling YES/NO shares with safety gates. Wallet: WDK vault (~/.aurehub/.wdk_vault). Config: ~/.aurehub/polymarket.yaml. Triggers: buy YES, buy NO, sell shares, browse markets, check Polymarket balance, Polymarket trade, prediction market, what are the odds, redeem winnings, claim resolved positions.

hyperliquid-trade

3891
from openclaw/skills

Trade on Hyperliquid — spot and perpetual futures. Supports market orders (IOC), limit orders (GTC), leverage setting, and WDK wallet. Triggers: buy ETH spot, sell BTC, long ETH, short BTC, open long, open short, close position, perp trade, check balance, Hyperliquid positions, limit order, limit buy, limit sell, open orders, cancel order, modify order, GTC.

crypto-news-trader

3891
from openclaw/skills

A Clawhub skill that: