Model Context Protocol

TradingWizard MCP.

Connect TradingWizard to your AI chat — your live trading data, in any MCP client. Read-only by design, with a structured get_trade_setup tool your AI agent can call before it acts.

Works with

Claude
Gemini
Codex
OpenClaw
Cursor
$ npm install -g @tradingwizard/cli
$ tw setup
mcp/live

Live context

Trading desk connected.

Read-only
Bots
12 active
Trades
+2.4% avg P&L
Portfolio
$24.8k equity
Signals
75 score

Your tools can read TradingWizard context. Trade execution stays in TradingWizard.

Install

One command.

The CLI handles setup, auth, config, and the connection test — then wires up every MCP client it finds on your machine.

$ npm install -g @tradingwizard/cli
$ tw setup

Install

Add the TradingWizard CLI.

Authorize

Approve access in the browser.

Connect

Claude, Gemini, Codex, OpenClaw, and Cursor are configured.

Security first

It reads everything. It acts only on your terms.

Read tools pull your live trading context. The write tools — alerts, watchlists, bots, and PAPER trades — are Ultimate-only and act solely on your own account. It never moves real money, withdraws, or touches your keys.

Reads — and acts only on your own account.

Read tools pull your live data. The Ultimate-only write tools manage alerts and watchlists, deploy and control your bots, and place PAPER trades — all scoped to you. It never executes real money, withdraws, or transfers.

Scoped to your account.

Each call authenticates with a personal API key and returns only your data — your bots, your trades, your portfolio. The key is the security boundary, and access is limited to Pro and Ultimate plans.

No secrets exposed.

No passwords, exchange API keys, 2FA codes, or billing card details are ever returned. get_account surfaces only your plan tier, credit balance, and daily usage.

Revocable in one click.

Regenerate your key in Settings → Integrations and the old one stops working instantly. The key is stored hashed and encrypted at rest — never in plain text.

Your key is the same one the browser extension and REST API use — one canonical key, kept private. Manage and regenerate it any time from Settings → Integrations.

Every call, documented

43 tools, fully documented.

Grouped by area and generated straight from the live server, so this list always matches what the connector exposes. Each shows what it accepts, whether it reads or writes, and the plan it needs.

Account

get_account
ReadAll plans

Fetch the authenticated TradingWizard user's plan tier, credit balance and daily-API usage. Use this to check whether a feature is gated before calling other tools.

Params
No parameters.
get_credits
ReadAll plans

Check the agent budget: remaining credits, plan, and how many of today's API requests are left before the daily rate limit. Call this to self-monitor before running a batch of tools.

Params
No parameters.
get_memory
ReadUltimate

The durable facts Wiz has learned about the signed-in user in their ACTIVE workspace (trading style, risk appetite, focus markets, decisions, lessons). Use to personalise answers or for 'what does Wiz remember about me'. Read-only and scoped to the user's own workspace.

Params
No parameters.

Portfolio

get_portfolio
ReadUltimate

Snapshot of the user's portfolio — total equity, virtual cash balance, open exposure, win-rate, daily and all-time P&L, and per-holding AI verdicts.

Params
No parameters.
get_watchlist
ReadUltimate

List the user's watchlists — saved symbol groups (name, icon, symbols, default flag). Use this to discover which symbols the user cares about before scanning or analysing.

Params
No parameters.
get_performance_stats
ReadUltimate

The user's own trading analytics over a window of CLOSED trades — win rate, profit factor, expectancy per trade, average and largest win/loss, total realized P&L, and max drawdown of the realized equity curve. `days` sets the window (default 90, max 365, 0 = all-time) — use days=30 for monthly stats. Optional `source` filter: paper | bot | live | imported. Use for "what's my win rate", "how did I trade this month", "am I profitable".

Params
days, source

Trades

get_trades
ReadUltimate

Fetch the user's recent trades. `status` selects OPEN, CLOSED or PENDING (default: all three). `limit` caps the result count (default 25, max 100). Most recent first.

Params
status, limit
get_positions_live
ReadUltimate

Mark-to-market view of all OPEN positions, priced live right now (vs get_trades, whose pnl is a stored snapshot). Returns a tradeId per row plus live price, live P&L and P&L %, so an agent can monitor position health and decide what to close or modify. Includes a totalLivePnl across positions.

Params
No parameters.

Bots

get_bots
ReadUltimate

List the user's personal trading bots. Optional `symbol` filter (e.g. "BTC" or "BTCUSDT") narrows to one symbol. Returns bot status, current bias/score, recent P&L, win-rate and last/next scan timestamps.

Params
symbol
get_bot_timeline
ReadUltimate

The bot's merged activity timeline, newest first — the engine stream a human sees on the bot page: scan receipts (state, plain-language reason, plus verdict + trade-likelihood when present), life events (deploy, config_change and other lifecycle steps with their plain-language reason), and trade opens/closes (side, entry/exit, and realized pnlPercent on closes). `limit` caps rows (default 20, max 50); the web app has the full paginated view. Access mirrors the bot page: a private bot is visible only to its owner; a global fleet bot is public. Setup levels (entry/stop/target/rrr and the level-bearing reasons) are included only for the owner, Pro+ callers, or fleet admins — stripped otherwise.

Params
botId, limit
get_strategies
ReadAll plans

The strategy lenses a bot can run — the six modules (Wiz plus five named technical lenses: Elliott Wave, Fibonacci, Cycle, MACD, MA Cross) with a plain-language description, the inputs each leans on, and the module it degrades to. Each carries an HONEST track record from real closed trades: status is 'proven' (with avgPnlPct + tradeCount), 'new' (no number yet — the lens hasn't earned one), or 'unproven' (a thin outlier we won't advertise). A lens changes what the analyst WEIGHS, never the odds — there is no fabricated per-strategy P&L. Pass a strategy id into deploy_bot or edit_bot to run a bot on that lens.

Params
No parameters.
deploy_bot
WritesUltimate

Deploy a new autonomous trading bot for a symbol. ⚠️ PAID: deploying kicks off an AI scan (consumes Gemini compute + 1 credit; the first bot is free on Free plan). Ultimate-only via the agent API. Respects plan bot-limits. Paper mode by default. timeframe/risk default to the user's settings. strategyId selects the analysis lens (default Wiz — call get_strategies for ids); language sets the bot's output language.

Params
symbol, name, timeframe, riskLevel, assetType, tradingStyle, strategyId, customPrompt, thinkingEffort, language
set_bot_state
WritesUltimate

Control a bot by id: pause, resume, delete, or scan. pause/resume/delete are free; delete closes any open positions and restores follower balances. scan queues an immediate re-scan (⚠️ PAID Gemini compute) and is Ultimate-only + rate-limited — it runs on the next cron tick, not inline.

Params
botId, action
edit_bot
WritesUltimate

Edit a personal bot's BEHAVIOUR config in place. `botId` is required; pass ONLY the fields you want to change (each optional). strategyId — a lens id from get_strategies (wiz | elliott | fibonacci | cycle | macd | macross) or an alias (breakout | meanreversion | vwap, which resolve). riskLevel — Low | Medium | High. timeframe — 1m, 5m, 15m, 30m, 1H, 2H, 4H, 1D, 1W. thinkingEffort — auto | low | medium | high. language — auto, en, sv, de, es, fr, nl, zh, hi. customPrompt — free-text strategy instructions (≤500 chars; empty string clears them). Every REAL change writes a permanent config_change event to the bot's timeline (see get_bot_timeline) and takes effect from the bot's next scan; a no-op save changes nothing. A bot's symbol/market/asset are FIXED — deploy a new bot for a different market. Owner-only; timeframe can't change while a trade is open. Returns the fields that changed plus the reloaded bot.

Params
botId, strategyId, riskLevel, timeframe, thinkingEffort, customPrompt, language
get_global_bots
ReadUltimate

Browse the PUBLIC TradingWizard AI bot fleet — the global bots any user can copy-trade. Each row carries the bot id (pass to follow_bot), symbol, current bias/verdict, AI confidence, trade-likelihood score, the forming setup (entry zone, stop, target, R:R — Pro+ levels) and the on-bot track record (PnL, win rate, trades). Optional symbol filter. Your own personal bots live in get_bots.

Params
symbol, limit
follow_bot
WritesUltimate

Copy-trade a GLOBAL fleet bot: paper copies of its trades land in the user's account, sized by volumeMultiplier. `action` selects follow | unfollow | pause | resume. Get bot ids from get_global_bots. Paper only — copying never touches real money.

Params
botId, action, volumeMultiplier
get_fund_performance
ReadAll plans

Track record of the TradingWizard AI Bot Fund — the aggregate simulated equity curve across the whole global bot fleet. Returns headline stats (current equity, cumulative PnL, total trades, fleet win rate, active bots, period return, best/worst bot) plus a downsampled ~40-point equity curve. `period`: 24h | 7d | 30d | all (default 30d). Use to answer "how is the AI fund doing" or to benchmark the user's own stats (get_performance_stats) against the fleet.

Params
period

Market data

get_market_price
ReadAll plans

Fetch the current live price for a single symbol. `type` should be one of CRYPTO, STOCK, FOREX, FUTURES, INDEX (default CRYPTO).

Params
symbol, type
get_market_summary
ReadAll plans

Global market snapshot — Fear & Greed index, BTC dominance, market regime (bull/bear/chop), an AI summary, and top gainers/losers plus bullish/bearish sentiment percentages. Call this first to read macro conditions before sizing or deciding to trade.

Params
No parameters.
get_market_track
ReadUltimate

Latest TradingWizard intelligence events (price spikes, regime changes, AI calls) for one or more symbols. Returns AI commentary, an action sentence and significance level. Pass a comma-separated list of symbols.

Params
symbols
get_market_movers
ReadUltimate

Latest verified public statements from influential market-movers (Trump, Elon, Powell, Cathie Wood, Saylor, Cramer…) that could move a stock, crypto or sector — with the affected ticker, sentiment, a 'how likely to move' score, the source, and how far the asset has moved SINCE the statement. Optionally filter by symbols.

Params
symbols, limit
get_scanner
ReadUltimate

Cross-asset event scanner. `kind` selects "earnings" (upcoming earnings calendar, synced daily from the FMP calendar), "ipo" (upcoming IPOs by date from the IPO calendar, with a live NASDAQ-feed fallback), "insider" (recent insider transactions — live Yahoo Finance SEC Form 4 data across a curated large-cap universe) or "all" (default). Sections with no data return empty arrays.

Params
kind, limit

Analysis

get_chart_analysis
ReadUltimate

Fetch the most recent AI chart analysis for a symbol — verdict, confidence, entry/SL/TP levels, headline reasoning. Returns null when no analysis has been run yet. For a FRESH analysis, call run_analysis.

Params
symbol
get_trade_setup
ReadUltimate

Get a structured trade SETUP for a symbol BEFORE execution — bias (BUY/SELL/WAIT), entry zone, stop / invalidation, targets, confidence, risk:reward, reasoning, and warnings. Built for AI trading agents that execute elsewhere: TradingWizard is the setup/risk layer ABOVE execution — ask for the setup first, then act. Returns the latest Wiz analysis mapped to the agent contract, plus a shareable receiptUrl when the call is actionable. Educational only — no profit guarantee.

Params
symbol, timeframe, marketType, riskMode, source
get_signals
ReadUltimate

Top trade signals across the global bot fleet right now — symbols where the AI conviction is highest. Use this when the user asks "what should I look at" without a specific ticker. Ultimate plan only.

Params
limit
get_bot_consensus
ReadUltimate

How the global bot fleet is currently biased on a symbol — a fast macro signal to validate or challenge your own conviction without running a fresh analysis. Returns bullish/bearish/neutral counts, the net consensus, and a confidence %.

Params
symbol
run_analysis
WritesUltimate

Trigger a FRESH AI chart analysis for a symbol on demand (vs get_chart_analysis, which only returns the cached one). ⚠️ PAID: runs the Gemini engine (consumes a credit + Gemini compute). Ultimate-only via the agent API. Synchronous — can take up to ~2 min; if your client times out, the analysis still completes (recover it with get_analysis_status or get_chart_analysis). After it completes, call get_trade_setup for the structured setup.

Params
symbol, interval, marketType, imageUrl
get_analysis_status
ReadUltimate

Check a chart analysis by analysisId, or the latest for a symbol — returns its status (processing/completed/failed) and the full analysis when ready. Use to poll a run_analysis that your client may have timed out on.

Params
analysisId, symbol
get_ranked_opportunities
ReadUltimate

The live scanner board: symbols the global AI bot fleet is watching, ranked by trade-likelihood (conviction 0-100). Each row: symbol, bias (LONG/SHORT/WAIT/NEUTRAL), likelihood score + label, AI confidence, fleet coverage (botCount), last scan — plus the forming-setup levels (entry zone, stop, target, risk:reward) for Pro+ callers. Broader and lower-gated than get_signals (Ultimate-only): reach for this first when the user asks "what should I look at right now".

Params
symbol, limit
watch_setup
WritesUltimate

Start watching a setup receipt so TradingWizard tracks its outcome — target hit, stopped out, or invalidated — and alerts the user when it resolves. Pass the receiptId (the 24-char id inside get_trade_setup's receiptUrl, /r/<id>) or the receiptUrl itself. This closes the loop on get_trade_setup: fetch the setup, act (or not), then watch how the call plays out. Plan-capped concurrent watches (Free 1 / Pro 10 / Ultimate unlimited).

Params
receiptId, receiptUrl

Alerts

get_alerts
ReadUltimate

List the user's price/indicator alerts. Optional `symbol` filter. Shows condition, target value, timeframe, delivery channels and active state.

Params
symbol
create_price_alert
WritesUltimate

Create a price or indicator alert for a symbol. Conditions: price_above, price_below, rsi_above, rsi_below, rsi_oversold, rsi_overbought, ma_cross_above, ma_cross_below, volume_spike. price_*/rsi_above/rsi_below need a positive `value` (RSI 1-99). Delivery defaults to in-app + email. Plan-capped (Free 3 / Pro 10 / Ultimate unlimited) and rate-limited. Notifications only — does NOT auto-trade.

Params
symbol, condition, value, period, timeframe, delivery, marketType, cooldownHours, oneShot
update_alert
WritesUltimate

Update an existing alert by id — change its value, condition, timeframe, delivery, cooldown, or pause/resume it via `active`. Re-activating respects the plan cap.

Params
id, symbol, condition, value, timeframe, delivery, active, cooldownHours, oneShot, marketType
delete_alert
WritesUltimate

Delete an alert by id. Frees a slot against the plan cap.

Params
id

Watchlist

add_to_watchlist
WritesUltimate

Add a symbol to a watchlist. Targets the list by `listId` or `listName`, else the user's default list. Idempotent (no duplicates).

Params
symbol, listId, listName
remove_from_watchlist
WritesUltimate

Remove a symbol from a watchlist (by listId/listName, else the default list).

Params
symbol, listId, listName
create_watchlist
WritesUltimate

Create a new watchlist with an optional name, icon (emoji) and starting symbols. Plan-capped (Free 3 / Pro 10 / Ultimate unlimited).

Params
name, symbols, icon
delete_watchlist
WritesUltimate

Delete a watchlist by id. If it was the default, the oldest remaining list is promoted to default.

Params
listId

Execution

execute_paper_trade
WritesUltimate

Open a PAPER (simulated) market trade — no real money. Fills at the live market price (you cannot set the entry; a >2% move or no feed is rejected, like a real broker). Deducts from the virtual balance. Provide an optional analysisId to attribute the trade to a chart analysis. Free across plans; paper only.

Params
symbol, side, amount, stopLoss, takeProfit, leverage, analysisId
close_position
WritesUltimate

Close an OPEN paper position by tradeId (get the id from get_positions_live). Closes at the live price. Pass partialPercent (0-100) to scale out; omit for a full close. Bot positions also settle followers.

Params
tradeId, partialPercent
modify_position
WritesUltimate

Edit the stop-loss, take-profit(s) or trailing-stop on an OPEN paper position by tradeId. A level is set when present, cleared with null, untouched when omitted. New levels are validated against the live price (you can move a stop to break-even+ but not set one that would trigger immediately).

Params
tradeId, stopLoss, takeProfit, trailingStopPercent
place_limit_order
WritesUltimate

Place a PAPER (simulated) LIMIT order at YOUR exact entry price — the execution counterpart to get_trade_setup's entryZone (execute_paper_trade is market-only). A BUY limit below / SELL limit above the live price waits until price reaches the level (funds are reserved up-front, Binance-style); a limit already at/past the live price fills immediately at market and the response says so. Optional stop/target are validated for side and sane distance (a dropped-k typo like "BTC at 107" is rejected with a units hint). Cancel an unfilled order with cancel_pending_order. Paper only — no real money.

Params
symbol, side, amount, entryPrice, stopLoss, takeProfit, leverage
cancel_pending_order
WritesUltimate

Cancel one of the user's PENDING (unfilled) paper limit orders by tradeId and refund the funds reserved at placement. Find pending orders via get_trades with status=PENDING. Has no effect on OPEN positions — use close_position for those.

Params
tradeId
One paste away

Prime your AI chat.

After you connect, paste this into Claude, ChatGPT, Cursor, or any MCP client. It tells the assistant which tools exist and how to use them — so your first question already pulls real numbers.

starter-prompt.txt

You can read my live TradingWizard account through MCP tools (get_portfolio, get_trades, get_bots, get_market_price, get_market_track, get_chart_analysis, get_trade_setup, get_signals, get_scanner, get_account). These tools are read-only — they pull real data, they never place trades or move money. When I ask about my trading, call the right tool and answer from real numbers, not guesses. Start by calling get_portfolio and get_trades, then give me a quick read on my account: total equity, open positions, today's P&L, and anything that moved. If a symbol comes up, use get_chart_analysis or get_trade_setup for the read before you comment.

Read-only by default

Bring your desk into the chat.

The connector gives context. Opening trades and deploying bots still happen inside TradingWizard.

See what the market is doing. Right now.

Start my $1 month

Then $39/mo · cancel anytime

Trading involves risk. Every bot starts in paper mode — no real money.