FirmTape — SPX Gamma & Dealer Positioning

Máy chủ MCP từ xa cung cấp miễn phí gamma đại lý SPX, điểm đảo chiều gamma bằng không, các mức kháng cự/hỗ trợ call/put, hơn 1.000 phiên phát lại, và backtesting 0DTE có xác thực.

Tài liệu

Developers menu

MCP

Point an assistant at one address and it reads dealer positioning for every finished SPX session; with a lab key, or after signing in through OAuth, it also drives LAB.

https://mcp.firmtape.com/mcpstreamable HTTP (POST JSON-RPC: initialize, tools/list, tools/call)

Registry com.firmtape/spx-options-gamma

Auth

  • Free tools: no account, no key.
  • lab_ tools and options_strategy_test: a lab key as Authorization: Bearer <key>, or OAuth 2.1 (clients that speak MCP authorization register themselves; press Connect and sign in). Without either they are not listed.
  • The order ledger and Geo have MCP servers of their own, opened by an orders and a geo key.

Free tools

ToolArgumentsReturns
list_sessions{ limit? }Finished trading days in the archive, newest first, up to 50 a call.
get_session{ day }One session: OHLC, the zero-gamma flip and its crossings, the call and put walls, the net-gamma percentile, ATM IV.
get_levels{ day }The level set of one finished day and where the session closed against it.
get_level_history{ days? } or { from, to }How the levels moved, up to 40 sessions: each day's flip and walls and its change from the day before.
get_gex_profile{ day, minute?, book?, expiry_scope?, strikes_around_spot? }The strike ladder of one minute in the volume, measured or open-interest book. The one tool with a per-address limit.
get_events{ from?, to?, impact? }The market calendar of a window, up to 31 days, with what usually followed each kind of event.
get_market_moving_minutes{ day?, tape_only? }The minutes of a session that moved the market, with what was happening.
screen_sessions{ filters..., limit? }Counts and lists the finished sessions whose closing measurements match the filters, with the matching /screener page.
similar_days{ day, minute?, k? }The finished sessions whose state at the same time of day was nearest to one moment, what the rest of each day did, and the same shares over every archived moment at that time of day as the base rate.
get_symbol_gamma{ symbol }The latest volume and open-interest books of a ticker, or ES, NQ and RTY, with a trust grade.
get_coverage{ from?, to? }Which trading days the archive holds in a window and which it is missing.
get_watched_sites{ id?, kind?, country?, q? }Energy sites and oil ports watched by satellite: NASA FIRMS thermal anomalies against each site's own normal, dated Sentinel-2 views and, for ports, weekly Sentinel-1 vessel counts, each with its page under /geo/site/.
search{ query }Document search over the archive, for clients that only call search and fetch.
fetch{ id }One document: an id from search, a FirmTape address or a trading day.

LAB tools

ToolArgumentsReturns
lab_compile{ message, id? }Turns a plain-words idea into a rule, or amends one. Free, needs a positive balance.
lab_run{ id, kind: "backtest" | "quant" }Runs the idea's current conveyor step: 1 credit, refunded on failure.
options_strategy_test{ legs, entry, ... }Prices an SPX 0DTE structure over the archive on real quotes: 10 credits.
lab_state{}The account's ideas, the conveyor holder and the credit balance.
lab_thread{ id }The chat thread of one idea.
lab_idea{ id, action }Desk actions: desk, drop, delete, set.

Limits

  • get_gex_profile reads at most 50 distinct days an hour and 150 in 24 hours per client address (an IPv6 address counts by its /64). Days already opened keep answering; a new day answers once the window rolls. The refusal is a tool error that says so.
  • The other free tools have no per-address limit.
  • lab_ tools spend the account's credits, as the LAB API does.

Errors

  • A tool's failure is a result with isError: true and a sentence, so the model can read it: an unknown day, a closed window, no credits.
  • An unknown tool or a protocol error is a JSON-RPC error (-32602, -32601).

Connect

Claude Code

claude mcp add --transport http firmtape https://mcp.firmtape.com/mcp

Cursor (.cursor/mcp.json)

{ "mcpServers": { "firmtape": { "url": "https://mcp.firmtape.com/mcp" } } }

claude.ai and Claude Desktop

Settings, Connectors, Add custom connector: https://mcp.firmtape.com/mcp

Any client, or curl

curl -s https://mcp.firmtape.com/mcp -H "content-type: application/json" -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_session","arguments":{"day":"2026-10-09"}}}'

The other MCP servers

ORDERS

The order ledger, on the same key and the same daily budget as the Orders API.

Tool
orders_day
orders_latest
orders_sessions

Endpoint https://firmtape.com/orders/mcp, key scope orders.

GEO

Geo records; tool calls count toward the month's calls, listing tools does not.

Tool
geo_records
geo_sources
geo_coverage
geo_snapshot
geo_activity
geo_series
geo_latency
geo_sites

Endpoint https://geo.firmtape.com/mcp, key scope geo.

Measurements of dealer positioning, never a forecast or a trade call. This page is built from FirmTape's public contract, the same files the OpenAPI document is built from; the tests hold them against the route code. Markdown: /docs/developers/mcp.md.