IdiotProof MCP tools
270 tools, one per Hub operation. Each forwards to the running Hub; money tools return a
confirmation code for Live actions instead of executing them. Times are US Eastern.
| Tool | Operation | Risk |
|---|---|---|
account_activities |
account activities |
read |
account_buying_power |
account buying-power |
read |
account_calendar |
account calendar |
read |
account_clock |
account clock |
read |
account_config |
account config |
read |
account_config_set |
account config set |
write |
account_history |
account history |
read |
account_pdt |
account pdt |
read |
account_summary |
account summary |
read |
agent_catalog |
agent catalog |
read |
alpaca_raw |
alpaca raw |
write |
assets_bonds |
assets bonds |
read |
assets_list |
assets list |
read |
assets_show |
assets show |
read |
audit_list |
audit list |
read |
audit_search |
audit search |
read |
audit_tail |
audit tail |
read |
backtest_conditions |
backtest conditions |
read |
backtest_run |
backtest run |
read |
catalyst_backfill |
catalyst backfill |
read |
catalyst_intake_status |
catalyst intake-status |
read |
catalyst_list |
catalyst list |
read |
catalyst_score |
catalyst score |
read |
catalyst_show |
catalyst show |
read |
corporate_actions_list |
corporate-actions list |
read |
corporate_actions_show |
corporate-actions show |
read |
crypto_bars |
crypto bars |
read |
crypto_buy |
crypto buy |
money |
crypto_fee_estimate |
crypto fee-estimate |
read |
crypto_latest |
crypto latest |
read |
crypto_orderbook |
crypto orderbook |
read |
crypto_positions |
crypto positions |
read |
crypto_quotes |
crypto quotes |
read |
crypto_sell |
crypto sell |
money |
crypto_snapshot |
crypto snapshot |
read |
crypto_trades |
crypto trades |
read |
crypto_transfers |
crypto transfers |
read |
crypto_wallets |
crypto wallets |
read |
crypto_whitelist |
crypto whitelist |
read |
crypto_whitelist_add |
crypto whitelist-add |
money |
crypto_whitelist_remove |
crypto whitelist-remove |
write |
crypto_withdraw |
crypto withdraw |
money |
dataset_export |
dataset export |
write |
diary_export |
diary export |
write |
diary_list |
diary list |
read |
diary_pnl |
diary pnl |
read |
diary_show |
diary show |
read |
diary_stats |
diary stats |
read |
docs_dsl |
docs dsl |
read |
docs_explain |
docs explain |
read |
docs_law |
docs law |
read |
docs_search |
docs search |
read |
docs_section |
docs section |
read |
docs_story |
docs story |
read |
docs_ticket |
docs ticket |
read |
dsl_format |
dsl format |
read |
dsl_glossary |
dsl glossary |
read |
dsl_parse |
dsl parse |
read |
dsl_validate |
dsl validate |
read |
dsl_verbs |
dsl verbs |
read |
evidence_calibration |
evidence calibration |
read |
evidence_conformal |
evidence conformal |
read |
evidence_events |
evidence events |
read |
evidence_flow |
evidence flow |
read |
evidence_graph |
evidence graph |
read |
evidence_hawkes |
evidence hawkes |
read |
evidence_kalman |
evidence kalman |
read |
evidence_label |
evidence label |
read |
evidence_pools |
evidence pools |
read |
evidence_regime |
evidence regime |
read |
evidence_search |
evidence search |
read |
evidence_similar |
evidence similar |
read |
evidence_sizing |
evidence sizing |
read |
evidence_survival |
evidence survival |
read |
evidence_tails |
evidence tails |
read |
evidence_topology |
evidence topology |
read |
evidence_walkforward |
evidence walkforward |
read |
gapper_apply_tuned |
gapper apply-tuned |
write |
gapper_arm |
gapper arm |
money |
gapper_auto_candidates |
gapper auto candidates |
read |
gapper_auto_disable |
gapper auto disable |
write |
gapper_auto_enable |
gapper auto enable |
write |
gapper_auto_status |
gapper auto status |
read |
gapper_backtest_day |
gapper backtest-day |
read |
gapper_be_bex_status |
gapper be-bex status |
read |
gapper_caps |
gapper caps |
read |
gapper_disarm |
gapper disarm |
write |
gapper_formation |
gapper formation |
read |
gapper_formation_disable |
gapper formation disable |
write |
gapper_formation_enable |
gapper formation enable |
write |
gapper_formation_status |
gapper formation status |
read |
gapper_formation_universe |
gapper formation universe |
read |
gapper_from_transcript |
gapper from-transcript |
read |
gapper_list |
gapper list |
read |
gapper_premarket_fade |
gapper premarket-fade |
read |
gapper_profile_show |
gapper profile show |
read |
gapper_profiles |
gapper profiles |
read |
gapper_tune |
gapper tune |
write |
hub_install_service |
hub install-service |
destructive |
hub_ping |
hub ping |
read |
hub_uninstall_service |
hub uninstall-service |
destructive |
indicators_compute |
indicators compute |
read |
indicators_snapshot |
indicators snapshot |
read |
keys_migrate_to_vault |
keys migrate-to-vault |
destructive |
keys_opt_in |
keys opt-in |
write |
keys_probe |
keys probe |
read |
keys_set |
keys set |
write |
keys_status |
keys status |
read |
ledger_list |
ledger list |
read |
llm_keys |
llm keys |
read |
llm_panel |
llm panel |
read |
llm_threshold |
llm threshold |
write |
llm_vote |
llm vote |
read |
llm_voting_disable |
llm voting disable |
write |
llm_voting_enable |
llm voting enable |
write |
market_auctions |
market auctions |
read |
market_bars |
market bars |
read |
market_bond_prices |
market bond-prices |
read |
market_candlesticks |
market candlesticks |
read |
market_chart |
market chart |
read |
market_conditions |
market conditions |
read |
market_exchanges |
market exchanges |
read |
market_feed_status |
market feed status |
read |
market_feed_switch |
market feed switch |
write |
market_fx |
market fx |
read |
market_latest |
market latest |
read |
market_logo |
market logo |
write |
market_meta |
market meta |
read |
market_most_actives |
market most-actives |
read |
market_movers |
market movers |
read |
market_news |
market news |
read |
market_prev_close |
market prev-close |
read |
market_quote |
market quote |
read |
market_quotes |
market quotes |
read |
market_scan_universe |
market scan-universe |
read |
market_snapshot |
market snapshot |
read |
market_stream_status |
market stream status |
read |
market_trades |
market trades |
read |
market_watch |
market watch |
read |
monitor_heartbeat |
monitor heartbeat |
read |
monitor_lease |
monitor lease |
read |
monitor_pause |
monitor pause |
write |
monitor_resume |
monitor resume |
money |
monitor_status |
monitor status |
read |
monitor_tail |
monitor tail |
read |
monitor_tick_once |
monitor tick-once |
read |
options_bars |
options bars |
read |
options_buy |
options buy |
money |
options_chain |
options chain |
read |
options_close |
options close |
money |
options_conditions |
options conditions |
read |
options_contract |
options contract |
read |
options_contracts |
options contracts |
read |
options_do_not_exercise |
options do-not-exercise |
money |
options_exchanges |
options exchanges |
read |
options_exercise |
options exercise |
money |
options_glossary |
options glossary |
read |
options_greeks |
options greeks |
read |
options_iv |
options iv |
read |
options_latest |
options latest |
read |
options_level |
options level |
read |
options_positions |
options positions |
read |
options_quote |
options quote |
read |
options_sell |
options sell |
money |
options_signals |
options signals |
read |
options_snapshot |
options snapshot |
read |
options_spread |
options spread |
money |
options_trades |
options trades |
read |
options_value |
options value |
read |
orders_bracket |
orders bracket |
money |
orders_cancel |
orders cancel |
money |
orders_cancel_all |
orders cancel-all |
money |
orders_history |
orders history |
read |
orders_list |
orders list |
read |
orders_oco |
orders oco |
money |
orders_oto |
orders oto |
money |
orders_place |
orders place |
money |
orders_replace |
orders replace |
money |
orders_show |
orders show |
read |
orders_stream |
orders stream |
read |
positions_close |
positions close |
money |
positions_close_all |
positions close-all |
money |
positions_list |
positions list |
read |
positions_reconcile |
positions reconcile |
read |
positions_show |
positions show |
read |
prefs_get |
prefs get |
read |
prefs_set |
prefs set |
write |
replay_all |
replay all |
write |
replay_compare |
replay compare |
read |
replay_families |
replay families |
read |
replay_list |
replay list |
read |
replay_live |
replay live |
write |
replay_regen |
replay regen |
write |
replay_run |
replay run |
write |
replay_show |
replay show |
read |
research_analyze |
research analyze |
write |
research_backfill |
research backfill |
write |
research_claim |
research claim |
read |
research_claims |
research claims |
read |
research_gappers_build_universe |
research gappers build-universe |
read |
research_gappers_catalysts |
research gappers catalysts |
read |
research_gappers_label |
research gappers label |
read |
research_gappers_pull |
research gappers pull |
read |
research_gappers_snapshot |
research gappers snapshot |
read |
research_gappers_status |
research gappers status |
read |
research_index_events |
research index-events |
read |
research_insiders |
research insiders |
read |
research_macro |
research macro |
read |
research_scan |
research scan |
write |
research_score |
research score |
read |
research_similar |
research similar |
read |
research_ticker |
research ticker |
read |
research_universe_list |
research universe list |
read |
research_universe_refresh |
research universe refresh |
write |
risk_check |
risk check |
read |
risk_kill_switch |
risk kill-switch |
write |
risk_set |
risk set |
write |
risk_show |
risk show |
read |
risk_status |
risk status |
read |
scan_movers |
scan movers |
write |
settings_get |
settings get |
read |
settings_list |
settings list |
read |
settings_set |
settings set |
write |
strategy_activate |
strategy activate |
money |
strategy_bulk |
strategy bulk |
money |
strategy_clone |
strategy clone |
write |
strategy_create |
strategy create |
write |
strategy_deactivate |
strategy deactivate |
write |
strategy_delete |
strategy delete |
destructive |
strategy_diff |
strategy diff |
read |
strategy_explain |
strategy explain |
read |
strategy_export |
strategy export |
read |
strategy_fires |
strategy fires |
read |
strategy_from_text |
strategy from-text |
write |
strategy_from_watchlist |
strategy from-watchlist |
write |
strategy_history |
strategy history |
read |
strategy_import |
strategy import |
write |
strategy_list |
strategy list |
read |
strategy_mode |
strategy mode |
money |
strategy_progress |
strategy progress |
read |
strategy_quarantine |
strategy quarantine |
read |
strategy_rename |
strategy rename |
write |
strategy_resync_canon |
strategy resync-canon |
write |
strategy_samples |
strategy samples |
read |
strategy_set |
strategy set |
money |
strategy_show |
strategy show |
read |
strategy_stamp |
strategy stamp |
read |
strategy_step |
strategy step |
write |
strategy_validate |
strategy validate |
read |
trade_buy |
trade buy |
money |
trade_confirm |
trade confirm |
money |
trade_cover |
trade cover |
money |
trade_flatten |
trade flatten |
money |
trade_notional |
trade notional |
money |
trade_pending |
trade pending |
read |
trade_preview |
trade preview |
read |
trade_sell |
trade sell |
money |
trade_short |
trade short |
money |
users_create |
users create |
write |
users_list |
users list |
read |
watchlist_add |
watchlist add |
write |
watchlist_list |
watchlist list |
read |
watchlist_remove |
watchlist remove |
write |
watchlists_add |
watchlists add |
write |
watchlists_create |
watchlists create |
write |
watchlists_delete |
watchlists delete |
destructive |
watchlists_list |
watchlists list |
read |
watchlists_remove |
watchlists remove |
write |
watchlists_rename |
watchlists rename |
write |
watchlists_show |
watchlists show |
read |
account_activities
Account activity log: fills, dividends, fees, deposits, interest, option expirations/assignments (newest first, ET).
CLI equivalent: idiotproof account activities [--since
Read-only. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Account activity log: fills, dividends, fees, deposits, interest, option expirations/assignments (newest first, ET).",
"properties": {
"since": {
"type": "string",
"format": "date",
"description": "First ET date to include, yyyy-MM-dd (default: 7 days ago)."
},
"until": {
"type": "string",
"format": "date",
"description": "Last ET date to include, yyyy-MM-dd (default: today)."
},
"type": {
"type": "array",
"items": {
"type": "string"
},
"description": "Activity types, comma-separated: FILL, DIV, FEE, CSD (deposit), CSW (withdrawal), JNLC, INT, OPEXP, OPASN, ... (default: all)."
},
"limit": {
"type": "integer",
"description": "Most rows per account, newest first (default 100, max 1000).",
"default": 100
},
"mode": {
"type": "string",
"enum": [
"all",
"paper",
"live"
],
"description": "paper, live or all (default all).",
"default": "all"
}
},
"additionalProperties": false
}
account_buying_power
Buying power by kind (overall, Reg T, day-trading, non-marginable, options), cash and margin multiplier.
CLI equivalent: idiotproof account buying-power [--mode <all|paper|live>] Examples: idiotproof account buying-power idiotproof account buying-power --mode live
Read-only. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Buying power by kind (overall, Reg T, day-trading, non-marginable, options), cash and margin multiplier.",
"properties": {
"mode": {
"type": "string",
"enum": [
"all",
"paper",
"live"
],
"description": "paper, live or all (default all).",
"default": "all"
}
},
"additionalProperties": false
}
account_calendar
Trading days with premarket, regular and after-hours times (ET); early closes and holidays called out.
CLI equivalent: idiotproof account calendar [--from
Read-only. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Trading days with premarket, regular and after-hours times (ET); early closes and holidays called out.",
"properties": {
"from": {
"type": "string",
"format": "date",
"description": "First date, yyyy-MM-dd (default today ET)."
},
"to": {
"type": "string",
"format": "date",
"description": "Last date, yyyy-MM-dd (default 14 days after --from)."
},
"mode": {
"type": "string",
"enum": [
"sandbox",
"paper",
"live"
],
"description": "Which Alpaca account\u0027s keys ask: paper or live (default paper; the calendar is the same).",
"default": "paper"
}
},
"additionalProperties": false
}
account_clock
Is the market open now, and when it next opens and closes (ET), from Alpaca's clock.
CLI equivalent: idiotproof account clock [--mode <sandbox|paper|live>] Examples: idiotproof account clock
Read-only. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Is the market open now, and when it next opens and closes (ET), from Alpaca\u0027s clock.",
"properties": {
"mode": {
"type": "string",
"enum": [
"sandbox",
"paper",
"live"
],
"description": "Which Alpaca account\u0027s keys ask: paper or live (default paper; the clock is the same).",
"default": "paper"
}
},
"additionalProperties": false
}
account_config
Alpaca account settings side by side: DTBP/PDT checks, shorting, fractional, margin cap, options level, trade suspension.
CLI equivalent: idiotproof account config [--mode <all|paper|live>] Examples: idiotproof account config idiotproof account config --mode live
Read-only. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Alpaca account settings side by side: DTBP/PDT checks, shorting, fractional, margin cap, options level, trade suspension.",
"properties": {
"mode": {
"type": "string",
"enum": [
"all",
"paper",
"live"
],
"description": "paper, live or all (default all).",
"default": "all"
}
},
"additionalProperties": false
}
account_config_set
Change one Alpaca account setting (Live needs a confirmation code).
CLI equivalent: idiotproof account config set
Changes saved state. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Change one Alpaca account setting (Live needs a confirmation code).",
"properties": {
"setting": {
"type": "string",
"description": "dtbp_check, pdt_check, trade_confirm_email, suspend_trade, no_shorting, fractional_trading, max_margin_multiplier, max_options_trading_level or ptp_no_exception_entry.",
"default": ""
},
"value": {
"type": "string",
"description": "The new value (see \u0060account config\u0060 for each setting\u0027s meaning).",
"default": ""
},
"mode": {
"type": "string",
"enum": [
"sandbox",
"paper",
"live"
],
"description": "paper or live (default paper; live needs a confirmation code).",
"default": "paper"
}
},
"additionalProperties": false,
"required": [
"setting",
"value"
]
}
account_history
Equity over time as a Braille line chart, with the true P&L (deposits excluded) for 1D to all-time windows.
CLI equivalent: idiotproof account history [--period
Read-only. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Equity over time as a Braille line chart, with the true P\u0026L (deposits excluded) for 1D to all-time windows.",
"properties": {
"period": {
"type": "string",
"description": "Window: \u003Cn\u003ED, \u003Cn\u003EW, \u003Cn\u003EM or \u003Cn\u003EA (years), or all (default 1M).",
"default": "1M"
},
"timeframe": {
"type": "string",
"description": "Point spacing: 1Min, 5Min, 15Min, 1H or 1D (default: Alpaca\u0027s choice for the period)."
},
"extended": {
"type": "boolean",
"description": "Include premarket and after-hours in intraday history (default regular hours only).",
"default": false
},
"mode": {
"type": "string",
"enum": [
"sandbox",
"paper",
"live"
],
"description": "paper or live (default paper).",
"default": "paper"
},
"width": {
"type": "integer",
"description": "Chart width in characters (default: the terminal\u0027s, else 118)."
},
"height": {
"type": "integer",
"description": "Chart rows (default 16).",
"default": 16
}
},
"additionalProperties": false
}
account_pdt
Pattern-day-trader standing: day trades in the last 5 business days, PDT flag, equity vs the $25k floor, trades left.
CLI equivalent: idiotproof account pdt [--mode <all|paper|live>] Examples: idiotproof account pdt idiotproof account pdt --mode live
Read-only. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Pattern-day-trader standing: day trades in the last 5 business days, PDT flag, equity vs the $25k floor, trades left.",
"properties": {
"mode": {
"type": "string",
"enum": [
"all",
"paper",
"live"
],
"description": "paper, live or all (default all).",
"default": "all"
}
},
"additionalProperties": false
}
account_summary
Equity, cash, buying power and today's true P&L (deposits excluded) for your Alpaca paper and live accounts.
CLI equivalent: idiotproof account summary [--mode <all|paper|live>] Examples: idiotproof account summary idiotproof account summary --mode live
Read-only. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Equity, cash, buying power and today\u0027s true P\u0026L (deposits excluded) for your Alpaca paper and live accounts.",
"properties": {
"mode": {
"type": "string",
"enum": [
"all",
"paper",
"live"
],
"description": "paper, live or all (default all).",
"default": "all"
}
},
"additionalProperties": false
}
agent_catalog
List every operation with its parameters, risk and input schema.
CLI equivalent: idiotproof agent catalog [--operation
Read-only. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "List every operation with its parameters, risk and input schema.",
"properties": {
"operation": {
"type": "string",
"description": "Only this operation, by name (\u0022strategy list\u0022) or tool name (strategy_list)."
}
},
"additionalProperties": false
}
alpaca_raw
Any Alpaca endpoint (escape hatch): GET/POST/PATCH/PUT/DELETE a Trading API path, or GET a Market Data path with --data; order, position and wallet mutations are refused (use the gated operations).
CLI equivalent: idiotproof alpaca raw
Changes saved state. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Any Alpaca endpoint (escape hatch): GET/POST/PATCH/PUT/DELETE a Trading API path, or GET a Market Data path with --data; order, position and wallet mutations are refused (use the gated operations).",
"properties": {
"method": {
"type": "string",
"description": "GET, POST, PATCH, PUT or DELETE.",
"default": ""
},
"path": {
"type": "string",
"description": "The Alpaca path with any query string, e.g. /v2/account or /v2/assets?status=active.",
"default": ""
},
"body": {
"type": "string",
"description": "JSON request body for POST/PATCH/PUT (use \u0027-\u0027 to read it from stdin)."
},
"data": {
"type": "boolean",
"description": "Call the Market Data API (data.alpaca.markets, GET only) instead of the Trading API.",
"default": false
},
"mode": {
"type": "string",
"enum": [
"sandbox",
"paper",
"live"
],
"description": "Trading API account: paper (default) or live. Live mutations need a confirmation code.",
"default": "paper"
}
},
"additionalProperties": false,
"required": [
"method",
"path"
]
}
assets_bonds
Alpaca fixed income assets: US Treasuries or US corporate bonds with coupon, maturity, last close and yield.
CLI equivalent: idiotproof assets bonds [--type <treasuries|corporates>] [--subtype
Read-only. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Alpaca fixed income assets: US Treasuries or US corporate bonds with coupon, maturity, last close and yield.",
"properties": {
"type": {
"type": "string",
"enum": [
"treasuries",
"corporates"
],
"description": "treasuries (default) or corporates.",
"default": "treasuries"
},
"subtype": {
"type": "string",
"description": "Treasury subtype filter (bill, note, bond, strips, tips, floating_rate)."
},
"bond_status": {
"type": "string",
"description": "Bond status filter (outstanding, matured, pre_issuance)."
},
"cusips": {
"type": "array",
"items": {
"type": "string"
},
"description": "Only these CUSIPs, comma separated."
},
"isins": {
"type": "array",
"items": {
"type": "string"
},
"description": "Only these ISINs, comma separated."
},
"search": {
"type": "string",
"description": "Keep bonds whose description, issuer, ticker, CUSIP or ISIN contains this text."
},
"limit": {
"type": "integer",
"description": "Rows to show (default 50; sorted by maturity).",
"default": 50
},
"mode": {
"type": "string",
"enum": [
"paper",
"live"
],
"description": "Alpaca account to ask: paper (default) or live.",
"default": "paper"
}
},
"additionalProperties": false
}
assets_list
Alpaca's tradable universe (/v2/assets) filtered by class, exchange, status and attributes, with totals.
Alpaca returns 10k+ assets; this shows the first --limit matches (sorted by symbol) and how many matched in all.
CLI equivalent: idiotproof assets list [--class <us-equity|us-option|crypto>] [--exchange
Read-only. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Alpaca\u0027s tradable universe (/v2/assets) filtered by class, exchange, status and attributes, with totals.",
"properties": {
"class": {
"type": "string",
"enum": [
"us-equity",
"us-option",
"crypto"
],
"description": "us_equity, us_option or crypto (default: every class)."
},
"exchange": {
"type": "string",
"description": "Only this exchange (NASDAQ, NYSE, ARCA, AMEX, BATS, OTC, CRYPTO...)."
},
"status": {
"type": "string",
"enum": [
"active",
"inactive",
"all"
],
"description": "active, inactive or all (default active).",
"default": "active"
},
"attributes": {
"type": "array",
"items": {
"type": "string"
},
"description": "Alpaca attribute filter, comma separated (ptp_no_exception, ptp_with_exception, ipo, has_options, options_late_close, fractional_eh_enabled...)."
},
"search": {
"type": "string",
"description": "Keep assets whose symbol starts with, or name contains, this text."
},
"tradable": {
"type": "boolean",
"description": "Only assets tradable at Alpaca.",
"default": false
},
"shortable": {
"type": "boolean",
"description": "Only shortable assets.",
"default": false
},
"limit": {
"type": "integer",
"description": "Rows to show (default 50; the totals line counts them all).",
"default": 50
},
"mode": {
"type": "string",
"enum": [
"paper",
"live"
],
"description": "Alpaca account to ask: paper (default) or live.",
"default": "paper"
}
},
"additionalProperties": false
}
assets_show
One Alpaca asset: tradable, shortable, easy-to-borrow, marginable, fractionable and margin requirements.
CLI equivalent: idiotproof assets show
Read-only. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "One Alpaca asset: tradable, shortable, easy-to-borrow, marginable, fractionable and margin requirements.",
"properties": {
"symbol": {
"type": "string",
"description": "Ticker, crypto pair (BTC/USD) or Alpaca asset id.",
"default": ""
},
"mode": {
"type": "string",
"enum": [
"paper",
"live"
],
"description": "Alpaca account to ask: paper (default) or live.",
"default": "paper"
}
},
"additionalProperties": false,
"required": [
"symbol"
]
}
audit_list
The audit trail, newest first: signals, entries/exits, rejections, risk blocks, system events (ET).
CLI equivalent: idiotproof audit list [--since
Read-only. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "The audit trail, newest first: signals, entries/exits, rejections, risk blocks, system events (ET).",
"properties": {
"since": {
"type": "string",
"format": "date",
"description": "First ET date to include, yyyy-MM-dd (default: everything kept)."
},
"kind": {
"type": "array",
"items": {
"type": "string"
},
"description": "Only these categories, comma-separated: signal-fire, entry, exit, order-rejected, risk, broker, system, ..."
},
"system": {
"type": "boolean",
"description": "Include system-wide rows that belong to no user (default on; --no-system for only yours).",
"default": true
},
"limit": {
"type": "integer",
"description": "Most rows, newest first, 1-1000 (default 50).",
"default": 50
}
},
"additionalProperties": false
}
audit_search
Find audit rows whose message or payload contains text: a symbol, order id, strategy title.
CLI equivalent: idiotproof audit search
Read-only. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Find audit rows whose message or payload contains text: a symbol, order id, strategy title.",
"properties": {
"text": {
"type": "string",
"description": "Text to find in the message or the structured payload (case-insensitive).",
"default": ""
},
"since": {
"type": "string",
"format": "date",
"description": "First ET date to include, yyyy-MM-dd (default: everything kept)."
},
"kind": {
"type": "array",
"items": {
"type": "string"
},
"description": "Only these categories, comma-separated: signal-fire, entry, exit, order-rejected, risk, broker, system, ..."
},
"system": {
"type": "boolean",
"description": "Include system-wide rows that belong to no user (default on; --no-system for only yours).",
"default": true
},
"limit": {
"type": "integer",
"description": "Most rows, newest first, 1-1000 (default 50).",
"default": 50
}
},
"additionalProperties": false,
"required": [
"text"
]
}
audit_tail
The latest audit rows, oldest first; --follow streams new ones as they land (Ctrl+C stops; MCP/--json get a bounded window: --seconds, --max).
CLI equivalent: idiotproof audit tail [--lines
Read-only. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "The latest audit rows, oldest first; --follow streams new ones as they land (Ctrl\u002BC stops; MCP/--json get a bounded window: --seconds, --max).",
"properties": {
"lines": {
"type": "integer",
"description": "How many of the latest rows to start with, 0-500 (default 20).",
"default": 20
},
"follow": {
"type": "boolean",
"description": "Keep watching for new rows: in a terminal until Ctrl\u002BC (or --seconds/--max); for MCP and --json for --seconds (default 30) or --max (default 200) new rows.",
"default": false
},
"seconds": {
"type": "integer",
"description": "With --follow: how long to watch, 1-300 (default 30 for MCP/--json; a terminal streams until Ctrl\u002BC)."
},
"max": {
"type": "integer",
"description": "With --follow: stop after this many new rows, 1-1000 (default 200 for MCP/--json; none in a terminal)."
},
"kind": {
"type": "array",
"items": {
"type": "string"
},
"description": "Only these categories, comma-separated."
},
"system": {
"type": "boolean",
"description": "Include system-wide rows (default on; --no-system for only yours).",
"default": true
}
},
"additionalProperties": false
}
backtest_conditions
A backtest day's per-candle condition table: each entry condition's truth per bar, fires, entries and time in position.
CLI equivalent: idiotproof backtest conditions
Read-only. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "A backtest day\u0027s per-candle condition table: each entry condition\u0027s truth per bar, fires, entries and time in position.",
"properties": {
"run": {
"type": "string",
"description": "The run id \u0060backtest run\u0060 printed (bt-xxxxxxxx).",
"default": ""
},
"date": {
"type": "string",
"format": "date",
"description": "Which day of the run (default its first day with bars)."
},
"all": {
"type": "boolean",
"description": "Every candle, not just the ones where a condition changed, fired or traded.",
"default": false
}
},
"additionalProperties": false,
"required": [
"run"
]
}
backtest_run
Backtest a saved strategy or a script over a range of ET days with StrategyBacktester: triggers, trades and P&L per day (saved for backtest conditions).
CLI equivalent: idiotproof backtest run [
Read-only. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Backtest a saved strategy or a script over a range of ET days with StrategyBacktester: triggers, trades and P\u0026L per day (saved for backtest conditions).",
"properties": {
"strategy": {
"type": "string",
"description": "A saved strategy: id, id prefix, stamp id or symbol (or use --script)."
},
"script": {
"type": "string",
"description": "Backtest this IdiotScript, canonical JSON or stamp instead of a saved strategy (\u0060-\u0060 reads stdin)."
},
"from": {
"type": "string",
"format": "date",
"description": "First ET trading day (yyyy-MM-dd); default the last completed trading day."
},
"to": {
"type": "string",
"format": "date",
"description": "Last ET trading day (yyyy-MM-dd); default --from."
},
"qty": {
"type": "integer",
"description": "Share count when the strategy doesn\u0027t pin one (default 100).",
"default": 100
},
"days": {
"type": "integer",
"description": "Replay this many trading days from --from as ONE continuous run, so a sequenced strategy\u0027s hand-off between steps (and its Within deadline) crosses the day boundaries. Not with --to."
}
},
"additionalProperties": false
}
catalyst_backfill
Fill catalyst events for past dates from Alpaca news (paged) and EDGAR full-text search, through the same pre-classifier and scorer as live intake; rows are marked backfilled.
Writes research rows only (no strategy, order or setting changes). Needs an owner for the Alpaca keys. EDGAR calls are rate-limited (120 ms apart), so wide ranges take minutes.
CLI equivalent: idiotproof catalyst backfill --symbols
Read-only. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Fill catalyst events for past dates from Alpaca news (paged) and EDGAR full-text search, through the same pre-classifier and scorer as live intake; rows are marked backfilled.",
"properties": {
"symbols": {
"type": "string",
"description": "Comma-separated symbols to backfill.",
"default": ""
},
"from": {
"type": "string",
"format": "date",
"description": "First day (ET, yyyy-MM-dd).",
"default": "0001-01-01"
},
"to": {
"type": "string",
"format": "date",
"description": "Last day (ET, yyyy-MM-dd); default today."
},
"llm_budget": {
"type": "integer",
"description": "At most this many new rows get a Haiku classification (default 0: none).",
"default": 0
},
"edgar": {
"type": "boolean",
"description": "Also search EDGAR filings (default on; --no-edgar for news only).",
"default": true
}
},
"additionalProperties": false,
"required": [
"symbols",
"from"
]
}
catalyst_intake_status
Whether the catalyst intake is enabled, who owns it, whether this Hub leads, the news stream's health, the last message ET, EDGAR polling and today's counts.
CLI equivalent: idiotproof catalyst intake-status Examples: idiotproof catalyst intake-status
Read-only. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Whether the catalyst intake is enabled, who owns it, whether this Hub leads, the news stream\u0027s health, the last message ET, EDGAR polling and today\u0027s counts.",
"properties": {},
"additionalProperties": false
}
catalyst_list
Catalyst events the intake recorded (news and EDGAR filings): published ET, receive lag, symbol, pre-class, direction, score, source, headline.
CLI equivalent: idiotproof catalyst list [--symbol
Read-only. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Catalyst events the intake recorded (news and EDGAR filings): published ET, receive lag, symbol, pre-class, direction, score, source, headline.",
"properties": {
"symbol": {
"type": "string",
"description": "Only events naming this symbol."
},
"since": {
"type": "string",
"description": "Window start: today, yesterday, 6h, 3d, or a date (ET). Default 24h."
},
"limit": {
"type": "integer",
"description": "Most recent N events (default 50, max 500).",
"default": 50
}
},
"additionalProperties": false
}
catalyst_score
The latest catalyst event for a symbol and its score breakdown as of now (type prior × magnitude × source + novelty, decayed by age).
CLI equivalent: idiotproof catalyst score
Read-only. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "The latest catalyst event for a symbol and its score breakdown as of now (type prior \u00D7 magnitude \u00D7 source \u002B novelty, decayed by age).",
"properties": {
"symbol": {
"type": "string",
"description": "The symbol whose latest catalyst to score.",
"default": ""
}
},
"additionalProperties": false,
"required": [
"symbol"
]
}
catalyst_show
Every field of one catalyst event, with its score broken down as of now.
CLI equivalent: idiotproof catalyst show
Read-only. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Every field of one catalyst event, with its score broken down as of now.",
"properties": {
"id": {
"type": "string",
"description": "The event id (or an id prefix of 6\u002B hex characters).",
"default": ""
}
},
"additionalProperties": false,
"required": [
"id"
]
}
corporate_actions_list
Splits, dividends, mergers, spinoffs and name changes from Alpaca (Market Data or Trading API announcements) over a date window.
CLI equivalent: idiotproof corporate-actions list [--types <string[]>] [--symbol <string[]>] [--since
Read-only. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Splits, dividends, mergers, spinoffs and name changes from Alpaca (Market Data or Trading API announcements) over a date window.",
"properties": {
"types": {
"type": "array",
"items": {
"type": "string"
},
"description": "Types, comma separated. data: forward_split, reverse_split, unit_split, cash_dividend, stock_dividend, spin_off, cash_merger, stock_merger, stock_and_cash_merger, redemption, name_change, worthless_removal, rights_distribution. announcements: dividend, merger, spinoff, split."
},
"symbol": {
"type": "array",
"items": {
"type": "string"
},
"description": "Only these symbols, comma separated."
},
"since": {
"type": "string",
"format": "date",
"description": "First date (default 30 days ago, ET)."
},
"until": {
"type": "string",
"format": "date",
"description": "Last date (default 30 days ahead, ET)."
},
"source": {
"type": "string",
"enum": [
"data",
"announcements"
],
"description": "data (Market Data, default) or announcements (Trading API, max 90-day window).",
"default": "data"
},
"limit": {
"type": "integer",
"description": "Rows to show (default 100; the totals line counts them all).",
"default": 100
},
"mode": {
"type": "string",
"enum": [
"paper",
"live"
],
"description": "Alpaca account for --source announcements: paper (default) or live.",
"default": "paper"
}
},
"additionalProperties": false
}
corporate_actions_show
Every field of one Alpaca corporate action, looked up in Market Data and then Trading API announcements.
CLI equivalent: idiotproof corporate-actions show
Read-only. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Every field of one Alpaca corporate action, looked up in Market Data and then Trading API announcements.",
"properties": {
"id": {
"type": "string",
"description": "Corporate action id (from corporate-actions list).",
"default": ""
},
"mode": {
"type": "string",
"enum": [
"paper",
"live"
],
"description": "Alpaca account for the announcements lookup: paper (default) or live.",
"default": "paper"
}
},
"additionalProperties": false,
"required": [
"id"
]
}
crypto_bars
OHLCV bars for a crypto pair from Alpaca's US crypto feed (times in ET).
CLI equivalent: idiotproof crypto bars
Read-only. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "OHLCV bars for a crypto pair from Alpaca\u0027s US crypto feed (times in ET).",
"properties": {
"pair": {
"type": "string",
"description": "Crypto pair, e.g. BTC/USD.",
"default": ""
},
"timeframe": {
"type": "string",
"description": "Bar size in Alpaca\u0027s form: 1Min, 5Min, 15Min, 1Hour, 4Hour, 1Day, 1Week (default 1Hour).",
"default": "1Hour"
},
"hours": {
"type": "integer",
"description": "How far back to look, in hours (default 24).",
"default": 24
},
"limit": {
"type": "integer",
"description": "Show at most this many bars, the most recent (default 48).",
"default": 48
}
},
"additionalProperties": false,
"required": [
"pair"
]
}
crypto_buy
Buy a crypto pair (fractional, GTC/IOC) through the TransactionGateway. Paper by default; live needs a confirmation code.
CLI equivalent: idiotproof crypto buy
MOVES MONEY. Sandbox and Paper run immediately. A Live action returns status confirmation-required with a preview and a code instead of executing: show the user the preview verbatim, ask them, and only if they say yes call this tool again with the identical arguments plus confirmation_code. Never invent or reuse a code. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Buy a crypto pair (fractional, GTC/IOC) through the TransactionGateway. Paper by default; live needs a confirmation code.",
"properties": {
"pair": {
"type": "string",
"description": "Crypto pair, e.g. BTC/USD.",
"default": ""
},
"qty": {
"type": "number",
"description": "Coin quantity, fractional allowed (0.0015). Leave out and pass --notional to size by dollars."
},
"notional": {
"type": "number",
"description": "Size by dollar amount instead of coin quantity."
},
"limit": {
"type": "number",
"description": "Limit price. Without it the order is a market order."
},
"trigger": {
"type": "number",
"description": "Stop trigger price: with --limit it makes a stop-limit order."
},
"stop": {
"type": "number",
"description": "Protective stop price for a buy; the Risk Guardian refuses entries without one."
},
"target": {
"type": "number",
"description": "Take-profit price (for the reward:risk check)."
},
"tif": {
"type": "string",
"description": "Time in force: gtc (default) or ioc.",
"default": "gtc"
},
"mode": {
"type": "string",
"enum": [
"sandbox",
"paper",
"live"
],
"description": "paper (default) or live (needs a confirmation code). Sandbox does not simulate crypto.",
"default": "paper"
},
"note": {
"type": "string",
"description": "Why: kept in the audit trail."
},
"confirmation_code": {
"type": "string",
"description": "Only after the user explicitly approves the preview: the code a previous call of this tool returned."
}
},
"additionalProperties": false,
"required": [
"pair"
]
}
crypto_fee_estimate
Alpaca's network fee estimate for sending a coin to an address (read-only, nothing is sent).
CLI equivalent: idiotproof crypto fee-estimate
Read-only. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Alpaca\u0027s network fee estimate for sending a coin to an address (read-only, nothing is sent).",
"properties": {
"asset": {
"type": "string",
"description": "Coin to send, e.g. BTC.",
"default": ""
},
"amount": {
"type": "number",
"description": "Amount of the coin to send.",
"default": 0
},
"to": {
"type": "string",
"description": "Destination address.",
"default": ""
},
"from": {
"type": "string",
"description": "Source address (default: your Alpaca wallet)."
},
"mode": {
"type": "string",
"enum": [
"sandbox",
"paper",
"live"
],
"description": "paper or live (default paper).",
"default": "paper"
}
},
"additionalProperties": false,
"required": [
"asset",
"amount",
"to"
]
}
crypto_latest
The latest trade, quote and minute bar for a crypto pair.
CLI equivalent: idiotproof crypto latest
Read-only. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "The latest trade, quote and minute bar for a crypto pair.",
"properties": {
"pair": {
"type": "string",
"description": "Crypto pair, e.g. BTC/USD (BTC-USD and BTCUSD work too).",
"default": ""
}
},
"additionalProperties": false,
"required": [
"pair"
]
}
crypto_orderbook
The latest order book for a crypto pair: bids and asks side by side.
CLI equivalent: idiotproof crypto orderbook
Read-only. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "The latest order book for a crypto pair: bids and asks side by side.",
"properties": {
"pair": {
"type": "string",
"description": "Crypto pair, e.g. BTC/USD.",
"default": ""
},
"depth": {
"type": "integer",
"description": "Price levels per side (default 10).",
"default": 10
}
},
"additionalProperties": false,
"required": [
"pair"
]
}
crypto_positions
Your crypto holdings in the Alpaca paper and live accounts: quantity, cost, price, unrealized P&L.
CLI equivalent: idiotproof crypto positions [--mode <all|paper|live>] Examples: idiotproof crypto positions idiotproof crypto positions --mode live
Read-only. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Your crypto holdings in the Alpaca paper and live accounts: quantity, cost, price, unrealized P\u0026L.",
"properties": {
"mode": {
"type": "string",
"enum": [
"all",
"paper",
"live"
],
"description": "paper, live or all (default all).",
"default": "all"
}
},
"additionalProperties": false
}
crypto_quotes
Recent best bid/ask quotes for a crypto pair, with the spread.
CLI equivalent: idiotproof crypto quotes
Read-only. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Recent best bid/ask quotes for a crypto pair, with the spread.",
"properties": {
"pair": {
"type": "string",
"description": "Crypto pair, e.g. BTC/USD.",
"default": ""
},
"minutes": {
"type": "integer",
"description": "How far back to look, in minutes (default 5).",
"default": 5
},
"limit": {
"type": "integer",
"description": "Show at most this many, the most recent (default 30).",
"default": 30
}
},
"additionalProperties": false,
"required": [
"pair"
]
}
crypto_sell
Sell crypto you hold (crypto is long-only). Exits always clear the gates; live needs a confirmation code.
CLI equivalent: idiotproof crypto sell
MOVES MONEY. Sandbox and Paper run immediately. A Live action returns status confirmation-required with a preview and a code instead of executing: show the user the preview verbatim, ask them, and only if they say yes call this tool again with the identical arguments plus confirmation_code. Never invent or reuse a code. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Sell crypto you hold (crypto is long-only). Exits always clear the gates; live needs a confirmation code.",
"properties": {
"pair": {
"type": "string",
"description": "Crypto pair, e.g. BTC/USD.",
"default": ""
},
"qty": {
"type": "number",
"description": "Coin quantity, fractional allowed (0.0015). Leave out and pass --notional to size by dollars."
},
"notional": {
"type": "number",
"description": "Size by dollar amount instead of coin quantity."
},
"limit": {
"type": "number",
"description": "Limit price. Without it the order is a market order."
},
"trigger": {
"type": "number",
"description": "Stop trigger price: with --limit it makes a stop-limit order."
},
"stop": {
"type": "number",
"description": "Protective stop price for a buy; the Risk Guardian refuses entries without one."
},
"target": {
"type": "number",
"description": "Take-profit price (for the reward:risk check)."
},
"tif": {
"type": "string",
"description": "Time in force: gtc (default) or ioc.",
"default": "gtc"
},
"mode": {
"type": "string",
"enum": [
"sandbox",
"paper",
"live"
],
"description": "paper (default) or live (needs a confirmation code). Sandbox does not simulate crypto.",
"default": "paper"
},
"note": {
"type": "string",
"description": "Why: kept in the audit trail."
},
"confirmation_code": {
"type": "string",
"description": "Only after the user explicitly approves the preview: the code a previous call of this tool returned."
}
},
"additionalProperties": false,
"required": [
"pair"
]
}
crypto_snapshot
Snapshot of a crypto pair: latest trade and quote, minute bar, today's and the prior daily bar.
CLI equivalent: idiotproof crypto snapshot
Read-only. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Snapshot of a crypto pair: latest trade and quote, minute bar, today\u0027s and the prior daily bar.",
"properties": {
"pair": {
"type": "string",
"description": "Crypto pair, e.g. BTC/USD (BTC-USD and BTCUSD work too).",
"default": ""
}
},
"additionalProperties": false,
"required": [
"pair"
]
}
crypto_trades
Recent trade prints for a crypto pair (price, size, taker side).
CLI equivalent: idiotproof crypto trades
Read-only. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Recent trade prints for a crypto pair (price, size, taker side).",
"properties": {
"pair": {
"type": "string",
"description": "Crypto pair, e.g. BTC/USD.",
"default": ""
},
"minutes": {
"type": "integer",
"description": "How far back to look, in minutes (default 5).",
"default": 5
},
"limit": {
"type": "integer",
"description": "Show at most this many, the most recent (default 30).",
"default": 30
}
},
"additionalProperties": false,
"required": [
"pair"
]
}
crypto_transfers
Crypto deposits and withdrawals on your Alpaca accounts: status, amount, fees, addresses (ET).
CLI equivalent: idiotproof crypto transfers [--id
Read-only. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Crypto deposits and withdrawals on your Alpaca accounts: status, amount, fees, addresses (ET).",
"properties": {
"id": {
"type": "string",
"description": "Show one transfer by its id."
},
"mode": {
"type": "string",
"enum": [
"all",
"paper",
"live"
],
"description": "paper, live or all (default all).",
"default": "all"
}
},
"additionalProperties": false
}
crypto_wallets
Your Alpaca crypto deposit wallets (address per coin) on paper and live; fails closed when funding is not enabled.
CLI equivalent: idiotproof crypto wallets [--asset
Read-only. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Your Alpaca crypto deposit wallets (address per coin) on paper and live; fails closed when funding is not enabled.",
"properties": {
"asset": {
"type": "string",
"description": "Only this coin\u0027s deposit wallet, e.g. BTC (default: every wallet Alpaca returns)."
},
"network": {
"type": "string",
"description": "Chain for multi-chain coins, e.g. ethereum or solana."
},
"mode": {
"type": "string",
"enum": [
"all",
"paper",
"live"
],
"description": "paper, live or all (default all). Crypto funding is usually live-only.",
"default": "all"
}
},
"additionalProperties": false
}
crypto_whitelist
Addresses your Alpaca accounts may withdraw crypto to, with their approval status.
CLI equivalent: idiotproof crypto whitelist [--mode <all|paper|live>] Examples: idiotproof crypto whitelist
Read-only. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Addresses your Alpaca accounts may withdraw crypto to, with their approval status.",
"properties": {
"mode": {
"type": "string",
"enum": [
"all",
"paper",
"live"
],
"description": "paper, live or all (default all).",
"default": "all"
}
},
"additionalProperties": false
}
crypto_whitelist_add
Ask Alpaca to whitelist a withdrawal address. Always previews and needs a confirmation code.
CLI equivalent: idiotproof crypto whitelist-add
MOVES MONEY. Sandbox and Paper run immediately. A Live action returns status confirmation-required with a preview and a code instead of executing: show the user the preview verbatim, ask them, and only if they say yes call this tool again with the identical arguments plus confirmation_code. Never invent or reuse a code. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Ask Alpaca to whitelist a withdrawal address. Always previews and needs a confirmation code.",
"properties": {
"asset": {
"type": "string",
"description": "Coin the address receives, e.g. BTC.",
"default": ""
},
"address": {
"type": "string",
"description": "Address to allow withdrawals to.",
"default": ""
},
"mode": {
"type": "string",
"enum": [
"sandbox",
"paper",
"live"
],
"description": "paper or live (default paper). Always needs a confirmation code.",
"default": "paper"
},
"confirmation_code": {
"type": "string",
"description": "Only after the user explicitly approves the preview: the code a previous call of this tool returned."
}
},
"additionalProperties": false,
"required": [
"asset",
"address"
]
}
crypto_whitelist_remove
Remove a whitelisted withdrawal address. Always previews and needs a confirmation code.
CLI equivalent: idiotproof crypto whitelist-remove
Changes saved state. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Remove a whitelisted withdrawal address. Always previews and needs a confirmation code.",
"properties": {
"id": {
"type": "string",
"description": "Whitelist entry id (from \u0060idiotproof crypto whitelist\u0060).",
"default": ""
},
"mode": {
"type": "string",
"enum": [
"sandbox",
"paper",
"live"
],
"description": "paper or live (default paper). Always needs a confirmation code.",
"default": "paper"
}
},
"additionalProperties": false,
"required": [
"id"
]
}
crypto_withdraw
Send coins from your Alpaca account to a whitelisted address. Always previews and needs a confirmation code.
CLI equivalent: idiotproof crypto withdraw
MOVES MONEY. Sandbox and Paper run immediately. A Live action returns status confirmation-required with a preview and a code instead of executing: show the user the preview verbatim, ask them, and only if they say yes call this tool again with the identical arguments plus confirmation_code. Never invent or reuse a code. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Send coins from your Alpaca account to a whitelisted address. Always previews and needs a confirmation code.",
"properties": {
"asset": {
"type": "string",
"description": "Coin to withdraw, e.g. BTC.",
"default": ""
},
"amount": {
"type": "number",
"description": "Amount of the coin to send.",
"default": 0
},
"address": {
"type": "string",
"description": "Destination address (must be on your whitelist).",
"default": ""
},
"mode": {
"type": "string",
"enum": [
"sandbox",
"paper",
"live"
],
"description": "paper or live (default paper). Always needs a confirmation code.",
"default": "paper"
},
"note": {
"type": "string",
"description": "Why: kept in the audit trail."
},
"confirmation_code": {
"type": "string",
"description": "Only after the user explicitly approves the preview: the code a previous call of this tool returned."
}
},
"additionalProperties": false,
"required": [
"asset",
"amount",
"address"
]
}
dataset_export
Export the replay feature store as ML-ready CSVs (trades.csv, bars.csv, manifest.json), backfilling older runs first.
CLI equivalent: idiotproof dataset export [--out
Changes saved state. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Export the replay feature store as ML-ready CSVs (trades.csv, bars.csv, manifest.json), backfilling older runs first.",
"properties": {
"out": {
"type": "string",
"description": "Folder to write trades.csv, bars.csv and manifest.json (default the mindattic.com dataset folder)."
}
},
"additionalProperties": false
}
diary_export
Export your trade diary to a CSV file (ET times, P&L, risk plan, R), or print it with --csv -.
CLI equivalent: idiotproof diary export --csv
Changes saved state. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Export your trade diary to a CSV file (ET times, P\u0026L, risk plan, R), or print it with --csv -.",
"properties": {
"csv": {
"type": "string",
"description": "Absolute path of the CSV file to write on the Hub\u0027s machine, or - to return the CSV text.",
"default": ""
},
"overwrite": {
"type": "boolean",
"description": "Replace the file if it already exists.",
"default": false
},
"since": {
"type": "string",
"format": "date",
"description": "First ET date of entry, yyyy-MM-dd (default: everything)."
},
"until": {
"type": "string",
"format": "date",
"description": "Last ET date of entry, yyyy-MM-dd (default: today)."
},
"mode": {
"type": "string",
"enum": [
"sandbox",
"paper",
"live"
],
"description": "Only trades in this mode: sandbox, paper or live."
},
"symbol": {
"type": "string",
"description": "Only this symbol."
},
"strategy": {
"type": "string",
"description": "Only this strategy: an id prefix or part of its title at trade time."
}
},
"additionalProperties": false,
"required": [
"csv"
]
}
diary_list
Your trade diary, newest first: entry/exit, mode, size, exit reason and realized P&L.
CLI equivalent: idiotproof diary list [--status
Read-only. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Your trade diary, newest first: entry/exit, mode, size, exit reason and realized P\u0026L.",
"properties": {
"status": {
"type": "string",
"description": "Only this lifecycle state: open, closed, notfilled or orphaned."
},
"limit": {
"type": "integer",
"description": "Most trades to show, newest entry first, 1-5000 (default 50).",
"default": 50
},
"since": {
"type": "string",
"format": "date",
"description": "First ET date of entry, yyyy-MM-dd (default: everything)."
},
"until": {
"type": "string",
"format": "date",
"description": "Last ET date of entry, yyyy-MM-dd (default: today)."
},
"mode": {
"type": "string",
"enum": [
"sandbox",
"paper",
"live"
],
"description": "Only trades in this mode: sandbox, paper or live."
},
"symbol": {
"type": "string",
"description": "Only this symbol."
},
"strategy": {
"type": "string",
"description": "Only this strategy: an id prefix or part of its title at trade time."
}
},
"additionalProperties": false
}
diary_pnl
Realized P&L from closed trades per day, week or month (ET), optionally by strategy or symbol.
CLI equivalent: idiotproof diary pnl [--day] [--week] [--month] [--by <strategy|symbol>] [--since
Read-only. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Realized P\u0026L from closed trades per day, week or month (ET), optionally by strategy or symbol.",
"properties": {
"day": {
"type": "boolean",
"description": "One row per ET trading day (the default).",
"default": false
},
"week": {
"type": "boolean",
"description": "One row per week (Monday-Sunday, ET).",
"default": false
},
"month": {
"type": "boolean",
"description": "One row per calendar month (ET).",
"default": false
},
"by": {
"type": "string",
"enum": [
"strategy",
"symbol"
],
"description": "Also split each period by strategy or symbol."
},
"since": {
"type": "string",
"format": "date",
"description": "First ET date of entry, yyyy-MM-dd (default: everything)."
},
"until": {
"type": "string",
"format": "date",
"description": "Last ET date of entry, yyyy-MM-dd (default: today)."
},
"mode": {
"type": "string",
"enum": [
"sandbox",
"paper",
"live"
],
"description": "Only trades in this mode: sandbox, paper or live."
},
"symbol": {
"type": "string",
"description": "Only this symbol."
},
"strategy": {
"type": "string",
"description": "Only this strategy: an id prefix or part of its title at trade time."
}
},
"additionalProperties": false
}
diary_show
One diary trade in full: entry, exit, order ids, the risk plan that managed it, P&L and R.
CLI equivalent: idiotproof diary show
Read-only. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "One diary trade in full: entry, exit, order ids, the risk plan that managed it, P\u0026L and R.",
"properties": {
"trade": {
"type": "string",
"description": "Diary trade id, or the 8-character prefix \u0060diary list\u0060 shows.",
"default": ""
}
},
"additionalProperties": false,
"required": [
"trade"
]
}
diary_stats
Trading performance from the diary: win rate, expectancy, profit factor, avg R, MFE/MAE, drawdown.
CLI equivalent: idiotproof diary stats [--by <strategy|symbol>] [--since
Read-only. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Trading performance from the diary: win rate, expectancy, profit factor, avg R, MFE/MAE, drawdown.",
"properties": {
"by": {
"type": "string",
"enum": [
"strategy",
"symbol"
],
"description": "Also break the numbers down per strategy or per symbol."
},
"since": {
"type": "string",
"format": "date",
"description": "First ET date of entry, yyyy-MM-dd (default: everything)."
},
"until": {
"type": "string",
"format": "date",
"description": "Last ET date of entry, yyyy-MM-dd (default: today)."
},
"mode": {
"type": "string",
"enum": [
"sandbox",
"paper",
"live"
],
"description": "Only trades in this mode: sandbox, paper or live."
},
"symbol": {
"type": "string",
"description": "Only this symbol."
},
"strategy": {
"type": "string",
"description": "Only this strategy: an id prefix or part of its title at trade time."
}
},
"additionalProperties": false
}
docs_dsl
Explain one IdiotScript verb: phase, signatures, meaning, doc comment, an example from its real signature, and uses.
CLI equivalent: idiotproof docs dsl
Read-only. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Explain one IdiotScript verb: phase, signatures, meaning, doc comment, an example from its real signature, and uses.",
"properties": {
"verb": {
"type": "string",
"description": "An IdiotScript verb or alias: StopLoss, IsAboveVwap, OnReclaim, RequireAdxAbove, ...",
"default": ""
}
},
"additionalProperties": false,
"required": [
"verb"
]
}
docs_explain
Explain a type or member: its doc comment, where it is declared (path:line), its members and its callers.
Callers are found by text (every line naming it as a whole word, comments and the declaration skipped), so overloads and same-named members elsewhere also show.
CLI equivalent: idiotproof docs explain
Read-only. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Explain a type or member: its doc comment, where it is declared (path:line), its members and its callers.",
"properties": {
"symbol": {
"type": "string",
"description": "A type or member: TransactionGateway, TransactionGateway.SubmitAsync, a full name, or an XML doc id (T:..., M:...).",
"default": ""
},
"callers": {
"type": "integer",
"description": "Most lines that mention it to list (default 15; 0 for none).",
"default": 15
}
},
"additionalProperties": false,
"required": [
"symbol"
]
}
docs_law
Show one BIBLE law (IP-LAW-n) in full, or list every law.
CLI equivalent: idiotproof docs law [
Read-only. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Show one BIBLE law (IP-LAW-n) in full, or list every law.",
"properties": {
"n": {
"type": "string",
"description": "The law: 3, LAW-3 or IP-LAW-3. Leave out to list every law."
}
},
"additionalProperties": false
}
docs_search
Search everything IdiotProof knows about itself: BIBLE, docs, stories, tickets, code docs and catalogs.
Results are ranked: an exact id first, then entries holding every word (title and id hits weigh most). Follow up with docs law, docs section, docs story, docs ticket or docs explain.
CLI equivalent: idiotproof docs search
Read-only. Times are US Eastern.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Search everything IdiotProof knows about itself: BIBLE, docs, stories, tickets, code docs and catalogs.",
"properties": {
"text": {
"type": "array",
"items": {
"type": "string"
},
"description": "What to look for: words, a phrase, or an id like IP-LAW-3, IP-US-K1, IP-T259, \u00A74, TransactionGateway."
},
"kind": {
"type": "string",
"enum": [
"section",
"law",
"doc",
"story",
"ticket",
"symbol",
"catalog"
],
"description": "Only one kind: section, law, doc, story, ticket, symbol or catalog."
},
"limit": {
"type": "integer",
"description": "Most results to show (default 15).",
"default": 15
},
"refresh": {
"type": "boolean",
"description": "Re-read the docs, code and tickets first (the index otherwise refreshes every 30 minutes).",
"default": false
}
},
"additionalProperties": false,
"required": [
"text"
]
}
docs_section
Show one BIBLE section (IP-§n, subsections included), or the table of contents.
CLI equivalent: idiotproof docs section [ Read-only. Times are US Eastern. Show one user story (IP-US-*) with its status and proving tests, or list an epic's stories. CLI equivalent: idiotproof docs story [ Read-only. Times are US Eastern. Show one ticket: status, description, requires / required-by, the commits that name it, and its history. CLI equivalent: idiotproof docs ticket Read-only. Times are US Eastern. Render canonical strategy JSON (or a stamp) as IdiotScript text, checking it parses back to the same strategy. CLI equivalent: idiotproof dsl format Read-only. Times are US Eastern. Plain-English meaning of IdiotScript verbs: every entry, or one verb (aliases resolve). CLI equivalent: idiotproof dsl glossary [ Read-only. Times are US Eastern. Parse IdiotScript (or JSON or a stamp) into the canonical strategy JSON the Monitor evaluates; nothing is saved. CLI equivalent: idiotproof dsl parse Read-only. Times are US Eastern. Validate IdiotScript/JSON against the phase rules and the gates, failing closed with every reason (nothing is saved). CLI equivalent: idiotproof dsl validate Read-only. Times are US Eastern. The IdiotScript verb catalog by phase, reflected from the code that compiles it (IP-LAW-4). CLI equivalent: idiotproof dsl verbs [--phase Read-only. Times are US Eastern. Learned-vs-realized calibration per template: predicted probability buckets vs realized win rate, Brier score against the base-rate baseline, sample counts. CLI equivalent: idiotproof evidence calibration [--source Read-only. Times are US Eastern. Split and adaptive conformal intervals around analog or Kalman forward-return forecasts: coverage vs nominal per month, and an abstain-unless-the-interval-excludes-zero rule scored with day-clustered significance. CLI equivalent: idiotproof evidence conformal Read-only. Times are US Eastern. Event study of Research claims: market-model abnormal returns and CARs per claim type/sentiment/insider code, with Patell, BMP and placebo-bootstrap significance. CLI equivalent: idiotproof evidence events [--from Read-only. Times are US Eastern. Order-flow evidence: imbalance, VPIN, Kyle's lambda and absorption bucketed against forward returns, scored on held-out sessions. CLI equivalent: idiotproof evidence flow Read-only. Times are US Eastern. Correlation graph across symbols (lag 0 or 1) and the hop-decayed influence of a shock at a source symbol. CLI equivalent: idiotproof evidence graph Read-only. Times are US Eastern. Hawkes self-exciting fit of trade arrivals (branching ratio = endogenous share) and a momentum-ignition detector scored against forward returns on held-out sessions. CLI equivalent: idiotproof evidence hawkes Read-only. Times are US Eastern. Kalman trend slope, innovation z and leader pair-residual z bucketed against forward returns, fitted on training sessions and tested on held-out ones. CLI equivalent: idiotproof evidence kalman Read-only. Times are US Eastern. Forward-return distribution for a symbol (up/down/flat rates, quantiles, excursions): the base rate a pattern must beat. CLI equivalent: idiotproof evidence label Read-only. Times are US Eastern. Stop-pool raid rates: how often price raided each pool kind (round numbers, prior-day/premarket/opening-range levels, VWAP bands) and reversed vs broke through, per side and price tier. CLI equivalent: idiotproof evidence pools Read-only. Times are US Eastern. Per-symbol regime: Hurst, variance ratio (z-tested vs random walk), efficiency ratio, realized vol, lag-1 autocorrelation. CLI equivalent: idiotproof evidence regime Read-only. Times are US Eastern. Grid-search a strategy template with multiple-testing corrections: BH q-values, deflated Sharpe, reality check/SPA, and a held-out score for the winner. CLI equivalent: idiotproof evidence search Read-only. Times are US Eastern. LSH look-alikes of a symbol's latest bar window from earlier sessions, with what each did next. CLI equivalent: idiotproof evidence similar Read-only. Times are US Eastern. Advisory Kelly sizing (plug-in vs Beta-posterior vs conservative) from diary trades or manual counts; never changes order quantities. The Risk Guardian and the 1-share default policy stay authoritative; this only reports what the measured edge would justify. CLI equivalent: idiotproof evidence sizing [--strategy Read-only. Times are US Eastern. Survival analysis of exits: Kaplan-Meier hold curves, competing-risk incidence of target vs stop vs trail, Cox hazard ratios, and an advisory sell-by from replay trades. CLI equivalent: idiotproof evidence survival [--strategy Read-only. Times are US Eastern. Tail dependence (copulas): which symbols crash together beyond what correlation shows, and whether a crash in one predicts the next bar of the other out of sample. CLI equivalent: idiotproof evidence tails Read-only. Times are US Eastern. Persistent-homology features (H0/H1 persistence, landscape norm) of delay-embedded returns, learned on earlier days and re-tested on held-out days with a session-clustered test. CLI equivalent: idiotproof evidence topology Read-only. Times are US Eastern. Out-of-sample walk-forward directional test (LSH analogs) with binomial p, Wilson CI, coverage and edge after costs. Each day's model trains only on earlier sessions; calls are spaced by --horizon so outcomes never overlap. Analysis only; arms nothing. CLI equivalent: idiotproof evidence walkforward [ Read-only. Times are US Eastern. Save a backtest's hindsight-tuned profile as a new gapper strategy (inactive unless --arm). CLI equivalent: idiotproof gapper apply-tuned Changes saved state. Times are US Eastern. Arm a gapper: activate an existing one or queue a new one from a profile, honoring one-per-symbol and the 3-gapper cap. CLI equivalent: idiotproof gapper arm MOVES MONEY. Sandbox and Paper run immediately. A Live action returns status confirmation-required with a preview and a code instead of executing: show the user the preview verbatim, ask them, and only if they say yes call this tool again with the identical arguments plus confirmation_code. Never invent or reuse a code. Times are US Eastern. Every ticker an auto-gapper scan screened on a day: signals, the adaptive plan it chose, and armed or why skipped. CLI equivalent: idiotproof gapper auto candidates [--date Read-only. Times are US Eastern. Disarm every auto-armed gapper of yours that holds no position (holding ones stay armed to manage their exit). CLI equivalent: idiotproof gapper auto disable
Examples:
idiotproof gapper auto disable Changes saved state. Times are US Eastern. Run the auto-gapper for you now and arm its top picks as paper gappers (paper-only; --dry-run previews). CLI equivalent: idiotproof gapper auto enable [--dry-run]
Examples:
idiotproof gapper auto enable --dry-run
idiotproof gapper auto enable Changes saved state. Times are US Eastern. Auto-gapper settings, its recent scans (screened, qualified, armed, skipped) and your auto-armed gappers. CLI equivalent: idiotproof gapper auto status [--last Read-only. Times are US Eastern. Replay a gapper profile over one past day: fills, MFE/MAE, the giveback grid and a hindsight-tuned profile (saved for apply-tuned). CLI equivalent: idiotproof gapper backtest-day Read-only. Times are US Eastern. The BE/BEX decay gate: latest decay reading, threshold, and which gated BE strategies are armed or disarmed by it. CLI equivalent: idiotproof gapper be-bex status
Examples:
idiotproof gapper be-bex status Read-only. Times are US Eastern. Active-gapper counts against the caps: 3 manual gappers, one active strategy per symbol, the auto-gapper limit. CLI equivalent: idiotproof gapper caps
Examples:
idiotproof gapper caps Read-only. Times are US Eastern. Disarm a gapper so the Monitor stops evaluating it (refused while it holds a position); --remove deletes it. CLI equivalent: idiotproof gapper disarm Changes saved state. Times are US Eastern. Recent live gapper-formation snapshot rows: time ET, gap, volume ratio, 1/3/5-minute velocity, acceleration, distance to the premarket high, catalyst score/age, halted and whether the trigger rule passed. CLI equivalent: idiotproof gapper formation [--symbol Read-only. Times are US Eastern. Turn the formation recorder off (settings only; nothing to disarm — it never arms). CLI equivalent: idiotproof gapper formation disable
Examples:
idiotproof gapper formation disable Changes saved state. Times are US Eastern. Turn the formation recorder on for you (paper-only research rows, 03:55-09:45 ET weekdays, with the Monitor leader); never arms. CLI equivalent: idiotproof gapper formation enable
Examples:
idiotproof gapper formation enable Changes saved state. Times are US Eastern. Whether the formation recorder is enabled, who owns it, whether this Hub leads, today's universe size, the stream, rows written, halted symbols, the trigger rule and the sink in use. CLI equivalent: idiotproof gapper formation status
Examples:
idiotproof gapper formation status Read-only. Times are US Eastern. Today's formation universe: every symbol the recorder watches and why it is in (catalyst, mover, most-active, tracked), with catalyst score, gap and price. CLI equivalent: idiotproof gapper formation universe
Examples:
idiotproof gapper formation universe Read-only. Times are US Eastern. Read a transcript and propose re-validated gapper candidate cards; nothing is queued until you CLI equivalent: idiotproof gapper from-transcript Read-only. Times are US Eastern. Your queued gappers with live state: armed, mode, position, condition progress and last exit. CLI equivalent: idiotproof gapper list [--active]
Examples:
idiotproof gapper list
idiotproof gapper list --active Read-only. Times are US Eastern. Premarket blow-off/fade detector: CLI equivalent: idiotproof gapper premarket-fade [ Read-only. Times are US Eastern. Every dial of one gapper profile, plus the strategy it generates for a sample ticker. CLI equivalent: idiotproof gapper profile show Read-only. Times are US Eastern. List the gapper profile catalog: the templates every gapper starts from. CLI equivalent: idiotproof gapper profiles
Examples:
idiotproof gapper profiles Read-only. Times are US Eastern. Dial a gapper profile in for one ticker and show the strategy GapperScriptFactory generates; --save stores it inactive. CLI equivalent: idiotproof gapper tune Changes saved state. Times are US Eastern. Install the Hub as a Windows service that runs as you (Monitor off unless --monitor). Runs sc.exe create/description/failure and sets the service's environment in the registry. Needs an elevated Hub; otherwise it prints the commands and points at tools\install-hub-service.ps1, which elevates itself. Grant the account 'Log on as a service' (the script does). Stop any interactive Hub first: both use port 5910. CLI equivalent: idiotproof hub install-service [--exe DESTRUCTIVE. If it returns confirmation-required, show the preview and call again with confirmation_code only after the user agrees. Times are US Eastern. Check the Hub is up, show its clock in ET, and whether its DB and Monitor are healthy. CLI equivalent: idiotproof hub ping
Examples:
idiotproof hub ping Read-only. Times are US Eastern. Stop and remove the Hub's Windows service. sc.exe stop (graceful: the Hub drains operations, stops the Monitor and releases the leader lease), then sc.exe delete. Needs an elevated Hub; otherwise prints the commands. Run it from an interactive Hub or the script, not the service's own Hub. CLI equivalent: idiotproof hub uninstall-service [--dry-run]
Examples:
idiotproof hub uninstall-service --dry-run
idiotproof hub uninstall-service DESTRUCTIVE. If it returns confirmation-required, show the preview and call again with confirmation_code only after the user agrees. Times are US Eastern. Compute one indicator (rsi, ema, atr, macd, vwap, adx, bollinger, ...) on a symbol's recent bars. CLI equivalent: idiotproof indicators compute Read-only. Times are US Eastern. The full indicator snapshot a strategy condition sees for a symbol: VWAP, EMAs, RSI, MACD, ADX, gap, window high/low, pivots, patterns. CLI equivalent: idiotproof indicators snapshot Read-only. Times are US Eastern. Move Alpaca keys, OAuth tokens and Claude keys out of SQL into MindAttic.Vault (dry run unless --apply). Per user and secret: copy into Vault when Vault lacks it, verify equality when both have it, then clear the SQL column. Conflicts and undecryptable values are reported and left untouched. Idempotent. CLI equivalent: idiotproof keys migrate-to-vault [--apply]
Examples:
idiotproof keys migrate-to-vault
idiotproof keys migrate-to-vault --apply DESTRUCTIVE. If it returns confirmation-required, show the preview and call again with confirmation_code only after the user agrees. Times are US Eastern. Route your orders to your own Alpaca account (alpaca) or back to the Sandbox (off). CLI equivalent: idiotproof keys opt-in Changes saved state. Times are US Eastern. Round-trip your stored Alpaca keys with a read-only account call (paper, live or both). CLI equivalent: idiotproof keys probe [--mode <all|paper|live>]
Examples:
idiotproof keys probe
idiotproof keys probe --mode live Read-only. Times are US Eastern. Store an Alpaca paper/live key pair (checked, then probed) or your Claude key in MindAttic.Vault. CLI equivalent: idiotproof keys set Changes saved state. Times are US Eastern. Which Alpaca/Claude keys resolve for you and from which Vault entry (never shows a secret). CLI equivalent: idiotproof keys status
Examples:
idiotproof keys status Read-only. Times are US Eastern. Every command the Hub ran for you (CLI, MCP, web): operation, arguments, outcome, duration (ET). CLI equivalent: idiotproof ledger list [--op Read-only. Times are US Eastern. Which Claude key the LLM panel resolves for you (yours, the host's, or none) and the voting toggles; never shows a key. CLI equivalent: idiotproof llm keys
Examples:
idiotproof llm keys Read-only. Times are US Eastern. The LLM voter panel: voters, trading lenses, which have keys, the consensus threshold and whether the gate is on. CLI equivalent: idiotproof llm panel
Examples:
idiotproof llm panel Read-only. Times are US Eastern. Show or set the LLM panel's consensus threshold (0.5-1): the share of votes that must Approve. CLI equivalent: idiotproof llm threshold [ Changes saved state. Times are US Eastern. Dry-run the LLM voter panel on a strategy's current entry: every vote and the consensus. Never places an order. CLI equivalent: idiotproof llm vote Read-only. Times are US Eastern. Turn off your own LLM voter gate (a host-wide setting still applies). CLI equivalent: idiotproof llm voting disable
Examples:
idiotproof llm voting disable Changes saved state. Times are US Eastern. Turn on the LLM voter gate for your automated entries (needs a Claude key to take effect). CLI equivalent: idiotproof llm voting enable
Examples:
idiotproof llm voting enable Changes saved state. Times are US Eastern. Opening and closing auction prices and sizes per day for one or more stocks (SIP, times in ET). CLI equivalent: idiotproof market auctions Read-only. Times are US Eastern. Historical OHLCV bars for a stock at any timeframe, oldest first (times in ET). CLI equivalent: idiotproof market bars Read-only. Times are US Eastern. Latest Alpaca fixed income prices and yields for the given ISINs. CLI equivalent: idiotproof market bond-prices Read-only. Times are US Eastern. Candlestick patterns (engulfing, hammer, shooting star, doji) on a symbol's recent bars. CLI equivalent: idiotproof market candlesticks Read-only. Times are US Eastern. ASCII candle chart of a symbol across premarket, regular and after-hours sessions (ET); crypto pairs as 24h days. CLI equivalent: idiotproof market chart Read-only. Times are US Eastern. What each trade or quote condition code means (the codes in market trades/quotes). CLI equivalent: idiotproof market conditions Read-only. Times are US Eastern. Exchange codes used in trades and quotes and the venue each one names. CLI equivalent: idiotproof market exchanges
Examples:
idiotproof market exchanges Read-only. Times are US Eastern. The Hub's market data feed: Alpaca SIP/IEX or Mock, whether it can switch, and active strategies per mode. CLI equivalent: idiotproof market feed status
Examples:
idiotproof market feed status Read-only. Times are US Eastern. Switch the Hub's market data to sip, iex or mock (mock refused while Paper/Live strategies are active). CLI equivalent: idiotproof market feed switch Changes saved state. Times are US Eastern. Latest forex rates (bid/mid/ask) or historical rate bars for currency pairs (times in ET). CLI equivalent: idiotproof market fx Read-only. Times are US Eastern. Latest minute bar, trade or quote for one or more stocks (times in ET). CLI equivalent: idiotproof market latest Read-only. Times are US Eastern. Download a company's logo and save it under %LOCALAPPDATA%\MindAttic\IdiotProof\Logos; reports the path and size. CLI equivalent: idiotproof market logo Changes saved state. Times are US Eastern. All market-data reference codes at once: exchanges plus trade and quote conditions. CLI equivalent: idiotproof market meta [--tape <a|b|c>]
Examples:
idiotproof market meta
idiotproof market meta --tape c Read-only. Times are US Eastern. Today's most active stocks by share volume or trade count (Alpaca screener). CLI equivalent: idiotproof market most-actives [--by <volume|trades>] [--top Read-only. Times are US Eastern. Today's top stock gainers and losers by percent change (Alpaca screener). CLI equivalent: idiotproof market movers [--top Read-only. Times are US Eastern. Latest news headlines for one or more stocks, or the whole market (times in ET). CLI equivalent: idiotproof market news [ Read-only. Times are US Eastern. Previous session's close (and full daily bar) for one or more stocks, with the move since. CLI equivalent: idiotproof market prev-close Read-only. Times are US Eastern. Latest trade and bid/ask for one or more stocks (Alpaca market data, times in ET). CLI equivalent: idiotproof market quote Read-only. Times are US Eastern. Historical bid/ask quotes for a stock: sizes, exchanges, spread (times in ET). CLI equivalent: idiotproof market quotes Read-only. Times are US Eastern. Screen the tracked ticker universe on live price, volume and % change (Alpaca snapshots); arms nothing. CLI equivalent: idiotproof market scan-universe [--min-price Read-only. Times are US Eastern. One-line snapshot per stock: last, change vs prior close, bid/ask, today's open/high/low/volume. CLI equivalent: idiotproof market snapshot Read-only. Times are US Eastern. Websocket health: the Monitor's market data stream, the trade-updates listeners and open market watches (state, connected since, last message, reconnects, errors). CLI equivalent: idiotproof market stream status
Examples:
idiotproof market stream status Read-only. Times are US Eastern. Historical trade prints for a stock: price, size, exchange, conditions (times in ET). CLI equivalent: idiotproof market trades Read-only. Times are US Eastern. Live market tape over Alpaca's websockets: stock trades/quotes/bars/statuses/LULD, crypto, options and news, merged into one ET-stamped stream. A terminal streams until Ctrl+C; MCP and --json get a bounded window (--seconds, default 15). Alpaca limits stock-feed connections per account: if the Monitor's stream holds the SIP connection, try --feed iex. CLI equivalent: idiotproof market watch [ Read-only. Times are US Eastern. The Monitor loop's last heartbeat: when it ticked, ok or fail, failures in a row. Reads the SupervisedLoop heartbeat file (Logs\monitor.heartbeat), which the loop rewrites after every tick, hosted here or not. Exit 3 (blocked) when it is stale. CLI equivalent: idiotproof monitor heartbeat
Examples:
idiotproof monitor heartbeat Read-only. Times are US Eastern. Who holds the Monitor's SQL leader lease (only the holder evaluates and trades). One Monitor per database trades: it holds sp_getapplock 'IdiotProof.Monitor.Leader'. Shows the holder's PID and machine when SQL Server reports them. CLI equivalent: idiotproof monitor lease
Examples:
idiotproof monitor lease Read-only. Times are US Eastern. Pause the Monitor: from its next tick it evaluates nothing - no entries and NO exits - until resumed. Sets the SettingsKv flag monitor.paused, honored at the top of every tick (within 2 s). The loop, heartbeat and leader lease stay up. Open positions are not managed while paused - flatten them first if that matters. CLI equivalent: idiotproof monitor pause [--reason Changes saved state. Times are US Eastern. Resume a paused Monitor (needs a confirmation code when a Live strategy is active). Clears the SettingsKv flag monitor.paused; the Monitor evaluates again from its next tick. When any active strategy routes Live the first call returns a code: resuming means real-money entries. CLI equivalent: idiotproof monitor resume
Examples:
idiotproof monitor resume
idiotproof monitor resume --confirm K7Q2M9 MOVES MONEY. Sandbox and Paper run immediately. A Live action returns status confirmation-required with a preview and a code instead of executing: show the user the preview verbatim, ask them, and only if they say yes call this tool again with the identical arguments plus confirmation_code. Never invent or reuse a code. Times are US Eastern. Is the Monitor trading? Hosted, lease, last tick, paused, window, active strategies. Reads the Hub's in-process Monitor state, the SettingsKv pause flag, the SQL leader lease and the heartbeat file. Times are ET. CLI equivalent: idiotproof monitor status
Examples:
idiotproof monitor status
idiotproof monitor status --json Read-only. Times are US Eastern. Recent Monitor activity: gate verdicts (fire, veto, block, entry, exit, reject) and live condition progress; --follow streams new ones. A snapshot of the last --minutes of the Monitor's audit trail (your strategies' events plus its start/stop/pause events), newest last, followed by where each of your active strategies stands. --follow keeps pushing new events and progress changes: live in a terminal until Ctrl+C, a bounded window (--seconds, default 15) for MCP and --json. CLI equivalent: idiotproof monitor tail [--lines Read-only. Times are US Eastern. Run one evaluation pass over your active strategies and show each verdict - never places, cancels or records an order. Gate 1 only (entry conditions against fresh bars from the Hub's feed); the LLM panel, RiskGuardian and the broker are never called, and no position, progress row or live bar is written. Without --dry the pass is noted in the audit log. CLI equivalent: idiotproof monitor tick-once [--dry] [--symbol Read-only. Times are US Eastern. Historical OHLCV bars for one option contract. CLI equivalent: idiotproof options bars Read-only. Times are US Eastern. Buy option contracts to open (level 2+). Sandbox by default; live needs a confirmation code. CLI equivalent: idiotproof options buy MOVES MONEY. Sandbox and Paper run immediately. A Live action returns status confirmation-required with a preview and a code instead of executing: show the user the preview verbatim, ask them, and only if they say yes call this tool again with the identical arguments plus confirmation_code. Never invent or reuse a code. Times are US Eastern. An underlying's option chain for one expiration: calls and puts by strike with bid/ask, IV, delta and open interest. CLI equivalent: idiotproof options chain Read-only. Times are US Eastern. Close a whole options position (sells a long, buys back a short) through the gateway. CLI equivalent: idiotproof options close MOVES MONEY. Sandbox and Paper run immediately. A Live action returns status confirmation-required with a preview and a code instead of executing: show the user the preview verbatim, ask them, and only if they say yes call this tool again with the identical arguments plus confirmation_code. Never invent or reuse a code. Times are US Eastern. Options trade or quote condition codes and what they mean. CLI equivalent: idiotproof options conditions [--tick <trade|quote>]
Examples:
idiotproof options conditions
idiotproof options conditions --tick quote Read-only. Times are US Eastern. Full catalog details of one option contract by OCC symbol or Alpaca id. CLI equivalent: idiotproof options contract Read-only. Times are US Eastern. Search listed option contracts for an underlying by expiry, type, strike range and status. CLI equivalent: idiotproof options contracts Read-only. Times are US Eastern. Opt a held contract out of automatic exercise at expiry (paper or live; live needs a code). CLI equivalent: idiotproof options do-not-exercise MOVES MONEY. Sandbox and Paper run immediately. A Live action returns status confirmation-required with a preview and a code instead of executing: show the user the preview verbatim, ask them, and only if they say yes call this tool again with the identical arguments plus confirmation_code. Never invent or reuse a code. Times are US Eastern. Options exchange codes and their names, as they appear in quotes and trades. CLI equivalent: idiotproof options exchanges
Examples:
idiotproof options exchanges Read-only. Times are US Eastern. Exercise a long option you hold (Alpaca paper or live; live needs a confirmation code). CLI equivalent: idiotproof options exercise MOVES MONEY. Sandbox and Paper run immediately. A Live action returns status confirmation-required with a preview and a code instead of executing: show the user the preview verbatim, ask them, and only if they say yes call this tool again with the identical arguments plus confirmation_code. Never invent or reuse a code. Times are US Eastern. Plain-English options jargon (hype, breakeven, IV, sell to close, ...): every term, or one in full. CLI equivalent: idiotproof options glossary [ Read-only. Times are US Eastern. Delta, gamma, theta, vega and rho for one option contract; badged Model when computed locally. CLI equivalent: idiotproof options greeks Read-only. Times are US Eastern. Implied volatility for one option contract: Alpaca's, plus IV solved locally at bid, mid, ask and last. CLI equivalent: idiotproof options iv Read-only. Times are US Eastern. Latest NBBO quote and latest trade for one option contract, with exchanges and sizes. CLI equivalent: idiotproof options latest Read-only. Times are US Eastern. Options trading level (effective and approved) and options buying power for your Alpaca accounts. CLI equivalent: idiotproof options level [--mode <all|paper|live>]
Examples:
idiotproof options level
idiotproof options level --mode paper Read-only. Times are US Eastern. Open option contracts in your Alpaca accounts: strike, expiry, DTE, cost, value and unrealized P&L. CLI equivalent: idiotproof options positions [--mode <all|paper|live>]
Examples:
idiotproof options positions
idiotproof options positions --mode live Read-only. Times are US Eastern. Latest bid/ask, mid, spread and last trade for one option contract (OCC symbol). CLI equivalent: idiotproof options quote Read-only. Times are US Eastern. Sell option contracts you hold (sell to close), or write them with --open (level 1+). CLI equivalent: idiotproof options sell MOVES MONEY. Sandbox and Paper run immediately. A Live action returns status confirmation-required with a preview and a code instead of executing: show the user the preview verbatim, ask them, and only if they say yes call this tool again with the identical arguments plus confirmation_code. Never invent or reuse a code. Times are US Eastern. Sell-the-hype nudges on your open long options: hype near its session high plus bullish news (never places anything). CLI equivalent: idiotproof options signals [--mode <all|paper|live>]
Examples:
idiotproof options signals
idiotproof options signals --mode paper Read-only. Times are US Eastern. Alpaca's full snapshot of one option contract: latest quote and trade, daily bars, IV and Greeks. CLI equivalent: idiotproof options snapshot Read-only. Times are US Eastern. Place a 2-4 leg options order (verticals, straddles, ratios...) as one Alpaca multi-leg order; level 3, max-loss preview, live needs a code. CLI equivalent: idiotproof options spread MOVES MONEY. Sandbox and Paper run immediately. A Live action returns status confirmation-required with a preview and a code instead of executing: show the user the preview verbatim, ask them, and only if they say yes call this tool again with the identical arguments plus confirmation_code. Never invent or reuse a code. Times are US Eastern. Historical trades (prints) for one option contract, newest first. CLI equivalent: idiotproof options trades Read-only. Times are US Eastern. Intrinsic and extrinsic value, breakeven, DTE and Black-Scholes price for one option contract. CLI equivalent: idiotproof options value Read-only. Times are US Eastern. Entry plus a take-profit and a stop-loss that cancel each other (Alpaca bracket). The stop-loss is the Risk Guardian's stop. CLI equivalent: idiotproof orders bracket MOVES MONEY. Sandbox and Paper run immediately. A Live action returns status confirmation-required with a preview and a code instead of executing: show the user the preview verbatim, ask them, and only if they say yes call this tool again with the identical arguments plus confirmation_code. Never invent or reuse a code. Times are US Eastern. Cancel one working order through the gateway (audited; live needs a confirmation code). CLI equivalent: idiotproof orders cancel MOVES MONEY. Sandbox and Paper run immediately. A Live action returns status confirmation-required with a preview and a code instead of executing: show the user the preview verbatim, ask them, and only if they say yes call this tool again with the identical arguments plus confirmation_code. Never invent or reuse a code. Times are US Eastern. Cancel every open order in an account, or only one symbol's, through the gateway (live needs a confirmation code). CLI equivalent: idiotproof orders cancel-all [--symbol MOVES MONEY. Sandbox and Paper run immediately. A Live action returns status confirmation-required with a preview and a code instead of executing: show the user the preview verbatim, ask them, and only if they say yes call this tool again with the identical arguments plus confirmation_code. Never invent or reuse a code. Times are US Eastern. Closed Alpaca orders (filled, cancelled, expired, rejected) over the last N days, newest first, with fill prices and totals. CLI equivalent: idiotproof orders history [--days Read-only. Times are US Eastern. Your Alpaca orders (open by default) in the paper and live accounts, newest first, with bracket/OCO legs. CLI equivalent: idiotproof orders list [--status <open|closed|all>] [--symbol Read-only. Times are US Eastern. Exit a held position with a take-profit limit and a stop-loss; whichever fills cancels the other (Alpaca OCO). CLI equivalent: idiotproof orders oco MOVES MONEY. Sandbox and Paper run immediately. A Live action returns status confirmation-required with a preview and a code instead of executing: show the user the preview verbatim, ask them, and only if they say yes call this tool again with the identical arguments plus confirmation_code. Never invent or reuse a code. Times are US Eastern. Entry that, once filled, triggers ONE child: a take-profit or a stop-loss (Alpaca OTO). CLI equivalent: idiotproof orders oto MOVES MONEY. Sandbox and Paper run immediately. A Live action returns status confirmation-required with a preview and a code instead of executing: show the user the preview verbatim, ask them, and only if they say yes call this tool again with the identical arguments plus confirmation_code. Never invent or reuse a code. Times are US Eastern. Place any single Alpaca order: market/limit/stop/stop-limit/trailing, every TIF, fractional or notional, client id, position intent. Through the gateway; live needs a code. CLI equivalent: idiotproof orders place MOVES MONEY. Sandbox and Paper run immediately. A Live action returns status confirmation-required with a preview and a code instead of executing: show the user the preview verbatim, ask them, and only if they say yes call this tool again with the identical arguments plus confirmation_code. Never invent or reuse a code. Times are US Eastern. Change a working order's quantity, limit/stop/trail, TIF or client id (Alpaca PATCH; it gets a new id). Through the gateway; live needs a code. CLI equivalent: idiotproof orders replace MOVES MONEY. Sandbox and Paper run immediately. A Live action returns status confirmation-required with a preview and a code instead of executing: show the user the preview verbatim, ask them, and only if they say yes call this tool again with the identical arguments plus confirmation_code. Never invent or reuse a code. Times are US Eastern. One Alpaca order in full, by id or client id: prices, fills, timestamps (ET) and its nested bracket/OCO/OTO/multi-leg legs. CLI equivalent: idiotproof orders show [ Read-only. Times are US Eastern. Live order events from Alpaca (new, fill, partial fill, canceled, replaced, rejected, expired); the Hub records every fill in the trade diary and audit log. Starts (or joins) the Hub's trade_updates listener for each account; once started it keeps recording fills until the Hub stops. A terminal streams events until Ctrl+C; MCP and --json get the events of a bounded window (--seconds, default 15) plus the last few seen. CLI equivalent: idiotproof orders stream [--mode <all|paper|live>] [--fills-only] [--seconds Read-only. Times are US Eastern. Close (or trim) one Alpaca position as a market exit through the TransactionGateway. Live needs a confirmation code. CLI equivalent: idiotproof positions close MOVES MONEY. Sandbox and Paper run immediately. A Live action returns status confirmation-required with a preview and a code instead of executing: show the user the preview verbatim, ask them, and only if they say yes call this tool again with the identical arguments plus confirmation_code. Never invent or reuse a code. Times are US Eastern. Close every Alpaca position in one account with market exits through the TransactionGateway; optionally cancel open orders first. Live needs a confirmation code. CLI equivalent: idiotproof positions close-all [--cancel-orders] [--mode <sandbox|paper|live>] [--preview]
Examples:
idiotproof positions close-all --preview
idiotproof positions close-all --cancel-orders --mode paper
idiotproof positions close-all --cancel-orders --mode live MOVES MONEY. Sandbox and Paper run immediately. A Live action returns status confirmation-required with a preview and a code instead of executing: show the user the preview verbatim, ask them, and only if they say yes call this tool again with the identical arguments plus confirmation_code. Never invent or reuse a code. Times are US Eastern. Every open position in your Alpaca paper and live accounts: price, today's move, unrealized P&L. CLI equivalent: idiotproof positions list [--mode <all|paper|live>]
Examples:
idiotproof positions list
idiotproof positions list --mode paper Read-only. Times are US Eastern. Read-only report: what Alpaca actually holds vs what your strategies book (PositionQty), per account. CLI equivalent: idiotproof positions reconcile [--mode <all|paper|live>] [--problems]
Examples:
idiotproof positions reconcile
idiotproof positions reconcile --mode paper --problems Read-only. Times are US Eastern. One position in your Alpaca paper/live accounts, the IdiotProof strategy that owns it, and its latest trade-diary row. CLI equivalent: idiotproof positions show Read-only. Times are US Eastern. Show your preferences: theme, account pill and Risk Guardian limits. CLI equivalent: idiotproof prefs get [ Read-only. Times are US Eastern. Change one of your preferences (risk limits keep the Settings page's sanity rules). CLI equivalent: idiotproof prefs set Changes saved state. Times are US Eastern. Replay every strategy family on one ticker/day and rank them by realized P&L (best fit first). CLI equivalent: idiotproof replay all Changes saved state. Times are US Eastern. Two replay runs side by side: strategy, day, fires, round-trips, win rate, hold time and P&L, with the difference. CLI equivalent: idiotproof replay compare Read-only. Times are US Eastern. The built-in strategy families CLI equivalent: idiotproof replay families
Examples:
idiotproof replay families Read-only. Times are US Eastern. The replay archive, newest first: ticker, day, strategy, sim or live, fired and P&L. CLI equivalent: idiotproof replay list [--symbol Read-only. Times are US Eastern. Render the Monitor's real trades for a day (from the trade diary) on that day's bars as LIVE runs in the archive. CLI equivalent: idiotproof replay live [ Changes saved state. Times are US Eastern. Regenerate the replay archive's HTML (every run page and index) from SQL; never uploads or deploys. CLI equivalent: idiotproof replay regen [--out Changes saved state. Times are US Eastern. Replay a strategy, gapper profile or built-in family over one past day with the Monitor's own evaluator; saves the run and its page. CLI equivalent: idiotproof replay run Changes saved state. Times are US Eastern. One replay run: its round-trips with entry features and its per-bar features (OHLCV, VWAP, volume ratio, conditions passed). CLI equivalent: idiotproof replay show Read-only. Times are US Eastern. Extract catalysts and portents from a ticker's news, a URL or pasted text via the LLM (--save to keep them). Uses your Claude key (else the host's). Without --save nothing is written; with --save the claims join the research feed like scanned ones. CLI equivalent: idiotproof research analyze Changes saved state. Times are US Eastern. Record what each old enough claim's stock actually did (Alpaca daily closes) and settle portents. CLI equivalent: idiotproof research backfill [--min-wait-days Changes saved state. Times are US Eastern. One research claim in full: source, trigger, outcome, insider lines and its score breakdown. CLI equivalent: idiotproof research claim Read-only. Times are US Eastern. Ranked research feed: catalysts and portents by significance score, filterable by ticker, date, score and macro. CLI equivalent: idiotproof research claims [--ticker Read-only. Times are US Eastern. Gapper study T1/T6 + universe: every Alpaca us_equity asset's daily bars and splits, then U(D), exclusions, candidates, ADV deciles and price tiers per the frozen protocol, and sample.json. Research rows only, on the research database (the connection string must name a database containing 'Research'); read-only market data; no orders. Every number comes from docs/research/gapper-study-2026-11/params.json. Resumable: covered symbols are not re-pulled; universe rows for the range are rebuilt. CLI equivalent: idiotproof research gappers build-universe --from Read-only. Times are US Eastern. Re-run the deterministic CatalystPreClassifier over every backfilled catalyst row (idempotent) and spend an optional Haiku budget on rows never classified; each article/filing is classified at most once. Research rows only, on the research database (the connection string must name a database containing 'Research'); read-only market data; no orders. CLI equivalent: idiotproof research gappers catalysts [--llm-budget Read-only. Times are US Eastern. Gapper study labels: next-bar-open entry and forward returns per horizon, reach-20 by 09:45, premarket/RTH/full-session high times and bucket, fade, extension from open, velocity death, death-to-HOD, halt proxy and VWAP-loss time, per the frozen definitions. Research rows only, on the research database (the connection string must name a database containing 'Research'); read-only market data; no orders. Same holdout lock as snapshot. CLI equivalent: idiotproof research gappers label --split Read-only. Times are US Eastern. Gapper study data tiers: minute bars for candidate/prior/control days into the file store (then gapper tiers and controls), Alpaca news, ticker-CIK map, EDGAR form index with acceptance times, splits. Resumable, rate-limited, --max-calls capped. Research rows only, on the research database (the connection string must name a database containing 'Research'); read-only market data; no orders. Minute bars go to D:\IdiotProofData\gapper-study\bars (setting gapperStudy.barRoot) as packed day blocks; a killed pull is rerun, not restarted. CLI equivalent: idiotproof research gappers pull --tier Read-only. Times are US Eastern. Gapper study feature snapshots: every candidate and control day at every frozen decision time through the shared GapperFormationFeatures.Compute, written as Source=backtest rows; fits and saves data/tod-profile.json on train control days first. Research rows only, on the research database (the connection string must name a database containing 'Research'); read-only market data; no orders. The holdout split refuses to run unless holdout-unlock.txt holds the frozen commit hash, and refuses a second run. CLI equivalent: idiotproof research gappers snapshot --split Read-only. Times are US Eastern. What the gapper study holds per split (universe days, candidates, gappers per tier, controls, minute-bar coverage, snapshots, labels), the data tiers' row counts, and the holdout lock state. Research rows only, on the research database (the connection string must name a database containing 'Research'); read-only market data; no orders. CLI equivalent: idiotproof research gappers status
Examples:
idiotproof research gappers status Read-only. Times are US Eastern. S&P 500 / S&P 100 additions and removals: announced and effective dates, pending or done. CLI equivalent: idiotproof research index-events [--since Read-only. Times are US Eastern. Form 4 insider transactions for a ticker: filer, role, buy/sell, shares, price, value. CLI equivalent: idiotproof research insiders Read-only. Times are US Eastern. Macro and regulatory claims (rule changes, listing standards) with the tickers each affects. CLI equivalent: idiotproof research macro [--since Read-only. Times are US Eastern. Run one research scan pass now in the Hub (news, SEC filings, regulatory, index events, backfill, scoring). Targeted with --tickers; otherwise watchlist + the next rotating batch of the ticker universe. Writes claims and a ScanRun row; the Monitor's trading loop is untouched. CLI equivalent: idiotproof research scan [--tickers <string[]>] [--batch Changes saved state. Times are US Eastern. Explain a claim's 0-100 significance score term by term (magnitude, confidence, history, source, watchlist, recency). CLI equivalent: idiotproof research score Read-only. Times are US Eastern. Look-alike past claims (LSH neighbours) and what their stocks did afterwards. CLI equivalent: idiotproof research similar Read-only. Times are US Eastern. Everything research knows about one ticker: claims, portents, macro and index events, insiders, outcomes. CLI equivalent: idiotproof research ticker Read-only. Times are US Eastern. The tracked ticker universe the research scan sweeps: symbol, exchange, last price, freshness. CLI equivalent: idiotproof research universe list [--exchange Read-only. Times are US Eastern. Reload the tracked ticker universe (asset list and last prices) from Alpaca when stale, or --force. CLI equivalent: idiotproof research universe refresh [--force] [--max-age-hours Changes saved state. Times are US Eastern. Dry-run a setup through your Risk Guardian: approved or why not, worst case, and the largest size allowed. Places nothing. CLI equivalent: idiotproof risk check Read-only. Times are US Eastern. Halt every new entry now (on), or resume (off, which needs a confirmation code); exits always go through. CLI equivalent: idiotproof risk kill-switch Changes saved state. Times are US Eastern. Change Risk Guardian limits; unnamed ones keep their value and today's loss counter is preserved. CLI equivalent: idiotproof risk set [--max-loss-per-trade Changes saved state. Times are US Eastern. Your six Risk Guardian limits (per-trade and daily loss, stop range, balance, account risk %) and the kill switch. CLI equivalent: idiotproof risk show
Examples:
idiotproof risk show Read-only. Times are US Eastern. Today's realized P&L, losses counted against the daily breaker, remaining room, breaker and kill-switch state. CLI equivalent: idiotproof risk status
Examples:
idiotproof risk status Read-only. Times are US Eastern. Screen today's top gainers to the gapper band; --replay replays each survivor with a gapper profile and saves the runs. CLI equivalent: idiotproof scan movers [--date Changes saved state. Times are US Eastern. Show one runtime setting: value, default, range and meaning. CLI equivalent: idiotproof settings get Read-only. Times are US Eastern. List the app's runtime settings with current value, default, range and meaning. CLI equivalent: idiotproof settings list [--all]
Examples:
idiotproof settings list
idiotproof settings list --all Read-only. Times are US Eastern. Change one runtime setting (type- and range-checked; unknown and internal keys refused). CLI equivalent: idiotproof settings set Changes saved state. Times are US Eastern. Hand a strategy to the Monitor. A Live strategy needs a confirmation code. CLI equivalent: idiotproof strategy activate MOVES MONEY. Sandbox and Paper run immediately. A Live action returns status confirmation-required with a preview and a code instead of executing: show the user the preview verbatim, ask them, and only if they say yes call this tool again with the identical arguments plus confirmation_code. Never invent or reuse a code. Times are US Eastern. Activate or deactivate many strategies at once (--all, --symbol, --mode). Live activations need one confirmation code for the batch. Deactivation skips strategies holding a position (that would orphan the exit). Activation skips quarantined and soft-deleted strategies; when the batch would turn on any Live strategy, nothing happens until you re-run with the confirmation code, which is bound to exactly that batch. CLI equivalent: idiotproof strategy bulk MOVES MONEY. Sandbox and Paper run immediately. A Live action returns status confirmation-required with a preview and a code instead of executing: show the user the preview verbatim, ask them, and only if they say yes call this tool again with the identical arguments plus confirmation_code. Never invent or reuse a code. Times are US Eastern. Copy a strategy (optionally onto another symbol) as a new, inactive Sandbox strategy. The copy gets the same canon (re-validated), never the original's position, history or Live routing. Cloning onto another symbol warns about fixed prices that belonged to the original's chart. CLI equivalent: idiotproof strategy clone Changes saved state. Times are US Eastern. Create a strategy from IdiotScript or canonical JSON after validating it. It starts inactive in Sandbox. Exactly one of --script or --canon. A strategy with no size buys 1 share. Errors (no stop, stop on the wrong side of the target, a broken canon) stop the save; warnings are shown. CLI equivalent: idiotproof strategy create [--script Changes saved state. Times are US Eastern. Stop the Monitor evaluating a strategy (refused while it holds a position). CLI equivalent: idiotproof strategy deactivate Changes saved state. Times are US Eastern. Soft-delete a strategy: deactivate it and mark it [deleted] (reversible with --restore). Refused while it holds a position. Deleting is a reversible disable (HOUSE-LAW-2): the row, canon and history stay, and CLI equivalent: idiotproof strategy delete DESTRUCTIVE. If it returns confirmation-required, show the preview and call again with confirmation_code only after the user agrees. Times are US Eastern. Compare two strategies field by field at the canon level (what the Monitor actually runs), plus title, mode and state. CLI equivalent: idiotproof strategy diff
Examples:
idiotproof strategy diff NVDA AMD
idiotproof strategy diff IP-P4AY-UXZU IP-Q7RB-K2MD Read-only. Times are US Eastern. Explain a strategy in plain English, phase by phase — generated from its canon, no LLM, the same words every time. CLI equivalent: idiotproof strategy explain Read-only. Times are US Eastern. Export a strategy as a stamp, armored payload, canonical JSON or IdiotScript. CLI equivalent: idiotproof strategy export Read-only. Times are US Eastern. Why a strategy did or didn't fire: its recent gate verdicts (conditions met, LLM veto, Risk Guardian block, order placed or rejected) and where it stands now. CLI equivalent: idiotproof strategy fires Read-only. Times are US Eastern. Turn a plain-English description into a strategy (via the LLM), show its stamp, and save it only when you confirm. The first call writes the IdiotScript, validates it and shows the stamp with a confirmation code; nothing is saved. Re-run with --confirm CLI equivalent: idiotproof strategy from-text Changes saved state. Times are US Eastern. Create one strategy per item of a watchlist JSON file (the Monitor's create-strategies, through the CLI). Each item's script is validated like CLI equivalent: idiotproof strategy from-watchlist Changes saved state. Times are US Eastern. A strategy's trail, newest first: Monitor verdicts and fills, diary trades, and the CLI/MCP commands that touched it. CLI equivalent: idiotproof strategy history Read-only. Times are US Eastern. Create a strategy from a stamp, canonical JSON or IdiotScript. It starts inactive in Sandbox. CLI equivalent: idiotproof strategy import Changes saved state. Times are US Eastern. List your strategies with mode, position and live condition progress. CLI equivalent: idiotproof strategy list [--active] [--symbol Read-only. Times are US Eastern. Route a strategy to sandbox, paper or live. Switching to live needs a confirmation code. CLI equivalent: idiotproof strategy mode MOVES MONEY. Sandbox and Paper run immediately. A Live action returns status confirmation-required with a preview and a code instead of executing: show the user the preview verbatim, ask them, and only if they say yes call this tool again with the identical arguments plus confirmation_code. Never invent or reuse a code. Times are US Eastern. How close a strategy is to firing: conditions passing N/M, the first failing verb and the last price, optionally watched. Reads the row the Monitor writes every tick. --watch samples it every --every seconds and reports each change, stopping when every condition passes: in a terminal each change streams live until Ctrl+C; for MCP and --json it takes --samples samples (at most two minutes in all). CLI equivalent: idiotproof strategy progress Read-only. Times are US Eastern. List strategies the Monitor refuses to evaluate (canon unreadable, or no canon and a script that doesn't parse), with the reason. A quarantined strategy never fires; one that is quarantined while holding a position has NO managed exit and is listed first. CLI equivalent: idiotproof strategy quarantine [--symbol Read-only. Times are US Eastern. Give a strategy a new title. Its canon, stamp id and state are untouched. Only the title changes, so the stamp id stays the same. The Monitor's audit lines carry the title at the time, so CLI equivalent: idiotproof strategy rename {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Show one BIBLE section (IP-\u00A7n, subsections included), or the table of contents.",
"properties": {
"section": {
"type": "string",
"description": "The BIBLE section: 4, \u00A74, 4.4 or IP-\u00A74. Leave out to list the sections."
}
},
"additionalProperties": false
}
docs_story{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Show one user story (IP-US-*) with its status and proving tests, or list an epic\u0027s stories.",
"properties": {
"id": {
"type": "string",
"description": "The story: K1, US-K1 or IP-US-K1. Leave out and pass --epic or --status to list stories."
},
"epic": {
"type": "string",
"description": "List the stories of one epic by letter (K, W, ...)."
},
"status": {
"type": "string",
"description": "List only stories with this status: done, partial or planned."
}
},
"additionalProperties": false
}
docs_ticket{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Show one ticket: status, description, requires / required-by, the commits that name it, and its history.",
"properties": {
"id": {
"type": "string",
"description": "The ticket: IP-T259, T259 or 259.",
"default": ""
},
"history": {
"type": "boolean",
"description": "Also list every recorded change (status, priority, approval, links) with its ET time.",
"default": false
}
},
"additionalProperties": false,
"required": [
"id"
]
}
dsl_format{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Render canonical strategy JSON (or a stamp) as IdiotScript text, checking it parses back to the same strategy.",
"properties": {
"text": {
"type": "string",
"description": "IdiotScript, canonical JSON or a stamp; \u0060-\u0060 reads it from stdin.",
"default": ""
}
},
"additionalProperties": false,
"required": [
"text"
]
}
dsl_glossary{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Plain-English meaning of IdiotScript verbs: every entry, or one verb (aliases resolve).",
"properties": {
"verb": {
"type": "string",
"description": "A verb name or alias (IsAboveVwap, StopLoss, RequireAdxAbove, ...); omit to list every entry."
}
},
"additionalProperties": false
}
dsl_parse{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Parse IdiotScript (or JSON or a stamp) into the canonical strategy JSON the Monitor evaluates; nothing is saved.",
"properties": {
"text": {
"type": "string",
"description": "IdiotScript, canonical JSON or a stamp; \u0060-\u0060 reads it from stdin.",
"default": ""
}
},
"additionalProperties": false,
"required": [
"text"
]
}
dsl_validate{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Validate IdiotScript/JSON against the phase rules and the gates, failing closed with every reason (nothing is saved).",
"properties": {
"text": {
"type": "string",
"description": "IdiotScript, canonical JSON or a stamp; \u0060-\u0060 reads it from stdin.",
"default": ""
}
},
"additionalProperties": false,
"required": [
"text"
]
}
dsl_verbs{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "The IdiotScript verb catalog by phase, reflected from the code that compiles it (IP-LAW-4).",
"properties": {
"phase": {
"type": "string",
"description": "Only one phase: setup, filters, entry, order, risk, exit, or conditions (the static If/ElseIf catalog)."
}
},
"additionalProperties": false
}
evidence_calibration{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Learned-vs-realized calibration per template: predicted probability buckets vs realized win rate, Brier score against the base-rate baseline, sample counts.",
"properties": {
"source": {
"type": "string",
"description": "exhaustion, adaptation or all (default).",
"default": "all"
},
"buckets": {
"type": "integer",
"description": "Probability buckets across 0..1 (default 5).",
"default": 5
}
},
"additionalProperties": false
}
evidence_conformal{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Split and adaptive conformal intervals around analog or Kalman forward-return forecasts: coverage vs nominal per month, and an abstain-unless-the-interval-excludes-zero rule scored with day-clustered significance.",
"properties": {
"symbols": {
"type": "array",
"items": {
"type": "string"
},
"description": "One or more tickers, e.g. SNDL MULN."
},
"from": {
"type": "string",
"format": "date",
"description": "First ET day (yyyy-MM-dd, default: 40 days before --to)."
},
"to": {
"type": "string",
"format": "date",
"description": "Last ET day (yyyy-MM-dd, default: yesterday ET)."
},
"model": {
"type": "string",
"enum": [
"analog",
"kalman"
],
"description": "analog: the mean forward return of LSH look-alike windows from prior sessions. kalman: the local-trend filter\u0027s slope \u00D7 horizon, fitted on the warm-up sessions.",
"default": "analog"
},
"alpha": {
"type": "number",
"description": "Miss rate the intervals target (default 0.1 = 90% intervals).",
"default": 0.1
},
"gamma": {
"type": "number",
"description": "Adaptive conformal learning rate (default 0.005).",
"default": 0.005
},
"horizon": {
"type": "integer",
"description": "Minute bars ahead (default 15).",
"default": 15
},
"window": {
"type": "integer",
"description": "Bars per pattern window / filter burn-in (default 30).",
"default": 30
},
"train_days": {
"type": "integer",
"description": "Analog: prior sessions searched for look-alikes (default 20).",
"default": 20
},
"warmup_days": {
"type": "integer",
"description": "Sessions before the first forecast; kalman fits its noise variances on them (default 5).",
"default": 5
},
"min_similarity": {
"type": "number",
"description": "Analog: least cosine similarity of a look-alike (default 0.8).",
"default": 0.8
},
"entry": {
"type": "string",
"enum": [
"next-open",
"close"
],
"description": "next-open (default: fill at the next bar\u0027s open, immune to bid-ask bounce) or close (fill at the signal bar\u0027s close; a diagnostic).",
"default": "next-open"
}
},
"additionalProperties": false,
"required": [
"symbols"
]
}
evidence_events{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Event study of Research claims: market-model abnormal returns and CARs per claim type/sentiment/insider code, with Patell, BMP and placebo-bootstrap significance.",
"properties": {
"from": {
"type": "string",
"format": "date",
"description": "First claim article day (yyyy-MM-dd, default: 180 days before --to)."
},
"to": {
"type": "string",
"format": "date",
"description": "Last claim article day (yyyy-MM-dd, default: today ET)."
},
"type": {
"type": "string",
"description": "Only this claim type (Earnings, Contract, Insider, MA, Guidance, Regulatory, News, IndexEvent)."
},
"windows": {
"type": "string",
"description": "Event windows in trading days, start:end, comma-separated (default -1:1,0:1,0:5).",
"default": "-1:1,0:1,0:5"
},
"estimation": {
"type": "integer",
"description": "Estimation-window length in trading days (default 120).",
"default": 120
},
"gap": {
"type": "integer",
"description": "Trading days between the estimation window and the event window (default 10).",
"default": 10
},
"min_events": {
"type": "integer",
"description": "Fewest valid events a group needs to be reported (default 5).",
"default": 5
},
"bootstrap": {
"type": "integer",
"description": "Placebo bootstrap draws (default 1000; 0 skips it).",
"default": 1000
},
"seed": {
"type": "integer",
"description": "Bootstrap seed (default 1337).",
"default": 1337
},
"benchmark": {
"type": "string",
"description": "Market benchmark symbol (default SPY).",
"default": "SPY"
},
"max_daily_move": {
"type": "number",
"description": "Drop events whose windows hold a daily return above this (default 2.0 = \u002B200%, or below -66.7%). Bars are split-adjusted from Alpaca corporate actions; this guard catches splits the feed missed.",
"default": 2
}
},
"additionalProperties": false
}
evidence_flow{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Order-flow evidence: imbalance, VPIN, Kyle\u0027s lambda and absorption bucketed against forward returns, scored on held-out sessions.",
"properties": {
"symbol": {
"type": "string",
"description": "Ticker, e.g. SNDL.",
"default": ""
},
"from": {
"type": "string",
"format": "date",
"description": "First ET day (yyyy-MM-dd, default: 10 days before --to)."
},
"to": {
"type": "string",
"format": "date",
"description": "Last ET day (yyyy-MM-dd, default: yesterday ET)."
},
"horizon": {
"type": "integer",
"description": "Minute bars ahead to measure (default 5).",
"default": 5
},
"bins": {
"type": "integer",
"description": "Quantile buckets per metric (default 5).",
"default": 5
},
"signing": {
"type": "string",
"enum": [
"tick",
"lee-ready",
"bulk"
],
"description": "tick (default: tick rule on trades), lee-ready (trades vs quote midpoint; fetches quotes) or bulk (bar-only bulk classification).",
"default": "tick"
},
"train": {
"type": "number",
"description": "Share of sessions used to learn bucket edges (default 0.67); the rest is the held-out test.",
"default": 0.67
},
"vpin_window": {
"type": "integer",
"description": "VPIN buckets averaged (default 50).",
"default": 50
},
"lambda_window": {
"type": "integer",
"description": "Bars per Kyle\u0027s lambda regression (default 30).",
"default": 30
}
},
"additionalProperties": false,
"required": [
"symbol"
]
}
evidence_graph{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Correlation graph across symbols (lag 0 or 1) and the hop-decayed influence of a shock at a source symbol.",
"properties": {
"symbols": {
"type": "array",
"items": {
"type": "string"
},
"description": "Two or more tickers, e.g. SNDL TLRY CGC ACB."
},
"source": {
"type": "string",
"description": "Symbol whose shock is propagated (default: the first symbol)."
},
"lag": {
"type": "integer",
"description": "0 = moves together (default); 1 = the source\u0027s bar predicts the other\u0027s next bar.",
"default": 0
},
"edge": {
"type": "string",
"enum": [
"correlation",
"te"
],
"description": "correlation (default) or te: transfer entropy beating shuffled surrogates (directional, implies --lag 1).",
"default": "correlation"
},
"alpha": {
"type": "number",
"description": "With --edge te, the surrogate-test significance an edge must reach (default 0.05).",
"default": 0.05
},
"clean": {
"type": "string",
"enum": [
"none",
"rmt"
],
"description": "none (default) or rmt: keep only correlation the data can tell from chance (lag 0: Marchenko-Pastur eigenvalue clipping; lag 1: the 2.5/sqrt(T) noise floor). Correlation edges only; --edge te already tests each edge against shuffled surrogates.",
"default": "none"
},
"min_corr": {
"type": "number",
"description": "Least |correlation| that makes an edge (default 0.2).",
"default": 0.2
},
"beta": {
"type": "number",
"description": "Per-hop decay of influence, 0-1 exclusive (default 0.5).",
"default": 0.5
},
"from": {
"type": "string",
"format": "date",
"description": "First ET day (yyyy-MM-dd, default: 5 days before --to for minute, 120 for day)."
},
"to": {
"type": "string",
"format": "date",
"description": "Last ET day (yyyy-MM-dd, default: today ET)."
},
"timeframe": {
"type": "string",
"enum": [
"minute",
"day"
],
"description": "minute (default) or day.",
"default": "minute"
},
"session": {
"type": "string",
"enum": [
"rth",
"all"
],
"description": "rth (default) or all.",
"default": "rth"
}
},
"additionalProperties": false,
"required": [
"symbols"
]
}
evidence_hawkes{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Hawkes self-exciting fit of trade arrivals (branching ratio = endogenous share) and a momentum-ignition detector scored against forward returns on held-out sessions.",
"properties": {
"symbol": {
"type": "string",
"description": "Ticker, e.g. SNDL.",
"default": ""
},
"from": {
"type": "string",
"format": "date",
"description": "First ET day (yyyy-MM-dd, default: 10 days before --to)."
},
"to": {
"type": "string",
"format": "date",
"description": "Last ET day (yyyy-MM-dd, default: yesterday ET)."
},
"horizon": {
"type": "integer",
"description": "Minute bars ahead to measure (default 5).",
"default": 5
},
"bins": {
"type": "integer",
"description": "Quantile buckets for the continuous features (default 5).",
"default": 5
},
"train": {
"type": "number",
"description": "Share of scored sessions used to learn bucket edges (default 0.67); the rest is the held-out test.",
"default": 0.67
},
"window": {
"type": "integer",
"description": "Trailing minutes the detector looks at (default 10).",
"default": 10
},
"spike": {
"type": "number",
"description": "Trade-rate multiple of the prior session\u0027s baseline that counts as a spike (default 3).",
"default": 3
},
"branching": {
"type": "number",
"description": "Rolling branching ratio that counts as self-exciting (default 0.7).",
"default": 0.7
}
},
"additionalProperties": false,
"required": [
"symbol"
]
}
evidence_kalman{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Kalman trend slope, innovation z and leader pair-residual z bucketed against forward returns, fitted on training sessions and tested on held-out ones.",
"properties": {
"symbols": {
"type": "array",
"items": {
"type": "string"
},
"description": "One or more tickers, e.g. SNDL MULN."
},
"leader": {
"type": "string",
"description": "Leader for the pair-residual feature (dynamic hedge ratio), e.g. SPY or IWM. Omit to skip it."
},
"from": {
"type": "string",
"format": "date",
"description": "First ET day (yyyy-MM-dd, default: 20 days before --to)."
},
"to": {
"type": "string",
"format": "date",
"description": "Last ET day (yyyy-MM-dd, default: yesterday ET)."
},
"horizon": {
"type": "integer",
"description": "Minute bars ahead to measure (default 5).",
"default": 5
},
"bins": {
"type": "integer",
"description": "Quantile buckets per feature (default 5).",
"default": 5
},
"train": {
"type": "number",
"description": "Share of sessions used to fit the filter and learn bucket edges (default 0.67); the rest is the held-out test.",
"default": 0.67
},
"entry": {
"type": "string",
"enum": [
"next-open",
"close"
],
"description": "next-open (default: enter at the next bar\u0027s open, immune to bid-ask bounce) or close (enter at the signal bar\u0027s close).",
"default": "next-open"
}
},
"additionalProperties": false,
"required": [
"symbols"
]
}
evidence_label{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Forward-return distribution for a symbol (up/down/flat rates, quantiles, excursions): the base rate a pattern must beat.",
"properties": {
"symbol": {
"type": "string",
"description": "Ticker, e.g. SNDL.",
"default": ""
},
"from": {
"type": "string",
"format": "date",
"description": "First ET day (yyyy-MM-dd, default: 20 days before --to)."
},
"to": {
"type": "string",
"format": "date",
"description": "Last ET day (yyyy-MM-dd, default: yesterday ET)."
},
"horizon": {
"type": "integer",
"description": "Bars ahead to measure (default 5).",
"default": 5
},
"entry": {
"type": "string",
"enum": [
"next-open",
"close"
],
"description": "next-open (default: fill at the next bar\u0027s open, immune to bid-ask bounce) or close (fill at the signal bar\u0027s close; a diagnostic).",
"default": "next-open"
},
"timeframe": {
"type": "string",
"enum": [
"minute",
"day"
],
"description": "minute (default) or day.",
"default": "minute"
},
"dead_band": {
"type": "number",
"description": "Absolute return counted as flat, as a fraction (default 0.001).",
"default": 0.001
},
"session": {
"type": "string",
"enum": [
"rth",
"all"
],
"description": "rth (default) or all.",
"default": "rth"
}
},
"additionalProperties": false,
"required": [
"symbol"
]
}
evidence_pools{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Stop-pool raid rates: how often price raided each pool kind (round numbers, prior-day/premarket/opening-range levels, VWAP bands) and reversed vs broke through, per side and price tier.",
"properties": {
"symbols": {
"type": "array",
"items": {
"type": "string"
},
"description": "One or more tickers, e.g. SNDL MULN."
},
"from": {
"type": "string",
"format": "date",
"description": "First ET day (yyyy-MM-dd, default: 20 days before --to)."
},
"to": {
"type": "string",
"format": "date",
"description": "Last ET day (yyyy-MM-dd, default: today ET)."
},
"horizon": {
"type": "integer",
"description": "Bars after an approach that decide raid / break / reject (default 10).",
"default": 10
},
"proximity": {
"type": "number",
"description": "How close counts as reaching a pool, in ATRs of the bar before (default 0.25).",
"default": 0.25
},
"min_samples": {
"type": "integer",
"description": "Hide rows with fewer approaches than this (default 1).",
"default": 1
}
},
"additionalProperties": false,
"required": [
"symbols"
]
}
evidence_regime{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Per-symbol regime: Hurst, variance ratio (z-tested vs random walk), efficiency ratio, realized vol, lag-1 autocorrelation.",
"properties": {
"symbols": {
"type": "array",
"items": {
"type": "string"
},
"description": "One or more tickers, e.g. SNDL MULN."
},
"from": {
"type": "string",
"format": "date",
"description": "First ET day (yyyy-MM-dd, default: 5 days before --to for minute, 120 for day)."
},
"to": {
"type": "string",
"format": "date",
"description": "Last ET day (yyyy-MM-dd, default: today ET)."
},
"timeframe": {
"type": "string",
"enum": [
"minute",
"day"
],
"description": "minute (default) or day.",
"default": "minute"
},
"q": {
"type": "integer",
"description": "Variance-ratio aggregation in bars (default 4).",
"default": 4
},
"session": {
"type": "string",
"enum": [
"rth",
"all"
],
"description": "rth (default) or all.",
"default": "rth"
},
"method": {
"type": "string",
"enum": [
"vr",
"bocpd",
"hmm"
],
"description": "vr (default: variance-ratio z-test), bocpd (Bayesian online change points) or hmm (Gaussian hidden Markov regimes, trained on earlier sessions, filtered forward on the last).",
"default": "vr"
},
"threshold": {
"type": "number",
"description": "bocpd: probability that a regime began within the last 5 bars needed to flag a change (default 0.5).",
"default": 0.5
},
"states": {
"type": "integer",
"description": "hmm: hidden states, 2 or 3 (default 2).",
"default": 2
},
"aggregate": {
"type": "integer",
"description": "bocpd/hmm on minute bars: bar multiple to fit on (default: auto, the smallest of 1,2,3,5,10,15,30 minutes at which most bars move and tick rounding is under 10% of return variance; 1 = raw minutes)."
}
},
"additionalProperties": false,
"required": [
"symbols"
]
}
evidence_search{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Grid-search a strategy template with multiple-testing corrections: BH q-values, deflated Sharpe, reality check/SPA, and a held-out score for the winner.",
"properties": {
"symbols": {
"type": "array",
"items": {
"type": "string"
},
"description": "Tickers to score every config on, e.g. SNDL MULN."
},
"script": {
"type": "string",
"description": "IdiotScript template with {name} placeholders, e.g. \u0022Ticker(X).IsAboveVwap().Long().StopLossPercent({sl}).TrailingStopLoss({trail})\u0022. Use percent exits: an absolute TakeProfit/StopLoss price means the same dollar level on every symbol.",
"default": ""
},
"grid": {
"type": "array",
"items": {
"type": "string"
},
"description": "Repeatable: a placeholder and its values, e.g. --grid tp=1,2,3 --grid sl=0.5,1."
},
"from": {
"type": "string",
"format": "date",
"description": "First ET day (yyyy-MM-dd, default: 30 days before --to)."
},
"to": {
"type": "string",
"format": "date",
"description": "Last ET day (yyyy-MM-dd, default: today ET)."
},
"holdout": {
"type": "number",
"description": "Fraction of the latest days kept out of selection and scored once on the chosen config (default 0.3).",
"default": 0.3
},
"top": {
"type": "integer",
"description": "Configs to list (default 10).",
"default": 10
},
"resamples": {
"type": "integer",
"description": "Reality-check bootstrap resamples (default 1000).",
"default": 1000
},
"block": {
"type": "number",
"description": "Mean bootstrap block length in symbol-days (default 5).",
"default": 5
},
"seed": {
"type": "integer",
"description": "Bootstrap seed (default 1337).",
"default": 1337
},
"max_configs": {
"type": "integer",
"description": "Refuse grids larger than this (default 2000).",
"default": 2000
},
"cost": {
"type": "number",
"description": "Flat round-trip cost per trade as a fraction. Omit it to model each symbol-day\u0027s cost from that symbol\u0027s prior sessions (Corwin-Schultz spread \u002B square-root impact for --shares)."
},
"shares": {
"type": "number",
"description": "Shares per trade for the modeled impact cost (default 1, the default order size).",
"default": 1
}
},
"additionalProperties": false,
"required": [
"symbols"
]
}
evidence_similar{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "LSH look-alikes of a symbol\u0027s latest bar window from earlier sessions, with what each did next.",
"properties": {
"symbol": {
"type": "string",
"description": "Ticker, e.g. SNDL.",
"default": ""
},
"date": {
"type": "string",
"format": "date",
"description": "ET day whose latest window is matched (yyyy-MM-dd, default: today ET)."
},
"window": {
"type": "integer",
"description": "Bars per pattern window (default 20).",
"default": 20
},
"horizon": {
"type": "integer",
"description": "Bars ahead each look-alike\u0027s outcome is measured (default 5).",
"default": 5
},
"entry": {
"type": "string",
"enum": [
"next-open",
"close"
],
"description": "next-open (default: fill at the next bar\u0027s open, immune to bid-ask bounce) or close (fill at the signal bar\u0027s close; a diagnostic).",
"default": "next-open"
},
"train_days": {
"type": "integer",
"description": "Prior sessions searched for look-alikes (default 20).",
"default": 20
},
"k": {
"type": "integer",
"description": "Look-alikes to list (default 15).",
"default": 15
},
"min_similarity": {
"type": "number",
"description": "Least cosine similarity (default 0.8).",
"default": 0.8
},
"session": {
"type": "string",
"enum": [
"rth",
"all"
],
"description": "rth (default) or all.",
"default": "rth"
}
},
"additionalProperties": false,
"required": [
"symbol"
]
}
evidence_sizing{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Advisory Kelly sizing (plug-in vs Beta-posterior vs conservative) from diary trades or manual counts; never changes order quantities.",
"properties": {
"strategy": {
"type": "string",
"description": "Size from this strategy\u0027s closed trades in the diary (title, case-insensitive)."
},
"symbol": {
"type": "string",
"description": "Size from this symbol\u0027s closed trades in the diary."
},
"wins": {
"type": "integer",
"description": "Manual mode: winning trades (use with --losses and --payoff)."
},
"losses": {
"type": "integer",
"description": "Manual mode: losing trades."
},
"payoff": {
"type": "number",
"description": "Manual mode: average win / average loss."
},
"fraction": {
"type": "number",
"description": "Fraction of the posterior Kelly to recommend (default 0.5 = half Kelly).",
"default": 0.5
}
},
"additionalProperties": false
}
evidence_survival{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Survival analysis of exits: Kaplan-Meier hold curves, competing-risk incidence of target vs stop vs trail, Cox hazard ratios, and an advisory sell-by from replay trades.",
"properties": {
"strategy": {
"type": "string",
"description": "Only replay trades whose strategy/family name contains this text (case-insensitive)."
},
"symbol": {
"type": "string",
"description": "Only this symbol\u0027s replay trades."
},
"from": {
"type": "string",
"format": "date",
"description": "First trade day (yyyy-MM-dd ET)."
},
"to": {
"type": "string",
"format": "date",
"description": "Last trade day (yyyy-MM-dd ET)."
},
"top": {
"type": "integer",
"description": "Report at most this many strategies, most trades first (default 8).",
"default": 8
},
"min_trades": {
"type": "integer",
"description": "Fewest trades a strategy needs to get its own curves (default 20).",
"default": 20
},
"checkpoints": {
"type": "string",
"description": "Hold minutes at which to read the curves, comma-separated (default 5,15,30,60,120).",
"default": "5,15,30,60,120"
}
},
"additionalProperties": false
}
evidence_tails{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Tail dependence (copulas): which symbols crash together beyond what correlation shows, and whether a crash in one predicts the next bar of the other out of sample.",
"properties": {
"symbols": {
"type": "array",
"items": {
"type": "string"
},
"description": "Two or more tickers, e.g. SNDL MULN SPY."
},
"from": {
"type": "string",
"format": "date",
"description": "First ET day (yyyy-MM-dd, default: 365 days before --to for day, 10 for minute)."
},
"to": {
"type": "string",
"format": "date",
"description": "Last ET day (yyyy-MM-dd, default: today ET)."
},
"timeframe": {
"type": "string",
"enum": [
"minute",
"day"
],
"description": "day (default) or minute.",
"default": "day"
},
"q": {
"type": "number",
"description": "Tail quantile: a \u0027crash\u0027 is a return in the bottom q (default 0.1).",
"default": 0.1
},
"train": {
"type": "number",
"description": "Share of aligned bars used to find tail-linked pairs (default 0.67); the rest is the held-out contagion test.",
"default": 0.67
},
"permutations": {
"type": "integer",
"description": "Permutations for the tail-independence test (default 999).",
"default": 999
},
"alpha": {
"type": "number",
"description": "False-discovery rate for both the pair screen and the holdout test (default 0.05).",
"default": 0.05
},
"seed": {
"type": "integer",
"description": "Permutation seed (default 1337).",
"default": 1337
}
},
"additionalProperties": false,
"required": [
"symbols"
]
}
evidence_topology{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Persistent-homology features (H0/H1 persistence, landscape norm) of delay-embedded returns, learned on earlier days and re-tested on held-out days with a session-clustered test.",
"properties": {
"symbols": {
"type": "array",
"items": {
"type": "string"
},
"description": "One or more tickers, e.g. SNDL MULN."
},
"from": {
"type": "string",
"format": "date",
"description": "First ET day (yyyy-MM-dd, default: 30 days before --to)."
},
"to": {
"type": "string",
"format": "date",
"description": "Last ET day (yyyy-MM-dd, default: today ET)."
},
"window": {
"type": "integer",
"description": "Closes per topology read (default 40, max 100).",
"default": 40
},
"dim": {
"type": "integer",
"description": "Delay-embedding dimension (default 3).",
"default": 3
},
"delay": {
"type": "integer",
"description": "Delay-embedding lag in bars (default 1).",
"default": 1
},
"horizon": {
"type": "integer",
"description": "Forward bars for the up/down label; reads are spaced this far apart (default 5).",
"default": 5
},
"buckets": {
"type": "integer",
"description": "Quantile buckets per feature, learned on training days (default 4).",
"default": 4
},
"holdout": {
"type": "number",
"description": "Fraction of the latest trading days held out (default 0.3).",
"default": 0.3
},
"min_samples": {
"type": "integer",
"description": "Minimum training reads in a bucket before it can be picked (default 30).",
"default": 30
},
"session": {
"type": "string",
"enum": [
"rth",
"all"
],
"description": "rth (default) or all.",
"default": "rth"
}
},
"additionalProperties": false,
"required": [
"symbols"
]
}
evidence_walkforward{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Out-of-sample walk-forward directional test (LSH analogs) with binomial p, Wilson CI, coverage and edge after costs.",
"properties": {
"symbols": {
"type": "array",
"items": {
"type": "string"
},
"description": "Tickers to test, e.g. SNDL MULN (omit when using --universe)."
},
"universe": {
"type": "string",
"enum": [
"none",
"penny"
],
"description": "penny: each day\u0027s point-in-time under-$5 universe (prior-day close, dollar-volume floor), drawn from active AND delisted Alpaca equities.",
"default": "none"
},
"from": {
"type": "string",
"format": "date",
"description": "First ET day to evaluate (yyyy-MM-dd).",
"default": "0001-01-01"
},
"to": {
"type": "string",
"format": "date",
"description": "Last ET day to evaluate (yyyy-MM-dd, default: yesterday ET)."
},
"model": {
"type": "string",
"enum": [
"analog",
"leaders"
],
"description": "analog: LSH look-alike windows vote on direction. leaders: follow the influence-weighted move of the symbol\u0027s lag-1 leaders, discovered among --leaders from prior sessions only.",
"default": "analog"
},
"leaders": {
"type": "string",
"description": "With --model leaders, the symbols leaders are discovered among (default SPY,QQQ,IWM).",
"default": "SPY,QQQ,IWM"
},
"edge": {
"type": "string",
"enum": [
"correlation",
"te"
],
"description": "With --model leaders, how leader edges are measured: correlation (default) or te (transfer entropy vs shuffled surrogates).",
"default": "correlation"
},
"clean": {
"type": "string",
"enum": [
"none",
"rmt"
],
"description": "With --model leaders and correlation edges: none (default) or rmt, keeping only lag-1 correlations above the random-matrix noise floor 2.5/sqrt(T).",
"default": "none"
},
"leader_hops": {
"type": "integer",
"description": "With --model leaders, most links between a leader and the symbol (default 2).",
"default": 2
},
"leader_min_influence": {
"type": "number",
"description": "With --model leaders, least |influence| a leader needs to count (default 0.05).",
"default": 0.05
},
"window": {
"type": "integer",
"description": "Bars per pattern window (default 20).",
"default": 20
},
"horizon": {
"type": "integer",
"description": "Bars ahead the call is scored on; calls are spaced this far apart so outcomes never overlap (default 5).",
"default": 5
},
"train_days": {
"type": "integer",
"description": "Prior sessions each day\u0027s model trains on (default 20).",
"default": 20
},
"min_similarity": {
"type": "number",
"description": "Least cosine similarity for a look-alike to count (default 0.8).",
"default": 0.8
},
"min_neighbors": {
"type": "integer",
"description": "Fewest look-alikes needed to make a call (default 8).",
"default": 8
},
"min_agreement": {
"type": "number",
"description": "Smoothed share of look-alikes that must agree to call (default 0.6).",
"default": 0.6
},
"cost": {
"type": "number",
"description": "Flat round-trip cost per call as a fraction (e.g. 0.003). Omit it to model each symbol-day\u0027s cost from its prior sessions: Corwin-Schultz spread \u002B square-root impact for --shares."
},
"entry": {
"type": "string",
"enum": [
"next-open",
"close"
],
"description": "next-open (default: a call fills at the next bar\u0027s open, immune to bid-ask bounce) or close (fills at the signal bar\u0027s close; a diagnostic that inflates mean-reversion edge on low-priced names).",
"default": "next-open"
},
"allow_mixed_feeds": {
"type": "boolean",
"description": "Report a verdict even when the bars mix SIP and IEX tiers (refused by default: IEX prices and volumes are one exchange\u0027s, not the consolidated tape).",
"default": false
},
"shares": {
"type": "number",
"description": "Shares per call for the modeled impact cost (default 1, the default order size).",
"default": 1
},
"volume": {
"type": "boolean",
"description": "Include the volume shape in the pattern vector.",
"default": false
},
"session": {
"type": "string",
"enum": [
"rth",
"all"
],
"description": "rth (default) or all (adds pre/after-hours bars).",
"default": "rth"
},
"max_symbols_per_day": {
"type": "integer",
"description": "With --universe, keep each day\u0027s most liquid N members (default 30).",
"default": 30
},
"max_candidates": {
"type": "integer",
"description": "With --universe, most candidate symbols screened (default 4000; inactive first, then active).",
"default": 4000
}
},
"additionalProperties": false,
"required": [
"from"
]
}
gapper_apply_tuned{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Save a backtest\u0027s hindsight-tuned profile as a new gapper strategy (inactive unless --arm).",
"properties": {
"run": {
"type": "string",
"description": "The run id \u0060gapper backtest-day\u0060 printed (gb-xxxxxxxx).",
"default": ""
},
"arm": {
"type": "boolean",
"description": "Arm it right away (one-per-symbol and the 3-gapper cap still apply).",
"default": false
},
"mode": {
"type": "string",
"enum": [
"sandbox",
"paper",
"live"
],
"description": "Broker mode for the new gapper: paper (default) or sandbox.",
"default": "paper"
}
},
"additionalProperties": false,
"required": [
"run"
]
}
gapper_arm{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Arm a gapper: activate an existing one or queue a new one from a profile, honoring one-per-symbol and the 3-gapper cap.",
"properties": {
"gapper": {
"type": "string",
"description": "A symbol (queues a new gapper when it has none) or a gapper\u0027s id, id prefix or stamp id.",
"default": ""
},
"mode": {
"type": "string",
"enum": [
"sandbox",
"paper",
"live"
],
"description": "Broker mode for a newly queued gapper: paper (default) or sandbox. Live is \u0060strategy mode\u0060, confirmed.",
"default": "paper"
},
"profile": {
"type": "string",
"description": "Gapper profile id or name to start from (default classic-gapper)."
},
"gap": {
"type": "number",
"description": "Minimum gap over the previous close, percent."
},
"max_gap": {
"type": "number",
"description": "Gap ceiling in percent (0 = no ceiling)."
},
"volume": {
"type": "number",
"description": "Premarket volume must be at least this multiple of average volume."
},
"min_price": {
"type": "number",
"description": "Lowest price that qualifies."
},
"max_price": {
"type": "number",
"description": "Highest price that qualifies."
},
"entry_start": {
"type": "string",
"description": "Entry window start, ET (HH:mm)."
},
"entry_end": {
"type": "string",
"description": "Entry window end, ET (HH:mm)."
},
"stop": {
"type": "number",
"description": "Hard stop below entry, percent."
},
"trail": {
"type": "number",
"description": "Trailing stop off the high, percent (0 = none)."
},
"giveback": {
"type": "number",
"description": "Sell once price gives back this percent of the entry-to-peak run."
},
"arm_exit": {
"type": "string",
"description": "ET time the giveback exit arms (HH:mm)."
},
"sell_by": {
"type": "string",
"description": "Hard flatten time, ET (HH:mm), before the 9:30 bell."
},
"notional": {
"type": "number",
"description": "Position size in dollars."
},
"confirmation_code": {
"type": "string",
"description": "Only after the user explicitly approves the preview: the code a previous call of this tool returned."
}
},
"additionalProperties": false,
"required": [
"gapper"
]
}
gapper_auto_candidates{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Every ticker an auto-gapper scan screened on a day: signals, the adaptive plan it chose, and armed or why skipped.",
"properties": {
"date": {
"type": "string",
"format": "date",
"description": "ET scan day (yyyy-MM-dd); default the latest scan\u0027s day."
}
},
"additionalProperties": false
}
gapper_auto_disable{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Disarm every auto-armed gapper of yours that holds no position (holding ones stay armed to manage their exit).",
"properties": {},
"additionalProperties": false
}
gapper_auto_enable{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Run the auto-gapper for you now and arm its top picks as paper gappers (paper-only; --dry-run previews).",
"properties": {
"dry_run": {
"type": "boolean",
"description": "Preview what would arm; writes and arms nothing.",
"default": false
}
},
"additionalProperties": false
}
gapper_auto_status{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Auto-gapper settings, its recent scans (screened, qualified, armed, skipped) and your auto-armed gappers.",
"properties": {
"last": {
"type": "integer",
"description": "How many recent scans to show (default 7).",
"default": 7
}
},
"additionalProperties": false
}
gapper_backtest_day{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Replay a gapper profile over one past day: fills, MFE/MAE, the giveback grid and a hindsight-tuned profile (saved for apply-tuned).",
"properties": {
"symbol": {
"type": "string",
"description": "The ticker to replay.",
"default": ""
},
"date": {
"type": "string",
"format": "date",
"description": "The ET trading day (yyyy-MM-dd); default the last completed trading day."
},
"profile": {
"type": "string",
"description": "Gapper profile id or name to start from (default classic-gapper)."
},
"gap": {
"type": "number",
"description": "Minimum gap over the previous close, percent."
},
"max_gap": {
"type": "number",
"description": "Gap ceiling in percent (0 = no ceiling)."
},
"volume": {
"type": "number",
"description": "Premarket volume must be at least this multiple of average volume."
},
"min_price": {
"type": "number",
"description": "Lowest price that qualifies."
},
"max_price": {
"type": "number",
"description": "Highest price that qualifies."
},
"entry_start": {
"type": "string",
"description": "Entry window start, ET (HH:mm)."
},
"entry_end": {
"type": "string",
"description": "Entry window end, ET (HH:mm)."
},
"stop": {
"type": "number",
"description": "Hard stop below entry, percent."
},
"trail": {
"type": "number",
"description": "Trailing stop off the high, percent (0 = none)."
},
"giveback": {
"type": "number",
"description": "Sell once price gives back this percent of the entry-to-peak run."
},
"arm_exit": {
"type": "string",
"description": "ET time the giveback exit arms (HH:mm)."
},
"sell_by": {
"type": "string",
"description": "Hard flatten time, ET (HH:mm), before the 9:30 bell."
},
"notional": {
"type": "number",
"description": "Position size in dollars."
}
},
"additionalProperties": false,
"required": [
"symbol"
]
}
gapper_be_bex_status{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "The BE/BEX decay gate: latest decay reading, threshold, and which gated BE strategies are armed or disarmed by it.",
"properties": {},
"additionalProperties": false
}
gapper_caps{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Active-gapper counts against the caps: 3 manual gappers, one active strategy per symbol, the auto-gapper limit.",
"properties": {},
"additionalProperties": false
}
gapper_disarm{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Disarm a gapper so the Monitor stops evaluating it (refused while it holds a position); --remove deletes it.",
"properties": {
"gapper": {
"type": "string",
"description": "The gapper\u0027s symbol, id, id prefix or stamp id.",
"default": ""
},
"remove": {
"type": "boolean",
"description": "Also delete the gapper row (only when it holds no position).",
"default": false
}
},
"additionalProperties": false,
"required": [
"gapper"
]
}
gapper_formation{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Recent live gapper-formation snapshot rows: time ET, gap, volume ratio, 1/3/5-minute velocity, acceleration, distance to the premarket high, catalyst score/age, halted and whether the trigger rule passed.",
"properties": {
"symbol": {
"type": "string",
"description": "Only this ticker."
},
"date": {
"type": "string",
"format": "date",
"description": "ET trading day (yyyy-MM-dd); default every day the sink holds."
},
"last": {
"type": "integer",
"description": "How many rows, newest first (default 40, max 500).",
"default": 40
}
},
"additionalProperties": false
}
gapper_formation_disable{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Turn the formation recorder off (settings only; nothing to disarm \u2014 it never arms).",
"properties": {},
"additionalProperties": false
}
gapper_formation_enable{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Turn the formation recorder on for you (paper-only research rows, 03:55-09:45 ET weekdays, with the Monitor leader); never arms.",
"properties": {},
"additionalProperties": false
}
gapper_formation_status{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Whether the formation recorder is enabled, who owns it, whether this Hub leads, today\u0027s universe size, the stream, rows written, halted symbols, the trigger rule and the sink in use.",
"properties": {},
"additionalProperties": false
}
gapper_formation_universe{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Today\u0027s formation universe: every symbol the recorder watches and why it is in (catalyst, mover, most-active, tracked), with catalyst score, gap and price.",
"properties": {},
"additionalProperties": false
}
gapper_from_transcriptgapper arm one.{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Read a transcript and propose re-validated gapper candidate cards; nothing is queued until you \u0060gapper arm\u0060 one.",
"properties": {
"transcript": {
"type": "string",
"description": "A transcript file path, the transcript text itself, or \u0060-\u0060 to read it from stdin.",
"default": ""
}
},
"additionalProperties": false,
"required": [
"transcript"
]
}
gapper_list{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Your queued gappers with live state: armed, mode, position, condition progress and last exit.",
"properties": {
"active": {
"type": "boolean",
"description": "Only armed gappers.",
"default": false
}
},
"additionalProperties": false
}
gapper_premarket_faderun scans the movers now (detection only), status lists today's fade alerts.{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Premarket blow-off/fade detector: \u0060run\u0060 scans the movers now (detection only), \u0060status\u0060 lists today\u0027s fade alerts.",
"properties": {
"action": {
"type": "string",
"enum": [
"status",
"run"
],
"description": "status (default): today\u0027s fade alerts; run: scan the movers for the pattern now.",
"default": "status"
},
"top": {
"type": "integer",
"description": "Movers to screen when running (default 50, max 50).",
"default": 50
}
},
"additionalProperties": false
}
gapper_profile_show{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Every dial of one gapper profile, plus the strategy it generates for a sample ticker.",
"properties": {
"name": {
"type": "string",
"description": "Profile id (classic-gapper) or name.",
"default": ""
}
},
"additionalProperties": false,
"required": [
"name"
]
}
gapper_profiles{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "List the gapper profile catalog: the templates every gapper starts from.",
"properties": {},
"additionalProperties": false
}
gapper_tune{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Dial a gapper profile in for one ticker and show the strategy GapperScriptFactory generates; --save stores it inactive.",
"properties": {
"symbol": {
"type": "string",
"description": "The ticker to build the gapper for.",
"default": ""
},
"save": {
"type": "boolean",
"description": "Save it as an inactive gapper strategy (arm it later with \u0060gapper arm\u0060).",
"default": false
},
"mode": {
"type": "string",
"enum": [
"sandbox",
"paper",
"live"
],
"description": "Broker mode for a saved gapper: paper (default) or sandbox.",
"default": "paper"
},
"profile": {
"type": "string",
"description": "Gapper profile id or name to start from (default classic-gapper)."
},
"gap": {
"type": "number",
"description": "Minimum gap over the previous close, percent."
},
"max_gap": {
"type": "number",
"description": "Gap ceiling in percent (0 = no ceiling)."
},
"volume": {
"type": "number",
"description": "Premarket volume must be at least this multiple of average volume."
},
"min_price": {
"type": "number",
"description": "Lowest price that qualifies."
},
"max_price": {
"type": "number",
"description": "Highest price that qualifies."
},
"entry_start": {
"type": "string",
"description": "Entry window start, ET (HH:mm)."
},
"entry_end": {
"type": "string",
"description": "Entry window end, ET (HH:mm)."
},
"stop": {
"type": "number",
"description": "Hard stop below entry, percent."
},
"trail": {
"type": "number",
"description": "Trailing stop off the high, percent (0 = none)."
},
"giveback": {
"type": "number",
"description": "Sell once price gives back this percent of the entry-to-peak run."
},
"arm_exit": {
"type": "string",
"description": "ET time the giveback exit arms (HH:mm)."
},
"sell_by": {
"type": "string",
"description": "Hard flatten time, ET (HH:mm), before the 9:30 bell."
},
"notional": {
"type": "number",
"description": "Position size in dollars."
}
},
"additionalProperties": false,
"required": [
"symbol"
]
}
hub_install_service{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Install the Hub as a Windows service that runs as you (Monitor off unless --monitor).",
"properties": {
"exe": {
"type": "string",
"description": "The Hub exe the service runs (default: the published C:\\Apps\\IdiotProof\\Hub\\idiotproof-hub.exe)."
},
"account": {
"type": "string",
"description": "Windows account to run as (default: you, as DOMAIN\\user or .\\user). Must be the user who owns the LocalDB database and keys."
},
"password": {
"type": "string",
"description": "That account\u0027s Windows password (required unless --dry-run; never logged)."
},
"monitor": {
"type": "boolean",
"description": "Host the trading Monitor in the service (it places real orders unattended). Off by default.",
"default": false
},
"start": {
"type": "string",
"description": "Start type: delayed-auto (default), auto or demand.",
"default": "delayed-auto"
},
"dry_run": {
"type": "boolean",
"description": "Show the commands without running them.",
"default": false
},
"confirmation_code": {
"type": "string",
"description": "Only after the user explicitly approves the preview: the code a previous call of this tool returned."
}
},
"additionalProperties": false
}
hub_ping{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Check the Hub is up, show its clock in ET, and whether its DB and Monitor are healthy.",
"properties": {},
"additionalProperties": false
}
hub_uninstall_service{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Stop and remove the Hub\u0027s Windows service.",
"properties": {
"dry_run": {
"type": "boolean",
"description": "Show the commands without running them.",
"default": false
},
"confirmation_code": {
"type": "string",
"description": "Only after the user explicitly approves the preview: the code a previous call of this tool returned."
}
},
"additionalProperties": false
}
indicators_compute{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Compute one indicator (rsi, ema, atr, macd, vwap, adx, bollinger, ...) on a symbol\u0027s recent bars.",
"properties": {
"symbol": {
"type": "string",
"description": "Ticker, e.g. NVDA.",
"default": ""
},
"indicator": {
"type": "string",
"description": "rsi, ema, sma, atr, macd, vwap, adx, bollinger, stochastic, cci, williams-r, momentum, roc or obv.",
"default": ""
},
"period": {
"type": "integer",
"description": "Look-back period (default per indicator: rsi 14, ema 9, sma 20, atr 14, adx 14, bollinger 20, ...). Ignored by macd, vwap and obv."
},
"timeframe": {
"type": "string",
"description": "Bar size: 1Min (default), 5Min, 15Min, 1Hour or 1Day.",
"default": "1Min"
},
"bars": {
"type": "integer",
"description": "Bars of history to compute over, newest last (default 240, the Monitor\u0027s window).",
"default": 240
},
"last": {
"type": "integer",
"description": "How many of the newest values to print (default 10).",
"default": 10
}
},
"additionalProperties": false,
"required": [
"symbol",
"indicator"
]
}
indicators_snapshot{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "The full indicator snapshot a strategy condition sees for a symbol: VWAP, EMAs, RSI, MACD, ADX, gap, window high/low, pivots, patterns.",
"properties": {
"symbol": {
"type": "string",
"description": "Ticker, e.g. NVDA.",
"default": ""
},
"timeframe": {
"type": "string",
"description": "Bar size: 1Min (default, what the Monitor evaluates on), 5Min, 15Min, 1Hour or 1Day.",
"default": "1Min"
},
"bars": {
"type": "integer",
"description": "Window of bars the snapshot is built from, newest last (default 240, the Monitor\u0027s 4-hour window).",
"default": 240
},
"ema": {
"type": "string",
"description": "Extra EMA periods to include beside 9/21/31/50/200, comma separated (e.g. 7,65)."
}
},
"additionalProperties": false,
"required": [
"symbol"
]
}
keys_migrate_to_vault{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Move Alpaca keys, OAuth tokens and Claude keys out of SQL into MindAttic.Vault (dry run unless --apply).",
"properties": {
"apply": {
"type": "boolean",
"description": "Actually copy into Vault and clear the SQL columns (without it: a dry run that changes nothing).",
"default": false
},
"confirmation_code": {
"type": "string",
"description": "Only after the user explicitly approves the preview: the code a previous call of this tool returned."
}
},
"additionalProperties": false
}
keys_opt_in{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Route your orders to your own Alpaca account (alpaca) or back to the Sandbox (off).",
"properties": {
"broker": {
"type": "string",
"description": "alpaca (route your orders to your own Alpaca account) or off (back to the Sandbox).",
"default": ""
}
},
"additionalProperties": false,
"required": [
"broker"
]
}
keys_probe{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Round-trip your stored Alpaca keys with a read-only account call (paper, live or both).",
"properties": {
"mode": {
"type": "string",
"enum": [
"all",
"paper",
"live"
],
"description": "all (default), paper or live.",
"default": "all"
}
},
"additionalProperties": false
}
keys_set{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Store an Alpaca paper/live key pair (checked, then probed) or your Claude key in MindAttic.Vault.",
"properties": {
"target": {
"type": "string",
"description": "alpaca-paper, alpaca-live or claude.",
"default": ""
},
"key_id": {
"type": "string",
"description": "The Alpaca API key id (PK... for paper, AK... for live). Not used for claude."
},
"secret": {
"type": "string",
"description": "The Alpaca secret key, or for claude the Claude API key.",
"default": ""
},
"force": {
"type": "boolean",
"description": "Store even when the key id prefix looks wrong or Alpaca rejects the pair.",
"default": false
}
},
"additionalProperties": false,
"required": [
"target",
"secret"
]
}
keys_status{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Which Alpaca/Claude keys resolve for you and from which Vault entry (never shows a secret).",
"properties": {},
"additionalProperties": false
}
ledger_list{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Every command the Hub ran for you (CLI, MCP, web): operation, arguments, outcome, duration (ET).",
"properties": {
"op": {
"type": "string",
"description": "Only this operation (\u0022strategy create\u0022 or strategy_create), or a noun for all of its verbs (strategy)."
},
"since": {
"type": "string",
"format": "date",
"description": "First ET date to include, yyyy-MM-dd (default: everything)."
},
"caller": {
"type": "string",
"description": "Only calls from this front door: cli, mcp, blazor or test."
},
"status": {
"type": "string",
"description": "Only this outcome: ok, failed, usage-error, blocked or confirmation-required."
},
"limit": {
"type": "integer",
"description": "Most rows, newest first, 1-1000 (default 50).",
"default": 50
}
},
"additionalProperties": false
}
llm_keys{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Which Claude key the LLM panel resolves for you (yours, the host\u0027s, or none) and the voting toggles; never shows a key.",
"properties": {},
"additionalProperties": false
}
llm_panel{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "The LLM voter panel: voters, trading lenses, which have keys, the consensus threshold and whether the gate is on.",
"properties": {},
"additionalProperties": false
}
llm_threshold{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Show or set the LLM panel\u0027s consensus threshold (0.5-1): the share of votes that must Approve.",
"properties": {
"value": {
"type": "number",
"description": "Share of counted votes that must Approve, 0..1 (e.g. 0.66) or a percent (66); omit to show the current one."
}
},
"additionalProperties": false
}
llm_vote{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Dry-run the LLM voter panel on a strategy\u0027s current entry: every vote and the consensus. Never places an order.",
"properties": {
"strategy": {
"type": "string",
"description": "Id, id prefix, stamp id (IP-XXXX-XXXX) or symbol.",
"default": ""
},
"entry": {
"type": "number",
"description": "Entry price to put to the panel (default: the last 1-minute close)."
}
},
"additionalProperties": false,
"required": [
"strategy"
]
}
llm_voting_disable{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Turn off your own LLM voter gate (a host-wide setting still applies).",
"properties": {},
"additionalProperties": false
}
llm_voting_enable{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Turn on the LLM voter gate for your automated entries (needs a Claude key to take effect).",
"properties": {},
"additionalProperties": false
}
market_auctions{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Opening and closing auction prices and sizes per day for one or more stocks (SIP, times in ET).",
"properties": {
"symbols": {
"type": "array",
"items": {
"type": "string"
},
"description": "One or more tickers, e.g. AAPL MSFT."
},
"from": {
"type": "string",
"format": "date",
"description": "First ET date to include (default: a week ago)."
},
"to": {
"type": "string",
"format": "date",
"description": "Last ET date to include (default: today)."
}
},
"additionalProperties": false,
"required": [
"symbols"
]
}
market_bars{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Historical OHLCV bars for a stock at any timeframe, oldest first (times in ET).",
"properties": {
"symbol": {
"type": "string",
"description": "Ticker, e.g. AAPL.",
"default": ""
},
"tf": {
"type": "string",
"description": "Bar size: 1Min, 5Min, 15Min, 1Hour, 1Day (default), 1Week, 1Month; short forms 5m, 1h, 1d, 1w, 1mo work too.",
"default": "1Day"
},
"from": {
"type": "string",
"format": "date",
"description": "First ET date to include (default: enough history for --limit bars)."
},
"to": {
"type": "string",
"format": "date",
"description": "Last ET date to include (default: now)."
},
"limit": {
"type": "integer",
"description": "Most bars to show (default 30, max 10000). Without --from these are the most recent.",
"default": 30
},
"adjustment": {
"type": "string",
"description": "Corporate-action adjustment: raw, split (default), dividend or all.",
"default": "split"
}
},
"additionalProperties": false,
"required": [
"symbol"
]
}
market_bond_prices{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Latest Alpaca fixed income prices and yields for the given ISINs.",
"properties": {
"isins": {
"type": "array",
"items": {
"type": "string"
},
"description": "One or more bond ISINs (space or comma separated)."
}
},
"additionalProperties": false,
"required": [
"isins"
]
}
market_candlesticks{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Candlestick patterns (engulfing, hammer, shooting star, doji) on a symbol\u0027s recent bars.",
"properties": {
"symbol": {
"type": "string",
"description": "Ticker, e.g. NVDA.",
"default": ""
},
"timeframe": {
"type": "string",
"description": "Bar size: 1Day (default), 1Hour, 15Min, 5Min or 1Min (what the Monitor\u0027s pattern verbs see).",
"default": "1Day"
},
"bars": {
"type": "integer",
"description": "How many recent bars to scan, newest last (default 30).",
"default": 30
},
"all": {
"type": "boolean",
"description": "List every bar, not only the ones with a pattern.",
"default": false
}
},
"additionalProperties": false,
"required": [
"symbol"
]
}
market_chart{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "ASCII candle chart of a symbol across premarket, regular and after-hours sessions (ET); crypto pairs as 24h days.",
"properties": {
"symbol": {
"type": "string",
"description": "Ticker to chart, e.g. INTC, or a crypto pair such as BTC/USD (charted as 24h days).",
"default": ""
},
"days": {
"type": "integer",
"description": "Trading days to show, oldest first, each as premarket \u002B regular \u002B after-hours (default 2: the prior day and today).",
"default": 2
},
"bucket": {
"type": "integer",
"description": "Minutes per time slot: half a character in Braille, one in --ascii (default: the smallest that fits the width)."
},
"width": {
"type": "integer",
"description": "Chart width in characters (default: the terminal\u0027s, else 118)."
},
"height": {
"type": "integer",
"description": "Price pane rows (default 20).",
"default": 20
},
"volume": {
"type": "boolean",
"description": "Show the volume pane (default on; --no-volume hides it).",
"default": true
},
"ascii": {
"type": "boolean",
"description": "Pure-ASCII candles (one per character) instead of the high-resolution Braille dots.",
"default": false
}
},
"additionalProperties": false,
"required": [
"symbol"
]
}
market_conditions{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "What each trade or quote condition code means (the codes in market trades/quotes).",
"properties": {
"tick_type": {
"type": "string",
"enum": [
"trade",
"quote"
],
"description": "trade or quote.",
"default": "trade"
},
"tape": {
"type": "string",
"enum": [
"a",
"b",
"c"
],
"description": "SIP tape whose codes to list: a (default), b or c.",
"default": "a"
}
},
"additionalProperties": false,
"required": [
"tick_type"
]
}
market_exchanges{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Exchange codes used in trades and quotes and the venue each one names.",
"properties": {},
"additionalProperties": false
}
market_feed_status{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "The Hub\u0027s market data feed: Alpaca SIP/IEX or Mock, whether it can switch, and active strategies per mode.",
"properties": {},
"additionalProperties": false
}
market_feed_switch{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Switch the Hub\u0027s market data to sip, iex or mock (mock refused while Paper/Live strategies are active).",
"properties": {
"feed": {
"type": "string",
"description": "sip (Alpaca consolidated, Algo Trader Plus), iex (Alpaca free tier) or mock (synthetic prices).",
"default": ""
}
},
"additionalProperties": false,
"required": [
"feed"
]
}
market_fx{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Latest forex rates (bid/mid/ask) or historical rate bars for currency pairs (times in ET).",
"properties": {
"pairs": {
"type": "array",
"items": {
"type": "string"
},
"description": "Currency pairs, e.g. USDJPY EURUSD (USD/JPY works too)."
},
"tf": {
"type": "string",
"description": "Historical rate bar size (1Min, 5Min, 1Hour, 1Day...). Giving --tf, --from or --to switches from latest to history."
},
"from": {
"type": "string",
"format": "date",
"description": "First ET date of history (default: enough for --limit bars)."
},
"to": {
"type": "string",
"format": "date",
"description": "Last ET date of history (default: now)."
},
"limit": {
"type": "integer",
"description": "Most history bars per pair (default 30, max 1000).",
"default": 30
}
},
"additionalProperties": false,
"required": [
"pairs"
]
}
market_latest{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Latest minute bar, trade or quote for one or more stocks (times in ET).",
"properties": {
"kind": {
"type": "string",
"enum": [
"bar",
"trade",
"quote"
],
"description": "bar (latest minute bar), trade or quote.",
"default": "trade"
},
"symbols": {
"type": "array",
"items": {
"type": "string"
},
"description": "One or more tickers, e.g. AAPL MSFT."
}
},
"additionalProperties": false,
"required": [
"kind",
"symbols"
]
}
market_logo{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Download a company\u0027s logo and save it under %LOCALAPPDATA%\\MindAttic\\IdiotProof\\Logos; reports the path and size.",
"properties": {
"symbol": {
"type": "string",
"description": "Ticker whose logo to fetch, e.g. AAPL.",
"default": ""
},
"placeholder": {
"type": "boolean",
"description": "When Alpaca has no logo, save its generated placeholder instead of failing.",
"default": false
},
"dir": {
"type": "string",
"description": "Folder to save into (default %LOCALAPPDATA%\\MindAttic\\IdiotProof\\Logos)."
}
},
"additionalProperties": false,
"required": [
"symbol"
]
}
market_meta{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "All market-data reference codes at once: exchanges plus trade and quote conditions.",
"properties": {
"tape": {
"type": "string",
"enum": [
"a",
"b",
"c"
],
"description": "SIP tape whose condition codes to list: a (default), b or c.",
"default": "a"
}
},
"additionalProperties": false
}
market_most_actives{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Today\u0027s most active stocks by share volume or trade count (Alpaca screener).",
"properties": {
"by": {
"type": "string",
"enum": [
"volume",
"trades"
],
"description": "Rank by share volume (default) or by trade count.",
"default": "volume"
},
"top": {
"type": "integer",
"description": "How many stocks (default 10, max 100).",
"default": 10
}
},
"additionalProperties": false
}
market_movers{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Today\u0027s top stock gainers and losers by percent change (Alpaca screener).",
"properties": {
"top": {
"type": "integer",
"description": "How many gainers and how many losers (default 10, max 50).",
"default": 10
}
},
"additionalProperties": false
}
market_news{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Latest news headlines for one or more stocks, or the whole market (times in ET).",
"properties": {
"symbols": {
"type": "array",
"items": {
"type": "string"
},
"description": "Tickers to filter on, e.g. AAPL TSLA (none = all market news)."
},
"limit": {
"type": "integer",
"description": "Most articles to show, newest first (default 10, max 200).",
"default": 10
},
"from": {
"type": "string",
"format": "date",
"description": "Earliest ET date to include (default: no bound)."
},
"to": {
"type": "string",
"format": "date",
"description": "Latest ET date to include (default: now)."
},
"summary": {
"type": "boolean",
"description": "Print each article\u0027s summary and link under its headline.",
"default": false
}
},
"additionalProperties": false
}
market_prev_close{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Previous session\u0027s close (and full daily bar) for one or more stocks, with the move since.",
"properties": {
"symbols": {
"type": "array",
"items": {
"type": "string"
},
"description": "One or more tickers, e.g. AAPL MSFT."
}
},
"additionalProperties": false,
"required": [
"symbols"
]
}
market_quote{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Latest trade and bid/ask for one or more stocks (Alpaca market data, times in ET).",
"properties": {
"symbols": {
"type": "array",
"items": {
"type": "string"
},
"description": "One or more tickers, e.g. AAPL MSFT (commas work too)."
}
},
"additionalProperties": false,
"required": [
"symbols"
]
}
market_quotes{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Historical bid/ask quotes for a stock: sizes, exchanges, spread (times in ET).",
"properties": {
"symbol": {
"type": "string",
"description": "Ticker, e.g. AAPL.",
"default": ""
},
"from": {
"type": "string",
"format": "date",
"description": "First ET date to include (default: the most recent ticks)."
},
"to": {
"type": "string",
"format": "date",
"description": "Last ET date to include (default: now)."
},
"limit": {
"type": "integer",
"description": "Most ticks to show (default 20, max 10000). Without --from these are the most recent.",
"default": 20
}
},
"additionalProperties": false,
"required": [
"symbol"
]
}
market_scan_universe{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Screen the tracked ticker universe on live price, volume and % change (Alpaca snapshots); arms nothing.",
"properties": {
"min_price": {
"type": "number",
"description": "Lowest last price to keep (default 1).",
"default": 1
},
"max_price": {
"type": "number",
"description": "Highest last price to keep (default: no cap)."
},
"min_volume": {
"type": "number",
"description": "Least shares traded today to keep (default 100000).",
"default": 100000
},
"min_change": {
"type": "number",
"description": "Least percent change from the previous close to keep, e.g. 5 or -10 (default: any)."
},
"max_change": {
"type": "number",
"description": "Most percent change from the previous close to keep, e.g. -5 for losers only (default: any)."
},
"exchange": {
"type": "string",
"description": "Only tickers listed on this exchange (NASDAQ, NYSE, AMEX, ARCA, ...)."
},
"sort": {
"type": "string",
"enum": [
"volume",
"change",
"price",
"dollar"
],
"description": "volume (default), change, price or dollar (price x volume); always largest first.",
"default": "volume"
},
"limit": {
"type": "integer",
"description": "Rows to show (default 25).",
"default": 25
},
"max_symbols": {
"type": "integer",
"description": "Most tracked tickers to quote, after the stored-price prefilter (default 3000).",
"default": 3000
}
},
"additionalProperties": false
}
market_snapshot{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "One-line snapshot per stock: last, change vs prior close, bid/ask, today\u0027s open/high/low/volume.",
"properties": {
"symbols": {
"type": "array",
"items": {
"type": "string"
},
"description": "One or more tickers, e.g. AAPL MSFT."
}
},
"additionalProperties": false,
"required": [
"symbols"
]
}
market_stream_status{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Websocket health: the Monitor\u0027s market data stream, the trade-updates listeners and open market watches (state, connected since, last message, reconnects, errors).",
"properties": {},
"additionalProperties": false
}
market_trades{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Historical trade prints for a stock: price, size, exchange, conditions (times in ET).",
"properties": {
"symbol": {
"type": "string",
"description": "Ticker, e.g. AAPL.",
"default": ""
},
"from": {
"type": "string",
"format": "date",
"description": "First ET date to include (default: the most recent ticks)."
},
"to": {
"type": "string",
"format": "date",
"description": "Last ET date to include (default: now)."
},
"limit": {
"type": "integer",
"description": "Most ticks to show (default 20, max 10000). Without --from these are the most recent.",
"default": 20
}
},
"additionalProperties": false,
"required": [
"symbol"
]
}
market_watch{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Live market tape over Alpaca\u0027s websockets: stock trades/quotes/bars/statuses/LULD, crypto, options and news, merged into one ET-stamped stream.",
"properties": {
"symbols": {
"type": "array",
"items": {
"type": "string"
},
"description": "Stocks (AAPL), crypto pairs (BTC/USD) and option contracts (AAPL261120C00200000), mixed freely."
},
"channels": {
"type": "array",
"items": {
"type": "string"
},
"description": "trades, quotes, bars, daily-bars, updated-bars, statuses, lulds (stocks only: statuses, lulds; options: trades, quotes). Default trades,quotes."
},
"news": {
"type": "boolean",
"description": "Also stream news headlines for these symbols (all news when no symbol is given).",
"default": false
},
"feed": {
"type": "string",
"description": "Stock feed: sip, iex or delayed_sip (default: the Hub\u0027s market data tier)."
},
"options_feed": {
"type": "string",
"description": "Options feed: opra or indicative (default opra).",
"default": "opra"
},
"seconds": {
"type": "integer",
"description": "Stop after this many seconds (a terminal streams until Ctrl\u002BC; MCP/--json default 15, at most 300)."
},
"max": {
"type": "integer",
"description": "Stop after this many lines."
}
},
"additionalProperties": false
}
monitor_heartbeat{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "The Monitor loop\u0027s last heartbeat: when it ticked, ok or fail, failures in a row.",
"properties": {},
"additionalProperties": false
}
monitor_lease{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Who holds the Monitor\u0027s SQL leader lease (only the holder evaluates and trades).",
"properties": {},
"additionalProperties": false
}
monitor_pause{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Pause the Monitor: from its next tick it evaluates nothing - no entries and NO exits - until resumed.",
"properties": {
"reason": {
"type": "string",
"description": "Why (kept with the flag and shown by \u0060monitor status\u0060)."
}
},
"additionalProperties": false
}
monitor_resume{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Resume a paused Monitor (needs a confirmation code when a Live strategy is active).",
"properties": {
"confirmation_code": {
"type": "string",
"description": "Only after the user explicitly approves the preview: the code a previous call of this tool returned."
}
},
"additionalProperties": false
}
monitor_status{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Is the Monitor trading? Hosted, lease, last tick, paused, window, active strategies.",
"properties": {},
"additionalProperties": false
}
monitor_tail{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Recent Monitor activity: gate verdicts (fire, veto, block, entry, exit, reject) and live condition progress; --follow streams new ones.",
"properties": {
"lines": {
"type": "integer",
"description": "Most recent events to show (1-500).",
"default": 40
},
"minutes": {
"type": "integer",
"description": "How far back to look for events (1-1440).",
"default": 60
},
"progress": {
"type": "boolean",
"description": "Also show each active strategy\u0027s live condition progress.",
"default": true
},
"follow": {
"type": "boolean",
"description": "After the snapshot, keep pushing new events and progress changes (a terminal streams until Ctrl\u002BC; MCP/--json get a bounded window).",
"default": false
},
"seconds": {
"type": "integer",
"description": "With --follow: stop after this many seconds, 1-3600 (MCP/--json default 15, at most 300)."
}
},
"additionalProperties": false
}
monitor_tick_once{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Run one evaluation pass over your active strategies and show each verdict - never places, cancels or records an order.",
"properties": {
"dry": {
"type": "boolean",
"description": "Write nothing at all (by default the pass is recorded in the audit log as monitor-tick-once).",
"default": false
},
"symbol": {
"type": "string",
"description": "Only strategies on this symbol."
}
},
"additionalProperties": false
}
options_bars{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Historical OHLCV bars for one option contract.",
"properties": {
"occ": {
"type": "string",
"description": "OCC option symbol, e.g. AAPL261120C00250000.",
"default": ""
},
"timeframe": {
"type": "string",
"description": "Bar size: [1-59]Min, [1-23]Hour, 1Day, 1Week or [1,2,3,4,6,12]Month (default 1Day).",
"default": "1Day"
},
"start": {
"type": "string",
"format": "date",
"description": "First ET date (yyyy-MM-dd); default 30 days back for daily bars, 5 for intraday."
},
"end": {
"type": "string",
"format": "date",
"description": "Last ET date (yyyy-MM-dd); default today."
},
"limit": {
"type": "integer",
"description": "Most bars to return, oldest first (default 200).",
"default": 200
}
},
"additionalProperties": false,
"required": [
"occ"
]
}
options_buy{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Buy option contracts to open (level 2\u002B). Sandbox by default; live needs a confirmation code.",
"properties": {
"occ": {
"type": "string",
"description": "OCC contract symbol, e.g. AAPL261219C00150000.",
"default": ""
},
"contracts": {
"type": "integer",
"description": "Whole contracts (each is usually 100 shares).",
"default": 0
},
"limit": {
"type": "number",
"description": "Limit price per share (premium). Without it the order is a market order."
},
"mode": {
"type": "string",
"enum": [
"sandbox",
"paper",
"live"
],
"description": "Where it routes: sandbox (simulator, the default), paper, or live (needs confirmation).",
"default": "sandbox"
},
"note": {
"type": "string",
"description": "Why \u2014 kept in the audit trail."
},
"confirmation_code": {
"type": "string",
"description": "Only after the user explicitly approves the preview: the code a previous call of this tool returned."
}
},
"additionalProperties": false,
"required": [
"occ",
"contracts"
]
}
options_chain{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "An underlying\u0027s option chain for one expiration: calls and puts by strike with bid/ask, IV, delta and open interest.",
"properties": {
"symbol": {
"type": "string",
"description": "Underlying ticker, e.g. AAPL.",
"default": ""
},
"expiry": {
"type": "string",
"format": "date",
"description": "Expiration date (yyyy-MM-dd) to show; default the nearest one."
},
"horizon": {
"type": "integer",
"description": "Days ahead to list expirations for (default 1098, about 3 years, so LEAPS show; Alpaca\u0027s own default is 1 week).",
"default": 1098
},
"strikes": {
"type": "integer",
"description": "Strikes to show on each side of the spot price (default 10; 0 shows every strike).",
"default": 10
},
"feed": {
"type": "string",
"enum": [
"indicative",
"opra"
],
"description": "Options data feed: indicative (default, free) or opra (paid).",
"default": "indicative"
}
},
"additionalProperties": false,
"required": [
"symbol"
]
}
options_close{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Close a whole options position (sells a long, buys back a short) through the gateway.",
"properties": {
"occ": {
"type": "string",
"description": "OCC contract symbol of the position to close.",
"default": ""
},
"limit": {
"type": "number",
"description": "Limit price per share. Without it the close is a market order."
},
"mode": {
"type": "string",
"enum": [
"sandbox",
"paper",
"live"
],
"description": "Which account holds it: sandbox (default), paper or live (needs confirmation).",
"default": "sandbox"
},
"note": {
"type": "string",
"description": "Why \u2014 kept in the audit trail."
},
"confirmation_code": {
"type": "string",
"description": "Only after the user explicitly approves the preview: the code a previous call of this tool returned."
}
},
"additionalProperties": false,
"required": [
"occ"
]
}
options_conditions{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Options trade or quote condition codes and what they mean.",
"properties": {
"tick": {
"type": "string",
"enum": [
"trade",
"quote"
],
"description": "trade (default) or quote condition codes.",
"default": "trade"
}
},
"additionalProperties": false
}
options_contract{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Full catalog details of one option contract by OCC symbol or Alpaca id.",
"properties": {
"contract": {
"type": "string",
"description": "OCC symbol (e.g. AAPL261120C00250000) or Alpaca contract id.",
"default": ""
}
},
"additionalProperties": false,
"required": [
"contract"
]
}
options_contracts{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Search listed option contracts for an underlying by expiry, type, strike range and status.",
"properties": {
"underlying": {
"type": "string",
"description": "Underlying ticker(s), comma separated, e.g. AAPL or AAPL,MSFT.",
"default": ""
},
"expiry": {
"type": "string",
"format": "date",
"description": "Only this expiration date (yyyy-MM-dd)."
},
"type": {
"type": "string",
"enum": [
"call",
"put"
],
"description": "Only calls or only puts."
},
"strike_min": {
"type": "number",
"description": "Lowest strike to include."
},
"strike_max": {
"type": "number",
"description": "Highest strike to include."
},
"status": {
"type": "string",
"enum": [
"active",
"inactive"
],
"description": "active (default) or inactive.",
"default": "active"
},
"horizon": {
"type": "integer",
"description": "Without --expiry: days ahead to include (default 1098; Alpaca\u0027s own default is only 1 week).",
"default": 1098
},
"limit": {
"type": "integer",
"description": "Most contracts to return (default 200, max 10000).",
"default": 200
}
},
"additionalProperties": false,
"required": [
"underlying"
]
}
options_do_not_exercise{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Opt a held contract out of automatic exercise at expiry (paper or live; live needs a code).",
"properties": {
"occ": {
"type": "string",
"description": "OCC contract symbol (or Alpaca contract id) of a long position you hold.",
"default": ""
},
"mode": {
"type": "string",
"enum": [
"sandbox",
"paper",
"live"
],
"description": "Which Alpaca account: paper (default) or live (needs confirmation). Sandbox can\u0027t exercise.",
"default": "paper"
},
"note": {
"type": "string",
"description": "Why \u2014 kept in the audit trail."
},
"confirmation_code": {
"type": "string",
"description": "Only after the user explicitly approves the preview: the code a previous call of this tool returned."
}
},
"additionalProperties": false,
"required": [
"occ"
]
}
options_exchanges{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Options exchange codes and their names, as they appear in quotes and trades.",
"properties": {},
"additionalProperties": false
}
options_exercise{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Exercise a long option you hold (Alpaca paper or live; live needs a confirmation code).",
"properties": {
"occ": {
"type": "string",
"description": "OCC contract symbol (or Alpaca contract id) of a long position you hold.",
"default": ""
},
"mode": {
"type": "string",
"enum": [
"sandbox",
"paper",
"live"
],
"description": "Which Alpaca account: paper (default) or live (needs confirmation). Sandbox can\u0027t exercise.",
"default": "paper"
},
"note": {
"type": "string",
"description": "Why \u2014 kept in the audit trail."
},
"confirmation_code": {
"type": "string",
"description": "Only after the user explicitly approves the preview: the code a previous call of this tool returned."
}
},
"additionalProperties": false,
"required": [
"occ"
]
}
options_glossary{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Plain-English options jargon (hype, breakeven, IV, sell to close, ...): every term, or one in full.",
"properties": {
"term": {
"type": "string",
"description": "A glossary key or title word (hype, breakeven, iv, sell-to-close, ...); omit to list every term."
}
},
"additionalProperties": false
}
options_greeks{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Delta, gamma, theta, vega and rho for one option contract; badged Model when computed locally.",
"properties": {
"occ": {
"type": "string",
"description": "OCC option symbol: ROOT \u002B YYMMDD \u002B C|P \u002B strike x 1000 (8 digits), e.g. AAPL261120C00250000.",
"default": ""
},
"spot": {
"type": "number",
"description": "Underlying price to use instead of Alpaca\u0027s last trade."
},
"rate": {
"type": "number",
"description": "Risk-free rate in percent, e.g. 4.25 (default: the Options page setting, else 4)."
},
"feed": {
"type": "string",
"enum": [
"indicative",
"opra"
],
"description": "Options data feed: indicative (default, free) or opra (paid).",
"default": "indicative"
}
},
"additionalProperties": false,
"required": [
"occ"
]
}
options_iv{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Implied volatility for one option contract: Alpaca\u0027s, plus IV solved locally at bid, mid, ask and last.",
"properties": {
"occ": {
"type": "string",
"description": "OCC option symbol: ROOT \u002B YYMMDD \u002B C|P \u002B strike x 1000 (8 digits), e.g. AAPL261120C00250000.",
"default": ""
},
"spot": {
"type": "number",
"description": "Underlying price to use instead of Alpaca\u0027s last trade."
},
"rate": {
"type": "number",
"description": "Risk-free rate in percent, e.g. 4.25 (default: the Options page setting, else 4)."
},
"feed": {
"type": "string",
"enum": [
"indicative",
"opra"
],
"description": "Options data feed: indicative (default, free) or opra (paid).",
"default": "indicative"
}
},
"additionalProperties": false,
"required": [
"occ"
]
}
options_latest{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Latest NBBO quote and latest trade for one option contract, with exchanges and sizes.",
"properties": {
"occ": {
"type": "string",
"description": "OCC option symbol: ROOT \u002B YYMMDD \u002B C|P \u002B strike x 1000 (8 digits), e.g. AAPL261120C00250000.",
"default": ""
},
"feed": {
"type": "string",
"enum": [
"indicative",
"opra"
],
"description": "Options data feed: indicative (default, free) or opra (paid).",
"default": "indicative"
}
},
"additionalProperties": false,
"required": [
"occ"
]
}
options_level{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Options trading level (effective and approved) and options buying power for your Alpaca accounts.",
"properties": {
"mode": {
"type": "string",
"enum": [
"all",
"paper",
"live"
],
"description": "paper, live or all (default all).",
"default": "all"
}
},
"additionalProperties": false
}
options_positions{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Open option contracts in your Alpaca accounts: strike, expiry, DTE, cost, value and unrealized P\u0026L.",
"properties": {
"mode": {
"type": "string",
"enum": [
"all",
"paper",
"live"
],
"description": "paper, live or all (default all).",
"default": "all"
}
},
"additionalProperties": false
}
options_quote{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Latest bid/ask, mid, spread and last trade for one option contract (OCC symbol).",
"properties": {
"occ": {
"type": "string",
"description": "OCC option symbol: ROOT \u002B YYMMDD \u002B C|P \u002B strike x 1000 (8 digits), e.g. AAPL261120C00250000.",
"default": ""
},
"feed": {
"type": "string",
"enum": [
"indicative",
"opra"
],
"description": "Options data feed: indicative (default, free) or opra (paid).",
"default": "indicative"
}
},
"additionalProperties": false,
"required": [
"occ"
]
}
options_sell{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Sell option contracts you hold (sell to close), or write them with --open (level 1\u002B).",
"properties": {
"occ": {
"type": "string",
"description": "OCC contract symbol, e.g. AAPL261219C00150000.",
"default": ""
},
"contracts": {
"type": "integer",
"description": "Whole contracts (each is usually 100 shares).",
"default": 0
},
"limit": {
"type": "number",
"description": "Limit price per share (premium). Without it the order is a market order."
},
"mode": {
"type": "string",
"enum": [
"sandbox",
"paper",
"live"
],
"description": "Where it routes: sandbox (simulator, the default), paper, or live (needs confirmation).",
"default": "sandbox"
},
"open": {
"type": "boolean",
"description": "Write (sell to open, level 1\u002B: covered call / cash-secured put) instead of selling contracts you hold.",
"default": false
},
"note": {
"type": "string",
"description": "Why \u2014 kept in the audit trail."
},
"confirmation_code": {
"type": "string",
"description": "Only after the user explicitly approves the preview: the code a previous call of this tool returned."
}
},
"additionalProperties": false,
"required": [
"occ",
"contracts"
]
}
options_signals{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Sell-the-hype nudges on your open long options: hype near its session high plus bullish news (never places anything).",
"properties": {
"mode": {
"type": "string",
"enum": [
"all",
"paper",
"live"
],
"description": "paper, live or all (default all).",
"default": "all"
}
},
"additionalProperties": false
}
options_snapshot{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Alpaca\u0027s full snapshot of one option contract: latest quote and trade, daily bars, IV and Greeks.",
"properties": {
"occ": {
"type": "string",
"description": "OCC option symbol: ROOT \u002B YYMMDD \u002B C|P \u002B strike x 1000 (8 digits), e.g. AAPL261120C00250000.",
"default": ""
},
"feed": {
"type": "string",
"enum": [
"indicative",
"opra"
],
"description": "Options data feed: indicative (default, free) or opra (paid).",
"default": "indicative"
}
},
"additionalProperties": false,
"required": [
"occ"
]
}
options_spread{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Place a 2-4 leg options order (verticals, straddles, ratios...) as one Alpaca multi-leg order; level 3, max-loss preview, live needs a code.",
"properties": {
"legs": {
"type": "array",
"items": {
"type": "string"
},
"description": "2 to 4 legs, each side:OCC[:ratio][:close], e.g. buy:AAPL261219C00150000 sell:AAPL261219C00160000. Legs open unless :close."
},
"qty": {
"type": "integer",
"description": "How many spreads (each leg trades ratio x qty contracts). Default 1.",
"default": 1
},
"limit": {
"type": "number",
"description": "Net price per spread per share: positive = debit you pay, negative = credit you take. Without it the order is a market order."
},
"mode": {
"type": "string",
"enum": [
"sandbox",
"paper",
"live"
],
"description": "paper (default) or live (needs confirmation). The Sandbox simulator does not fill multi-leg orders.",
"default": "paper"
},
"note": {
"type": "string",
"description": "Why \u2014 kept in the audit trail."
},
"confirmation_code": {
"type": "string",
"description": "Only after the user explicitly approves the preview: the code a previous call of this tool returned."
}
},
"additionalProperties": false,
"required": [
"legs"
]
}
options_trades{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Historical trades (prints) for one option contract, newest first.",
"properties": {
"occ": {
"type": "string",
"description": "OCC option symbol, e.g. AAPL261120C00250000.",
"default": ""
},
"start": {
"type": "string",
"format": "date",
"description": "First ET date (yyyy-MM-dd); default 7 days back."
},
"end": {
"type": "string",
"format": "date",
"description": "Last ET date (yyyy-MM-dd); default today."
},
"limit": {
"type": "integer",
"description": "Most trades to return, newest first (default 50).",
"default": 50
}
},
"additionalProperties": false,
"required": [
"occ"
]
}
options_value{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Intrinsic and extrinsic value, breakeven, DTE and Black-Scholes price for one option contract.",
"properties": {
"occ": {
"type": "string",
"description": "OCC option symbol: ROOT \u002B YYMMDD \u002B C|P \u002B strike x 1000 (8 digits), e.g. AAPL261120C00250000.",
"default": ""
},
"spot": {
"type": "number",
"description": "Underlying price to value at (what-if) instead of Alpaca\u0027s last trade."
},
"premium": {
"type": "number",
"description": "Premium per share to value instead of the current mid, e.g. what you paid."
},
"iv": {
"type": "number",
"description": "Implied volatility in percent for the Black-Scholes price, e.g. 35 (default Alpaca\u0027s IV)."
},
"rate": {
"type": "number",
"description": "Risk-free rate in percent, e.g. 4.25 (default: the Options page setting, else 4)."
},
"feed": {
"type": "string",
"enum": [
"indicative",
"opra"
],
"description": "Options data feed: indicative (default, free) or opra (paid).",
"default": "indicative"
}
},
"additionalProperties": false,
"required": [
"occ"
]
}
orders_bracket{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Entry plus a take-profit and a stop-loss that cancel each other (Alpaca bracket). The stop-loss is the Risk Guardian\u0027s stop.",
"properties": {
"symbol": {
"type": "string",
"description": "Ticker, e.g. NVDA.",
"default": ""
},
"side": {
"type": "string",
"enum": [
"buy",
"sell"
],
"description": "buy or sell (the parent\u0027s side; an OCO\u0027s side closes the position: sell exits a long).",
"default": "buy"
},
"qty": {
"type": "integer",
"description": "Whole shares.",
"default": 0
},
"limit": {
"type": "number",
"description": "Entry limit price (bracket/OTO). Without it the entry is a market order."
},
"take_profit": {
"type": "number",
"description": "Take-profit child\u0027s limit price."
},
"stop_loss": {
"type": "number",
"description": "Stop-loss child\u0027s stop price."
},
"stop_loss_limit": {
"type": "number",
"description": "Make the stop-loss a stop-limit with this limit price."
},
"tif": {
"type": "string",
"description": "Time in force: day (default) or gtc.",
"default": "day"
},
"client_id": {
"type": "string",
"description": "Your own id for the parent order (Alpaca client_order_id)."
},
"stop": {
"type": "number",
"description": "Planned protective stop for the Risk Guardian when the order has no stop-loss child (OTO with only a take-profit)."
},
"mode": {
"type": "string",
"enum": [
"sandbox",
"paper",
"live"
],
"description": "Where it routes: sandbox (simulator, the default), paper, or live (needs confirmation).",
"default": "sandbox"
},
"note": {
"type": "string",
"description": "Why \u2014 kept in the audit trail."
},
"confirmation_code": {
"type": "string",
"description": "Only after the user explicitly approves the preview: the code a previous call of this tool returned."
}
},
"additionalProperties": false,
"required": [
"symbol",
"side",
"qty"
]
}
orders_cancel{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Cancel one working order through the gateway (audited; live needs a confirmation code).",
"properties": {
"id": {
"type": "string",
"description": "The order id (from \u0060orders list\u0060).",
"default": ""
},
"mode": {
"type": "string",
"enum": [
"sandbox",
"paper",
"live"
],
"description": "The account the order is in: paper (default), live (needs confirmation) or sandbox.",
"default": "paper"
},
"note": {
"type": "string",
"description": "Why \u2014 kept in the audit trail."
},
"confirmation_code": {
"type": "string",
"description": "Only after the user explicitly approves the preview: the code a previous call of this tool returned."
}
},
"additionalProperties": false,
"required": [
"id"
]
}
orders_cancel_all{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Cancel every open order in an account, or only one symbol\u0027s, through the gateway (live needs a confirmation code).",
"properties": {
"symbol": {
"type": "string",
"description": "Only this symbol\u0027s open orders. Without it, every open order in the account."
},
"mode": {
"type": "string",
"enum": [
"sandbox",
"paper",
"live"
],
"description": "The account: paper (default), live (needs confirmation) or sandbox.",
"default": "paper"
},
"note": {
"type": "string",
"description": "Why \u2014 kept in the audit trail."
},
"confirmation_code": {
"type": "string",
"description": "Only after the user explicitly approves the preview: the code a previous call of this tool returned."
}
},
"additionalProperties": false
}
orders_history{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Closed Alpaca orders (filled, cancelled, expired, rejected) over the last N days, newest first, with fill prices and totals.",
"properties": {
"days": {
"type": "integer",
"description": "How far back, in days (default 7, up to 365).",
"default": 7
},
"symbol": {
"type": "string",
"description": "Only orders for these symbols (comma-separated)."
},
"mode": {
"type": "string",
"enum": [
"all",
"paper",
"live"
],
"description": "paper, live or all (default all).",
"default": "all"
}
},
"additionalProperties": false
}
orders_list{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Your Alpaca orders (open by default) in the paper and live accounts, newest first, with bracket/OCO legs.",
"properties": {
"status": {
"type": "string",
"enum": [
"open",
"closed",
"all"
],
"description": "open (default: working orders), closed (filled/cancelled/expired) or all.",
"default": "open"
},
"symbol": {
"type": "string",
"description": "Only orders for these symbols (comma-separated)."
},
"side": {
"type": "string",
"description": "Only buy or sell orders."
},
"limit": {
"type": "integer",
"description": "Most orders per account (default 50, Alpaca\u0027s max 500).",
"default": 50
},
"mode": {
"type": "string",
"enum": [
"all",
"paper",
"live"
],
"description": "paper, live or all (default all).",
"default": "all"
}
},
"additionalProperties": false
}
orders_oco{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Exit a held position with a take-profit limit and a stop-loss; whichever fills cancels the other (Alpaca OCO).",
"properties": {
"symbol": {
"type": "string",
"description": "Ticker, e.g. NVDA.",
"default": ""
},
"side": {
"type": "string",
"enum": [
"buy",
"sell"
],
"description": "buy or sell (the parent\u0027s side; an OCO\u0027s side closes the position: sell exits a long).",
"default": "buy"
},
"qty": {
"type": "integer",
"description": "Whole shares.",
"default": 0
},
"limit": {
"type": "number",
"description": "Entry limit price (bracket/OTO). Without it the entry is a market order."
},
"take_profit": {
"type": "number",
"description": "Take-profit child\u0027s limit price."
},
"stop_loss": {
"type": "number",
"description": "Stop-loss child\u0027s stop price."
},
"stop_loss_limit": {
"type": "number",
"description": "Make the stop-loss a stop-limit with this limit price."
},
"tif": {
"type": "string",
"description": "Time in force: day (default) or gtc.",
"default": "day"
},
"client_id": {
"type": "string",
"description": "Your own id for the parent order (Alpaca client_order_id)."
},
"stop": {
"type": "number",
"description": "Planned protective stop for the Risk Guardian when the order has no stop-loss child (OTO with only a take-profit)."
},
"mode": {
"type": "string",
"enum": [
"sandbox",
"paper",
"live"
],
"description": "Where it routes: sandbox (simulator, the default), paper, or live (needs confirmation).",
"default": "sandbox"
},
"note": {
"type": "string",
"description": "Why \u2014 kept in the audit trail."
},
"confirmation_code": {
"type": "string",
"description": "Only after the user explicitly approves the preview: the code a previous call of this tool returned."
}
},
"additionalProperties": false,
"required": [
"symbol",
"side",
"qty"
]
}
orders_oto{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Entry that, once filled, triggers ONE child: a take-profit or a stop-loss (Alpaca OTO).",
"properties": {
"symbol": {
"type": "string",
"description": "Ticker, e.g. NVDA.",
"default": ""
},
"side": {
"type": "string",
"enum": [
"buy",
"sell"
],
"description": "buy or sell (the parent\u0027s side; an OCO\u0027s side closes the position: sell exits a long).",
"default": "buy"
},
"qty": {
"type": "integer",
"description": "Whole shares.",
"default": 0
},
"limit": {
"type": "number",
"description": "Entry limit price (bracket/OTO). Without it the entry is a market order."
},
"take_profit": {
"type": "number",
"description": "Take-profit child\u0027s limit price."
},
"stop_loss": {
"type": "number",
"description": "Stop-loss child\u0027s stop price."
},
"stop_loss_limit": {
"type": "number",
"description": "Make the stop-loss a stop-limit with this limit price."
},
"tif": {
"type": "string",
"description": "Time in force: day (default) or gtc.",
"default": "day"
},
"client_id": {
"type": "string",
"description": "Your own id for the parent order (Alpaca client_order_id)."
},
"stop": {
"type": "number",
"description": "Planned protective stop for the Risk Guardian when the order has no stop-loss child (OTO with only a take-profit)."
},
"mode": {
"type": "string",
"enum": [
"sandbox",
"paper",
"live"
],
"description": "Where it routes: sandbox (simulator, the default), paper, or live (needs confirmation).",
"default": "sandbox"
},
"note": {
"type": "string",
"description": "Why \u2014 kept in the audit trail."
},
"confirmation_code": {
"type": "string",
"description": "Only after the user explicitly approves the preview: the code a previous call of this tool returned."
}
},
"additionalProperties": false,
"required": [
"symbol",
"side",
"qty"
]
}
orders_place{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Place any single Alpaca order: market/limit/stop/stop-limit/trailing, every TIF, fractional or notional, client id, position intent. Through the gateway; live needs a code.",
"properties": {
"symbol": {
"type": "string",
"description": "Ticker, e.g. NVDA.",
"default": ""
},
"side": {
"type": "string",
"enum": [
"buy",
"sell"
],
"description": "buy or sell.",
"default": "buy"
},
"qty": {
"type": "number",
"description": "Shares; fractions allowed (0.25, DAY only). Leave out and pass --notional to size by dollars."
},
"notional": {
"type": "number",
"description": "Size by dollar amount instead of shares (DAY only)."
},
"type": {
"type": "string",
"enum": [
"market",
"limit",
"stop",
"stop-limit",
"trailing-stop"
],
"description": "market, limit, stop, stop-limit or trailing-stop. Default: worked out from the prices given (none = market)."
},
"limit": {
"type": "number",
"description": "Limit price (limit and stop-limit orders)."
},
"stop_price": {
"type": "number",
"description": "Stop trigger price (stop and stop-limit orders)."
},
"trail_percent": {
"type": "number",
"description": "Trailing stop distance in percent."
},
"trail_price": {
"type": "number",
"description": "Trailing stop distance in dollars."
},
"tif": {
"type": "string",
"description": "Time in force: day (default), gtc, opg (at the open), cls (at the close), ioc or fok.",
"default": "day"
},
"ext": {
"type": "boolean",
"description": "Extended hours (premarket/after-hours); limit \u002B day only.",
"default": false
},
"client_id": {
"type": "string",
"description": "Your own order id (Alpaca client_order_id, up to 128 characters)."
},
"intent": {
"type": "string",
"description": "Position intent: buy-to-open, buy-to-close, sell-to-open or sell-to-close."
},
"stop": {
"type": "number",
"description": "Planned protective stop for an entry (the Risk Guardian refuses entries without one)."
},
"target": {
"type": "number",
"description": "Planned take-profit (for the reward:risk check)."
},
"mode": {
"type": "string",
"enum": [
"sandbox",
"paper",
"live"
],
"description": "Where it routes: sandbox (simulator, the default), paper, or live (needs confirmation).",
"default": "sandbox"
},
"note": {
"type": "string",
"description": "Why \u2014 kept in the audit trail."
},
"confirmation_code": {
"type": "string",
"description": "Only after the user explicitly approves the preview: the code a previous call of this tool returned."
}
},
"additionalProperties": false,
"required": [
"symbol",
"side"
]
}
orders_replace{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Change a working order\u0027s quantity, limit/stop/trail, TIF or client id (Alpaca PATCH; it gets a new id). Through the gateway; live needs a code.",
"properties": {
"id": {
"type": "string",
"description": "The working order to change (from \u0060orders list\u0060).",
"default": ""
},
"qty": {
"type": "number",
"description": "New share count (fractions allowed)."
},
"limit": {
"type": "number",
"description": "New limit price."
},
"stop_price": {
"type": "number",
"description": "New stop trigger price."
},
"trail": {
"type": "number",
"description": "New trailing distance, in the order\u0027s own unit (percent or dollars)."
},
"tif": {
"type": "string",
"description": "New time in force: day, gtc, opg, cls, ioc or fok."
},
"client_id": {
"type": "string",
"description": "New client order id for the replacement order."
},
"stop": {
"type": "number",
"description": "Protective stop for the position, needed when --qty raises an entry\u0027s size (the Risk Guardian checks the whole new size)."
},
"mode": {
"type": "string",
"enum": [
"sandbox",
"paper",
"live"
],
"description": "The account the order is in: paper (default) or live (needs confirmation).",
"default": "paper"
},
"note": {
"type": "string",
"description": "Why \u2014 kept in the audit trail."
},
"confirmation_code": {
"type": "string",
"description": "Only after the user explicitly approves the preview: the code a previous call of this tool returned."
}
},
"additionalProperties": false,
"required": [
"id"
]
}
orders_show{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "One Alpaca order in full, by id or client id: prices, fills, timestamps (ET) and its nested bracket/OCO/OTO/multi-leg legs.",
"properties": {
"id": {
"type": "string",
"description": "The Alpaca order id (from \u0060orders list\u0060). Leave out and pass --client-id to look up by your own id."
},
"client_id": {
"type": "string",
"description": "Look the order up by its client order id instead."
},
"mode": {
"type": "string",
"enum": [
"all",
"paper",
"live"
],
"description": "paper, live or all (default all: whichever account has it).",
"default": "all"
}
},
"additionalProperties": false
}
orders_stream{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Live order events from Alpaca (new, fill, partial fill, canceled, replaced, rejected, expired); the Hub records every fill in the trade diary and audit log.",
"properties": {
"mode": {
"type": "string",
"enum": [
"all",
"paper",
"live"
],
"description": "paper, live or all (default all: every account with keys).",
"default": "all"
},
"fills_only": {
"type": "boolean",
"description": "Show only fills and partial fills.",
"default": false
},
"seconds": {
"type": "integer",
"description": "Stop after this many seconds (a terminal streams until Ctrl\u002BC; MCP/--json default 15, at most 300)."
},
"max": {
"type": "integer",
"description": "Stop after this many events."
}
},
"additionalProperties": false
}
positions_close{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Close (or trim) one Alpaca position as a market exit through the TransactionGateway. Live needs a confirmation code.",
"properties": {
"symbol": {
"type": "string",
"description": "Ticker or OCC option symbol of the position to close, e.g. NVDA.",
"default": ""
},
"qty": {
"type": "number",
"description": "Close only this many shares/contracts (default: all of it)."
},
"percentage": {
"type": "number",
"description": "Close this percent of the position (0-100) instead of all of it."
},
"mode": {
"type": "string",
"enum": [
"sandbox",
"paper",
"live"
],
"description": "Which Alpaca account: paper (default) or live (needs a confirmation code).",
"default": "paper"
},
"preview": {
"type": "boolean",
"description": "Run every gate and show the exit without sending it.",
"default": false
},
"confirmation_code": {
"type": "string",
"description": "Only after the user explicitly approves the preview: the code a previous call of this tool returned."
}
},
"additionalProperties": false,
"required": [
"symbol"
]
}
positions_close_all{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Close every Alpaca position in one account with market exits through the TransactionGateway; optionally cancel open orders first. Live needs a confirmation code.",
"properties": {
"cancel_orders": {
"type": "boolean",
"description": "Cancel every open order first (frees shares held by working sells/stops).",
"default": false
},
"mode": {
"type": "string",
"enum": [
"sandbox",
"paper",
"live"
],
"description": "Which Alpaca account: paper (default) or live (one confirmation code covers the whole set).",
"default": "paper"
},
"preview": {
"type": "boolean",
"description": "Run every gate and list everything that would close, without sending anything.",
"default": false
},
"confirmation_code": {
"type": "string",
"description": "Only after the user explicitly approves the preview: the code a previous call of this tool returned."
}
},
"additionalProperties": false
}
positions_list{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Every open position in your Alpaca paper and live accounts: price, today\u0027s move, unrealized P\u0026L.",
"properties": {
"mode": {
"type": "string",
"enum": [
"all",
"paper",
"live"
],
"description": "paper, live or all (default all).",
"default": "all"
}
},
"additionalProperties": false
}
positions_reconcile{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Read-only report: what Alpaca actually holds vs what your strategies book (PositionQty), per account.",
"properties": {
"mode": {
"type": "string",
"enum": [
"all",
"paper",
"live"
],
"description": "paper, live or all (default all).",
"default": "all"
},
"problems": {
"type": "boolean",
"description": "Only the rows where the broker and the strategies disagree.",
"default": false
}
},
"additionalProperties": false
}
positions_show{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "One position in your Alpaca paper/live accounts, the IdiotProof strategy that owns it, and its latest trade-diary row.",
"properties": {
"symbol": {
"type": "string",
"description": "Ticker, OCC option symbol or crypto pair, e.g. NVDA.",
"default": ""
},
"mode": {
"type": "string",
"enum": [
"all",
"paper",
"live"
],
"description": "paper, live or all (default all).",
"default": "all"
}
},
"additionalProperties": false,
"required": [
"symbol"
]
}
prefs_get{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Show your preferences: theme, account pill and Risk Guardian limits.",
"properties": {
"field": {
"type": "string",
"description": "One preference (theme, account-type, risk.max-loss-per-trade, ...); omit for all."
}
},
"additionalProperties": false
}
prefs_set{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Change one of your preferences (risk limits keep the Settings page\u0027s sanity rules).",
"properties": {
"field": {
"type": "string",
"description": "theme, account-type or a risk.* limit (see \u0060prefs get\u0060).",
"default": ""
},
"value": {
"type": "string",
"description": "The new value.",
"default": ""
}
},
"additionalProperties": false,
"required": [
"field",
"value"
]
}
replay_all{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Replay every strategy family on one ticker/day and rank them by realized P\u0026L (best fit first).",
"properties": {
"symbol": {
"type": "string",
"description": "The ticker to try every family on.",
"default": ""
},
"date": {
"type": "string",
"format": "date",
"description": "The ET trading day (yyyy-MM-dd); default the last completed trading day."
},
"pages": {
"type": "boolean",
"description": "Render each run\u0027s page and the archive indexes (HTML only).",
"default": true
},
"out": {
"type": "string",
"description": "Archive folder for the pages (default the mindattic.com replays folder)."
}
},
"additionalProperties": false,
"required": [
"symbol"
]
}
replay_compare{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Two replay runs side by side: strategy, day, fires, round-trips, win rate, hold time and P\u0026L, with the difference.",
"properties": {
"run_a": {
"type": "string",
"description": "First run id or prefix.",
"default": ""
},
"run_b": {
"type": "string",
"description": "Second run id or prefix.",
"default": ""
}
},
"additionalProperties": false,
"required": [
"run_a",
"run_b"
]
}
replay_familiesreplay run --family and replay all use, with what each trades.{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "The built-in strategy families \u0060replay run --family\u0060 and \u0060replay all\u0060 use, with what each trades.",
"properties": {},
"additionalProperties": false
}
replay_list{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "The replay archive, newest first: ticker, day, strategy, sim or live, fired and P\u0026L.",
"properties": {
"symbol": {
"type": "string",
"description": "Only this ticker."
},
"since": {
"type": "string",
"format": "date",
"description": "Only runs of ET trading days on or after this date (yyyy-MM-dd)."
},
"kind": {
"type": "string",
"description": "Only sim (hypothetical replays) or live (the Monitor\u0027s real trades)."
},
"fired": {
"type": "boolean",
"description": "Only runs that fired.",
"default": false
},
"limit": {
"type": "integer",
"description": "At most this many runs, newest first (default 50).",
"default": 50
}
},
"additionalProperties": false
}
replay_live{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Render the Monitor\u0027s real trades for a day (from the trade diary) on that day\u0027s bars as LIVE runs in the archive.",
"properties": {
"symbol": {
"type": "string",
"description": "Only this ticker (default every ticker the Monitor traded that day)."
},
"date": {
"type": "string",
"format": "date",
"description": "The ET day whose real trades to render (default today ET)."
},
"pages": {
"type": "boolean",
"description": "Render the run pages and archive indexes (HTML only; publishing stays manual).",
"default": true
},
"out": {
"type": "string",
"description": "Archive folder for the pages (default the mindattic.com replays folder)."
}
},
"additionalProperties": false
}
replay_regen{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Regenerate the replay archive\u0027s HTML (every run page and index) from SQL; never uploads or deploys.",
"properties": {
"out": {
"type": "string",
"description": "Archive folder to (re)write (default the mindattic.com replays folder)."
}
},
"additionalProperties": false
}
replay_run{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Replay a strategy, gapper profile or built-in family over one past day with the Monitor\u0027s own evaluator; saves the run and its page.",
"properties": {
"symbol": {
"type": "string",
"description": "The ticker to replay.",
"default": ""
},
"date": {
"type": "string",
"format": "date",
"description": "The ET trading day (yyyy-MM-dd); default the last completed trading day."
},
"strategy": {
"type": "string",
"description": "Replay this saved strategy (id, id prefix, stamp id or symbol) instead of the symbol\u0027s own."
},
"profile": {
"type": "string",
"description": "Replay a gapper profile on the fly (e.g. classic-gapper, penny-runner)."
},
"family": {
"type": "string",
"description": "Replay a built-in family (momentum, reversal, rsireversal, emabreak, rthdrive, shortfade, swingreversal)."
},
"repeat": {
"type": "boolean",
"description": "Re-arm after every exit to show each round-trip the day offered.",
"default": false
},
"pages": {
"type": "boolean",
"description": "Render the run page and archive indexes (HTML only; publishing stays manual).",
"default": true
},
"out": {
"type": "string",
"description": "Archive folder for the pages (default the mindattic.com replays folder)."
}
},
"additionalProperties": false,
"required": [
"symbol"
]
}
replay_show{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "One replay run: its round-trips with entry features and its per-bar features (OHLCV, VWAP, volume ratio, conditions passed).",
"properties": {
"run": {
"type": "string",
"description": "Run id or its first 6\u002B characters (from \u0060replay list\u0060).",
"default": ""
},
"bars": {
"type": "string",
"description": "Which per-bar rows to print: marked (entries/exits, default), session (in-session bars) or all.",
"default": "marked"
}
},
"additionalProperties": false,
"required": [
"run"
]
}
research_analyze{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Extract catalysts and portents from a ticker\u0027s news, a URL or pasted text via the LLM (--save to keep them).",
"properties": {
"target": {
"type": "string",
"description": "A ticker (analyzes its recent Alpaca news, or --text) or an http(s) URL of an article or filing.",
"default": ""
},
"ticker": {
"type": "string",
"description": "The company a URL is about (required with a URL)."
},
"text": {
"type": "string",
"description": "Analyze this text instead of fetching anything."
},
"source": {
"type": "string",
"description": "Source name to record (default: the URL\u0027s host, Alpaca\u0027s outlet, or \u0022manual\u0022)."
},
"days": {
"type": "integer",
"description": "News lookback for a ticker, 1-30 days (default 3).",
"default": 3
},
"max_articles": {
"type": "integer",
"description": "Most news articles to analyze for a ticker, 1-20 (default 5).",
"default": 5
},
"save": {
"type": "boolean",
"description": "Persist the extracted claims to the research feed (skips a URL already analyzed).",
"default": false
}
},
"additionalProperties": false,
"required": [
"target"
]
}
research_backfill{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Record what each old enough claim\u0027s stock actually did (Alpaca daily closes) and settle portents.",
"properties": {
"min_wait_days": {
"type": "integer",
"description": "Only claims at least this many days old, 1-365 (default 5).",
"default": 5
},
"window_days": {
"type": "integer",
"description": "Measure the price move this many days after the claim, 1-365 (default 7).",
"default": 7
},
"max": {
"type": "integer",
"description": "Most claims to backfill this run, 1-5000 (default 200).",
"default": 200
}
},
"additionalProperties": false
}
research_claim{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "One research claim in full: source, trigger, outcome, insider lines and its score breakdown.",
"properties": {
"claim": {
"type": "string",
"description": "Claim id, or the 8-character prefix \u0060research claims\u0060 shows.",
"default": ""
}
},
"additionalProperties": false,
"required": [
"claim"
]
}
research_claims{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Ranked research feed: catalysts and portents by significance score, filterable by ticker, date, score and macro.",
"properties": {
"ticker": {
"type": "string",
"description": "Only claims about this symbol (and macro claims that name it)."
},
"since": {
"type": "string",
"format": "date",
"description": "First ET date a claim was found, yyyy-MM-dd (default: 14 days ago)."
},
"min_score": {
"type": "number",
"description": "Only claims scored at least this (0-100); unscored claims are left out."
},
"macro": {
"type": "boolean",
"description": "Only macro/regulatory claims (no single ticker).",
"default": false
},
"portents": {
"type": "boolean",
"description": "Only pending portents: announced, not yet happened.",
"default": false
},
"limit": {
"type": "integer",
"description": "Most claims to show, 1-500 (default 50).",
"default": 50
}
},
"additionalProperties": false
}
research_gappers_build_universe{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Gapper study T1/T6 \u002B universe: every Alpaca us_equity asset\u0027s daily bars and splits, then U(D), exclusions, candidates, ADV deciles and price tiers per the frozen protocol, and sample.json.",
"properties": {
"from": {
"type": "string",
"format": "date",
"description": "First trading day D of the universe (ET, yyyy-MM-dd).",
"default": "0001-01-01"
},
"to": {
"type": "string",
"format": "date",
"description": "Last trading day D (ET, yyyy-MM-dd).",
"default": "0001-01-01"
},
"smoke": {
"type": "boolean",
"description": "Smoke run: only --symbols, daily bars from 60 days before --from, rows tagged split \u0027smoke\u0027, sample.smoke.json.",
"default": false
},
"symbols": {
"type": "string",
"description": "Comma-separated symbols for a --smoke run."
},
"max_calls": {
"type": "integer",
"description": "Stop pulling after this many Alpaca requests (0 = no cap); the run stays resumable.",
"default": 0
}
},
"additionalProperties": false,
"required": [
"from",
"to"
]
}
research_gappers_catalysts{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Re-run the deterministic CatalystPreClassifier over every backfilled catalyst row (idempotent) and spend an optional Haiku budget on rows never classified; each article/filing is classified at most once.",
"properties": {
"llm_budget": {
"type": "integer",
"description": "At most this many never-classified backfilled rows get a Haiku classification (default 0).",
"default": 0
}
},
"additionalProperties": false
}
research_gappers_label{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Gapper study labels: next-bar-open entry and forward returns per horizon, reach-20 by 09:45, premarket/RTH/full-session high times and bucket, fade, extension from open, velocity death, death-to-HOD, halt proxy and VWAP-loss time, per the frozen definitions.",
"properties": {
"split": {
"type": "string",
"description": "train, validation or holdout (holdout needs holdout-unlock.txt and runs once).",
"default": "train"
},
"smoke": {
"type": "boolean",
"description": "Label the smoke-tagged rows instead.",
"default": false
},
"from": {
"type": "string",
"format": "date",
"description": "Restrict to days on or after this ET date."
},
"to": {
"type": "string",
"format": "date",
"description": "Restrict to days on or before this ET date."
}
},
"additionalProperties": false,
"required": [
"split"
]
}
research_gappers_pull{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Gapper study data tiers: minute bars for candidate/prior/control days into the file store (then gapper tiers and controls), Alpaca news, ticker-CIK map, EDGAR form index with acceptance times, splits. Resumable, rate-limited, --max-calls capped.",
"properties": {
"tier": {
"type": "string",
"description": "bars (T2 minute bars \u002B gapper classification \u002B controls), news (T3), cik (T5), edgar (T4 form index \u002B acceptance times), splits (T6), or all.",
"default": "all"
},
"smoke": {
"type": "boolean",
"description": "Operate on the smoke-tagged universe rows only.",
"default": false
},
"from": {
"type": "string",
"format": "date",
"description": "Restrict to candidate days on or after this ET date."
},
"to": {
"type": "string",
"format": "date",
"description": "Restrict to candidate days on or before this ET date."
},
"max_calls": {
"type": "integer",
"description": "Stop after this many API requests per tier (0 = no cap); the pull resumes from its coverage marks next time.",
"default": 0
}
},
"additionalProperties": false,
"required": [
"tier"
]
}
research_gappers_snapshot{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Gapper study feature snapshots: every candidate and control day at every frozen decision time through the shared GapperFormationFeatures.Compute, written as Source=backtest rows; fits and saves data/tod-profile.json on train control days first.",
"properties": {
"split": {
"type": "string",
"description": "train, validation or holdout (holdout needs holdout-unlock.txt and runs once).",
"default": "train"
},
"smoke": {
"type": "boolean",
"description": "Snapshot the smoke-tagged rows instead (profile goes to data/tod-profile.smoke.json).",
"default": false
},
"from": {
"type": "string",
"format": "date",
"description": "Restrict to days on or after this ET date."
},
"to": {
"type": "string",
"format": "date",
"description": "Restrict to days on or before this ET date."
}
},
"additionalProperties": false,
"required": [
"split"
]
}
research_gappers_status{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "What the gapper study holds per split (universe days, candidates, gappers per tier, controls, minute-bar coverage, snapshots, labels), the data tiers\u0027 row counts, and the holdout lock state.",
"properties": {},
"additionalProperties": false
}
research_index_events{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "S\u0026P 500 / S\u0026P 100 additions and removals: announced and effective dates, pending or done.",
"properties": {
"since": {
"type": "string",
"format": "date",
"description": "First announcement date, yyyy-MM-dd (default: 180 days ago)."
},
"ticker": {
"type": "string",
"description": "Only this symbol."
},
"pending": {
"type": "boolean",
"description": "Only events whose effective date has not passed yet.",
"default": false
}
},
"additionalProperties": false
}
research_insiders{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Form 4 insider transactions for a ticker: filer, role, buy/sell, shares, price, value.",
"properties": {
"symbol": {
"type": "string",
"description": "Ticker symbol, e.g. NVDA.",
"default": ""
},
"days": {
"type": "integer",
"description": "Transactions dated within this many days, 1-3650 (default 180).",
"default": 180
},
"code": {
"type": "array",
"items": {
"type": "string"
},
"description": "SEC transaction codes, comma-separated: P purchase, S sale, A award, M exercise, F tax, G gift (default: all)."
},
"limit": {
"type": "integer",
"description": "Most lines to show, 1-1000 (default 100).",
"default": 100
}
},
"additionalProperties": false,
"required": [
"symbol"
]
}
research_macro{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Macro and regulatory claims (rule changes, listing standards) with the tickers each affects.",
"properties": {
"since": {
"type": "string",
"format": "date",
"description": "First ET date a claim was found, yyyy-MM-dd (default: 30 days ago)."
},
"affects": {
"type": "string",
"description": "Only claims whose affected-ticker list names this symbol."
},
"limit": {
"type": "integer",
"description": "Most claims to show, 1-500 (default 50).",
"default": 50
}
},
"additionalProperties": false
}
research_scan{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Run one research scan pass now in the Hub (news, SEC filings, regulatory, index events, backfill, scoring).",
"properties": {
"tickers": {
"type": "array",
"items": {
"type": "string"
},
"description": "Scan just these symbols, comma-separated (default: every watchlist symbol plus the next rotating batch of the universe)."
},
"batch": {
"type": "integer",
"description": "Rotating-batch size beyond the watchlist, 1-5000 (default 300, or IDIOTPROOF_RESEARCHSCAN_BATCHSIZE)."
},
"days_back": {
"type": "integer",
"description": "Lookback per source in days, 1-30 (default 2, or IDIOTPROOF_RESEARCHSCAN_DAYSBACK)."
}
},
"additionalProperties": false
}
research_score{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Explain a claim\u0027s 0-100 significance score term by term (magnitude, confidence, history, source, watchlist, recency).",
"properties": {
"claim": {
"type": "string",
"description": "Claim id, or the 8-character prefix \u0060research claims\u0060 shows.",
"default": ""
}
},
"additionalProperties": false,
"required": [
"claim"
]
}
research_similar{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Look-alike past claims (LSH neighbours) and what their stocks did afterwards.",
"properties": {
"claim": {
"type": "string",
"description": "Claim id, or the 8-character prefix \u0060research claims\u0060 shows.",
"default": ""
},
"max_distance": {
"type": "integer",
"description": "Largest Hamming distance (of 64 signature bits) that counts as similar, 0-64 (default 20).",
"default": 20
},
"limit": {
"type": "integer",
"description": "Most neighbours to list, 1-100 (default 20).",
"default": 20
}
},
"additionalProperties": false,
"required": [
"claim"
]
}
research_ticker{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Everything research knows about one ticker: claims, portents, macro and index events, insiders, outcomes.",
"properties": {
"symbol": {
"type": "string",
"description": "Ticker symbol, e.g. NVDA.",
"default": ""
},
"days": {
"type": "integer",
"description": "Look back this many days, 1-3650 (default 90).",
"default": 90
},
"limit": {
"type": "integer",
"description": "Most claims to list, 1-200 (default 15).",
"default": 15
}
},
"additionalProperties": false,
"required": [
"symbol"
]
}
research_universe_list{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "The tracked ticker universe the research scan sweeps: symbol, exchange, last price, freshness.",
"properties": {
"exchange": {
"type": "string",
"description": "Only NASDAQ or NYSE."
},
"prefix": {
"type": "string",
"description": "Only symbols starting with this text."
},
"min_price": {
"type": "number",
"description": "Only tickers whose last price is at least this."
},
"max_price": {
"type": "number",
"description": "Only tickers whose last price is at most this."
},
"limit": {
"type": "integer",
"description": "Most rows to show, 1-10000 (default 100).",
"default": 100
}
},
"additionalProperties": false
}
research_universe_refresh{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Reload the tracked ticker universe (asset list and last prices) from Alpaca when stale, or --force.",
"properties": {
"force": {
"type": "boolean",
"description": "Reload even when the cache is fresher than --max-age-hours.",
"default": false
},
"max_age_hours": {
"type": "integer",
"description": "Only reload when the newest row is older than this, 1-720 (default 24).",
"default": 24
}
},
"additionalProperties": false
}
risk_check{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Dry-run a setup through your Risk Guardian: approved or why not, worst case, and the largest size allowed. Places nothing.",
"properties": {
"symbol": {
"type": "string",
"description": "Ticker, e.g. NVDA.",
"default": ""
},
"entry": {
"type": "number",
"description": "Planned entry price.",
"default": 0
},
"stop": {
"type": "number",
"description": "Planned protective stop price.",
"default": 0
},
"qty": {
"type": "integer",
"description": "Planned share count.",
"default": 0
},
"target": {
"type": "number",
"description": "Planned take-profit price, for the reward:risk warning."
},
"short": {
"type": "boolean",
"description": "A short entry (stop above entry) instead of a long.",
"default": false
}
},
"additionalProperties": false,
"required": [
"symbol",
"entry",
"stop",
"qty"
]
}
risk_kill_switch{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Halt every new entry now (on), or resume (off, which needs a confirmation code); exits always go through.",
"properties": {
"state": {
"type": "string",
"description": "on (halt every new entry now) or off (resume; needs a confirmation code).",
"default": ""
}
},
"additionalProperties": false,
"required": [
"state"
]
}
risk_set{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Change Risk Guardian limits; unnamed ones keep their value and today\u0027s loss counter is preserved.",
"properties": {
"max_loss_per_trade": {
"type": "number",
"description": "Most a single trade may lose in the worst case, in dollars."
},
"max_loss_per_day": {
"type": "number",
"description": "Daily loss that trips the circuit breaker, in dollars (at least the per-trade limit)."
},
"min_stop_percent": {
"type": "number",
"description": "Tightest allowed stop, percent of entry (0.01-50)."
},
"max_stop_percent": {
"type": "number",
"description": "Widest allowed stop, percent of entry (at least the minimum)."
},
"account_balance": {
"type": "number",
"description": "Balance the position size is measured against, in dollars."
},
"max_account_risk_percent": {
"type": "number",
"description": "Most of the balance one trade may risk, percent (0-100)."
}
},
"additionalProperties": false
}
risk_show{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Your six Risk Guardian limits (per-trade and daily loss, stop range, balance, account risk %) and the kill switch.",
"properties": {},
"additionalProperties": false
}
risk_status{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Today\u0027s realized P\u0026L, losses counted against the daily breaker, remaining room, breaker and kill-switch state.",
"properties": {},
"additionalProperties": false
}
scan_movers{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Screen today\u0027s top gainers to the gapper band; --replay replays each survivor with a gapper profile and saves the runs.",
"properties": {
"date": {
"type": "string",
"format": "date",
"description": "ET day to replay the survivors on (default today ET \u2014 movers are live)."
},
"replay": {
"type": "boolean",
"description": "Replay each survivor with the gapper profile and save the runs (and pages).",
"default": false
},
"top": {
"type": "integer",
"description": "Keep at most this many gappers (default 10, max 25).",
"default": 10
},
"min_gap": {
"type": "number",
"description": "Minimum percent change (default 5).",
"default": 5
},
"min_price": {
"type": "number",
"description": "Lowest price (default 1).",
"default": 1
},
"max_price": {
"type": "number",
"description": "Highest price (default 50).",
"default": 50
},
"profile": {
"type": "string",
"description": "Gapper profile or family to replay with (default classic-gapper).",
"default": "classic-gapper"
},
"pages": {
"type": "boolean",
"description": "With --replay: render run pages and archive indexes (HTML only).",
"default": true
},
"out": {
"type": "string",
"description": "Archive folder for the pages (default the mindattic.com replays folder)."
}
},
"additionalProperties": false
}
settings_get{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Show one runtime setting: value, default, range and meaning.",
"properties": {
"key": {
"type": "string",
"description": "The setting key, e.g. Options.RiskFreeRate.",
"default": ""
}
},
"additionalProperties": false,
"required": [
"key"
]
}
settings_list{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "List the app\u0027s runtime settings with current value, default, range and meaning.",
"properties": {
"all": {
"type": "boolean",
"description": "Also show internal bookkeeping keys the app writes for itself.",
"default": false
}
},
"additionalProperties": false
}
settings_set{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Change one runtime setting (type- and range-checked; unknown and internal keys refused).",
"properties": {
"key": {
"type": "string",
"description": "The setting key (see \u0060settings list\u0060).",
"default": ""
},
"value": {
"type": "string",
"description": "The new value; checked against the key\u0027s type and range.",
"default": ""
}
},
"additionalProperties": false,
"required": [
"key",
"value"
]
}
strategy_activate{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Hand a strategy to the Monitor. A Live strategy needs a confirmation code.",
"properties": {
"strategy": {
"type": "string",
"description": "Id, id prefix, stamp id (IP-XXXX-XXXX) or symbol.",
"default": ""
},
"confirmation_code": {
"type": "string",
"description": "Only after the user explicitly approves the preview: the code a previous call of this tool returned."
}
},
"additionalProperties": false,
"required": [
"strategy"
]
}
strategy_bulk{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Activate or deactivate many strategies at once (--all, --symbol, --mode). Live activations need one confirmation code for the batch.",
"properties": {
"action": {
"type": "string",
"enum": [
"activate",
"deactivate"
],
"description": "activate or deactivate.",
"default": "activate"
},
"all": {
"type": "boolean",
"description": "Every strategy you own (soft-deleted ones excluded).",
"default": false
},
"symbol": {
"type": "string",
"description": "Only strategies on this symbol."
},
"mode": {
"type": "string",
"enum": [
"sandbox",
"paper",
"live"
],
"description": "Only strategies in this broker mode (sandbox, paper, live)."
},
"confirmation_code": {
"type": "string",
"description": "Only after the user explicitly approves the preview: the code a previous call of this tool returned."
}
},
"additionalProperties": false,
"required": [
"action"
]
}
strategy_clone{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Copy a strategy (optionally onto another symbol) as a new, inactive Sandbox strategy.",
"properties": {
"strategy": {
"type": "string",
"description": "Id, id prefix, stamp id or symbol of the strategy to copy.",
"default": ""
},
"symbol": {
"type": "string",
"description": "Trade a different symbol with the same rules."
},
"title": {
"type": "string",
"description": "Title for the copy (default: \u0022\u003Ctitle\u003E (copy)\u0022)."
},
"mode": {
"type": "string",
"enum": [
"sandbox",
"paper",
"live"
],
"description": "Broker mode for the copy: sandbox (default) or paper.",
"default": "sandbox"
}
},
"additionalProperties": false,
"required": [
"strategy"
]
}
strategy_create{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Create a strategy from IdiotScript or canonical JSON after validating it. It starts inactive in Sandbox.",
"properties": {
"script": {
"type": "string",
"description": "The strategy as IdiotScript text (\u0060-\u0060 reads stdin)."
},
"canon": {
"type": "string",
"description": "The strategy as canonical JSON (what \u0060strategy export --format json\u0060 prints) (\u0060-\u0060 reads stdin)."
},
"title": {
"type": "string",
"description": "Title (default: the strategy\u0027s own name, else \u0022SYM strategy\u0022)."
},
"ticker": {
"type": "string",
"description": "Symbol to use when the script doesn\u0027t name one."
},
"description": {
"type": "string",
"description": "Free-form description stored with the strategy."
},
"mode": {
"type": "string",
"enum": [
"sandbox",
"paper",
"live"
],
"description": "Broker mode: sandbox (default) or paper. Live is a separate, confirmed step.",
"default": "sandbox"
},
"dry_run": {
"type": "boolean",
"description": "Validate and show the stamp without saving anything.",
"default": false
}
},
"additionalProperties": false
}
strategy_deactivate{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Stop the Monitor evaluating a strategy (refused while it holds a position).",
"properties": {
"strategy": {
"type": "string",
"description": "Id, id prefix, stamp id (IP-XXXX-XXXX) or symbol.",
"default": ""
}
},
"additionalProperties": false,
"required": [
"strategy"
]
}
strategy_deletestrategy list hides it unless --deleted. --hard permanently removes a strategy that is already deleted — a separate, explicit second step.{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Soft-delete a strategy: deactivate it and mark it [deleted] (reversible with --restore). Refused while it holds a position.",
"properties": {
"strategy": {
"type": "string",
"description": "Id, id prefix, stamp id or symbol.",
"default": ""
},
"restore": {
"type": "boolean",
"description": "Undo a delete: take the [deleted] marker off (it stays inactive).",
"default": false
},
"hard": {
"type": "boolean",
"description": "Permanently remove an ALREADY deleted strategy and its progress row. Cannot be undone.",
"default": false
},
"confirmation_code": {
"type": "string",
"description": "Only after the user explicitly approves the preview: the code a previous call of this tool returned."
}
},
"additionalProperties": false,
"required": [
"strategy"
]
}
strategy_diff{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Compare two strategies field by field at the canon level (what the Monitor actually runs), plus title, mode and state.",
"properties": {
"a": {
"type": "string",
"description": "First strategy: id, id prefix, stamp id or symbol.",
"default": ""
},
"b": {
"type": "string",
"description": "Second strategy: id, id prefix, stamp id or symbol.",
"default": ""
}
},
"additionalProperties": false,
"required": [
"a",
"b"
]
}
strategy_explain{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Explain a strategy in plain English, phase by phase \u2014 generated from its canon, no LLM, the same words every time.",
"properties": {
"strategy": {
"type": "string",
"description": "Id, id prefix, stamp id (IP-XXXX-XXXX) or symbol.",
"default": ""
}
},
"additionalProperties": false,
"required": [
"strategy"
]
}
strategy_export{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Export a strategy as a stamp, armored payload, canonical JSON or IdiotScript.",
"properties": {
"strategy": {
"type": "string",
"description": "Id, id prefix, stamp id or symbol.",
"default": ""
},
"format": {
"type": "string",
"enum": [
"stamp",
"armor",
"json",
"script"
],
"description": "stamp (default), armor (payload only), json (canonical) or script (IdiotScript).",
"default": "stamp"
}
},
"additionalProperties": false,
"required": [
"strategy"
]
}
strategy_fires{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Why a strategy did or didn\u0027t fire: its recent gate verdicts (conditions met, LLM veto, Risk Guardian block, order placed or rejected) and where it stands now.",
"properties": {
"strategy": {
"type": "string",
"description": "Id, id prefix, stamp id or symbol.",
"default": ""
},
"limit": {
"type": "integer",
"description": "How many verdicts to show (default 20, max 200).",
"default": 20
}
},
"additionalProperties": false,
"required": [
"strategy"
]
}
strategy_from_text to save exactly what was shown (the LLM is not called again). It saves inactive, in Sandbox by default, 1 share when unsized.{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Turn a plain-English description into a strategy (via the LLM), show its stamp, and save it only when you confirm.",
"properties": {
"description": {
"type": "string",
"description": "The strategy in plain English (\u0060-\u0060 reads stdin).",
"default": ""
},
"ticker": {
"type": "string",
"description": "The symbol to trade (default: the first ticker-looking word, e.g. $NVDA or NVDA)."
},
"mode": {
"type": "string",
"enum": [
"sandbox",
"paper",
"live"
],
"description": "Broker mode for the saved strategy: sandbox (default) or paper.",
"default": "sandbox"
},
"title": {
"type": "string",
"description": "Title for the saved strategy (default: its own name, else \u0022SYM strategy\u0022)."
}
},
"additionalProperties": false,
"required": [
"description"
]
}
strategy_from_watchliststrategy create; an item that fails is reported and skipped. Items already present (same symbol and title) or repeated in the file are skipped, so re-running is safe. New strategies start inactive in Sandbox with 1 share when unsized; --activate turns on the items marked active.{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Create one strategy per item of a watchlist JSON file (the Monitor\u0027s create-strategies, through the CLI).",
"properties": {
"file": {
"type": "string",
"description": "A watchlist JSON file (absolute path: the Hub reads it), the JSON itself, or \u0060-\u0060 for stdin: [{\u0022title\u0022,\u0022symbol\u0022,\u0022script\u0022,\u0022description\u0022,\u0022author\u0022,\u0022originTranscript\u0022,\u0022active\u0022}].",
"default": ""
},
"mode": {
"type": "string",
"enum": [
"sandbox",
"paper",
"live"
],
"description": "Broker mode for every new strategy: sandbox (default) or paper.",
"default": "sandbox"
},
"activate": {
"type": "boolean",
"description": "Activate items marked \u0022active\u0022: true (default: everything starts inactive).",
"default": false
},
"dry_run": {
"type": "boolean",
"description": "Validate every item and report what would happen without saving.",
"default": false
}
},
"additionalProperties": false,
"required": [
"file"
]
}
strategy_history{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "A strategy\u0027s trail, newest first: Monitor verdicts and fills, diary trades, and the CLI/MCP commands that touched it.",
"properties": {
"strategy": {
"type": "string",
"description": "Id, id prefix, stamp id or symbol.",
"default": ""
},
"limit": {
"type": "integer",
"description": "How many events to show (default 40, max 500).",
"default": 40
}
},
"additionalProperties": false,
"required": [
"strategy"
]
}
strategy_import{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Create a strategy from a stamp, canonical JSON or IdiotScript. It starts inactive in Sandbox.",
"properties": {
"source": {
"type": "string",
"description": "A pasted stamp/armor/IPS1 payload, canonical JSON, or IdiotScript text (\u0060-\u0060 reads stdin).",
"default": ""
},
"title": {
"type": "string",
"description": "Title for the new strategy (default: the strategy\u0027s own name or symbol)."
},
"mode": {
"type": "string",
"enum": [
"sandbox",
"paper",
"live"
],
"description": "Broker mode for the new strategy: sandbox (default) or paper. Live is a separate, confirmed step.",
"default": "sandbox"
}
},
"additionalProperties": false,
"required": [
"source"
]
}
strategy_list{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "List your strategies with mode, position and live condition progress.",
"properties": {
"active": {
"type": "boolean",
"description": "Only strategies the Monitor is evaluating.",
"default": false
},
"symbol": {
"type": "string",
"description": "Only this symbol."
},
"mode": {
"type": "string",
"enum": [
"sandbox",
"paper",
"live"
],
"description": "Only this broker mode (sandbox, paper, live)."
},
"deleted": {
"type": "boolean",
"description": "Include soft-deleted strategies (hidden by default).",
"default": false
}
},
"additionalProperties": false
}
strategy_mode{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Route a strategy to sandbox, paper or live. Switching to live needs a confirmation code.",
"properties": {
"strategy": {
"type": "string",
"description": "Id, id prefix, stamp id or symbol.",
"default": ""
},
"mode": {
"type": "string",
"enum": [
"sandbox",
"paper",
"live"
],
"description": "sandbox, paper or live (live needs a confirmation code).",
"default": "sandbox"
},
"confirmation_code": {
"type": "string",
"description": "Only after the user explicitly approves the preview: the code a previous call of this tool returned."
}
},
"additionalProperties": false,
"required": [
"strategy",
"mode"
]
}
strategy_progress{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "How close a strategy is to firing: conditions passing N/M, the first failing verb and the last price, optionally watched.",
"properties": {
"strategy": {
"type": "string",
"description": "Id, id prefix, stamp id or symbol.",
"default": ""
},
"watch": {
"type": "boolean",
"description": "Keep sampling the Monitor\u0027s progress row and report each change: a terminal streams until Ctrl\u002BC or all conditions pass; MCP/--json are bounded by --samples.",
"default": false
},
"every": {
"type": "integer",
"description": "Seconds between samples while watching (0-60, default 5).",
"default": 5
},
"samples": {
"type": "integer",
"description": "How many samples to take while watching (1-120; default 12 for MCP/--json, unlimited in a terminal)."
}
},
"additionalProperties": false,
"required": [
"strategy"
]
}
strategy_quarantine{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "List strategies the Monitor refuses to evaluate (canon unreadable, or no canon and a script that doesn\u0027t parse), with the reason.",
"properties": {
"symbol": {
"type": "string",
"description": "Only this symbol."
}
},
"additionalProperties": false
}
strategy_renamestrategy history matches the new title from now on.