Skip to main content
Glama

GammaRips Options Intelligence

Server Details

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

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
DevDizzle/gammarips-mcp
GitHub Stars
0
Server Listing
GammaRips Options Intelligence

Available Tools

9 tools
get_daily_reportDaily ReportA
Read-onlyIdempotent
Inspect
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).
ParametersJSON Schema
NameRequiredDescriptionDefault
dateNo
viewNoreport
limitNo

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the tool read-only, idempotent, and non-destructive. The description adds valuable behavioral detail beyond that: defaulting to the most recent report when date is omitted, deduplicating titles in list view, and clamping limit between 1 and 30. It also describes the fields included in each view, which is useful context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact, well-structured, and front-loaded with the two main views. The bullet-style view explanations and short Args section convey a lot of information without wasted words or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of an output schema, the description adequately explains both the input parameters and the expected return fields for each view. The annotations cover safety and idempotency, and the description covers behavior, defaults, and constraints, so an agent has a complete picture for using this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description fully compensates by explaining the meaning, format, defaults, and valid values for all three parameters: date uses YYYY-MM-DD, view accepts 'report' or 'list', and limit is clamped to 1-30. This gives the agent everything needed to construct correct calls.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool provides 'the daily intelligence report' and enumerates two distinct views, 'report' and 'list'. It names the resource, the action, and the available retrieval modes, making it easy for an agent to understand what this tool does and to distinguish it from sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear internal guidance on when to use 'report' vs 'list' and explains defaults and the limit parameter. However, it does not explicitly contrast this tool with sibling tools like get_playbook or get_signal, nor does it state when this tool should be avoided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_liquidityContract LiquidityA
Read-onlyIdempotent
Inspect
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.
ParametersJSON Schema
NameRequiredDescriptionDefault
liveNo
contractNo
contractsNo
scan_dateNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly, idempotent, non-destructive), the description discloses cache-first behavior with a ~10-minute market-hours refresh cycle, freshness semantics for each field (OI updates once each morning, day_volume is live session), and the critical data quirk that bid/ask/mid/spread are absent rather than NULL. The 'absent, not NULL' distinction and the explicit `as_of` mention are exactly the kind of behavioral context an agent cannot infer from annotations alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but every sentence earns its place — the tool genuinely needs both modes, cache semantics, a data-exclusion caveat, and four parameters explained. Structure is strong: the differentiating lead, bulleted modes, the exclusion paragraph, and an Args block. It loses one point for the grammatically awkward opening ('the read the pool's session-frozen...') and overall density that slightly slows scanning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is complete for a two-mode read tool: it covers what data is served, what is deliberately not served and why, cache/live behavior, the batch shortlist limit, and the temporal decision window. Since an output schema exists, the description need not enumerate return values, and it even hints at the `as_of` field in batch responses. Nothing an agent needs to select and invoke this tool correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With schema description coverage at 0%, the description carries the full parameter-documentation burden and succeeds completely. Each parameter gets meaning: `contract` is an OCC ticker taken verbatim from the pool's `recommended_contract` and selects single-contract mode, `scan_date` is the pool date with a default of latest pool, `contracts` is a batch shortlist capped at 60, and `live` forces a fresh upstream fetch. Format, mode association, and constraints are all given where the schema gives only types and defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource — reading FRESH (entry-day) liquidity — and immediately distinguishes it from the session-frozen pool read via `recommended_oi`/`recommended_volume`, which maps to the sibling get_pool. The two modes (single `contract` snapshot vs whole-pool batch) are spelled out with the exact fields returned (open interest, session volume, last trade, day range, underlying price, greeks), leaving no ambiguity about what this tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit when-to-use context: the ~10:00 ET decision window for batch mode, and the overnight-sweep timing explanation for why a fresh read is needed. It also provides mode-selection logic ('chosen by whether you pass a single `contract`'), cache-versus-live guidance (`live=true` to force a fresh fetch or read a contract NOT in today's pool), and a clear when-not ('Deliberately serves NO bid/ask/mid/spread'). Alternatives are implicit via the pool-read contrast rather than named siblings, but the routing guidance is fully actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_market_calendar_statusMarket Calendar StatusA
Read-onlyIdempotent
Inspect
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".
ParametersJSON Schema
NameRequiredDescriptionDefault
viewNostatus

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds meaningful behavioral context beyond annotations: it states the status view is deterministic and intentionally avoids hallucination about market open status, and it describes what each view returns. This gives the agent confidence in the tool's behavior and outputs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured, with a short overview followed by bullet points for each view and an explicit Args section. Every sentence adds useful information, and the most important distinction (the two views) is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has minimal complexity with a single optional parameter and no output schema, but the description covers the purpose, both modes, their outputs, defaults, and the deterministic guarantee. Nothing essential is missing for an agent to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the parameter documentation burden. It does so effectively by enumerating the only parameter 'view' with its two allowed values, the default 'status', and a distinct explanation of what each value returns. This fully compensates for the lack of schema-level parameter descriptions or enums.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly identifies the tool as a market-calendar reference and details the two views: 'status' for US equity market open status plus next open/close, holiday, and early-close flags, and 'scan_dates' for data-availability calendar with per-date signal counts. This is specific and distinguishes the tool from sibling data-retrieval tools by naming the resource it references.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies when to use each view: use 'status' to check if the US equity market is open, and use 'scan_dates' to find which recent scan dates have GammaRips data. It does not explicitly name alternative sibling tools or state when not to use this tool, but the intended usage context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_playbookMethodology PlaybookA
Read-onlyIdempotent
Inspect
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`).
ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
fieldNo

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool read-only, idempotent, and non-destructive; the description adds substantial behavioral context: versioned server-side content, a recommendation to re-fetch rather than cache, deterministic no-LLM field lookups, override semantics between `field` and `name`, and the leakage-classification safety rule that only `feature` columns are safe as selection inputs. This goes well beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the tool's essence and uses a compact bullet structure that maps cleanly to the branch logic. Every sentence contributes either a mode, an example, or a constraint; there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having no output schema, the description explains what each invocation returns: field definitions with an `available_fields` list, markdown playbooks, a machine-readable data contract with leakage classifications, or a catalog with a pointer to the field dictionary. Valid name values are enumerated, making the tool fully callable without external assumptions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden. It thoroughly explains `name` with valid special values and concrete playbook names, and `field` with an example and the note that it overrides `name`. This fully compensates for the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific purpose: a versioned server-side methodology/reference tool that returns field definitions, playbook markdown, the data contract, or a catalog depending on arguments. It clearly differentiates this from data-access siblings like get_signal or get_pool by framing it as the methodological/dictionary resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit arg-driven usage rules: use `field` for definitions, `name` for playbooks or the data contract, and neither for the catalog. It also enumerates valid playbook names and special values. It does not explicitly contrast with sibling tools, but the usage context is clear enough that an agent can select this tool confidently.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_poolCandidate PoolA
Read-onlyIdempotent
Inspect
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 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:
    view: "enriched" (default) | "raw" | "features" | "preview".
    scan_date: YYYY-MM-DD (default: latest available scan for the view).
    direction: "bull"/"bear" prefix filter (enriched / raw).
    ticker: exact ticker filter (enriched / raw / features).
    min_score: overnight_score floor (raw view only; clamped 0-10).
    limit: max rows (enriched/raw clamp 1-50, features 1-100, preview 1-20).
    summary: enriched only — True=compact columns, False=full rows.
    fields: enriched only — explicit strict column projection.
    offset: enriched only — pagination offset.
ParametersJSON Schema
NameRequiredDescriptionDefault
viewNoenriched
limitNo
fieldsNo
offsetNo
tickerNo
summaryNo
directionNo
min_scoreNo
scan_dateNo

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish a safe read-only, idempotent profile, and the description adds substantial non-obvious behavior: anon calls to paid views return subscription_required, enriched is served from a leakage-safe view with outcome columns physically stripped, features lags by 1-2 trading days, the two rule eras are explicitly not one population, and recommended_spread_pct is permanently NULL. This is exactly the contextual depth that annotations alone cannot provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long, but every section earns its place: a bulleted view taxonomy up front, then tier and caveat paragraphs, then a compact Args block. The structure makes it scannable, and the density is justified for a 9-parameter, four-mode tool with auth gating.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema, the description covers parameters, defaults, clamps, auth gating, null fields, data lag, and era differences, nearly everything needed to invoke it correctly. The only remaining gap is that return row shapes for the raw and features views are not enumerated the way enriched's ~21 decision columns and full-rows behavior are.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the Args block carries the entire burden, and it fully delivers: every one of the 9 parameters gets a value domain, default, view scoping, and clamps (min_score 0-10 raw-only, limit 1-50/100/20 by view, fields as a strict projection, offset enriched-only pagination). This completely compensates for the empty schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description defines get_pool as the GammaRips candidate pool and breaks it into four clearly distinct views (enriched, raw, features, preview), each with its own role and consumer. It differentiates from siblings inline, pointing to get_playbook for contract selection and get_liquidity for live re-checking, so an agent can tell exactly which resource this tool serves and how it differs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit when-to-use guidance: enriched is the daily candidate set the agent reasons over, features is the substrate for joining against query_outcomes, preview is named the free entry point, and raw is the pre-cut scan. It also names alternatives with conditions (get_playbook, get_liquidity) and states exclusions like view-scoped filters and the paid-tier requirement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_regime_contextMarket Regime ContextA
Read-onlyIdempotent
Inspect
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}
ParametersJSON Schema
NameRequiredDescriptionDefault
scan_dateNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly and idempotent annotations, the description discloses important behaviors: values are constant per scan_date, data lags the live pool by ~1-2 trading days, and the engine fail-closes when spot VIX exceeds VIX3M. This adds real decision-relevant context that annotations alone do not provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well organized: a front-loaded summary, a concise explanation of the safety rail, a data-lag caveat, then clear Args and Returns sections. Every sentence contributes useful information without redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-optional-parameter read-only lookup, the description is complete: it defines the input, defaults, output fields, timing semantics, and the fail-closed rule. An agent has everything needed to call it correctly and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides only a nullable string with no description, but the description fully documents scan_date: its format (YYYY-MM-DD), its role as the selection point, and its default behavior (latest scan date carrying regime features). This fully compensates for the 0% schema description coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: it returns point-in-time market-regime context for a scan date, enumerating the exact fields (VIX close, VIX3M, SPY trend, 5-day VIX delta) and the regime safety rail. This makes it clearly distinguishable from sibling tools like get_liquidity or get_signal.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when the tool is appropriate: it is a leakage-safe, as-of-scan_date regime lookup that defaults to the latest available scan date, and it is tied to the engine's fail-closed regime check. It does not explicitly name alternatives or state when not to use it, but the intended use is well implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_signalSignal DetailA
Read-onlyIdempotent
Inspect
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.
ParametersJSON Schema
NameRequiredDescriptionDefault
fullNo
viewNodetail
tickerNo
contractNo
scan_dateNo
expirationNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description goes well beyond this by disclosing fail-closed behavior for unknown earnings dates, leakage-safe point-in-time features, the error behavior when a ticker is missing from the pool, and the distinction between engine-applied rails and pool rows. This is rich, useful behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is structured with a clear opening, a bulleted breakdown of the two views, fail-closed warning, and a compact Args section. There is no filler; every sentence adds either a semantic detail, a default, or a behavioral constraint. Despite its length, it is dense and front-loaded with the most important information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's two-view complexity and the presence of an output schema (which removes the need to describe return values), the description is remarkably complete. It covers defaults, parameter combinations, error behavior, edge cases (unknown earnings date), and the rationale for using the earnings view. An agent has everything needed to invoke the tool correctly across both views.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden of explaining all six parameters. It does this thoroughly: each parameter is named, tied to a view, marked as required/optional, and given a format (e.g., YYYY-MM-DD, OCC ticker). It even clarifies derivations like 'both ticker and expiration are derived' from contract. This fully compensates for the absent schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Deep dive on a single ticker/contract.' It distinguishes itself from sibling list-oriented tools by emphasizing it covers one ticker, and it clearly enumerates the two available 'view's. This is more than sufficient for an agent to understand what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly indicates the tool is for a single ticker/contract deep dive and provides detailed per-view guidance, including when to pass 'ticker' vs 'contract' and how to interpret the earnings check. It references the pool's 'recommended_contract' and tells the user to check every candidate, which implies the screening/listing sibling (get_pool) is the alternative. However, it never explicitly names an alternative tool or states a when-not-to-use condition, so it falls just short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

query_outcomesRealized OutcomesA
Read-onlyIdempotent
Inspect
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 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
    (`policy_version`, default live). Over `days`, `limit`.
  * view="performance" — cohort AGGREGATE of the receipts over `days`
    (win rate, avg/median/best/worst), `direction`, `min_premium_score`,
    `policy_version`. When the cohort has no closed trades, every aggregate
    is `null` and `total_trades` is 0 — NEVER 0.0. A `null` here means "not
    measured yet", not "zero percent"; do not render it as a result.

All returns are FRACTIONS (0.40 = +40%). Realized data serves closed
windows only. Paper-traded research data; not investment advice.

Args:
    view: which surface (see above). Default "labels".
    horizon: "same_day" | "3d" (labels/summary/exit_rule). If omitted, the
        native default per view is used: labels/summary => "same_day" (the
        live GIGO policy), exit_rule => "3d" (its excursion window).
    group_by: summary grouping dimension.
    scan_date / scan_date_from / scan_date_to: date filters (per view).
    ticker / direction / delta_min / delta_max / min_overnight_score /
        exit_reason / outcome: row/aggregate filters (per view).
    days: lookback window (surface/win_rate/positions/performance).
    limit: max rows (labels 1-200, signal_performance 1-50, positions 1-200).
    aggregate_only: labels/surface views — summary stats instead of rows.
        On `surface` this is also the only mode immune to the 200-row cap.
    include_open: surface view — include not-yet-closed windows.
    targets / stops: harvest view — PERCENT grids.
    target_pct / stop_pct / rule / trail_pct / activation_pct: exit_rule view.
    policy_version: positions/performance cohort filter. The live default
        is the PAIR (policy label + cohort start date) — the label alone
        does not define the cohort, since disowned cohorts remain in the
        ledger under the same label. Responses carry `cohort_start`; a zero
        row_count under the live cohort means it has not accrued closed
        trades yet, not that there is no track record, and the aggregates
        come back `null` rather than 0.0. Pass "all" for every era, but
        note that "all" returns cohorts the engine has REPUDIATED — not
        merely older exit mechanics — so it is not a track record and must
        not be aggregated into one. Read the response `note` before
        quoting any number from it.
    min_premium_score: performance view floor.
ParametersJSON Schema
NameRequiredDescriptionDefault
daysNo
ruleNobracket
viewNolabels
limitNo
stopsNo
tickerNo
horizonNo
outcomeNo
targetsNo
group_byNonone
stop_pctNo
delta_maxNo
delta_minNo
directionNo
scan_dateNo
trail_pctNo
target_pctNo
exit_reasonNo
include_openNo
scan_date_toNo
activation_pctNo
aggregate_onlyNo
policy_versionNoV7_1_TILTED_GIGO
scan_date_fromNo
min_premium_scoreNo
min_overnight_scoreNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool read-only, idempotent, and non-destructive, and the description adds substantial behavioral context: returns are fractions, only closed windows are served, row-level surface output truncates oldest-first and reports that truncation, null aggregates mean 'not measured yet' rather than zero, and policy_version carries cohort-start semantics. This is exactly the kind of context that prevents misuse.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but tightly organized: a front-loaded framing, nine scannable view bullets, and a complete Args list. Every paragraph adds necessary cautions or semantics, and repeated warnings address high-cost misinterpretations rather than padding the text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with nine view modes and 26 parameters, the description covers selection criteria, defaults, units, truncation behavior, null semantics, cohort disclaimers, and research-only boundaries. Since an output schema exists, the absence of detailed return-field documentation is acceptable; the description covers everything needed to call the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 26 parameters and 0% description coverage, so the description carries the full burden. It defines every parameter in the Args section, including valid values for horizon, rule, and group_by, per-view applicability, limit ranges, defaults, and the nuanced behavior of policy_version. This fully compensates for the empty schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as querying realized outcomes and receipts across nine distinct views. It distinguishes itself from strategy-performance reporting by emphasizing that pooled composites are a research surface, never a strategy track record. This gives an agent a precise mental model of what resource the tool operates on.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Each view comes with an explicit use case and often a warning: use surface for exit design, harvest for touch probability, positions/performance for receipts, and exit_rule only for research. It also provides strong when-not guidance: never treat repudiated cohorts as track records, do not render null aggregates as 0.0, and do not confuse underlying-direction outcomes with option PnL.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

replay_contractContract Price ReplayA
Read-onlyIdempotent
Inspect
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).
ParametersJSON Schema
NameRequiredDescriptionDefault
dateNo
to_dateNo
contractYes
stop_pctNo
from_dateNo
target_pctNo
granularityNominute

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly and idempotent annotations, the description discloses important behavioral traits: no exit simulation/validation, reliance on RM-002/RM-004 boundary bars, first-crossing reporting, fallback to upstream minute fetch, and the thin tape caveat that missing bars are not evidence of no activity. This gives an agent realistic expectations about data quality and return semantics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is detailed but well-structured with front-loaded purpose, mode bullets, a critical data-quality caveat, and an organized Args list. Every section contributes to correct invocation or interpretation of results; there is no filler or redundant restating of the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with seven parameters and no schema-level descriptions, the description is remarkably complete. It covers mode selection, parameter defaults and constraints, ignored parameters, output expectations (bars, first-crossing sequence, OHLCV), and data reliability caveats. Since an output schema is reported to exist, the description does not need to enumerate return fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Even though schema description coverage is 0%, the description's Args section fully compensates by explaining each parameter: contract format, date requirements, granularity modes, target_pct/stop_pct meaning relative to the 10:00 ET anchor, and from_date/to_date defaults. It also clarifies that date is ignored in day mode, which is not inferable from the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the resource (raw option price bars) and the operation (replay for a user's own entry/exit rule). It distinguishes itself from simulation/validation tools by explicitly stating this server does NOT simulate or validate exits. The two granularity modes further define its scope, making it unambiguous against sibling get_* tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use each granularity mode: minute for a single session with a required date, and day for marking live or closed paper positions over a date range. It also flags limits such as the 120-day span and thin tape. It does not explicitly name alternative sibling tools or say when not to use this tool, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 31 tool updates
    • Removedestimate_exit_rule
    • Removedget_available_dates
    • Removedget_contract_marks
    • Removedget_contract_snapshot
    • Changedget_daily_report3 fields changed
      • addedInput schema / properties / limit
        Added value: +{
        +  "default": 10,
        +  "title": "Limit",
        +  "type": "integer"
        +}
      • addedInput schema / properties / view
        Added value: +{
        +  "default": "report",
        +  "title": "View",
        +  "type": "string"
        +}
      • changedOutput schema / (root)
        Previous value: -{
        -  "additionalProperties": true,
        -  "title": "get_daily_reportDictOutput",
        -  "type": "object"
        -}New value: +null
    • Removedget_earnings_window
    • Removedget_enriched_signal_schema
    • Removedget_enriched_signals
    • Removedget_freemium_preview
    • Removedget_harvest_curve
    • Removedget_historical_performance
    • Addedget_liquidity
    • Changedget_market_calendar_status2 fields changed
      • addedInput schema / properties / view
        Added value: +{
        +  "default": "status",
        +  "title": "View",
        +  "type": "string"
        +}
      • changedOutput schema / (root)
        Previous value: -{
        -  "additionalProperties": true,
        -  "title": "get_market_calendar_statusDictOutput",
        -  "type": "object"
        -}New value: +null
    • Removedget_opportunity_surface
    • Removedget_outcome_summary
    • Removedget_overnight_signals
    • Changedget_playbook6 fields changed
      • addedInput schema / properties / field
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Field"
        +}
      • addedInput schema / properties / name / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / name / default
        Added value: +null
      • removedInput schema / properties / name / type
        Removed value: -"string"
      • removedInput schema / required
        Removed value: -[
        -  "name"
        -]
      • changedOutput schema / (root)
        Previous value: -{
        -  "additionalProperties": true,
        -  "title": "get_playbookDictOutput",
        -  "type": "object"
        -}New value: +null
    • Addedget_pool
    • Removedget_pool_features
    • Removedget_pool_liquidity
    • Removedget_position_history
    • Removedget_report_list
    • Addedget_signal
    • Removedget_signal_detail
    • Removedget_signal_explainer
    • Removedget_signal_performance
    • Removedget_win_rate_summary
    • Removedlist_playbooks
    • Changedquery_outcomes19 fields changed
      • addedInput schema / properties / activation_pct
        Added value: +{
        +  "default": 0,
        +  "title": "Activation Pct",
        +  "type": "number"
        +}
      • addedInput schema / properties / days
        Added value: +{
        +  "default": 30,
        +  "title": "Days",
        +  "type": "integer"
        +}
      • addedInput schema / properties / direction
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Direction"
        +}
      • addedInput schema / properties / group_by
        Added value: +{
        +  "default": "none",
        +  "title": "Group By",
        +  "type": "string"
        +}
      • addedInput schema / properties / horizon / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / horizon / default
        Previous value: -"same_day"New value: +null
      • removedInput schema / properties / horizon / type
        Removed value: -"string"
      • addedInput schema / properties / include_open
        Added value: +{
        +  "default": false,
        +  "title": "Include Open",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / min_premium_score
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Min Premium Score"
        +}
      • addedInput schema / properties / outcome
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Outcome"
        +}
      • addedInput schema / properties / policy_version
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": "V7_1_TILTED_GIGO",
        +  "title": "Policy Version"
        +}
      • addedInput schema / properties / rule
        Added value: +{
        +  "default": "bracket",
        +  "title": "Rule",
        +  "type": "string"
        +}
      • addedInput schema / properties / scan_date
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Scan Date"
        +}
      • addedInput schema / properties / stop_pct
        Added value: +{
        +  "default": 30,
        +  "title": "Stop Pct",
        +  "type": "number"
        +}
      • addedInput schema / properties / stops
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "number"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Stops"
        +}
      • addedInput schema / properties / target_pct
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Target Pct"
        +}
      • addedInput schema / properties / targets
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "number"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Targets"
        +}
      • addedInput schema / properties / trail_pct
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Trail Pct"
        +}
      • addedInput schema / properties / view
        Added value: +{
        +  "default": "labels",
        +  "title": "View",
        +  "type": "string"
        +}
    • Changedreplay_contract7 fields changed
      • addedInput schema / properties / date / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / date / default
        Added value: +null
      • removedInput schema / properties / date / type
        Removed value: -"string"
      • addedInput schema / properties / from_date
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "From Date"
        +}
      • addedInput schema / properties / granularity
        Added value: +{
        +  "default": "minute",
        +  "title": "Granularity",
        +  "type": "string"
        +}
      • addedInput schema / properties / to_date
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "To Date"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "contract",
        -  "date"
        -]New value: +[
        +  "contract"
        +]
    • Removedweb_search
  2. 29 tool updates
    • First observedestimate_exit_rule
    • First observedget_available_dates
    • First observedget_contract_marks
    • First observedget_contract_snapshot
    • First observedget_daily_report
    • First observedget_earnings_window
    • First observedget_enriched_signal_schema
    • First observedget_enriched_signals
    • First observedget_freemium_preview
    • First observedget_harvest_curve
    • First observedget_historical_performance
    • First observedget_market_calendar_status
    • First observedget_opportunity_surface
    • First observedget_outcome_summary
    • First observedget_overnight_signals
    • First observedget_playbook
    • First observedget_pool_features
    • First observedget_pool_liquidity
    • First observedget_position_history
    • First observedget_regime_context
    • First observedget_report_list
    • First observedget_signal_detail
    • First observedget_signal_explainer
    • First observedget_signal_performance
    • First observedget_win_rate_summary
    • First observedlist_playbooks
    • First observedquery_outcomes
    • First observedreplay_contract
    • First observedweb_search

Frequently Asked Questions

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Provides actionable financial intelligence tools for AI agents including insider buying signals, earnings IV plays, market pulse, stock analysis, and options strategies via free public data sources.
    6
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Financial intelligence for AI agents. 31 tools across 8 data sources — regime, derivatives, stablecoin flows, momentum, volatility, macro, DeFi, weather patterns, political cycles, seasonality. The context layer between your agent and a bad trade.
    31
    19
    9
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Prediction market intelligence for AI agents, enabling real-time access to whale trades, market data, signals, and AI-synthesized analysis from Kalshi and Polymarket via a standardized protocol.
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.7/5.0
Disambiguation5/5

Each tool owns a clearly distinct surface: reports, liquidity, market calendar, methodology, pool data, regime context, per-ticker signals, outcome research, and raw price replay. Even the closest neighbors (get_pool, get_signal, get_daily_report) are separated by pool-wide versus single-ticker versus report granularity, and the view parameters remove ambiguity.

Naming Consistency4/5

Seven tools follow a consistent get_<noun> pattern, while query_outcomes and replay_contract deviate with a different verb style. All names are snake_case and predictable, so this is a minor inconsistency rather than chaotic naming.

Tool Count5/5

Nine tools is well within the ideal range for an intelligence and research server. Each tool earns its place, covering a distinct part of the workflow without bloat or thinness.

Completeness5/5

The toolset covers the full research workflow: market/reference context, methodology, candidate pool, live liquidity, per-ticker signals, regime context, outcome research, and raw price replay for custom exit rules. There are no obvious dead ends or missing lifecycle steps for the server's stated purpose.