Collect a single Schwab MCP data snapshot (accounts, quotes, indicators, option chains) with a five-minute cache so trading agents can reuse consistent inputs. Use whenever an options persona needs fresh risk, market, or chain data before recommending trades.
View on GitHubJanuary 21, 2026
Select agents to install to:
npx add-skill https://github.com/jkoelker/zephyr/blob/main/skills/schwab-data-sweep/SKILL.md -a claude-code --skill schwab-data-sweepInstallation paths:
.claude/skills/schwab-data-sweep/# Schwab Data Sweep Reliable trade proposals in this workspace start from the same broker payloads. This skill centralizes that workflow so every persona reuses the identical snapshot and cache policy. ## Inputs - `primary_symbol` (string): Underlying or index to analyze. Prefix indices/volatility products with `$` (e.g., `$SPX`, `$VIX`, `$VIX1D`) to avoid equity substitutions. - `additional_symbols` (list, optional): Extra tickers for quotes (e.g., the wheel watchlist or hedge ETFs). Keep the list tight to minimize MCP latency. - `include_option_chain` (bool, default true): Fetch option chain data for `primary_symbol`. - `indicators` (list, optional): Indicator payloads to compute. Supported values: `atr`, `rsi`, `expected_move`, `historical_volatility`. - `force_refresh` (bool, default false): Ignore cached payloads even if they are younger than five minutes. ## Outputs Structured dictionary stored in memory for the calling agent: - `timestamp`: ISO string + broker timezone from `mcp__schwab__get_datetime`. - `account`: Payload from `mcp__schwab__get_account_with_positions()`. - `quotes`: Map of symbol → quote (from `mcp__schwab__get_quotes()`). - `historical`: Optional OHLCV data (from `mcp__schwab__get_price_history_every_day()` for 1M window). - `option_chain`: Optional option chain snapshot (when requested). - `indicators`: Any computed indicators with metadata about lookback and parameters. ## Instructions 1. **Cache Check** - Maintain a per-symbol cache keyed by `primary_symbol` + sorted `additional_symbols`. - Reuse the existing snapshot when `force_refresh` is false and the cached timestamp is ≤5 minutes old. - When reusing, surface the original Schwab timestamp so downstream persona messaging reflects the data age. 2. **Authentication Guardrail** - Call `mcp__schwab__get_account_numbers()` once per session if the MCP client indicates an unauthenticated state. Abort and return a `BLOCK` flag if authentication fails. 3. **Account & Capital