Skip to main content
Glama

FirmTape - SPX, ES, NQ, RTY gamma levels, 100+ symbols

Minutes that moved the tape

get_market_moving_minutes
Read-onlyIdempotent

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

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dayNoThe session, YYYY-MM-DD (default: the last finished session)
tape_onlyNoOnly minutes the tape confirmed (default true; false adds the flashes the tape ignored and the calendar events it did not react to)

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
dayYesTrading day, YYYY-MM-DD
minutesYesThe marked minutes of the session in clock order
summaryYesOne sentence carrying this answer's numbers, its trading day and its source, written to be quoted verbatim to a reader rather than paraphrased.
data_as_ofYesThe time this answer's data is true as of, ISO 8601 with the ET offset: a finished session's close (13:00 on an early close), the minute a ladder was read at, or the source's own build stamp. Null when the source states none.
server_versionYesVersion of the FirmTape MCP server that produced this answer

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedOutput schema / properties / data_as_of
      Added value: +{
      +  "description": "The time this answer's data is true as of, ISO 8601 with the ET offset: a finished session's close (13:00 on an early close), the minute a ladder was read at, or the source's own build stamp. Null when the source states none.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • removedOutput schema / properties / minutes / items / properties / hold_band
      Removed value: -{
      -  "description": "The expected-hold band at the minute, 'lo / hi': the corridor of spot over which the measured book's gamma stays positive. Not the walls. (Was misnamed `walls` before 0.2.4.)",
      -  "type": [
      -    "string",
      -    "null"
      -  ]
      -}
    • addedOutput schema / properties / server_version
      Added value: +{
      +  "description": "Version of the FirmTape MCP server that produced this answer",
      +  "type": "string"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "summary",
      -  "day",
      -  "minutes"
      -]New value: +[
      +  "summary",
      +  "day",
      +  "minutes",
      +  "data_as_of",
      +  "server_version"
      +]
  2. Changed2 schema fields changed
    • addedOutput schema / properties / minutes / items / properties / hold_band
      Added value: +{
      +  "description": "The expected-hold band at the minute, 'lo / hi': the corridor of spot over which the measured book's gamma stays positive. Not the walls. (Was misnamed `walls` before 0.2.4.)",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • removedOutput schema / properties / minutes / items / properties / walls
      Removed value: -{
      -  "description": "The put and call walls at the minute, 'lo / hi'",
      -  "type": [
      -    "string",
      -    "null"
      -  ]
      -}
  3. Changed1 schema field changed
    • addedOutput schema / properties / minutes / items / properties / usually
      Added 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"
      +}
  4. Added

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds genuinely non-obvious constraints beyond that: finished sessions only, the live day belonging to the paid live stream, coverage starting 2022-04, and an ET clock. It does not discuss result size or rate limits, but the freshness/entitlement limits are the material ones and they are stated.

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

Conciseness3/5

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

The 'Use when / Not for / Limits' scaffolding is well organized and front-loads the essentials, but the opening sentence is a sprawling, heavily clause-laden construction whose decorative phrasing ('what stood beside each', 'the honest reading that no headline existed') costs more than it returns.

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 handling return values, a 100%-covered input schema, idempotent/readOnly annotations, and a description that covers scope, use cases, exclusions, coverage start date, and entitlements, 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.

Parameters3/5

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

Schema description coverage is 100%, with both 'day' (format, default) and 'tape_only' (default true, what false adds) fully documented in the schema. The description reinforces the tape-vs-headline distinction prose-wise but adds no new parameter syntax or semantics. Baseline 3 is correct when the schema does the heavy lifting.

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

Purpose4/5

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

The description names a concrete resource and scope: the market-moving minutes of one finished SPX session, plus the three kinds of annotations each minute carries (scheduled event, news-desk item, or no headline at all). It also distinguishes itself from siblings by name in the 'Not for' clause. The ornate phrasing ('what stood beside each', 'the honest reading') slightly obscures an otherwise precise statement of purpose.

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 when-to-use examples are given ('what moved SPX at 14:25 on 2026-09-10', 'were there news-driven minutes yesterday', 'which afternoon moves had no headline'), and alternatives are named with the condition that routes away from this tool: the scheduled calendar (get_events) and the day's levels (get_levels). Nothing 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.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources