{"serverId":"mcp-registry/com.optionsbell/options-flow","tools":[{"name":"get_dataset_stats","fixed":{"name":"get_dataset_stats","description":"Discover what data is available before querying: date ranges, contract counts, symbol counts and sector coverage for the unusual-activity dataset and its daily aggregates. Call this first when unsure about available history.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"annotations":{"readOnlyHint":true},"title":"Dataset coverage"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":103,"tokensAfter":103},{"name":"get_expiry_concentration","fixed":{"name":"get_expiry_concentration","description":"Where the day's unusual premium sits along the expiry axis, in DTE buckets (0-7, 8-30, 31-90, 90+) with call/put splits. Heavy short-dated premium reads as event bets; heavy long-dated as positioning.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Trading day, YYYY-MM-DD. Defaults to the latest available day."},"symbols":{"type":"string","description":"Comma-separated tickers, e.g. 'AAPL,NVDA,TSLA'."}}},"annotations":{"readOnlyHint":true},"title":"Expiry (DTE) concentration (Pro)"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":162,"tokensAfter":162},{"name":"get_flow_history","fixed":{"name":"get_flow_history","description":"End-of-day series of one symbol's UNUSUAL options flow (aggregated from the contracts that passed the unusual filter - not the full tape): daily call/put volume, premium, C/P ratios, average IV, net delta and the consecutive-day streak. ~75 trading days - the series behind back-tests and 'how has unusual flow on NVDA developed?'","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["symbol"],"properties":{"limit":{"type":"integer","maximum":200,"minimum":1,"description":"Max rows, newest first (default 90)."},"symbol":{"type":"string","maxLength":10,"minLength":1,"description":"Single ticker, e.g. 'TSLA'."},"date_to":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Range end, YYYY-MM-DD inclusive."},"date_from":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Range start, YYYY-MM-DD inclusive."}}},"annotations":{"readOnlyHint":true},"title":"Per-symbol unusual-flow history (Pro)"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":259,"tokensAfter":259},{"name":"get_flow_sentiment","fixed":{"name":"get_flow_sentiment","description":"Bullish/bearish classification of each symbol's unusual flow with a 0-9 strength score, based on call/put volumes, premium and net delta. Pass a symbol for that ticker's sentiment time series (date_from, date_to, limit apply); omit it for the cross-market snapshot (filterable by sector, side, minimum strength or premium).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Trading day, YYYY-MM-DD. Defaults to the latest available day."},"side":{"enum":["bullish","bearish"],"type":"string","description":"Only rows classified with this signal side (snapshot only)."},"limit":{"type":"integer","maximum":500,"minimum":1},"offset":{"type":"integer","maximum":9007199254740991,"minimum":0,"description":"Snapshot only. Rows to skip for paging; the response reports filtered_total and has_more."},"sector":{"type":"string","description":"GICS sector name, e.g. 'Information Technology' (snapshot only)."},"symbol":{"type":"string","description":"Single ticker for its sentiment series; omit for the market-wide snapshot."},"date_to":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Range end, YYYY-MM-DD inclusive."},"symbols":{"type":"string","description":"Comma-separated tickers, e.g. 'AAPL,NVDA,TSLA'."},"date_from":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Range start, YYYY-MM-DD inclusive."},"min_premium":{"type":"number","description":"Minimum call+put premium in USD (snapshot only)."},"signal_only":{"type":"boolean","description":"Only rows with an active bullish/bearish signal (snapshot only)."},"min_strength":{"type":"integer","maximum":9,"minimum":0,"description":"Snapshot only; rows without a signal count as 0."}}},"annotations":{"readOnlyHint":true},"title":"Flow sentiment (Pro)"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":512,"tokensAfter":512},{"name":"get_flow_streaks","fixed":{"name":"get_flow_streaks","description":"Symbols with unusual options activity on N+ consecutive trading days, with the dominant side (call/put). Persistent unusual flow is a stronger signal than a single print - use for 'where does money keep showing up?'","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Trading day, YYYY-MM-DD. Defaults to the latest available day."},"side":{"enum":["call","put","all"],"type":"string","description":"Dominant side by C/P volume ratio."},"limit":{"type":"integer","maximum":200,"minimum":1},"offset":{"type":"integer","maximum":9007199254740991,"minimum":0,"description":"Rows to skip for paging; the response reports filtered_total and has_more."},"symbols":{"type":"string","description":"Comma-separated tickers, e.g. 'AAPL,NVDA,TSLA'."},"min_streak":{"type":"integer","maximum":365,"minimum":1,"description":"Minimum consecutive days (default 3)."},"min_volume":{"type":"number"}}},"annotations":{"readOnlyHint":true},"title":"Multi-day unusual-flow streaks (Pro)"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":291,"tokensAfter":291},{"name":"get_iv_rank","fixed":{"name":"get_iv_rank","description":"IV rank and IV percentile per symbol against its rolling history (needs 20+ days). Pass a symbol for its IV-rank time series (lookback_days, limit apply); omit it for a ranked snapshot (e.g. side=put&min_rank=0.8 finds elevated put IV; side=both ranks by the higher of call/put IV rank).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"side":{"enum":["call","put","both"],"type":"string","description":"Snapshot only (default both)."},"limit":{"type":"integer","maximum":500,"minimum":1},"symbol":{"type":"string","description":"Single ticker for its IV-rank series; omit for the snapshot."},"max_rank":{"type":"number","maximum":1,"minimum":0,"description":"Snapshot only."},"min_rank":{"type":"number","maximum":1,"minimum":0,"description":"Snapshot only."},"lookback_days":{"type":"integer","maximum":9007199254740991,"minimum":1}}},"annotations":{"readOnlyHint":true},"title":"IV rank (Pro)"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":257,"tokensAfter":257},{"name":"get_market_regime","fixed":{"name":"get_market_regime","description":"Market-wide breadth of unusual flow per trading day: breadth score 0-100, aggregate call/put ratio, regime label (bullish/bearish/mixed) and signal counts. Use for 'what's the overall tone of the unusual-flow tape?'","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Trading day, YYYY-MM-DD. Defaults to the latest available day."},"limit":{"type":"integer","maximum":365,"minimum":1,"description":"Max daily rows, newest first (default 30)."},"date_to":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Range end, YYYY-MM-DD inclusive."},"date_from":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Range start, YYYY-MM-DD inclusive."}}},"annotations":{"readOnlyHint":true},"title":"Market breadth & regime (Pro)"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":233,"tokensAfter":233},{"name":"get_oi_changes","fixed":{"name":"get_oi_changes","description":"Day-over-day open-interest change per symbol (total, calls, puts) - fresh positioning being built or unwound. Pass a symbol for its OI-change series (date_from, date_to, limit apply); omit it for market-wide gainers/losers.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Trading day, YYYY-MM-DD. Defaults to the latest available day."},"side":{"enum":["gainers","losers","all"],"type":"string","description":"Market-wide view only."},"limit":{"type":"integer","maximum":500,"minimum":1},"offset":{"type":"integer","maximum":9007199254740991,"minimum":0,"description":"Market-wide view only. Rows to skip for paging; the response reports filtered_total and has_more."},"symbol":{"type":"string","description":"Single ticker for its OI-change series; omit for the market-wide view."},"date_to":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Range end, YYYY-MM-DD inclusive."},"symbols":{"type":"string","description":"Comma-separated tickers, e.g. 'AAPL,NVDA,TSLA'."},"date_from":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Range start, YYYY-MM-DD inclusive."},"min_prev_oi":{"type":"number","description":"Minimum prior-day OI to filter low-base noise (default 1000; market-wide only)."},"min_change_pct":{"type":"number","description":"Minimum absolute day-over-day change, e.g. 0.5 = 50% (market-wide only)."}}},"annotations":{"readOnlyHint":true},"title":"Open-interest changes (Pro)"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":423,"tokensAfter":423},{"name":"get_sector_flow","fixed":{"name":"get_sector_flow","description":"Which sectors the day's unusual options premium is concentrating in: total premium, volume, average net delta and bullish/bearish symbol counts per sector label (11 GICS sectors plus Diversified, Unknown and Unclassified; only labels with activity, at most 14 rows).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Trading day, YYYY-MM-DD. Defaults to the latest available day."},"limit":{"type":"integer","maximum":50,"minimum":1,"description":"Default 50 returns every group."}}},"annotations":{"readOnlyHint":true},"title":"Sector unusual-flow rollup (Pro)"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":180,"tokensAfter":180},{"name":"get_symbol_flow","fixed":{"name":"get_symbol_flow","description":"Every unusual contract on a single ticker, ranked by score (Vol/OI weighted by premium). Use when the question is about one specific stock's unusual options flow.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["symbol"],"properties":{"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Trading day, YYYY-MM-DD. Defaults to the latest available day."},"type":{"enum":["c","p","all"],"type":"string"},"limit":{"type":"integer","maximum":500,"minimum":1},"symbol":{"type":"string","maxLength":10,"minLength":1,"description":"Single ticker, e.g. 'TSLA'."},"date_to":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Range end, YYYY-MM-DD inclusive."},"date_from":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Range start, YYYY-MM-DD inclusive."},"min_voloi":{"type":"number"},"min_premium":{"type":"number"}}},"annotations":{"readOnlyHint":true},"title":"Per-symbol unusual activity"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":266,"tokensAfter":266},{"name":"get_top_prints","fixed":{"name":"get_top_prints","description":"The day's biggest options bets ranked by estimated premium - the same view OptionsBell alert emails lead with. Perfect for 'what were the largest options trades today?'","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Trading day, YYYY-MM-DD. Defaults to the latest available day."},"type":{"enum":["c","p","all"],"type":"string"},"limit":{"type":"integer","maximum":100,"minimum":1,"description":"Max rows (default 20)."},"offset":{"type":"integer","maximum":9007199254740991,"minimum":0,"description":"Rows to skip for paging; the response reports filtered_total and has_more."},"symbols":{"type":"string","description":"Comma-separated tickers, e.g. 'AAPL,NVDA,TSLA'."},"min_premium":{"type":"number","description":"Minimum premium in USD (default 25000)."}}},"annotations":{"readOnlyHint":true},"title":"Top prints of the day"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":258,"tokensAfter":258},{"name":"get_unusual_activity","fixed":{"name":"get_unusual_activity","description":"Contract-level unusual options activity scan across 7,000+ US stocks (the dataset behind OptionsBell alerts). Filter by symbols, side and thresholds: Vol/OI ratio, premium (USD), IV, days-to-expiration, volume, open interest. Rows include strike, expiry, volume, open interest, IV, delta, sector and an estimated premium. Use for questions like 'what unusual put buying hit TSLA today?'","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"raw":{"type":"boolean","description":"true = skip the always-on base floor (Vol/OI>=1.5, OI>=100, premium>=$25k)."},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Trading day, YYYY-MM-DD. Defaults to the latest available day."},"type":{"enum":["c","p","all"],"type":"string","description":"Side: c = calls, p = puts (default all)."},"limit":{"type":"integer","maximum":1000,"minimum":1,"description":"Max rows (default 300)."},"since":{"type":"string","description":"ISO-8601 timestamp; only contracts last seen intraday at or after this time (for polling)."},"min_iv":{"type":"number","description":"Minimum implied volatility in percent, e.g. 60."},"min_oi":{"type":"number","description":"Minimum open interest."},"offset":{"type":"integer","maximum":9007199254740991,"minimum":0,"description":"Rows to skip for paging; the response reports filtered_total and has_more."},"date_to":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Range end, YYYY-MM-DD inclusive."},"max_dte":{"type":"integer","maximum":9007199254740991,"minimum":-9007199254740991,"description":"Maximum days to expiration, e.g. 30."},"symbols":{"type":"string","description":"Comma-separated tickers, e.g. 'AAPL,NVDA,TSLA'."},"date_from":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Range start, YYYY-MM-DD inclusive."},"min_voloi":{"type":"number","description":"Minimum volume/open-interest ratio, e.g. 5."},"min_volume":{"type":"number","description":"Minimum contract volume."},"min_premium":{"type":"number","description":"Minimum estimated premium in USD, e.g. 250000."}}},"annotations":{"readOnlyHint":true},"title":"Unusual options activity"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":598,"tokensAfter":598},{"name":"ping","fixed":{"name":"ping","description":"Liveness check for the OptionsBell MCP server. No API key required.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"annotations":{"readOnlyHint":true},"title":"Ping"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":56,"tokensAfter":56}],"toolsChanged":13,"tokensSaved":0,"todo":[{"tool":"get_flow_sentiment","params":["limit"]},{"tool":"get_flow_streaks","params":["limit","min_volume"]},{"tool":"get_iv_rank","params":["limit","lookback_days"]},{"tool":"get_oi_changes","params":["limit"]},{"tool":"get_symbol_flow","params":["type","limit","min_voloi","min_premium"]},{"tool":"get_top_prints","params":["type"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}