GWTRADE / Client features
Feature API
Read-only market analytics, research and your own trading data through the feature tools available in Connect AI.
No matching features. Try a tool name or a market topic.
Getting started
Read market analytics through the same read-only feature tools available in Connect AI. Start with market_brief for an overview, then use a focused tool for details.
Connect
In the desktop app, open Settings → Connect AI to connect a supported AI client. For your own code, create an MCP key in the Advanced section and keep it in your environment. An MCP key is different from your desktop sign-in token.
Endpoint: https://gwtrade.app/mcp. Code examples use Authorization: Bearer with your MCP key. AI clients that support sign-in can use their normal connection flow.
Discover available features
tools/list returns the tools available to your membership on the connected service, with their current input schemas. Features can vary with data availability. Use those schemas for supported values, defaults and limits.
export MCP_KEY='YOUR_MCP_KEY'
curl --fail-with-body --silent --show-error 'https://gwtrade.app/mcp' \
-H "Authorization: Bearer $MCP_KEY" \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'The feature catalog below describes inputs and the information you receive. These tools read analytics; they do not place trades or modify your account.
Examples
Call a feature with tools/call, its name, and an arguments object. Keep keys in your own environment. The documentation page does not send requests on your behalf.
Futures quote · curl
curl --fail-with-body --silent --show-error 'https://gwtrade.app/mcp' \
-H "Authorization: Bearer $MCP_KEY" \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"get_quote","arguments":{"symbol":"ES"}}}'Market brief · Python
Set MCP_KEY in your environment first. This uses Python's standard library:
import json
import os
from urllib.request import Request, urlopen
request = Request(
"https://gwtrade.app/mcp",
data=json.dumps({
"jsonrpc": "2.0", "id": 3, "method": "tools/call",
"params": {"name": "market_brief", "arguments": {"symbol": "NQ"}}
}).encode(),
headers={
"Authorization": "Bearer " + os.environ["MCP_KEY"],
"Content-Type": "application/json",
"Accept": "application/json, text/event-stream"
},
)
with urlopen(request, timeout=45) as response:
print(json.load(response))Headlines · JavaScript
Node.js 22+, with MCP_KEY in the environment:
const response = await fetch("https://gwtrade.app/mcp", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.MCP_KEY}`,
"Content-Type": "application/json",
Accept: "application/json, text/event-stream",
},
body: JSON.stringify({
jsonrpc: "2.0", id: 4, method: "tools/call",
params: { name: "get_headlines", arguments: { limit: 5 } },
}),
signal: AbortSignal.timeout(45_000),
});
if (!response.ok) throw new Error(`${response.status}: ${await response.text()}`);
const reply = await response.json();
if (reply.error || reply.result?.isError) throw new Error(JSON.stringify(reply));
console.log(reply.result.content);More feature calls
Use one of these as the JSON body of a tools/call request:
{"jsonrpc":"2.0","id":5,"method":"tools/call","params":{"name":"get_gex_levels","arguments":{"symbol":"NQ","category":"zero"}}}{"jsonrpc":"2.0","id":6,"method":"tools/call","params":{"name":"get_wheel_candidates","arguments":{"strategy":"CSP","profile":"balanced","limit":5}}}{"jsonrpc":"2.0","id":7,"method":"tools/call","params":{"name":"get_my_trades","arguments":{"period":"week","limit":10}}}Using results
Reading a result
Successful calls return MCP content blocks. Feature results are JSON encoded inside a text block. Check isError before treating that text as analytics. A protocol error can appear in the top-level error field.
as_of and data_age_sec describe the observation's freshness. A result can represent the last session when markets are closed. Follow the tool's notes, units and missing-value indicators; a missing value is not zero. A truncated result contains a reduced list or text.
Symbols and dates
Use discovery tools such as list_gex_symbols, search_option_symbols, search_sentiment_symbols and get_scenario_instruments to choose supported instruments. Futures tools commonly accept ES and NQ; some options tools map them to their index. Follow each tool's returned notes and input schema. Date strings are usually YYYY-MM-DD; the schema identifies the applicable session and timezone.
Errors and retries
An invalid or revoked key returns HTTP 401; expired access can return 403. For 429, wait for Retry-After. A tool can instead return isError for an invalid argument, unavailable data or a feature warming up. Follow the error's instructions and use bounded retry backoff.
Personal data
get_my_trades and get_my_trading_stats use the member attached to your connection. They return your own account data. Community leaderboard results are public summaries; positioning is anonymous and appears only for markets with at least three participating members.
Market overview
Inputs below are optional unless marked required. Use tools/list for the current input schema.
market_brief
A combined market read: price, session range, gamma levels, structure, major events and headlines.
Inputs: symbol (string)
Quotes & liquidity
Inputs below are optional unless marked required. Use tools/list for the current input schema.
get_quote
Latest futures price, bid/ask, spread and the last minute of buy/sell trade flow.
Inputs: symbol (string)
get_order_book_summary
Resting liquidity, book imbalance, the largest bid/ask walls and recent pull/stack activity.
Inputs: depth (integer, 5–200, default 20), pull_stack_seconds (integer, 10–300, default 60), symbol (string)
get_book_depth_history
How bid/ask depth and imbalance changed through the futures session.
Inputs: bucket_min (integer, 5, 15, 30 or 60, default 15), hours (integer, 0–24, default 0 = since the 18:00 New York open), symbol (string)
get_liquidity_levels
Prices where large resting orders persisted, with size, duration and distance from the current market.
Inputs: hours (integer, 0–168, default 0 = since the session open), min_minutes (integer, 1–1440, default 15), symbol (string), top (integer, 1–25, default 10)
get_session_ohlc
Session, overnight and regular-hours open/high/low/last, plus session and regular-hours VWAP.
Inputs: symbol (string), vwap_path (boolean, default False)
get_desk_levels
The ES or NQ Desk’s key levels and session VWAP in futures points, with distance from price.
Inputs: symbol (string)
Dealer gamma & Greeks
Inputs below are optional unless marked required. Use tools/list for the current input schema.
list_gex_symbols
Available dealer-gamma symbols and expiry categories. Use this before choosing a symbol.
Inputs: None.
get_gex_levels
Dealer gamma levels, zero gamma and the strongest call/put strikes for the selected expiry category.
Inputs: category (zero|one|full, default zero), date (string), strikes (integer, 1–25, default 8), symbol (string, default NQ_NDX)
get_gex_greeks
Per-strike gamma, delta, vanna, charm and volume; optionally the expiry’s implied-volatility smile.
Inputs: expiry (zero|one|latest|next, default zero), include_iv (boolean, default False), metric (all|volume|delta|gamma|vanna|charm, default all), strikes (integer, 1–25, default 8), symbol (string, default NQ_NDX)
get_gex_greeks_history
How one dealer greek changed per strike during a selected session.
Inputs: day (string), expiry (zero|one|latest|next, default zero), metric (volume|delta|gamma|vanna|charm, default gamma), step_min (integer, 1–60, default 15), strikes (integer, 1–15, default 6), symbol (string, default NQ_NDX)
get_gex_ranked_levels
Ranked gamma and net-open-interest levels, with optional paths showing how the levels moved during the session.
Inputs: step_min (integer, 1–60, default 15), symbol (string, default NQ; NQ / NDX → NQ_NDX, ES / SPX → ES_SPX, QQQ), trails (boolean, default True)
get_gex_orderflow
Dealer greek orderflow: gamma, convexity, vanna, charm and aggregate delta exposure.
Inputs: symbol (string, default NQ_NDX)
get_options_flow_gamma
Trade-based dealer gamma by strike: the hot strike, positive/negative totals and expiry breakdown.
Inputs: symbol (string, default SPX; ES → SPX, NQ → NDX), top (integer, 1–25, default 8)
get_daily_gamma_index
Daily 0DTE call/put gamma, the net-to-total gamma index and delta exposure for SPX, NDX, SPY or QQQ.
Inputs: date (string: YYYY-MM-DD, New York, within the last 30 days; default today), symbol (string, default SPX; NDX, SPY, QQQ; ES → SPX, NQ → NDX)
SPX gamma map
Inputs below are optional unless marked required. Use tools/list for the current input schema.
get_gamma_map_dates
Available SPX participant groups, current market date and selectable forward sessions.
Inputs: None.
get_gamma_levels
Daily SPX call/put walls, zero/max gamma and other key dealer-gamma levels.
Inputs: None.
get_gamma_surface
A summary of the SPX gamma, charm or delta-pressure surface for a participant group.
Inputs: actor (mm|bd|procust|cust|firm, default mm), date (string, default today), greek (gamma|charm|delta, default gamma), levels_n (integer, 3–25, default 10)
get_net_gex_by_strike
Intraday 0DTE SPX gamma exposure by strike near spot for a participant group.
Inputs: actor (mm|bd|procust|cust|firm, default mm), top_n (integer, 1–25, default 8)
get_net_gex_timeline
The selected participant group’s total 0DTE SPX gamma exposure through today’s session.
Inputs: actor (mm|bd|procust|cust|firm, default mm), step_min (integer, 1–60, default 10)
get_net_oi_by_strike
Market makers’ net 0DTE SPX open interest near spot, split into call and put legs.
Inputs: strikes (integer, 3–25, default 10)
get_gamma_condors
Iron-condor-shaped positions inferred from same-day SPX open interest.
Inputs: None.
Options & key levels
Inputs below are optional unless marked required. Use tools/list for the current input schema.
get_0dte_chain
Same-day-expiry option chain, ATM volatility and nearby strikes, live or at a selected session minute.
Inputs: at (string), date (string), strikes (integer, 1–30, default 10), ticker (string, default SPX), top (integer, 1–15, default 5)
get_0dte_volume
Same-day-expiry call/put volume by strike, live or at a selected session minute.
Inputs: at (string), date (string), strikes (integer, 1–30, default 10), ticker (string, default SPX), top (integer, 1–15, default 5)
get_gex_confluence
Cross-asset gamma-wall confluence across SPX, NDX, QQQ and SPY.
Inputs: at (string), date (string)
get_gex_walls
0DTE call wall, put wall and gamma flip, with distance from price.
Inputs: date (string), ticker (string, default SPX)
get_options_key_levels
Daily call/put/hedge walls, key gamma/delta strikes and the implied one-day move, with distance from spot.
Inputs: symbol (string, default SPX)
search_option_symbols
Find supported option symbols by prefix, including their last price and exercise style.
Inputs: limit (integer, 1–25, default 10), query required (string)
get_iv_term_structure
ATM implied volatility across expirations, including 30-/90-day IV and term-structure shape.
Inputs: points (integer, 4–40, default 12), symbol (string, default SPX)
Options flow
Inputs below are optional unless marked required. Use tools/list for the current input schema.
get_large_options_flow
Large 0DTE option trades filtered by ticker, premium, side, moneyness, sweeps and spreads.
Inputs: date (string), hide_spreads (boolean, default False), limit (integer, 1–30, default 10), min_premium (number, 0–1000000000), moneyness (any|otm|near2|near1, default any), side (all|bought|sold, default all), sweeps_only (boolean, default False), ticker (string, default SPX)
get_options_delta_flow
Intraday options delta flow for the selected supported symbol.
Inputs: symbol (string, default SPX)
get_flow_alerts
Recent options-flow alerts, including positive/negative surges and closing activity.
Inputs: top (integer, 1–30, default 10)
get_options_tape_analytics
A summary of options-print imbalance, directional flow and the most significant prints.
Inputs: symbol (string, default SPX), top (integer, 1–15, default 5)
Dark pool activity
Inputs below are optional unless marked required. Use tools/list for the current input schema.
get_dark_pool_levels
The largest clustered off-exchange levels from the last three QQQ/SPY sessions.
Inputs: symbol (string), top (integer, 1–10, default 10)
get_dark_pool_history
Off-exchange levels across a chosen historical session window.
Inputs: date (string), sessions (integer, 1–20, default 3), symbol (string, default QQQ), top (integer, 1–20, default 10)
get_dark_pool_activity
When QQQ/SPY off-exchange activity occurred, with notional totals and the busiest intervals.
Inputs: date (string), hours (regular|extended, default regular), interval (5m|15m, default 5m), symbol (string, default QQQ), top (integer, 1–20, default 5)
get_dark_pool_blocks
The largest and most recent QQQ/SPY off-exchange prints of at least $5 million.
Inputs: date (string), min_usd (number, at least 5,000,000, default 5,000,000), symbol (string, default QQQ), top (integer, 1–50, default 10)
News & research
Inputs below are optional unless marked required. Use tools/list for the current input schema.
get_headlines
Latest market headlines, with timestamps and age, optionally filtered by words.
Inputs: limit (integer, 1–100, default 20), query (string)
search_news_articles
Search full news articles by text, ticker, sentiment, topic and recency.
Inputs: limit (integer, 1–50, default 20), query (string), sentiment (any|bull|bear, default any), since_hours (integer, 1 to the retention in hours), tickers (list), topics (list)
get_news_article
Read an article by its ID, including text, tickers, sentiment and topics.
Inputs: id required (integer)
get_news_impact
SPX’s five-minute price reaction after today’s headlines matching selected keywords.
Inputs: keywords (list), limit (integer, 1–50, default 15)
get_market_summary
The latest options-market research summary, trading context and key levels.
Inputs: limit (integer, 1–5, default 1)
get_release_brief
Pre-release and follow-up reads of major economic events, including actual/forecast/previous values.
Inputs: day (string: today or YYYY-MM-DD, New York), include_x_posts (boolean, default False), limit (integer, 1–10, default 3), when (all|recent|upcoming, default all)
Calendar & trading hours
Inputs below are optional unless marked required. Use tools/list for the current input schema.
get_economic_calendar
Scheduled economic releases and earnings, filtered by country, days and importance.
Inputs: country (string), days (integer, 0–14, default 2), earnings (boolean, default True), min_importance (high|medium|all, default medium)
get_market_status
Current regular-session state of NYSE, Nasdaq and the London Stock Exchange.
Inputs: None.
get_session_hours
An exchange’s session times on a selected date and its next trading dates.
Inputs: date (string), market (nyse|nasdaq|lse, default nyse), next (integer, 0–20, default 5)
get_market_holidays
Exchange holidays and special hours within a date range.
Inputs: from (string), limit (integer, 1–200, default 50), markets (string, default core), status (closed|early_close|all, default all), to (string)
list_exchanges
Find exchanges covered by the trading calendar.
Inputs: query (string)
Structure & auction
Inputs below are optional unless marked required. Use tools/list for the current input schema.
get_market_structure
Top-down ES/NQ price structure, bias, trend, key levels and primary scenario across timeframes.
Inputs: symbol (string, default NQ; ES, SPX and SPY → ES, NDX and QQQ → NQ)
get_stock_structure
Top-down stock/ETF price structure across 4-hour, 1-hour, 30-minute and 15-minute bars.
Inputs: symbol required (string)
get_market_auction
ES/NQ volume and TPO profiles, value areas, auction context and nearby key levels.
Inputs: days (integer, 0–60, default 0), history (integer, 0–20, default 0), symbol (string, default NQ; ES, SPX and SPY → ES, NDX and QQQ → NQ)
get_market_stability
SPX’s short-horizon stability gauge based on dealer gamma positioning.
Inputs: None.
Sentiment & rotation
Inputs below are optional unless marked required. Use tools/list for the current input schema.
get_options_sentiment
Options sentiment for selected tickers, including IV rank and risk-reversal rank.
Inputs: lookback (integer, 0–30, default 5), symbols (list)
get_options_sentiment_history
Daily options-sentiment readings over the chosen lookback.
Inputs: lookback (integer, 1–30, default 20), symbols (list)
list_sector_groups
Available sectors and sub-industries, with group IDs and member counts.
Inputs: kind (sector|sub_industry|all, default sector), query (string)
scan_sector_sentiment
Rank a sector or sub-industry by IV rank, risk reversal, volatility spread or skew.
Inputs: group required (string), limit (integer, 1–30, default 15), order (desc|asc, default desc), sort_by (iv_rank|rr_rank|iv_minus_rv|call_skew|put_skew, default iv_rank)
search_sentiment_symbols
Find tickers by ticker prefix or company name for sentiment analysis.
Inputs: indexes_only (boolean, default False), limit (integer, 1–25, default 10), query required (string)
get_rrg_quadrants
Relative strength and momentum versus a benchmark, including each symbol’s rotation quadrant.
Inputs: benchmark (string), period (daily|weekly|monthly, default weekly), symbols (list)
Scenarios
Inputs below are optional unless marked required. Use tools/list for the current input schema.
get_scenario_instruments
Instruments and historical date coverage available for scenario analysis.
Inputs: None.
get_scenario_odds
Historical-analog probabilities and expected ranges over the selected horizon.
Inputs: anchor (close|open, default close), asof (string), horizon (1, 5, 10 or 20 sessions; default 1), lookback (integer, 60–2500, default 1260), matches (integer, 5–300, default 100), method (regime|recent|weekday, default regime), symbol (string)
get_scenario_analogs
The historical matching windows behind a scenario, with returns and price excursions.
Inputs: anchor (close|open, default close), asof (string), horizon (1, 5, 10 or 20 sessions; default 1), lookback (integer, 60–2500, default 1260), matches (integer, 5–300, default 100), method (regime|recent|weekday, default regime), symbol (string), top (integer, 1–30, default 10)
get_scenario_levels
Statistical range levels across 1-, 5-, 10- and 20-session horizons.
Inputs: anchor (close|open, default close), symbol (string)
Wheel candidates
Inputs below are optional unless marked required. Use tools/list for the current input schema.
get_wheel_candidates
Cash-secured-put or covered-call candidates for a chosen risk profile and earnings policy.
Inputs: limit (integer, 1–30, default 10), policy (advisory|exclude_known_events|require_checked_window|context_score, default advisory), profile (conservative|balanced|aggressive, default balanced), strategy (CSP|CC, default CSP)
get_wheel_detail
One ticker’s wheel candidates, volatility, trend, support/resistance and event context.
Inputs: policy (advisory|exclude_known_events|require_checked_window|context_score, default advisory), symbol required (string)
Company relationships
Inputs below are optional unless marked required. Use tools/list for the current input schema.
get_supply_chain
A company’s profile and its customers, suppliers and other business relationships.
Inputs: per_role (integer, 1–25, default 10), ticker (string)
search_companies
Find companies in the business-relationships dataset by ticker or name.
Inputs: limit (integer, 1–25, default 10), query required (string)
My trades & community
Your personal trade and statistics tools use your authenticated membership. Community tools return public summaries or anonymous aggregates.
get_my_trades
Your own closed trades and, optionally, open positions and working orders.
Inputs: account (all|live|prop|demo|real, default all; real = live), include_open (boolean, default True), limit (integer, 1–100, default 25), outcome (all|win|loss|scratch, default all), period (today|week|month|all, default week), symbol (string)
get_my_trading_stats
Your own trading statistics by period and account kind, with an optional prior-period comparison.
Inputs: account (all|live|prop|demo|real, default all; real = live), compare_previous (boolean, default False), period (today|week|month|all, default week)
get_community_leaderboard
The community’s public leaderboard, filtered by period, account kind and ranking.
Inputs: account (all|live|prop|demo|real, default all; real = live), board (score|net|pf|winrate|consistency, default score), limit (integer, 1–50, default 15), period (today|week|month|all, default week)
get_community_positioning
Anonymous aggregate positioning for markets with at least three participating members.
Inputs: symbol (string)