{"apiVersion":"v1","directorySlug":"firmtape-mcp-71ffe49607","title":"FirmTape","description":"LIVE SPX dealer gamma (GEX), vanna, charm and the flip every second. Gamma levels for 100+ ETFs, indexes and stocks. REPLAY 1,000+ sessions free. LAB backtests.","pageUrl":"https://www.mcpbundles.com/skills/firmtape-mcp-71ffe49607","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://mcp.firmtape.com/mcp","hostedMcpUrl":null,"toolCount":12,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"com.firmtape/firmtape-mcp-71ffe49607","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"get_market_moving_minutes","description":"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 expected-hold band at that minute. Use when: 'wh","inputSchema":{"type":"object","properties":{"day":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"tape_only":{"type":"boolean"}},"additionalProperties":false},"title":"Minutes that moved the tape","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_market_moving_minutes","displayName":"Minutes that moved the tape"},{"name":"get_events","description":"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,","inputSchema":{"type":"object","properties":{"to":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"from":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"impact":{"enum":["high","med","low"],"type":"string"}},"additionalProperties":false},"title":"Market calendar","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_events","displayName":"Market calendar"},{"name":"list_sessions","description":"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 day","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","maximum":50,"minimum":1}},"additionalProperties":false},"title":"List sessions","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"list_sessions","displayName":"List sessions"},{"name":"screen_sessions","description":"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 matc","inputSchema":{"type":"object","properties":{"iv":{"enum":["lt10","10-15","15-20","gt20"],"type":"string"},"dir":{"enum":["up","down"],"type":"string"},"dow":{"enum":["mon","tue","wed","thu","fri"],"type":"string"},"band":{"enum":["held","broke"],"type":"string"},"gpct":{"enum":["lt20","20-50","50-80","gt80"],"type":"string"},"move":{"enum":["lt05","gt05","gt1","gt2"],"type":"string"},"open":{"enum":["pos","neg"],"type":"string"},"sort":{"enum":["newest","oldest","move","gpct"],"type":"string"},"year":{"type":"string","pattern":"^\\d{4}$"},"cross":{"enum":["0","1","2"],"type":"string"},"event":{"enum":["fomc","cpi","nfp","pce","ppi","gdp","retail","jolts","ism","claims","auctions","fed","opex","vix","umich","confidence","eia","halts","housing","refunding","rebalances","none"],"type":"string"},"limit":{"type":"integer","maximum":50,"minimum":1},"regime":{"enum":["pos","neg"],"type":"string"}},"additionalProperties":false},"title":"Screen sessions","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"screen_sessions","displayName":"Screen sessions"},{"name":"get_session","description":"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 deliber","inputSchema":{"type":"object","required":["day"],"properties":{"day":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"additionalProperties":false},"title":"Session summary","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_session","displayName":"Session summary"},{"name":"get_level_history","description":"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 /","inputSchema":{"type":"object","properties":{"to":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"days":{"type":"integer","maximum":40,"minimum":2},"from":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"additionalProperties":false},"title":"Level history","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_level_history","displayName":"Level history"},{"name":"get_symbol_gamma","description":"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-sig","inputSchema":{"type":"object","required":["symbol"],"properties":{"symbol":{"type":"string","pattern":"^[A-Za-z]{1,5}$"}},"additionalProperties":false},"title":"Gamma for another symbol","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_symbol_gamma","displayName":"Gamma for another symbol"},{"name":"get_levels","description":"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.","inputSchema":{"type":"object","required":["day"],"properties":{"day":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"additionalProperties":false},"title":"Level set","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_levels","displayName":"Level set"},{"name":"get_gex_profile","description":"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","inputSchema":{"type":"object","required":["day"],"properties":{"day":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"book":{"enum":["measured","open_interest","volume"],"type":"string"},"minute":{"type":"string","pattern":"^\\d{2}:\\d{2}$"},"expiry_scope":{"enum":["all","0dte"],"type":"string"},"strikes_around_spot":{"type":"integer","maximum":200,"minimum":1}},"additionalProperties":false},"title":"Gamma by strike","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_gex_profile","displayName":"Gamma by strike"},{"name":"search","description":"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","inputSchema":{"type":"object","required":["query"],"properties":{"query":{"type":"string"}},"additionalProperties":false},"title":"Search FirmTape","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"search","displayName":"Search FirmTape"},{"name":"fetch","description":"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 tr","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}},"additionalProperties":false},"title":"Fetch a FirmTape document","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"fetch","displayName":"Fetch a FirmTape document"},{"name":"options_strategy_test","description":"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 fi","inputSchema":{"type":"object","required":["legs"],"properties":{"legs":{"type":"array","items":{"type":"object","required":["right","qty","dist"],"properties":{"qty":{"enum":[-1,1],"type":"number"},"dist":{"type":"number"},"right":{"enum":["CALL","PUT"],"type":"string"}},"additionalProperties":false},"maxItems":4,"minItems":1},"entry":{"enum":["10:00","10:30","11:00","11:30","12:00","12:30","13:00","13:30","14:00"],"type":"string"}},"additionalProperties":false},"title":"Test an options strategy on the archive","logicalName":"options_strategy_test","displayName":"Test an options strategy on the archive","annotations":{"untrustedContentHint":true,"readOnlyHint":true}}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=FirmTape&config=eyJ1cmwiOiAiaHR0cHM6Ly9tY3AuZmlybXRhcGUuY29tL21jcCJ9"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22FirmTape%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.firmtape.com%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22FirmTape%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.firmtape.com%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=FirmTape&connectorUrl=https%3A%2F%2Fmcp.firmtape.com%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"FirmTape\" --url \"https://mcp.firmtape.com/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/firmtape-mcp-71ffe49607","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/firmtape-mcp-71ffe49607/tools/{tool}","mcpServerUrl":"https://mcp.firmtape.com/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/firmtape-mcp-71ffe49607?live=1"}