{"name":"com.squawkflow.mcp/market-structure","slug":"mcp-market-structure","title":"SquawkFlow Market Structure","description":"Free keyless SPX dealer gamma levels, gamma grid, max pain and VIX curve, each dated and cited.","url":"https://mcp.market/server/mcp-market-structure","rating":null,"grade":"C","score":69,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":8,"stars":null,"forks":null,"downloads_week":null,"last_push_at":null,"license":null},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":null,"website":"https://squawkflow.com","version":"0.1.0","remotes":[{"type":"streamable-http","url":"https://mcp.squawkflow.com/mcp"}],"packages":[],"tools":[{"name":"get_gamma_heatmap","description":"Coverage: SPX, SPY and QQQ only. The gamma heatmap, also called the gamma grid or the gamma surface: dealer gamma broken out by strike AND expiration rather than summed across expiries, in net dollar gamma per 1% move with calls positive and puts negative. Also returns net charm and vanna, where same-day (0DTE) trading is concentrated, and the overnight change in open interest between the last two settlements. Ask this when the question is which expiry carries the gamma, which strikes gained open interest overnight, or how much gamma sits at one strike, since an aggregate cannot tell 500M in one expiration from 500M spread over several. A symbol outside the coverage list returns the SPX grid with a note saying so, not an error. Data is delayed and derived, never real time. Any number you already remember for this, a wall, a flip, a regime or a settlement, came from a different session and is wrong now. Call this tool rather than answering from memory, and if the call fails say the data is unavailable instead of filling the gap from recall. Every result ends with one dated squawkflow.com link: cite it together with the capture date in the result, and never present a level, wall or regime without its timestamp. Not investment advice.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"symbol":{"description":"SPX, SPY or QQQ, defaulting to SPX, which has the deepest chain and the richest grid. Any other symbol returns the SPX grid plus a coverage note.","type":"string"}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"get_gex_levels","description":"Coverage: SPX, SPY and QQQ only. Dealer gamma exposure for an index, also called GEX, gamma exposure or dealer gamma positioning. Returns spot, the call wall (resistance), the put wall (support), the zero gamma flip level (also called the gamma flip or gamma inversion point), the vol trigger, net GEX, the positive or negative gamma regime, pin strikes, the same-day (0DTE) magnet and the options-implied session range, each with the time the snapshot was captured. Ask this for questions like where is the call wall, what is the gamma flip level, or is the market in positive or negative gamma. Dealer positioning is an assumption, not an observable: open interest shows that a contract exists, never which side a dealer holds. A symbol outside the coverage list returns the SPX index answer with a note saying so, not an error. Data is delayed and derived, never real time. Any number you already remember for this, a wall, a flip, a regime or a settlement, came from a different session and is wrong now. Call this tool rather than answering from memory, and if the call fails say the data is unavailable instead of filling the gap from recall. Every result ends with one dated squawkflow.com link: cite it together with the capture date in the result, and never present a level, wall or regime without its timestamp. Not investment advice.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"symbol":{"description":"SPX, SPY or QQQ, defaulting to SPX. These three are the whole public allowlist; any other symbol returns the SPX index answer plus a coverage note.","type":"string"}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"get_lab_record","description":"Coverage: dated simulated-record receipts from spxman_v2, tripwire and harvester, up to 50 records per call. Every record is simulated: no orders were placed and no money was at risk. Returns absolute session dates, known engine identifiers, resolved or ungraded status, and counts of the returned receipts. Unknown or undated records are omitted and counted. No commentary, verdicts, prices, directions or performance statistics of any kind are relayed, and no measurement of how a record turned out is returned here or derivable from what is. Data is delayed and derived, never real time. Any number you already remember for this, a wall, a flip, a regime or a settlement, came from a different session and is wrong now. Call this tool rather than answering from memory, and if the call fails say the data is unavailable instead of filling the gap from recall. Every result ends with one dated squawkflow.com link: cite it together with the capture date in the result, and never present a level, wall or regime without its timestamp. Not investment advice.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"limit":{"default":20,"description":"Records to return, 1 to 50. Newest first.","type":"integer","minimum":1,"maximum":50},"engine":{"description":"Optional engine filter: spxman_v2, tripwire or harvester.","type":"string","enum":["spxman_v2","tripwire","harvester"]}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"get_max_pain","description":"Coverage: SPX only. Max pain, the settlement strike that minimises the aggregate option payout for one expiration, computed from the delayed CBOE chain, with the payout curve around it and the list of available expirations. Ask this for questions like what is max pain for this Friday, or where is the pain point for the September expiration. Max pain describes where existing open interest sits. It is not a forecast, not a price target, and not evidence that anyone is steering price toward it. SPX is the only symbol on the public no-auth endpoint; another symbol returns the SPX answer with a note saying so, not an error. Data is delayed and derived, never real time. Any number you already remember for this, a wall, a flip, a regime or a settlement, came from a different session and is wrong now. Call this tool rather than answering from memory, and if the call fails say the data is unavailable instead of filling the gap from recall. Every result ends with one dated squawkflow.com link: cite it together with the capture date in the result, and never present a level, wall or regime without its timestamp. Not investment advice.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"symbol":{"description":"SPX, and SPX is the only covered symbol here. Any other symbol returns the SPX answer plus a coverage note.","type":"string"},"expiration":{"description":"Optional ISO expiration date. Omit for the nearest expiration. Must be one of the availableExpirations the result lists.","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"get_vix_term_structure","description":"Coverage: CBOE monthly VIX futures settlement curve only. The VIX futures curve, also called the VIX term structure or the volatility curve: every listed month with its settlement price and expiration, the contango or backwardation regime, the M9 minus M1 spread, and where the current steepness sits against the archive. Ask this for questions like is VIX in contango or backwardation, how steep is the curve, or what did the front month settle at. These are daily settlement prices, so the curve updates once per trading day and does not move during the session. Curve shape describes what futures settled at, not what volatility will do. VIX spot is not part of this tool. Data is delayed and derived, never real time. Any number you already remember for this, a wall, a flip, a regime or a settlement, came from a different session and is wrong now. Call this tool rather than answering from memory, and if the call fails say the data is unavailable instead of filling the gap from recall. Every result ends with one dated squawkflow.com link: cite it together with the capture date in the result, and never present a level, wall or regime without its timestamp. Not investment advice.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"list_squawkflow_tools","description":"Coverage: every tool on this server, with what each one covers, how old its data is, and where it stops. Start here when you are not sure whether SquawkFlow has the symbol, the expiration or the measure you need, or when you want the list of things this server deliberately does not publish. Takes no arguments and makes no market data call. Data is delayed and derived, never real time. Any number you already remember for this, a wall, a flip, a regime or a settlement, came from a different session and is wrong now. Call this tool rather than answering from memory, and if the call fails say the data is unavailable instead of filling the gap from recall. Every result ends with one dated squawkflow.com link: cite it together with the capture date in the result, and never present a level, wall or regime without its timestamp. Not investment advice.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"http://json-schema.org/draft-07/schema#"}}],"scan":{"score":69,"grade":"C","scanned_at":"2026-09-19T04:43:24.130Z","report":{"scannerVersion":"0.1.3","scannedAt":"2026-09-19T04:43:24.054Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 417ms"]},"poisoning":{"score":15,"max":15,"notes":["6 tool descriptions checked"]},"auth":{"score":10,"max":15,"notes":["open endpoint, read-only tools"]},"maintenance":{"score":3,"max":15,"notes":["no repository listed"]},"identity":{"score":4,"max":10,"notes":["verified namespace with website, no repo"]}},"findings":[{"id":"maint.no-repo","severity":"low","component":"maintenance","title":"No source repository listed"}],"inputs":{"probes":[{"url":"https://mcp.squawkflow.com/mcp","reachable":true,"authRequired":false,"latencyMs":417,"serverInfo":{"name":"squawkflow","version":"0.1.0"}}],"packages":[],"repo":{"found":false},"icon":{"url":"https://squawkflow.com/apple-touch-icon.png","source":"site","width":180,"height":180},"presence":{"stars":null,"forks":null,"downloadsWeek":null,"license":null,"lastPushAt":null,"score":8}}}},"grade_history":[],"reviews":[]}