GammaRips Options Intelligence

Anti-firehose options-flow data for AI agents: curated daily pool, features, realized outcomes.

Community: Submitted by a user or imported; check the owner before granting accessOnlineAPI key requiredGlobalFreeRead-only

What it can do

    What data it sees

    Do you need an account

    An API key from the service settings is required

    Anti-firehose options-flow data for AI agents: curated daily pool, features, realized outcomes.

    How to connect

    How to connect GammaRips Options Intelligence to Claude

    The server address to paste into Claude settings:

    https://mcp.gammarips.com/mcp

    1. Open Claude (claude.ai or the desktop app).
    2. Go to Settings → Connectors.
    3. Click Add custom connector.
    4. Paste the server address copied below into Remote MCP server URL and click Add.
    5. In a chat, click + → Connectors and switch the new connector on.

    Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.

    Authorization

    After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.

    How to connect GammaRips Options Intelligence to ChatGPT

    The server address to paste into ChatGPT settings:

    https://mcp.gammarips.com/mcp

    1. Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
    2. Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
    3. Open Settings → Connectors and click Create.
    4. Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
    5. Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
    6. In a new chat open + → Apps/Connectors and enable the connector.

    OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.

    Authorization

    On first use ChatGPT opens the service's sign-in window. Sign in and approve access.

    How to connect GammaRips Options Intelligence to Cursor

    The server address to paste into Cursor settings:

    https://mcp.gammarips.com/mcp

    Fastest: click Open in Cursor below and confirm the prompt.

    Manually:

    1. In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
    2. Paste the JSON copied below into ~/.cursor/mcp.json (per project: .cursor/mcp.json in the repo root).
    3. Save the file. The server appears in the MCP list; authorize it there if asked.

    Authorization

    If the service needs sign-in, an authorize button appears next to the server in the MCP list.

    Server tool list (9)

    Raw names from tools/list. Only developers need these.

    get_pool The GammaRips candidate pool for a scan date. One tool, four `view`s: * view="enriched" (DEFAULT) — the AI-enriched pool: news, technicals, catalyst, the recommended contract (an OTM call chosen on contract liquidity), and the 60-day momentum feature `mom_60`. Funnel for scan_date >= 2026-08-24 (liquid-universe era): the 100 most liquid optionable names, BULLISH only, one call each, roughly 40-50 rows. Liquidity decides membership, not unusual activity; the $500K UOA floor is retired and `overnight_score>=1` is a cosmetic floor. Earlier scan dates come from the prior UOA-gated funnel (UOA>$500K, top-50 BULLISH); the two eras are not one population. This is the daily candidate set your agent reasons over to its OWN contract (see get_playbook("run-your-own-tournament")). Served from a leakage-safe view (forward-outcome columns physically stripped); `summary=True` gives ~21 decision columns, `fields=[...]` a strict projection, `summary=False` full rows, `offset` pages. * view="raw" — the wide overnight scan BEFORE the pool cut (the ranked liquid universe for scan_date >= 2026-08-24; the market-wide unusual-activity scan for earlier dates). Honors `direction`, `min_score`, `ticker`, `limit`. * view="features" — point-in-time FEATURE VECTORS from the leakage-safe allowlist view `enriched_features_v1` (identity + features + cohort metadata only; no outcome/label/telemetry column can appear). The quantitative substrate for joining against query_outcomes. Lags the live pool by ~1-2 trading days. * view="preview" — a minimal public teaser (ticker, direction, score, headline, directional UOA) for the most recent scan; no contract specifics or thesis. TIER: view="preview" is FREE (no key). The enriched / raw / features views are the paid product — they require an ac
    get_signal Deep dive on a single ticker/contract. Two `view`s: * view="detail" (DEFAULT) — the full enriched signal for one ticker: thesis, catalyst, the recommended contract, and point-in-time features (leakage-safe view). `full=true` includes the long narrative (news_summary, flow_intent_reasoning). If the ticker isn't in the pool for the date, the error lists the dates on which it does appear. * view="earnings" — the doctrine earnings-window check (RM-003): the next scheduled earnings date and whether it lands ON OR BEFORE the contract expiration (`earnings_in_window`). The engine applies this rail only at its own pick time, NOT in the pool, so pool rows CAN carry earnings-window names — check every candidate yourself. Pass the pool's `recommended_contract` and both ticker and expiration are derived. FAIL-CLOSED: unknown date -> earnings_in_window=null, treat as in-window. Args: ticker: underlying symbol (required for detail; optional for earnings if `contract` is given). view: "detail" (default) | "earnings". scan_date: detail only — YYYY-MM-DD (default: latest for the ticker). full: detail only — include the long narrative fields. expiration: earnings only — option expiration YYYY-MM-DD to test. contract: earnings only — OCC ticker supplying ticker+expiration.
    get_liquidity FRESH (entry-day) liquidity — the read the pool's session-frozen `recommended_oi`/`recommended_volume` cannot give you (the overnight sweep only becomes OI the next morning). Two modes, chosen by whether you pass a single `contract`: * `contract` given — ONE contract's snapshot: open interest, session volume, last trade, day range, underlying price, greeks. Cache-first (the engine re-reads the pool every ~10 min in market hours); pass live=true to force a fresh upstream fetch or read a contract NOT in today's pool. * `contract` omitted — the WHOLE current pool (or your `contracts` shortlist, max 60) in ONE call — the batch companion for the ~10:00 ET decision window. Most-recent read per contract with explicit `as_of`. Deliberately serves NO bid/ask/mid/spread (not available on the current data plan — absent, not NULL). Judge fill risk from open_interest (updates once each morning), day_volume (live session), last_trade recency, and the day range. Args: contract: OCC ticker for the single-contract mode (verbatim from the pool's `recommended_contract`). Omit for the whole-pool batch. scan_date: pool date YYYY-MM-DD (batch mode; default: latest pool). contracts: optional shortlist filter for the batch mode (max 60). live: single-contract mode — force a fresh upstream fetch.
    query_outcomes The realized-outcome + receipts substrate behind the engine. One tool, nine `view`s. Whole-pool composites under any FIXED exit are NEGATIVE by construction — these are a research surface (how outcomes distribute across features and exits), never a strategy track record. * view="labels" (DEFAULT) — row-level realized bracket LABELS joined to point-in-time features. horizon "same_day" (live V7.1 GIGO +40/-30) or "3d" (legacy +80/-60) — never pooled. NULL-label and illiquid rows excluded (counts in meta). `aggregate_only=True` returns summary stats instead of rows. Filters: scan_date_from/to, ticker, delta_min/max, min_overnight_score, exit_reason. * view="summary" — grouped aggregates over the labeled pool. `group_by` one of none|delta_bucket|overnight_score|premium_score|exit_reason| day_of_week|moneyness_bucket. * view="surface" — the OPPORTUNITY SURFACE: per-contract realized MFE/MAE excursions with NO exit applied (profit potential, exit free). Uses scan_date OR a `days` lookback, `ticker`, `delta_min/max`, `include_open`. `aggregate_only=True` returns MFE/MAE quantiles over the FULL filtered set — use it for exit design. The row mode is capped at 200 and truncates oldest-first WITHIN a scan_date, so its oldest date is a highest-MFE-only slice; it reports `truncated`, `matched_rows`, and `partial_scan_date` so you can see that happen. * view="harvest" — the touch-probability curve: P(premium touched +X%) with CIs, day-of-peak buckets, stop-touch rates. `targets`, `stops`, date range, delta band. * view="exit_rule" — RESEARCH-ONLY "bring your exit, we score it": rule="bracket" (target_pct/stop_pct) or rule="trailing" (trail_pct, activation_pct) scored against the surface / minute tape. * view="signal_performance" — UNDERLYING-STOCK direction outcomes for the bro
    replay_contract Raw option price data for YOUR OWN entry/exit rule. This server does NOT simulate or validate exits — it returns bars (the RM-002/RM-004 boundary). Two `granularity` modes: * granularity="minute" (DEFAULT) — the intraday minute path for one session (`date` required). Optionally pass a bracket (target_pct/ stop_pct, PERCENT of the 10:00 ET anchor) and the response also reports the exact FIRST-CROSSING sequence measured from the tape. Pool excursion windows are served from the engine's minute-path table; anything else falls back to an upstream minute fetch. * granularity="day" — the DAILY mark series (OHLCV) over a date range, to mark a live paper position day by day or replay a closed one. Uses `from_date`/`to_date` (span capped at 120 days); `date` is ignored. Option tape is THIN — minutes/days with no prints have no bar; treat touch times as evidence, not tick-perfect truth. Paper-trade research data; not investment advice. Args: contract: OCC option ticker (e.g. "O:UNIT260717C00030000"). date: minute mode — ET session date YYYY-MM-DD (required). granularity: "minute" (default) | "day". target_pct: minute mode — optional +X% level for first-crossing. stop_pct: minute mode — optional -Y% level for first-crossing. from_date: day mode — start YYYY-MM-DD (default: 30d before to_date). to_date: day mode — end YYYY-MM-DD inclusive (default: today ET).
    get_regime_context Point-in-time market-regime context for a scan date: VIX close, VIX3M, SPY trend state, and the 5-day VIX delta — all as-of <= scan_date (the selection point, leakage-safe), plus the engine's regime safety rail evaluated on those values. The rail: the engine fail-closes (no trade) when spot VIX > VIX3M (backwardation — the market pricing imminent volatility is an adverse regime for short-dated directional longs). Served from the labeled substrate, which lags the live pool by ~1-2 trading days. Values are constant per scan_date. Args: scan_date: YYYY-MM-DD. Defaults to the latest scan date carrying regime features. Returns: {scan_date, vix_at_scan, vix3m_at_enrich, spy_trend_at_scan, vix_5d_delta_at_scan, regime_rail_pass, rail_definition}
    get_market_calendar_status Market-calendar reference. Two `view`s: * view="status" (DEFAULT) — is the US equity market open today, plus the next open/close, holiday, and early-close flags (NYSE calendar, deterministic — no "is the market open?" hallucination). * view="scan_dates" — which recent scan dates have GammaRips data, with per-date signal counts (the pool's data-availability calendar). Args: view: "status" (default) | "scan_dates".
    get_playbook Methodology + reference, versioned server-side (re-fetch rather than caching long-term). Arg-driven: * `field` given — the plain-English DEFINITION + role of a signal field (deterministic lookup, no LLM). e.g. field="mom_60". The response's `available_fields` lists every documented field. * `name` given — a methodology playbook (markdown) by name, OR two special reference pages: - name="schema" (or "data-contract") -> the machine-readable substrate DATA CONTRACT: every outcome/label column with its leakage classification (feature|label|opportunity| regime_telemetry|identity) and as-of boundary. Only `feature` columns are safe as selection inputs. - any other name -> the playbook markdown (start-here, daily-workflow, run-your-own-tournament, exit-lab, leakage-and-data-contract, changelog). * neither — the CATALOG of published playbooks (name/title/summary), plus a pointer to the field dict (`field=`) and schema page. Args: name: playbook name, or "schema"/"data-contract" for the data contract. field: a signal field name to explain (overrides `name`).
    get_daily_report The daily intelligence report. Two `view`s: * view="report" (DEFAULT) — the full report (title, markdown content, scan_date) for `date`, or the most recent report if `date` is omitted. * view="list" — recent reports, most recent first (scan_date, title, created_at), titles deduped. Use `limit`. Args: date: report date YYYY-MM-DD (report view; default: most recent). view: "report" (default) | "list". limit: list view — how many reports (default 10, clamped 1-30).