OptionsBell Options Flow
Unusual options activity on 7,000+ US stocks: top prints, streaks, IV rank, sentiment, sectors.
사용해야 할까요
품질 및 안전성
발견 사항 (1)
- LOWget_symbol_flow에서
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"options-flow": {
"url": "https://optionsbell.com/mcp"
}
}
}원격 엔드포인트
https://optionsbell.com/mcpstreamable-http할 수 있는 일
도구 목록
도구 (13)
🟢ping
Liveness check for the OptionsBell MCP server. No API key required.
입력 스키마
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_dataset_stats
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.
입력 스키마
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡get_unusual_activity(symbols, type, min_voloi, min_premium, min_iv, ...)
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?'
입력 스키마
{
"type": "object",
"properties": {
"symbols": {
"description": "Comma-separated tickers, e.g. 'AAPL,NVDA,TSLA'.",
"type": "string"
},
"type": {
"description": "Side: c = calls, p = puts (default all).",
"type": "string",
"enum": [
"c",
"p",
"all"
]
},
"min_voloi": {
"description": "Minimum volume/open-interest ratio, e.g. 5.",
"type": "number"
},
"min_premium": {
"description": "Minimum estimated premium in USD, e.g. 250000.",
"type": "number"
},
"min_iv": {
"description": "Minimum implied volatility in percent, e.g. 60.",
"type": "number"
},
"max_dte": {
"description": "Maximum days to expiration, e.g. 30.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"min_volume": {
"description": "Minimum contract volume.",
"type": "number"
},
"min_oi": {
"description": "Minimum open interest.",
"type": "number"
},
"raw": {
"description": "true = skip the always-on base floor (Vol/OI>=1.5, OI>=100, premium>=$25k).",
"type": "boolean"
},
"since": {
"description": "ISO-8601 timestamp; only contracts last seen intraday at or after this time (for polling).",
"type": "string"
},
"date": {
"description": "Trading day, YYYY-MM-DD. Defaults to the latest available day.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"date_from": {
"description": "Range start, YYYY-MM-DD inclusive.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"date_to": {
"description": "Range end, YYYY-MM-DD inclusive.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"limit": {
"description": "Max rows (default 300).",
"type": "integer",
"minimum": 1,
"maximum": 1000
},
"offset": {
"description": "Rows to skip for paging; the response reports filtered_total and has_more.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_symbol_flow(symbol, type, min_voloi, min_premium, date, ...)
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.
입력 스키마
{
"type": "object",
"properties": {
"symbol": {
"type": "string",
"minLength": 1,
"maxLength": 10,
"description": "Single ticker, e.g. 'TSLA'."
},
"type": {
"type": "string",
"enum": [
"c",
"p",
"all"
]
},
"min_voloi": {
"type": "number"
},
"min_premium": {
"type": "number"
},
"date": {
"description": "Trading day, YYYY-MM-DD. Defaults to the latest available day.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"date_from": {
"description": "Range start, YYYY-MM-DD inclusive.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"date_to": {
"description": "Range end, YYYY-MM-DD inclusive.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 500
}
},
"required": [
"symbol"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_top_prints(date, type, symbols, min_premium, limit, ...)
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?'
입력 스키마
{
"type": "object",
"properties": {
"date": {
"description": "Trading day, YYYY-MM-DD. Defaults to the latest available day.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"type": {
"type": "string",
"enum": [
"c",
"p",
"all"
]
},
"symbols": {
"description": "Comma-separated tickers, e.g. 'AAPL,NVDA,TSLA'.",
"type": "string"
},
"min_premium": {
"description": "Minimum premium in USD (default 25000).",
"type": "number"
},
"limit": {
"description": "Max rows (default 20).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"offset": {
"description": "Rows to skip for paging; the response reports filtered_total and has_more.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_flow_history(symbol, date_from, date_to, limit)
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?'
입력 스키마
{
"type": "object",
"properties": {
"symbol": {
"type": "string",
"minLength": 1,
"maxLength": 10,
"description": "Single ticker, e.g. 'TSLA'."
},
"date_from": {
"description": "Range start, YYYY-MM-DD inclusive.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"date_to": {
"description": "Range end, YYYY-MM-DD inclusive.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"limit": {
"description": "Max rows, newest first (default 90).",
"type": "integer",
"minimum": 1,
"maximum": 200
}
},
"required": [
"symbol"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_flow_streaks(min_streak, side, symbols, date, min_volume, ...)
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?'
입력 스키마
{
"type": "object",
"properties": {
"min_streak": {
"description": "Minimum consecutive days (default 3).",
"type": "integer",
"minimum": 1,
"maximum": 365
},
"side": {
"description": "Dominant side by C/P volume ratio.",
"type": "string",
"enum": [
"call",
"put",
"all"
]
},
"symbols": {
"description": "Comma-separated tickers, e.g. 'AAPL,NVDA,TSLA'.",
"type": "string"
},
"date": {
"description": "Trading day, YYYY-MM-DD. Defaults to the latest available day.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"min_volume": {
"type": "number"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 200
},
"offset": {
"description": "Rows to skip for paging; the response reports filtered_total and has_more.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_expiry_concentration(date, symbols)
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.
입력 스키마
{
"type": "object",
"properties": {
"date": {
"description": "Trading day, YYYY-MM-DD. Defaults to the latest available day.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"symbols": {
"description": "Comma-separated tickers, e.g. 'AAPL,NVDA,TSLA'.",
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_flow_sentiment(symbol, side, signal_only, min_strength, min_premium, ...)
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).
입력 스키마
{
"type": "object",
"properties": {
"symbol": {
"description": "Single ticker for its sentiment series; omit for the market-wide snapshot.",
"type": "string"
},
"side": {
"description": "Only rows classified with this signal side (snapshot only).",
"type": "string",
"enum": [
"bullish",
"bearish"
]
},
"signal_only": {
"description": "Only rows with an active bullish/bearish signal (snapshot only).",
"type": "boolean"
},
"min_strength": {
"description": "Snapshot only; rows without a signal count as 0.",
"type": "integer",
"minimum": 0,
"maximum": 9
},
"min_premium": {
"description": "Minimum call+put premium in USD (snapshot only).",
"type": "number"
},
"sector": {
"description": "GICS sector name, e.g. 'Information Technology' (snapshot only).",
"type": "string"
},
"symbols": {
"description": "Comma-separated tickers, e.g. 'AAPL,NVDA,TSLA'.",
"type": "string"
},
"date": {
"description": "Trading day, YYYY-MM-DD. Defaults to the latest available day.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"date_from": {
"description": "Range start, YYYY-MM-DD inclusive.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"date_to": {
"description": "Range end, YYYY-MM-DD inclusive.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 500
},
"offset": {
"description": "Snapshot only. Rows to skip for paging; the response reports filtered_total and has_more.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡get_iv_rank(symbol, side, min_rank, max_rank, lookback_days, ...)
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).
입력 스키마
{
"type": "object",
"properties": {
"symbol": {
"description": "Single ticker for its IV-rank series; omit for the snapshot.",
"type": "string"
},
"side": {
"description": "Snapshot only (default both).",
"type": "string",
"enum": [
"call",
"put",
"both"
]
},
"min_rank": {
"description": "Snapshot only.",
"type": "number",
"minimum": 0,
"maximum": 1
},
"max_rank": {
"description": "Snapshot only.",
"type": "number",
"minimum": 0,
"maximum": 1
},
"lookback_days": {
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 500
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡get_oi_changes(symbol, symbols, side, min_prev_oi, min_change_pct, ...)
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.
입력 스키마
{
"type": "object",
"properties": {
"symbol": {
"description": "Single ticker for its OI-change series; omit for the market-wide view.",
"type": "string"
},
"symbols": {
"description": "Comma-separated tickers, e.g. 'AAPL,NVDA,TSLA'.",
"type": "string"
},
"side": {
"description": "Market-wide view only.",
"type": "string",
"enum": [
"gainers",
"losers",
"all"
]
},
"min_prev_oi": {
"description": "Minimum prior-day OI to filter low-base noise (default 1000; market-wide only).",
"type": "number"
},
"min_change_pct": {
"description": "Minimum absolute day-over-day change, e.g. 0.5 = 50% (market-wide only).",
"type": "number"
},
"date": {
"description": "Trading day, YYYY-MM-DD. Defaults to the latest available day.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"date_from": {
"description": "Range start, YYYY-MM-DD inclusive.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"date_to": {
"description": "Range end, YYYY-MM-DD inclusive.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 500
},
"offset": {
"description": "Market-wide view only. Rows to skip for paging; the response reports filtered_total and has_more.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_sector_flow(date, limit)
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).
입력 스키마
{
"type": "object",
"properties": {
"date": {
"description": "Trading day, YYYY-MM-DD. Defaults to the latest available day.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"limit": {
"description": "Default 50 returns every group.",
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_market_regime(date, date_from, date_to, limit)
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?'
입력 스키마
{
"type": "object",
"properties": {
"date": {
"description": "Trading day, YYYY-MM-DD. Defaults to the latest available day.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"date_from": {
"description": "Range start, YYYY-MM-DD inclusive.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"date_to": {
"description": "Range end, YYYY-MM-DD inclusive.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"limit": {
"description": "Max daily rows, newest first (default 30).",
"type": "integer",
"minimum": 1,
"maximum": 365
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}커뮤니티
증거