# GammaRips Options Intelligence (remote · mcp.gammarips.com)

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

- Trust score: 62/100 (medium)
- Change this week: +5
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `mcp.gammarips.com`: 62/100 (this document), [markdown](https://verifymcp.io/servers/devdizzle-gammarips/mcp.md), [page](https://verifymcp.io/servers/devdizzle-gammarips/mcp)

## Channel facts

- Endpoint: `https://mcp.gammarips.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `4.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 57/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not fully verified: no authorisation is required to call this server, and 9 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 67/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 3691 tokens (~410/item across 9 items; 9 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 71/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 0% of tool parameters carry a description.
  - Structured output schemas are declared (56% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http devdizzle-gammarips https://mcp.gammarips.com/mcp
```

### Codex

```toml
[mcp_servers.devdizzle-gammarips]
url = "https://mcp.gammarips.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "devdizzle-gammarips": {
      "type": "remote",
      "url": "https://mcp.gammarips.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add devdizzle-gammarips --url https://mcp.gammarips.com/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  devdizzle-gammarips:
    url: "https://mcp.gammarips.com/mcp"
```

### Other

```json
{
  "mcpServers": {
    "devdizzle-gammarips": {
      "type": "http",
      "url": "https://mcp.gammarips.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 62, +1)

No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-31 (score 61, +2)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-29 (score 59, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-28 (score 58, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-27 (score 57, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 57)

First indexed and scored.

## MCP tools (9)

### `get_pool` (~683 tokens)

The GammaRips candidate pool for a scan date. One tool, four `view`s:

      * view="enriched" (DEFAULT) — the curated AI-enriched pool: news,
        technicals, catalyst, a delta-targeted recommended contract, and the
        60-day momentum feature `mom_60`. Enrichment gate: overnight_score>=4
        AND directional UOA>$500K, edge-ranked to the top ~50 BULLISH names.
        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 pre-curation overnight scan (where unusual
        options activity concentrated across the whole universe, BEFORE
        curation). 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 active pro subscription key; an anon
    call to them returns `subscription_required` (get_pool(view='preview') is
    named as the free entry point).

    Liquidity caveat (all views): `recommended_oi`/`recommended_volume` are
    scan-time snapshots, not live values; `recommended_spread_pct` is
    permanently NULL on the current data plan — re-check with get_liquidity.

    Args:…

Input parameters:

- `direction`
- `fields`
- `limit` (integer)
- `min_score` (integer)
- `offset` (integer)
- `scan_date`
- `summary` (boolean)
- `ticker`
- `view` (string)

### `get_signal` (~358 tokens)

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.

Input parameters:

- `contract`
- `expiration`
- `full` (boolean)
- `scan_date`
- `ticker`
- `view` (string)

### `get_liquidity` (~369 tokens)

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.

Input parameters:

- `contract`
- `contracts`
- `live` (boolean)
- `scan_date`

### `query_outcomes` (~1028 tokens)

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`, `include_open`.
      * 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 broad pool (NOT option PnL). Filters scan_date, ticker, direction,
        outcome.
      * view="win_rate" — aggregate UNDERLYING-direction win rate over `days`
        (NOT option PnL; headline key carries its universe).
      * view="positions" — the RECEIPTS: realized (closed) paper trades from
        the engine's own daily pick, row-level, cohort-filtered
        (`pol…

Input parameters:

- `activation_pct` (number)
- `aggregate_only` (boolean)
- `days` (integer)
- `delta_max`
- `delta_min`
- `direction`
- `exit_reason`
- `group_by` (string)
- `horizon`
- `include_open` (boolean)
- `limit` (integer)
- `min_overnight_score`
- `min_premium_score`
- `outcome`
- `policy_version`
- `rule` (string)
- `scan_date`
- `scan_date_from`
- `scan_date_to`
- `stop_pct` (number)
- `stops`
- `target_pct`
- `targets`
- `ticker`
- `trail_pct`
- `view` (string)

### `replay_contract` (~427 tokens)

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).

Input parameters:

- `contract` (string, required)
- `date`
- `from_date`
- `granularity` (string)
- `stop_pct`
- `target_pct`
- `to_date`

### `get_regime_context` (~230 tokens)

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}

Input parameters:

- `scan_date`

### `get_market_calendar_status` (~130 tokens)

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".

Input parameters:

- `view` (string)

### `get_playbook` (~300 tokens)

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`).

Input parameters:

- `field`
- `name`

### `get_daily_report` (~166 tokens)

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).

Input parameters:

- `date`
- `limit` (integer)
- `view` (string)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/devdizzle-gammarips/mcp#diagnostics

## Score history

- 2026-08-03: 62
- 2026-08-02: 62
- 2026-08-01: 61
- 2026-07-31: 61
- 2026-07-30: 59
- 2026-07-29: 59
- 2026-07-28: 58
- 2026-07-27: 57
- 2026-07-26: 57

## Links

- Remote endpoint: https://mcp.gammarips.com/mcp
- Repository: https://github.com/DevDizzle/gammarips-mcp
- Website: https://gammarips.com/developers
- Changelog RSS feed: https://verifymcp.io/servers/devdizzle-gammarips/mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/devdizzle-gammarips/mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/devdizzle-gammarips/mcp
