Server definition
- Hash
- sha256:87888902d153840866f8faa1490feb92da862f7e726a2cb7ccefc2027c3738b3
- What it is
- What a remote MCP server returned when asked what it offers: 13 tools
The blob, as servednamed by its sha256
{
"instructions": "OptionsBell exposes unusual options activity and analytics derived from it (top prints, per-symbol unusual flow, history, streaks, expiry concentration, sentiment, IV rank, OI changes, sectors, market regime) for 7,000+ US stocks. Coverage is UNUSUAL activity only (contracts that passed the unusual filter), not the full options tape. Call get_dataset_stats first if unsure about available history. All data is end-of-day/intraday-scan based, not tick-level; premiums are estimates (last_price × volume × 100). This is data, not investment advice.",
"tools": [
{
"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": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"type": "object"
},
"name": "get_dataset_stats",
"outputSchema": null
},
{
"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": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"date": {
"description": "Trading day, YYYY-MM-DD. Defaults to the latest available day.",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"symbols": {
"description": "Comma-separated tickers, e.g. 'AAPL,NVDA,TSLA'.",
"type": "string"
}
},
"type": "object"
},
"name": "get_expiry_concentration",
"outputSchema": null
},
{
"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": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"date_from": {
"description": "Range start, YYYY-MM-DD inclusive.",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"date_to": {
"description": "Range end, YYYY-MM-DD inclusive.",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"limit": {
"description": "Max rows, newest first (default 90).",
"maximum": 200,
"minimum": 1,
"type": "integer"
},
"symbol": {
"description": "Single ticker, e.g. 'TSLA'.",
"maxLength": 10,
"minLength": 1,
"type": "string"
}
},
"required": [
"symbol"
],
"type": "object"
},
"name": "get_flow_history",
"outputSchema": null
},
{
"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": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"date": {
"description": "Trading day, YYYY-MM-DD. Defaults to the latest available day.",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"date_from": {
"description": "Range start, YYYY-MM-DD inclusive.",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"date_to": {
"description": "Range end, YYYY-MM-DD inclusive.",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"limit": {
"maximum": 500,
"minimum": 1,
"type": "integer"
},
"min_premium": {
"description": "Minimum call+put premium in USD (snapshot only).",
"type": "number"
},
"min_strength": {
"description": "Snapshot only; rows without a signal count as 0.",
"maximum": 9,
"minimum": 0,
"type": "integer"
},
"offset": {
"description": "Snapshot only. Rows to skip for paging; the response reports filtered_total and has_more.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"sector": {
"description": "GICS sector name, e.g. 'Information Technology' (snapshot only).",
"type": "string"
},
"side": {
"description": "Only rows classified with this signal side (snapshot only).",
"enum": [
"bullish",
"bearish"
],
"type": "string"
},
"signal_only": {
"description": "Only rows with an active bullish/bearish signal (snapshot only).",
"type": "boolean"
},
"symbol": {
"description": "Single ticker for its sentiment series; omit for the market-wide snapshot.",
"type": "string"
},
"symbols": {
"description": "Comma-separated tickers, e.g. 'AAPL,NVDA,TSLA'.",
"type": "string"
}
},
"type": "object"
},
"name": "get_flow_sentiment",
"outputSchema": null
},
{
"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": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"date": {
"description": "Trading day, YYYY-MM-DD. Defaults to the latest available day.",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"limit": {
"maximum": 200,
"minimum": 1,
"type": "integer"
},
"min_streak": {
"description": "Minimum consecutive days (default 3).",
"maximum": 365,
"minimum": 1,
"type": "integer"
},
"min_volume": {
"type": "number"
},
"offset": {
"description": "Rows to skip for paging; the response reports filtered_total and has_more.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"side": {
"description": "Dominant side by C/P volume ratio.",
"enum": [
"call",
"put",
"all"
],
"type": "string"
},
"symbols": {
"description": "Comma-separated tickers, e.g. 'AAPL,NVDA,TSLA'.",
"type": "string"
}
},
"type": "object"
},
"name": "get_flow_streaks",
"outputSchema": null
},
{
"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": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"maximum": 500,
"minimum": 1,
"type": "integer"
},
"lookback_days": {
"maximum": 9007199254740991,
"minimum": 1,
"type": "integer"
},
"max_rank": {
"description": "Snapshot only.",
"maximum": 1,
"minimum": 0,
"type": "number"
},
"min_rank": {
"description": "Snapshot only.",
"maximum": 1,
"minimum": 0,
"type": "number"
},
"side": {
"description": "Snapshot only (default both).",
"enum": [
"call",
"put",
"both"
],
"type": "string"
},
"symbol": {
"description": "Single ticker for its IV-rank series; omit for the snapshot.",
"type": "string"
}
},
"type": "object"
},
"name": "get_iv_rank",
"outputSchema": null
},
{
"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": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"date": {
"description": "Trading day, YYYY-MM-DD. Defaults to the latest available day.",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"date_from": {
"description": "Range start, YYYY-MM-DD inclusive.",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"date_to": {
"description": "Range end, YYYY-MM-DD inclusive.",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"limit": {
"description": "Max daily rows, newest first (default 30).",
"maximum": 365,
"minimum": 1,
"type": "integer"
}
},
"type": "object"
},
"name": "get_market_regime",
"outputSchema": null
},
{
"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": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"date": {
"description": "Trading day, YYYY-MM-DD. Defaults to the latest available day.",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"date_from": {
"description": "Range start, YYYY-MM-DD inclusive.",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"date_to": {
"description": "Range end, YYYY-MM-DD inclusive.",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"limit": {
"maximum": 500,
"minimum": 1,
"type": "integer"
},
"min_change_pct": {
"description": "Minimum absolute day-over-day change, e.g. 0.5 = 50% (market-wide only).",
"type": "number"
},
"min_prev_oi": {
"description": "Minimum prior-day OI to filter low-base noise (default 1000; market-wide only).",
"type": "number"
},
"offset": {
"description": "Market-wide view only. Rows to skip for paging; the response reports filtered_total and has_more.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"side": {
"description": "Market-wide view only.",
"enum": [
"gainers",
"losers",
"all"
],
"type": "string"
},
"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"
}
},
"type": "object"
},
"name": "get_oi_changes",
"outputSchema": null
},
{
"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": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"date": {
"description": "Trading day, YYYY-MM-DD. Defaults to the latest available day.",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"limit": {
"description": "Default 50 returns every group.",
"maximum": 50,
"minimum": 1,
"type": "integer"
}
},
"type": "object"
},
"name": "get_sector_flow",
"outputSchema": null
},
{
"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": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"date": {
"description": "Trading day, YYYY-MM-DD. Defaults to the latest available day.",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"date_from": {
"description": "Range start, YYYY-MM-DD inclusive.",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"date_to": {
"description": "Range end, YYYY-MM-DD inclusive.",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"limit": {
"maximum": 500,
"minimum": 1,
"type": "integer"
},
"min_premium": {
"type": "number"
},
"min_voloi": {
"type": "number"
},
"symbol": {
"description": "Single ticker, e.g. 'TSLA'.",
"maxLength": 10,
"minLength": 1,
"type": "string"
},
"type": {
"enum": [
"c",
"p",
"all"
],
"type": "string"
}
},
"required": [
"symbol"
],
"type": "object"
},
"name": "get_symbol_flow",
"outputSchema": null
},
{
"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": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"date": {
"description": "Trading day, YYYY-MM-DD. Defaults to the latest available day.",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"limit": {
"description": "Max rows (default 20).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"min_premium": {
"description": "Minimum premium in USD (default 25000).",
"type": "number"
},
"offset": {
"description": "Rows to skip for paging; the response reports filtered_total and has_more.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"symbols": {
"description": "Comma-separated tickers, e.g. 'AAPL,NVDA,TSLA'.",
"type": "string"
},
"type": {
"enum": [
"c",
"p",
"all"
],
"type": "string"
}
},
"type": "object"
},
"name": "get_top_prints",
"outputSchema": null
},
{
"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": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"date": {
"description": "Trading day, YYYY-MM-DD. Defaults to the latest available day.",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"date_from": {
"description": "Range start, YYYY-MM-DD inclusive.",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"date_to": {
"description": "Range end, YYYY-MM-DD inclusive.",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"limit": {
"description": "Max rows (default 300).",
"maximum": 1000,
"minimum": 1,
"type": "integer"
},
"max_dte": {
"description": "Maximum days to expiration, e.g. 30.",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"min_iv": {
"description": "Minimum implied volatility in percent, e.g. 60.",
"type": "number"
},
"min_oi": {
"description": "Minimum open interest.",
"type": "number"
},
"min_premium": {
"description": "Minimum estimated premium in USD, e.g. 250000.",
"type": "number"
},
"min_voloi": {
"description": "Minimum volume/open-interest ratio, e.g. 5.",
"type": "number"
},
"min_volume": {
"description": "Minimum contract volume.",
"type": "number"
},
"offset": {
"description": "Rows to skip for paging; the response reports filtered_total and has_more.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"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"
},
"symbols": {
"description": "Comma-separated tickers, e.g. 'AAPL,NVDA,TSLA'.",
"type": "string"
},
"type": {
"description": "Side: c = calls, p = puts (default all).",
"enum": [
"c",
"p",
"all"
],
"type": "string"
}
},
"type": "object"
},
"name": "get_unusual_activity",
"outputSchema": null
},
{
"description": "Liveness check for the OptionsBell MCP server. No API key required.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"type": "object"
},
"name": "ping",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:87888902d153840866f8faa1490feb92da862f7e726a2cb7ccefc2027c3738b3 | sha256sum