FirmTape - SPX dealer positioning, 100+ symbols
Server Details
SPX gamma exposure (GEX) backtests, 1,000+ sessions, plus gamma levels for 100+ ETFs and stocks
- Status
- Healthy
- Uptime
- 100.0% over 23 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 12 tools
Each tool targets a distinct resource or operation: session measurements, levels, gamma ladders, history, events, market-moving minutes, symbol gamma, screening, search/fetch, and strategy testing. The only close pair get_session/get_levels is explicitly documented as subset/superset with clear guidance.
Most tools follow a consistent verb_noun pattern (get_session, get_levels, list_sessions, screen_sessions). Minor deviations exist: bare verbs search and fetch, and the noun-heavy options_strategy_test, but these are still understandable and not chaotic.
Twelve tools is well-scoped for an SPX dealer-positioning research service. Each tool covers a meaningful slice of the domain without redundancy, and the count feels deliberate rather than padded.
The surface covers the full read-only workflow: discovering documents (search), fetching them (fetch), listing and filtering sessions (list_sessions, screen_sessions), retrieving full session data (get_session), levels (get_levels), historical movement (get_level_history), gamma shape (get_gex_profile), events (get_events), market-moving minutes, non-SPX symbols, and strategy testing. No obvious dead ends or missing core operations.
Available Tools
12 toolsfetchFetch a FirmTape documentARead-onlyIdempotentInspect
Retrieve the full text of one FirmTape document by the id search returned: session:YYYY-MM-DD for a finished trading session, page:/path for an explainer or research page. A FirmTape URL or a bare YYYY-MM-DD trading day is accepted too. Use when: you hold an id from search, or a client that only speaks search/fetch (ChatGPT). Not for: structured numbers — get_session and get_levels answer the same day with fields instead of prose. Limits: public FirmTape documents only; long pages are truncated with a link to the rest.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | An id from `search`, a FirmTape URL, or a YYYY-MM-DD trading day |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal read-only, idempotent, open-world, non-destructive behavior. The description adds meaningful behavioral context beyond those: public documents only, and long pages are truncated with a link to the rest. This fully discloses the key operational caveats.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well-structured: it front-loads what the tool does, then covers id formats, usage context, exclusions, and limits in a compact set of sentences. No filler or restatement of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool with strong annotations and no output schema, the description covers what an agent needs: id formats, when to use it, when not to use it, alternatives, access limits, and truncation behavior. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers the id parameter at 100%, but the description goes further by specifying the exact accepted forms: `session:YYYY-MM-DD`, `page:/path`, a FirmTape URL, or a bare YYYY-MM-DD trading day. This gives the agent enough detail to construct a valid id.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: retrieve the full text of one FirmTape document by id. It enumerates accepted id formats and explicitly contrasts the tool with get_session and get_levels, so an agent can distinguish it from siblings without inspecting schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-to-use conditions ('you hold an id from search, or a client that only speaks search/fetch') and explicit when-not-to-use conditions ('Not for: structured numbers — get_session and get_levels answer the same day with fields instead of prose'). This is model guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_eventsMarket calendarARead-onlyIdempotentInspect
The scheduled US market events for a window of days, from the same calendar the FirmTape terminal draws: FOMC decisions, press conferences and minutes, CPI, payrolls, PCE, PPI, GDP, retail sales, JOLTS, ISM, the Fed Chair's speeches, the Beige Book, 10/20/30-year Treasury auctions, mega-cap earnings, monthly and quarterly expiration and early closes. Each event carries its minute in ET, a link to its source, and, where the archive has measured it, what usually follows, what the dealer book did, and for the releases the forecast, the prior and the actual print. Use when: 'what is on the calendar this week', 'when is the next FOMC', 'is there anything at 14:00 today'. Not for: session measurements (get_session) or levels (get_levels). Limits: US only, 2019 to about a year ahead, at most 31 days per call.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Last day, YYYY-MM-DD (default from + 6 days; at most 31 days) | |
| from | No | First day, YYYY-MM-DD (default today, ET) | |
| impact | No | Lowest impact to include (default med: high and medium) |
Output Schema
| Name | Required | Description |
|---|---|---|
| to | Yes | Trading day, YYYY-MM-DD |
| from | Yes | Trading day, YYYY-MM-DD |
| events | Yes | Scheduled US market events in the window, in date and time order |
| summary | Yes | One sentence carrying this answer's numbers, its trading day and its source, written to be quoted verbatim to a reader rather than paraphrased. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds extra behavioral context: US-only, date range 2019 to ~a year ahead, max 31 days per call, and each event's metadata. It does not contradict annotations, and the added limits are valuable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but well-organized: purpose, event list, usage examples, exclusions, limits. Each section earns its place, though some redundancy with the schema (e.g., 31-day limit) could be trimmed. Front-loading the core purpose is effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present (has_output_schema=true), the description need not detail return values. It covers what the tool does, when to use it, what data is included, and its constraints. Nothing an agent needs to decide whether to call it is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters are already documented. The description repeats the 31-day limit (also in the 'to' parameter description) and adds no new parameter-level meaning. Baseline of 3 is appropriate when the schema handles parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (get/list) and resource (US market events from the FirmTape calendar), enumerates the event types, and explicitly distinguishes itself from get_session and get_levels. An agent can immediately tell what it does and what it is not.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit 'Use when' examples ('what is on the calendar this week', 'when is the next FOMC') and 'Not for' exclusions naming two sibling tools. This is clear guidance for when to choose this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_gex_profileGamma by strikeARead-onlyIdempotentInspect
The SPX dealer gamma LADDER for one minute of a finished session: gamma by strike around spot, the level set, and the heaviest strikes. Readable as the MEASURED book (signed off the trade tape, FirmTape's own read), as the OPEN_INTEREST convention every other public GEX chart draws, or as the VOLUME convention — the same minute through three lenses. Use when: the question is about SHAPE — where gamma sits, how heavy a wall is, how far the three conventions disagree — or about one moment inside a session rather than the day as a whole. Not for: a day's headline numbers (get_session), the level set alone (get_levels), or movement across days (get_level_history). Limits: finished sessions only, one frame every 5 minutes (a requested minute snaps back to the frame at or before it), published window ±2.5% of spot; the three books are not comparable in magnitude. Measurements only, no buy/sell signals.
| Name | Required | Description | Default |
|---|---|---|---|
| day | Yes | A finished trading day, YYYY-MM-DD. Call list_sessions if unsure which days exist. | |
| book | No | Which book to read (default measured). open_interest is the convention rival tools print. | |
| minute | No | ET minute HH:MM inside 09:30-16:00. Snaps back to the frame at or before it, so quote the minute the answer returns. Default: the last frame of the session. | |
| expiry_scope | No | all = every expiry the session's book was pulled with (default); 0dte = the same-day slice alone | |
| strikes_around_spot | No | How many strikes to return each side of spot (default 20). Raise it for the whole published window, which is +/-2.5% of spot. |
Output Schema
| Name | Required | Description |
|---|---|---|
| day | Yes | Trading day, YYYY-MM-DD |
| book | Yes | Which book was read: measured, open_interest or volume |
| spot | Yes | SPX at that minute |
| unit | Yes | Unit of every gamma number below |
| levels | Yes | Dealer-positioning levels in SPX index points; null when the session did not produce one |
| minute | Yes | The ET minute (HH:MM) this profile actually belongs to. The archive keeps a frame every 5 minutes, so a requested minute snaps back to the frame at or before it — quote the minute returned here, not the one asked for. |
| replay | Yes | Free minute-by-minute replay of the session on FirmTape |
| strikes | Yes | Dealer gamma by strike at that minute, lowest strike first |
| summary | Yes | One sentence carrying this answer's numbers, its trading day and its source, written to be quoted verbatim to a reader rather than paraphrased. |
| heaviest | Yes | The largest strikes by absolute gamma inside the window, heaviest first |
| book_note | No | How this book is built, and what it can and cannot be compared with |
| expiry_scope | Yes | all = every expiry this session's book was pulled with; 0dte = the same-day slice alone |
| strikes_returned | Yes | How many strikes the window actually held |
| net_gamma_in_window | Yes | Sum of the returned strikes — a window total, not the session's net gamma |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior, so the bar is lower, but the description still adds substantial context: finished sessions only, 5-minute frame snapping, ±2.5% published window, non-comparable book magnitudes, and no buy/sell signals. This tells the agent what to expect beyond what annotations convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but tightly organized: definition, conventions, use-when, not-for, limits, and a final qualifier. Every sentence carries operational or routing information, and the core purpose is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a rich output schema and full parameter documentation, the description supplies all the missing operational context: conventions, minute snapping, session restrictions, window limits, and exclusions. An agent has enough to select the tool, choose parameters, and interpret the result correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3, but the description enriches parameter meaning by explaining that the three book conventions offer three lenses on the same minute, that books are not comparable in magnitude, and that the published window constrains strikes_around_spot. This goes beyond ordinary schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: it returns the SPX dealer gamma ladder for a single minute of a finished session, including gamma by strike, the level set, and heaviest strikes. It also distinguishes itself from siblings by naming what it is not for, so an agent can recognize it as the minute-level shape tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use when' the question is about gamma shape or a single moment in a session, and 'Not for' day headline numbers, level set alone, or cross-day movement, naming get_session, get_levels, and get_level_history as alternatives. This gives the agent precise routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_level_historyLevel historyARead-onlyIdempotentInspect
How the SPX dealer-positioning levels MOVED across recent finished sessions: the zero-gamma flip, call resistance and put support day by day, each session's change from the one before, and summary statistics for the window (flip range, net drift, mean daily movement, how often price closed above the flip). Use when: the question is about a trend or a window — has the flip been climbing, how far does it travel in a week — instead of calling get_levels once per day. Not for: one day (get_levels / get_session) or anything inside a session (get_gex_profile). Limits: finished sessions only, max 40 per call; days absent from the archive are reported in missing, never interpolated. Measurements only — no buy/sell signals, no forecast.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End of an explicit window, YYYY-MM-DD (inclusive). Defaults to the newest finished session. | |
| days | No | How many of the most recent finished sessions to read (default 20, max 40). Ignored when `from` is given. | |
| from | No | Start of an explicit window, YYYY-MM-DD (inclusive). Overrides `days`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| to | Yes | Trading day, YYYY-MM-DD |
| from | Yes | Trading day, YYYY-MM-DD |
| missing | Yes | Days in the requested window with no payload in the archive; the window is reported over what was actually read |
| summary | Yes | One sentence carrying this answer's numbers, its trading day and its source, written to be quoted verbatim to a reader rather than paraphrased. |
| movement | Yes | How the level set travelled across the window. Descriptive statistics, not a forecast. |
| sessions | Yes | One entry per finished session, NEWEST FIRST, same order as list_sessions |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (read-only, idempotent, non-destructive), and the description adds genuinely useful behavioral context beyond them: finished-sessions-only scope, hard 40-call limit, missing archive days reported in `missing` rather than interpolated, and the explicit boundary that it provides measurements only — no signals or forecasts. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but well-organized: the core function is front-loaded, followed by labeled sections ('Use when', 'Not for', 'Limits') that make the routing logic scannable for an agent. Every sentence earns its place, including the summary-statistics inventory and the 'no forecast' disclaimer.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for a read-only windowed-historical tool. The output schema covers return values; the description summarizes what the output contains (flip range, net drift, mean daily movement, close-above-flip frequency) and names the `missing` field. Nothing an agent needs to decide or invoke correctly is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 — each parameter already has defaults, constraints, examples, and precedence semantics ('from overrides days'). The description adds only marginal context (finished-sessions scope reinforced, max 40 restated) but does not materially compensate beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource+scope: how SPX dealer-positioning levels (zero-gamma flip, call resistance, put support) MOVED across finished sessions, including per-session deltas and window summary statistics. It explicitly names the siblings it is not (get_levels, get_session, get_gex_profile), so an agent can distinguish it from alternatives without inspecting their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit 'Use when' conditions (trend/window questions like 'has the flip been climbing') and explicit 'Not for' exclusions (single day → get_levels/get_session; intra-session → get_gex_profile). This gives the agent a complete routing decision tree for when this tool beats calling get_levels repeatedly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_levelsLevel setARead-onlyIdempotentInspect
Only the dealer-positioning level set for one finished SPX session: zero-gamma flip, call resistance, put support, hold band — plus where the session closed relative to them. A strict subset of get_session. Use when: the levels are the whole question and the rest of the session would be noise. Not for: OHLC, flip crossings, net-gamma percentile or ATM IV (get_session); more than one day (get_level_history); gamma by strike (get_gex_profile). Limits: finished sessions only, one day per call.
| Name | Required | Description | Default |
|---|---|---|---|
| day | Yes | A finished trading day, YYYY-MM-DD. Weekends, holidays and days before coverage return an error — call list_sessions to see which days exist. |
Output Schema
| Name | Required | Description |
|---|---|---|
| day | Yes | Trading day, YYYY-MM-DD |
| close | Yes | Session close |
| levels | Yes | Dealer-positioning levels in SPX index points; null when the session did not produce one |
| replay | Yes | Free minute-by-minute replay of the session on FirmTape |
| summary | Yes | One sentence carrying this answer's numbers, its trading day and its source, written to be quoted verbatim to a reader rather than paraphrased. |
| close_minus_flip | Yes | Close minus zero-gamma flip, index points; positive = closed above the flip |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, open-world, and non-destructive behavior. The description adds meaningful context beyond annotations: the tool only serves finished sessions, one day per call, and returns a strict subset of get_session. This clarifies data scope and constraints without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description opens with the core definition, then gives crisp usage guidance and exclusions, and ends with limits. Every sentence earns its place, and the structure front-loads the most decision-relevant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return-value explanation is unnecessary. The description covers what the tool returns, how it relates to siblings, when to use it, when not to, and its hard limits. 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%; the schema already fully documents the 'day' parameter with pattern, examples, and error conditions. The description re-emphasizes 'one day per call' and 'finished sessions only' but adds no new semantic information beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource ('dealer-positioning level set for one finished SPX session'), enumerates the exact contents, and explicitly calls itself 'A strict subset of get_session,' distinguishing it from siblings. An agent can immediately tell what this tool returns and how it differs from related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit 'Use when' and 'Not for' conditions, naming the exact sibling tools for each excluded case (get_session, get_level_history, get_gex_profile). No ambiguity remains about when to select this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_moving_minutesMinutes that moved the tapeARead-onlyIdempotentInspect
The minutes of one finished SPX session that the tape itself marked as market-moving, with what stood beside each: the scheduled event that owned the minute, the moment two or more public news desks carried an item (timed to the second, labelled by class, never the headline's text), or the honest reading that no headline existed and the dealer book moved on its own. Each minute carries the index move over the next 5 and 15 minutes and the flip and walls at that minute. Use when: 'what moved SPX at 14:25 on 2026-09-10', 'were there news-driven minutes yesterday', 'which afternoon moves had no headline'. Not for: the scheduled calendar itself (get_events) or the day's levels (get_levels). Limits: finished sessions only (the live day is part of the paid live stream), sessions from 2022-04 on, ET clock.
| Name | Required | Description | Default |
|---|---|---|---|
| day | No | The session, YYYY-MM-DD (default: the last finished session) | |
| tape_only | No | Only minutes the tape confirmed (default true; false adds the flashes the tape ignored and the calendar events it did not react to) |
Output Schema
| Name | Required | Description |
|---|---|---|
| day | Yes | Trading day, YYYY-MM-DD |
| minutes | Yes | The marked minutes of the session in clock order |
| summary | Yes | One sentence carrying this answer's numbers, its trading day and its source, written to be quoted verbatim to a reader rather than paraphrased. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safe read-only/idempotent profile, so the description correctly focuses on non-obvious traits: the live day is excluded (it sits behind the paid live stream), coverage starts 2022-04, and timestamps are ET. It also discloses what a null headline means rather than leaving it ambiguous. No rate-limit or pagination behavior is mentioned, keeping it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the payload, then usage, then limits in a clear order. Some phrasing is expository rather than functional ('the honest reading that no headline existed and the dealer book moved on its own'), which costs a little density but does explain an ambiguous output case.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value description is not required, yet the description still summarizes the per-minute fields. Combined with the explicit data-availability window, clock, and default session, an agent has everything needed to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the default baseline applies. The description reinforces the meaning of the tape filter (minutes 'the tape itself marked as market-moving' vs. headline-less moves), which loosely illuminates tape_only, but adds no syntax or format detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource — the minutes of one finished SPX session that the tape flagged as market-moving — along with the payload each minute carries (scheduled event, news-desk cluster timing, index move over 5/15 min, flip and walls). It explicitly distinguishes itself from get_events and get_levels by name, so an agent can route without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete 'Use when' exemplars ('what moved SPX at 14:25 on 2026-09-10', 'were there news-driven minutes yesterday') plus a 'Not for' clause naming the two alternatives (get_events, get_levels). Hard constraints (finished sessions only, data from 2022-04, ET clock) are stated outright.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sessionSession summaryARead-onlyIdempotentInspect
Everything FirmTape measured for ONE finished SPX session: OHLC and VWAP, the zero-gamma flip and how often price crossed it, call/put walls, the hold band, net-gamma percentile, ATM IV at the open. Use when: you want a whole day in a single call. Not for: the level set alone (get_levels returns the same day, narrower), how the levels moved across days (get_level_history), or gamma by strike (get_gex_profile). Limits: finished sessions only, one day per call. Measurements only — FirmTape deliberately publishes no buy/sell signals.
| Name | Required | Description | Default |
|---|---|---|---|
| day | Yes | A finished trading day, YYYY-MM-DD. Weekends, holidays and days before coverage return an error — call list_sessions to see which days exist. |
Output Schema
| Name | Required | Description |
|---|---|---|
| day | Yes | Trading day, YYYY-MM-DD |
| events | No | The day's scheduled market events (high and medium impact), each with its minute in ET, its source, the release's prints when known, and, for an event inside the session, what the book did in the 15 minutes after it |
| replay | Yes | Free minute-by-minute replay of the session on FirmTape |
| session | Yes | SPX price facts for the session |
| summary | Yes | One sentence carrying this answer's numbers, its trading day and its source, written to be quoted verbatim to a reader rather than paraphrased. |
| dealer_positioning | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, so the safety profile is known. The description adds value beyond annotations by disclosing that only finished sessions are available, that each call returns one day, and that FirmTape publishes measurements rather than buy/sell signals. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the most important information, followed by clear 'Use when' and 'Not for' sections and a final limitation note. Every sentence earns its place, and the structure makes it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only tool with an output schema, the description is fully complete: it explains what is returned, when to use it, when not to use it, and its limits. The output schema covers return structure, so nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the day parameter thoroughly with pattern, examples, and error conditions. The description adds context about the 'finished sessions only' limitation and one-day-per-call behavior, but it does not need to repeat parameter details. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific resource ('ONE finished SPX session') and enumerates exactly what is returned: OHLC, VWAP, zero-gamma flip, walls, hold band, net-gamma percentile, ATM IV. The 'Not for' section names siblings, so an agent can distinguish this from get_levels, get_level_history, and get_gex_profile without opening their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use when: you want a whole day in a single call' and gives concrete exclusion cases with sibling names: level set alone, multi-day level movement, and gamma by strike. It also states hard limits: finished sessions only and one day per call. This leaves no ambiguity about when to select this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_symbol_gammaGamma for another symbolARead-onlyIdempotentInspect
The latest dealer gamma picture for a symbol OTHER than the SPX archive: index, ETF and stock option chains (for example QQQ, SPY, IWM, NDX, RUT, NVDA, TSLA, GLD, TLT). Returns spot, the zero-gamma flip, call and put walls and net gamma for the VOLUME book and the OPEN_INTEREST book, the heaviest strikes, a per-expiry table and a trust grade. Use when: the question is about a ticker's gamma exposure, flip or walls right now or at the last close. Not for: SPX history, a past date, or the tape-signed measured book (get_session, get_levels, get_gex_profile); anything inside a past session. Limits: latest snapshot only (rebuilt every few minutes in session hours); calls count as dealer-long and puts as dealer-short, which is a convention, not a measurement, and on single stocks it is an approximation (see trust.grade: A and B are indices and ETFs, C and D single stocks). Units: US dollars of dealer delta per 1% move.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | The ticker. Carried symbols are listed at https://firmtape.com/gex; an unknown ticker returns an error naming that page. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (read-only, idempotent), the description discloses important behavioral traits: it is a 'latest snapshot only' rebuilt every few minutes, calls/puts are counted by convention rather than direct measurement, single-stock results are approximations, and units are 'US dollars of dealer delta per 1% move.' These details meaningfully inform invocation and interpretation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Although longer than average, every sentence carries distinct information: scope, return contents, use cases, exclusions, limits, conventions, and units. It is front-loaded with the core purpose and then organized into clear 'Use when,' 'Not for,' 'Limits,' and 'Units' segments.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a single parameter and no output schema, the description still covers what the tool returns, when to use it, what it excludes, its freshness limits, its conventions, and its units. An agent has enough context to decide whether to call it and what to expect back.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully documents the symbol parameter, so the baseline is 3. The description adds value by clarifying the symbol must be non-SPX, providing representative examples, and noting that unknown tickers return an error naming the supported-symbol page. This goes beyond the schema without needing to duplicate it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: 'latest dealer gamma picture for a symbol OTHER than the SPX archive,' and gives concrete examples like QQQ and NVDA. It also differentiates itself from siblings such as get_gex_profile and get_levels by explicitly excluding tape-signed and session-based books.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states 'Use when: the question is about a ticker's gamma exposure, flip or walls right now or at the last close' and 'Not for: SPX history, a past date, or the tape-signed measured book (get_session, get_levels, get_gex_profile).' This provides clear decision rules and names alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sessionsList sessionsARead-onlyIdempotentInspect
List the finished SPX trading sessions in the free FirmTape archive, newest first, with the total count and how far back coverage runs. Every listed day can be fetched with get_session / get_levels and replayed free at FirmTape. Use when: you need to know which days exist, or the size and span of the archive, before asking about one. Not for: any measurement about a day — call get_session with that date instead. Limits: finished sessions only (today's session appears after the close), max 50 days per call.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many days to return (default 10, max 50) |
Output Schema
| Name | Required | Description |
|---|---|---|
| newest | Yes | Trading days, newest first |
| summary | Yes | One sentence carrying this answer's numbers, its trading day and its source, written to be quoted verbatim to a reader rather than paraphrased. |
| total_sessions | Yes | How many finished sessions the free archive holds |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly/openWorld/idempotent/non-destructive safety, and the description adds meaningful behavioral context beyond them: only finished sessions are listed, today's session appears only after the close, the call returns total count and coverage span, and there is a max of 50 days per call. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the first sentence states the core purpose and result, followed by relationship to siblings, usage guidance, exclusions, and limits. Every sentence earns its place with no repetition or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple listing tool with one optional parameter, rich annotations, and an output schema, the description covers purpose, usage boundaries, alternatives, data freshness, archive span, and call limits. Nothing needed to decide when and how to invoke it is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the single optional 'limit' parameter with default and maximum, and schema coverage is 100%. The description reinforces the max 50 days per call but does not add semantic meaning beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List'), a specific resource ('finished SPX trading sessions'), and ordering ('newest first'), plus what the result includes (total count, coverage span). It also distinguishes itself from siblings by naming get_session / get_levels as the tools for fetching individual days.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'Use when' and 'Not for' guidance is provided: use it to know which days exist or the archive size/span, not for any measurement about a day, in which case get_session is the named alternative. This fully routes an agent to the correct tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
options_strategy_testTest an options strategy on the archiveAInspect
Test an SPX 0DTE options strategy — a condor, strangle, straddle or any leg set — against every session in the FirmTape archive on real quotes and real settlement. One call prices it 63 ways: seven widths of your geometry across nine entry times, so the answer is WHERE TO PUT THE STRIKES rather than a verdict on one guess. Short legs are sold at the bid and long legs bought at the ask, $1.25 a leg — measured on 13.1M prints, the median SPX 0DTE print pays the full quoted half-spread, so these fills are the median outcome and not a conservative one. Returns the marginal by width and by entry, a recommended direction ONLY when the marginal is ordered and a withheld holdout agrees, the day-clustered mean and its error, prob_loss_20, and all 63 cells with yours marked. If those 63 come back flat the run carries on by itself for the same credits -- where the structure sits relative to spot, past the edge of the grid, then eight standard 0DTE shapes -- up to 154 configurations, so the answer is 'not this, and here is what the archive does pay for' rather than a shrug. It never names a best cell: the best of 63 is best by chance. Spends 10 credits, refunded on failure. Requires a Lab token (Authorization header).
| Name | Required | Description | Default |
|---|---|---|---|
| legs | Yes | The strategy, as legs. `dist` is the leg's distance from spot as a fraction: -0.005 is half a percent below, +0.0083 is 0.83% above. Strikes are not given because they travel — the geometry is what the archive is asked. A short 0.5% strangle is two legs at -0.005 and +0.005, both qty -1. | |
| entry | No | Your entry time. All nine are reported whatever you pick; this only marks which cell is yours. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses material behavior beyond annotations: it costs 10 credits, refunds on failure, requires a Lab token, uses median bid/ask fills at $1.25 per leg, reports a recommended direction only under strict conditions, never names a best cell, and may auto-expand to 154 configurations. No contradiction with the annotations; readOnlyHint=false is consistent with a credit-spending test operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded and the detail is mostly earned given the tool's complexity, covering output shape, fill assumptions, costs, and failure behavior. Some phrasing is verbose and slightly winding, but no critical information is buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description properly enumerates returned items: marginal by width and entry, a conditional recommended direction, the day-clustered mean and error, prob_loss_20, and the 63 marked cells. It also covers pricing, cost, refunds, authentication, and the expanded grid behavior, making it thorough enough to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% descriptive coverage for legs, qty, dist, right, and entry, including clear examples. The description adds context about the 63-way grid and that entry only marks which cell is yours, but it does not substantially expand parameter-level meaning beyond what the schema already gives.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Test an SPX 0DTE options strategy' against the FirmTape archive on real quotes and real settlement. This clearly differentiates it from the sibling data-retrieval tools like get_gex_profile, get_levels, and get_session, which do not backtest strategies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes it clear this is for testing options strategies against archived real-market data and describes the kind of answer it produces, so an agent can infer when to choose it over the alternatives. However, it does not explicitly name sibling tools or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screen_sessionsScreen sessionsARead-onlyIdempotentInspect
Filter the finished SPX sessions in the FirmTape archive by their closing measurements and count them: regime at the close and at the open, zero-gamma flip crossings, whether the expected-hold band held, direction and size of the move, net-gamma percentile, 0DTE ATM IV at the open, the calendar event, weekday and year. Returns how many sessions match, three shares over them (closed above the flip, band held, mean absolute move) printed next to the same shares over the whole archive, and the matched days. A matched share close to the archive's share is a base rate, not a pattern. Use when: 'how often did FOMC days close in negative gamma', 'the days the band broke with the percentile under 20', 'largest moves on CPI days since 2024'. Not for: one day's numbers (get_session), gamma by strike (get_gex_profile), or testing a rule with out-of-sample statistics (the Lab). Limits: counts over finished sessions' closing measurements only, no per-strike data; at most 50 sessions listed per call. Counts, not investment advice.
| Name | Required | Description | Default |
|---|---|---|---|
| iv | No | 0DTE ATM implied vol at the open: under 10%, 10-15%, 15-20%, 20% and above | |
| dir | No | Direction of the open-to-close move | |
| dow | No | Day of the week | |
| band | No | Whether the expected-hold band held all session | |
| gpct | No | Net-gamma percentile at the close: under 20, 20 to 50, 50 to 80, 80 and above | |
| move | No | Size of the open-to-close move: under 0.5%, 0.5% or more, 1% or more, 2% or more | |
| open | No | Regime at the open: pos = opened above the flip, neg = below | |
| sort | No | Order of the sessions list: newest (default), oldest, move (largest absolute move first), gpct (highest percentile first) | |
| year | No | Calendar year, e.g. 2025; a year outside the archive is dropped | |
| cross | No | Flip crossings in the session: 0 = none, 1 = exactly one, 2 = two or more | |
| event | No | Event the day carried: fomc (decision days), cpi, nfp (payrolls), pce, ppi, gdp, retail (retail sales), jolts, ism, claims, auctions (Treasury), fed (speeches, Beige Book), opex (expiration), vix (VIX settlement), umich, confidence, eia, halts (halt in a top name), housing (housing and durables), refunding, rebalances (index), none (no event of these kinds) | |
| limit | No | How many matched sessions to list (default 20, max 50); the counts always cover every match | |
| regime | No | Regime at the close: pos = closed above the zero-gamma flip, neg = below |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | The /screener page that shows the same result to a person |
| label | Yes | The filters in words |
| shares | Yes | The same three shares over the matched sessions and over the whole archive; a matched share close to the archive's is a base rate, not a pattern |
| source | No | |
| filters | No | The filters the screener accepted; a value outside the vocabulary is dropped, not an error |
| matched | Yes | Sessions matching every filter |
| summary | Yes | One sentence carrying this answer's numbers, its trading day and its source, written to be quoted verbatim to a reader rather than paraphrased. |
| archived | Yes | Finished sessions in the archive |
| screened | Yes | Sessions whose closing measurements were available to screen |
| sessions | Yes | Matched sessions in the requested order (default newest first), at most `limit` |
| truncated | Yes | True when more sessions matched than `sessions` carries |
| question_url | No | When the filters are one of the screener's common questions, that question's own page (e.g. /screener/negative-gamma-closes), the address to cite |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already declaring readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, the bar is lower, yet the description adds substantial behavioral value beyond them: the matched-vs-archive comparison semantics, the critical base-rate caveat ('A matched share close to the archive's share is a base rate, not a pattern'), the closing-measurements-only scope, the per-call 50-session cap, and the disclaiming close. No contradiction with annotations (a read-only screening operation).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but efficient: the core purpose and filter dimensions are front-loaded, followed by return structure, the base-rate interpretation caveat, routing guidance, and scope limits. Every sentence earns its place for a 13-parameter tool, though it is verbose enough that it cannot reach a 5 on conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (13 params, screening plus archive-comparison semantics), the description is complete. An output schema exists to document return values, annotations carry the safety profile, and the description covers purpose, routing, interpretation caveat, scope limits, and disclaimers. Nothing an agent needs to select and invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with all 13 parameters documented (including enum meanings and the limit semantics), so the schema carries the full weight. The description adds contextual framing — mapping which dimensions are filterable — but introduces no new parameter syntax or value semantics beyond the schema. Baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (filter and count) and resource (finished SPX sessions in the FirmTape archive), then enumerates the exact filter dimensions (regime, crossings, band, direction, move size, gamma percentile, IV, event, weekday, year). It names what it is NOT for (get_session, get_gex_profile, the Lab), making it fully distinguishable from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit 'Use when' examples ('how often did FOMC days close in negative gamma', 'largest moves on CPI days since 2024') and explicit 'Not for' exclusions that cite alternative tools (get_session for one day's numbers, get_gex_profile for gamma by strike, the Lab for out-of-sample testing). No inference left to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchSearch FirmTapeARead-onlyIdempotentInspect
Search FirmTape for documents about SPX dealer positioning: the explainer pages, the dated research measurements, and the archive of finished trading sessions. Returns ids to pass to fetch. A date in the query ("2026-08-24", "August 24 2026", "August 2026") finds the session or sessions for it. Clients that can call the specific tools should prefer list_sessions / get_session / get_levels / get_level_history / screen_sessions instead — those return structured numbers rather than documents. Not for: fetching a document you already have the id for (fetch) or any measurement you can name a date for. Limits: FirmTape's own public pages and finished sessions only, ranked by keyword — it searches no other site.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | A topic, a question, or a trading date |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only, idempotent, open-world, and non-destructive. The description adds meaningful context: it searches only FirmTape's public pages and finished sessions, ranks by keyword, and returns ids rather than data. This goes well beyond the annotation baseline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence earns its place: purpose, return contract, date behavior, alternatives, exclusions, and scope limits. It is front-loaded with the core purpose and uses compact, scannable sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter search tool with rich annotations and no output schema, the description fully covers what is searched, what is returned, how dates behave, when to use alternatives, and what the tool does not cover. Nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the query parameter is described as 'A topic, a question, or a trading date.' The description adds concrete value with date format examples and explains how a date maps to session(s), which improves the agent's ability to formulate valid queries.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: search FirmTape for SPX dealer positioning documents. It also enumerates the exact content types searched and states it returns ids for fetch, clearly distinguishing it from siblings like list_sessions and get_session.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly tells agents when to prefer structured tools (list_sessions, get_session, get_levels, etc.) and gives direct exclusions: don't use it for fetching by id or for a measurement with a known date. This is exemplary routing guidance.
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.
1 tool update
- Added
get_symbol_gamma
1 tool update
- Added
screen_sessions
1 tool update
- Changed
get_market_moving_minutes1 field changed- added
Output schema / properties / minutes / items / properties / usuallyAdded value: +{ + "description": "What usually followed this class of minute across every session measured: count, median 15-minute move, share that continued the 5-minute move", + "type": "string" +}
1 tool update
- Added
get_market_moving_minutes
1 tool update
- Changed
get_session1 field changed- added
Output schema / properties / eventsAdded value: +{ + "description": "The day's scheduled market events (high and medium impact), each with its minute in ET, its source, the release's prints when known, and, for an event inside the session, what the book did in the 15 minutes after it", + "items": { + "properties": { + "after": { + "description": "spot over the 15 minutes after the event, the flip and the walls before and after, the net gamma sign; only for events inside the session", + "type": "string" + }, + "impact": { + "type": "string" + }, + "name": { + "type": "string" + }, + "prints": { + "items": { + "properties": { + "actual": { + "type": [ + "string", + "null" + ] + }, + "forecast": { + "type": [ + "string", + "null" + ] + }, + "label": { + "type": "string" + }, + "prior": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" + }, + "type": "array" + }, + "time": { + "description": "HH:MM ET; empty for an all-day item", + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "time", + "name", + "impact" + ], + "type": "object" + }, + "type": "array" +}
1 tool update
- Changed
get_events2 fields changed- added
Output schema / properties / events / items / properties / bookAdded value: +{ + "description": "What the dealer book did around this kind of event, from the archive, when measured: the flip, the gamma sign at the start of the window, the walls", + "type": "string" +} - added
Output schema / properties / events / items / properties / printsAdded value: +{ + "description": "The release's numbers, when known: label, forecast, prior and (after the print) actual, as the release quotes them", + "items": { + "properties": { + "actual": { + "type": [ + "string", + "null" + ] + }, + "forecast": { + "type": [ + "string", + "null" + ] + }, + "label": { + "type": "string" + }, + "prior": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "label" + ], + "type": "object" + }, + "type": "array" +}
1 tool update
- Added
get_events
8 tool updates
- First observed
fetch - First observed
get_gex_profile - First observed
get_level_history - First observed
get_levels - First observed
get_session - First observed
list_sessions - First observed
options_strategy_test - First observed
search
Related MCP Connectors
Real-time & historical options analytics: GEX, dealer positioning, vol, VRP, 0DTE, CME futures
SPX 0DTE dealer market structure: GEX, walls, gamma flip, regime. Free previews; pay per read.
Gamma rails, options flow tape, and graded 0DTE setups for SPY/QQQ/IWM. Advisory only.
Free dealer-gamma call walls, put walls and gamma flip for ES, NQ, SPX and QQQ, graded daily.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceProvides AI agents with access to real-time and historical SPX 0DTE options market data from QuantData. It enables analysis of market indicators like gamma exposure walls, net drift, max pain, and trade side statistics through natural language.9MIT
- AlicenseNot gradedqualityBmaintenanceProvides a consolidated 0DTE options cockpit for SPX/SPXW, including chain, Greeks, dealer exposure, volatility term structure, and economic events, using free delayed market data.2MIT
- AlicenseBqualityCmaintenanceEnables querying options chains and estimating gamma exposure for ETFs and liquid underlyings, including proxy gamma calculations and historical gamma snapshots.9GPL 3.0
- FlicenseNot gradedqualityCmaintenanceComputes SPX dealer gamma exposure (GEX) from CBOE delayed option quotes and exposes it as an MCP tool for Claude Desktop.-
Glama MCP Gateway
Add one secure layer between your agents and this server.