Skip to main content
Glama

FirmTape - SPX dealer positioning

Server Details

Backtest SPX gamma exposure (GEX) rules: dealer flip, call/put walls, 1,000+ session archive

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

Available Tools

8 tools
fetchFetch a FirmTape documentA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesAn id from `search`, a FirmTape URL, or a YYYY-MM-DD trading day

TDQS

A5/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters5/5

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.

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

Usage Guidelines5/5

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_gex_profileGamma by strikeA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dayYesA finished trading day, YYYY-MM-DD. Call list_sessions if unsure which days exist.
bookNoWhich book to read (default measured). open_interest is the convention rival tools print.
minuteNoET 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_scopeNoall = every expiry the session's book was pulled with (default); 0dte = the same-day slice alone
strikes_around_spotNoHow 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

ParametersJSON Schema
NameRequiredDescription
dayYesTrading day, YYYY-MM-DD
bookYesWhich book was read: measured, open_interest or volume
spotYesSPX at that minute
unitYesUnit of every gamma number below
levelsYesDealer-positioning levels in SPX index points; null when the session did not produce one
minuteYesThe 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.
replayYesFree minute-by-minute replay of the session on FirmTape
strikesYesDealer gamma by strike at that minute, lowest strike first
summaryYesOne sentence carrying this answer's numbers, its trading day and its source, written to be quoted verbatim to a reader rather than paraphrased.
heaviestYesThe largest strikes by absolute gamma inside the window, heaviest first
book_noteNoHow this book is built, and what it can and cannot be compared with
expiry_scopeYesall = every expiry this session's book was pulled with; 0dte = the same-day slice alone
strikes_returnedYesHow many strikes the window actually held
net_gamma_in_windowYesSum of the returned strikes — a window total, not the session's net gamma

TDQS

A4.9/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 historyA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoEnd of an explicit window, YYYY-MM-DD (inclusive). Defaults to the newest finished session.
daysNoHow many of the most recent finished sessions to read (default 20, max 40). Ignored when `from` is given.
fromNoStart of an explicit window, YYYY-MM-DD (inclusive). Overrides `days`.

Output Schema

ParametersJSON Schema
NameRequiredDescription
toYesTrading day, YYYY-MM-DD
fromYesTrading day, YYYY-MM-DD
missingYesDays in the requested window with no payload in the archive; the window is reported over what was actually read
summaryYesOne sentence carrying this answer's numbers, its trading day and its source, written to be quoted verbatim to a reader rather than paraphrased.
movementYesHow the level set travelled across the window. Descriptive statistics, not a forecast.
sessionsYesOne entry per finished session, NEWEST FIRST, same order as list_sessions

TDQS

A4.7/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 setA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dayYesA 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

ParametersJSON Schema
NameRequiredDescription
dayYesTrading day, YYYY-MM-DD
closeYesSession close
levelsYesDealer-positioning levels in SPX index points; null when the session did not produce one
replayYesFree minute-by-minute replay of the session on FirmTape
summaryYesOne 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_flipYesClose minus zero-gamma flip, index points; positive = closed above the flip

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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_sessionSession summaryA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dayYesA 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

ParametersJSON Schema
NameRequiredDescription
dayYesTrading day, YYYY-MM-DD
replayYesFree minute-by-minute replay of the session on FirmTape
sessionYesSPX price facts for the session
summaryYesOne sentence carrying this answer's numbers, its trading day and its source, written to be quoted verbatim to a reader rather than paraphrased.
dealer_positioningYes

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already establish read-only, idempotent, non-destructive behavior, and the description adds meaningful constraints: finished sessions only, one day per call, and the deliberate absence of buy/sell signals. It also clarifies the tool returns a holistic measurement bundle rather than a signal or opinion. This exceeds what annotations alone would tell the agent.

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 a dense but readable list of contents, then structured into 'Use when', 'Not for', and 'Limits' sections, each sentence serving a distinct purpose. There is slight redundancy between 'ONE finished SPX session' and 'finished sessions only, one day per call', but it is used to reinforce a key constraint. No filler or irrelevant detail.

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?

With an output schema present and full parameter schema coverage, the description covers the essential invocation context: what is included, when to choose it, which alternatives to use, and the tool's explicit non-signal stance. It also points the agent to the required input domain (finished trading days). Nothing an agent needs to correctly select and call this tool is missing.

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

Parameters3/5

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

The schema already fully documents the single required `day` parameter with pattern, example, and error behavior for invalid days (100% coverage), so the description doesn't need to add much. The description's 'finished sessions only, one day per call' reinforces the parameter's semantics but does not add new syntax or formatting detail. Baseline 3 is appropriate because the schema carries the load.

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 ('Everything FirmTape measured for ONE finished SPX session') and enumerates the included data (OHLC, VWAP, gamma flip, walls, hold band, net-gamma percentile, ATM IV). It explicitly differentiates from siblings by naming get_levels, get_level_history, and get_gex_profile as different scopes. This leaves no ambiguity about what this tool returns.

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?

It gives an explicit 'Use when: you want a whole day in a single call' and a 'Not for' list naming the exact alternative tools for each different need. It also states limits (finished sessions only, one day per call) so an agent can decide when to invoke it. No relevant usage condition is left to inference.

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

list_sessionsList sessionsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoHow many days to return (default 10, max 50)

Output Schema

ParametersJSON Schema
NameRequiredDescription
newestYesTrading days, newest first
summaryYesOne sentence carrying this answer's numbers, its trading day and its source, written to be quoted verbatim to a reader rather than paraphrased.
total_sessionsYesHow many finished sessions the free archive holds

TDQS

A4.7/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
legsYesThe 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.
entryNoYour entry time. All nine are reported whatever you pick; this only marks which cell is yours.

TDQS

A4.4/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

Frequently Asked Questions

Discussions

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

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides a consolidated 0DTE options cockpit for SPX/SPXW, including chain, Greeks, dealer exposure, volatility term structure, and economic events, using free delayed market data.
    1
    MIT
  • A
    license
    Not graded
    quality
    F
    maintenance
    Provides 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.
    8
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables algorithmic trading with Interactive Brokers, including market data, order management, and risk analysis, with special support for 0DTE SPX options.
    5
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.6/5.0
Disambiguation5/5

Every tool targets a distinct resource and granularity: documents (search/fetch), session enumeration (list_sessions), day-level measurements (get_session/get_levels), intraday shape (get_gex_profile), multi-day trends (get_level_history), and strategy backtesting (options_strategy_test). The descriptions go further than usual, using explicit 'Not for' cross-references so even get_levels vs get_session — a deliberate strict subset — reads unambiguously.

Naming Consistency4/5

The measurement tools follow a clean get_<nouon> convention (get_session, get_levels, get_level_history, get_gex_profile) and list_sessions fits the verb_nouon pattern. fetch and search are bare single-word verbs that break the pattern slightly — fetch_document / search_documents would be more uniform — and options_strategy_test is a compressed compound, but the overall snake_case style and semantic grouping are predictable.

Tool Count5/5

Eight tools is well within the 3-15 sweet spot for a specialized data server. Each tool carries a clearly differentiated job: two document access, one enumeration, four measurement surfaces (single-day full, single-day levels, intraday ladder, multi-day history), and one analysis operation. Nothing feels like filler and nothing essential is missing.

Completeness4/5

The domain is well covered: session discovery (list_sessions), document retrieval (search/fetch), full daily readings (get_session), subset views (get_levels), intraday gamma shape (get_gex_profile), and cross-day movement (get_level_history) — plus a strategy tester. Minor gaps exist, such as no way to compare gamma-ladder shape across multiple days without repeated get_gex_profile calls, but no workflow dead-ends for the stated purpose.

Resources