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 andoptions_strategy_test: alabkey asAuthorization: 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
ordersand ageokey.
Free tools
| Tool | Arguments | Returns |
|---|---|---|
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
| Tool | Arguments | Returns |
|---|---|---|
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_profilereads 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: trueand 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.