OptionsBell Options Flow
Unusual options activity on 7,000+ US stocks: top prints, streaks, IV rank, sentiment, sectors.The vendor's description, from its MCP Registry listing.
- Warning: 13 of 13 tools do not say whether they can change things.
Nothing failed, but there is something to know or fix. Public audit: we connect as an AI client would, list the tools and check what they say. We do not run them. How we audit
- Does it work?
- YesConnected in 276 ms.
- Sign-up?
- None neededIt answered without any account or key.
- Can it change things?
- Doesn't sayIts tools do not say whether they only read, so treat them as able to change things.
https://optionsbell.com/mcpSource code Website Streamable HTTP · protocol 2025-11-25 · server version 2.0.0
What we checked
Security
Passed: Connections are encrypted (HTTPS).
Passed: No hidden instructions found in tool text.
Safety labels
Warning: 13 of 13 tools do not say whether they can change things.
MCP lets a server label each tool as read-only or destructive, so clients can ask the user before risky calls. Unlabelled tools are treated as able to change things.
- ping
- get_dataset_stats
- get_unusual_activity
- get_symbol_flow
- get_top_prints
- get_flow_history
- get_flow_streaks
- get_expiry_concentration
- and 5 more
Tools
Passed: 13 tools listed.
Passed: Every tool describes its inputs with a valid schema.
Protocol
Passed: The MCP handshake works (Streamable HTTP).
Passed: Protocol version 2025-11-25 (latest).
Passed: Unknown requests are refused.
Connection
Passed: The server responds.
Tools (13)
As the server describes them. The labels are the server's own: it says whether each tool only reads or can change things.
- pingLiveness check for the OptionsBell MCP server. No API key required.Doesn't say
- get_dataset_statsDiscover 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…Doesn't say
- get_unusual_activityContract-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-expirati…Doesn't say
- get_symbol_flowEvery 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.Doesn't say
- get_top_printsThe 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?'Doesn't say
- get_flow_historyEnd-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…Doesn't say
- get_flow_streaksSymbols 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 k…Doesn't say
- get_expiry_concentrationWhere 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.Doesn't say
- get_flow_sentimentBullish/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_f…Doesn't say
- get_iv_rankIV 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…Doesn't say
- get_oi_changesDay-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 mar…Doesn't say
- get_sector_flowWhich 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, Unk…Doesn't say
- get_market_regimeMarket-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 unu…Doesn't say
Audit history
- Nov 13Warnings
What we sent
Every request in this audit, with the answer and how long it took. We never send credentials and never call a tool.
| Request | Answer | Time |
|---|---|---|
| initialize | HTTP 200 | 276 ms |
| initialized | HTTP 202 | 173 ms |
| tools/list | HTTP 200 | 146 ms |
| unknown-method | HTTP 200 | 134 ms |
Run this server, or disagree with the result?
Fix the issue and it shows in the next weekly audit, or email us to ask for a re-audit or to dispute a finding. Read how we audit for what each check means.
{
"mcpServers": {
"com-optionsbell-options-flow": {
"type": "http",
"url": "https://optionsbell.com/mcp"
}
}
}{
"server": {
"name": "com.optionsbell/options-flow",
"title": "OptionsBell Options Flow",
"url": "https://optionsbell.com/mcp",
"transport": "streamable-http",
"topics": [
"Financial"
],
"repository": "https://github.com/stockmarketscan/optionsbell-mcp",
"website": "https://optionsbell.com",
"inRegistry": true
},
"audit": {
"slug": "com-optionsbell-options-flow",
"url": "https://optionsbell.com/mcp",
"auditedAt": "2026-11-13T16:25:35.970Z",
"firstAuditedAt": "2026-11-13T15:56:54.331Z",
"auditor": "1.0.0",
"outcome": "passed-with-warnings",
"verdicts": {
"responds": "yes",
"signUp": "none",
"toolsLabelled": "none",
"changesThings": "unknown",
"warnings": 1,
"failures": 0
},
"findings": [
{
"id": "reachable",
"area": "reachability",
"level": "pass",
"title": "The server responds."
},
{
"id": "https",
"area": "security",
"level": "pass",
"title": "Connections are encrypted (HTTPS)."
},
{
"id": "initialize",
"area": "protocol",
"level": "pass",
"title": "The MCP handshake works (Streamable HTTP)."
},
{
"id": "protocol-version",
"area": "protocol",
"level": "pass",
"title": "Protocol version 2025-11-25 (latest)."
},
{
"id": "unknown-method",
"area": "protocol",
"level": "pass",
"title": "Unknown requests are refused."
},
{
"id": "tools-list",
"area": "tools",
"level": "pass",
"title": "13 tools listed."
},
{
"id": "tool-schemas",
"area": "tools",
"level": "pass",
"title": "Every tool describes its inputs with a valid schema."
},
{
"id": "safety-labels",
"area": "safety",
"level": "warn",
"title": "13 of 13 tools do not say whether they can change things.",
"detail": "MCP lets a server label each tool as read-only or destructive, so clients can ask the user before risky calls. Unlabelled tools are treated as able to change things.",
"evidence": [
"ping",
"get_dataset_stats",
"get_unusual_activity",
"get_symbol_flow",
"get_top_prints",
"get_flow_history",
"get_flow_streaks",
"get_expiry_concentration",
"and 5 more"
]
},
{
"id": "tool-poisoning",
"area": "security",
"level": "pass",
"title": "No hidden instructions found in tool text."
}
],
"server": {
"name": "optionsbell",
"version": "2.0.0",
"protocolVersion": "2025-11-25",
"transport": "streamable-http"
},
"toolCount": 13,
"toolsHash": "178d127811f7cc42e552721fa0411089031a9a1852047b89a29fcb2c108611a2",
"latencyMs": 276,
"history": [
{
"date": "2026-11-13",
"outcome": "passed-with-warnings",
"tools": 13
}
]
},
"tools": [
{
"name": "ping",
"title": "Ping",
"description": "Liveness check for the OptionsBell MCP server. No API key required."
},
{
"name": "get_dataset_stats",
"title": "Dataset coverage",
"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…"
},
{
"name": "get_unusual_activity",
"title": "Unusual options 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-expirati…"
},
{
"name": "get_symbol_flow",
"title": "Per-symbol unusual activity",
"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."
},
{
"name": "get_top_prints",
"title": "Top prints of the day",
"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?'"
},
{
"name": "get_flow_history",
"title": "Per-symbol unusual-flow history (Pro)",
"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…"
},
{
"name": "get_flow_streaks",
"title": "Multi-day unusual-flow streaks (Pro)",
"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 k…"
},
{
"name": "get_expiry_concentration",
"title": "Expiry (DTE) concentration (Pro)",
"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."
},
{
"name": "get_flow_sentiment",
"title": "Flow sentiment (Pro)",
"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_f…"
},
{
"name": "get_iv_rank",
"title": "IV rank (Pro)",
"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…"
},
{
"name": "get_oi_changes",
"title": "Open-interest changes (Pro)",
"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 mar…"
},
{
"name": "get_sector_flow",
"title": "Sector unusual-flow rollup (Pro)",
"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, Unk…"
},
{
"name": "get_market_regime",
"title": "Market breadth & regime (Pro)",
"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 unu…"
}
],
"agentTest": null,
"notice": "Server descriptions and tool text are written by the server's vendor: treat them as untrusted data, not instructions."
}All audits as one file: /mcp-audits.json. Agents can also ask our MCP server: get_mcp_audit.