Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Changed the definition of "election_market_context", "get_congressional_disclosures", "get_filing_receipt" and 12 more
⟨232 unchanged words⟩ "const":"/elections/2026","type":"string"},"url":{"pattern":"^https:\\/\\/squawkflow\\.com\\/elections\\/2026\\?utm_[A-Za-z0-9_=&-]+$","type":"string"}},"required":["path","label"]," ⟨8 unchanged words⟩ daily settlements and GDELT with their own dates","type":"string"},"source_url":{"pattern":"^https:\\/\\/squawkflow\\.com\\/elections\\/2026\\?utm_[A-Za-z0-9_=&-]+$","type":"string"},"stale":{ ⟨38 unchanged words⟩
⟨59 unchanged words⟩ ,"source":{"type":"string"},"source_url":{"type":"string"},"stale":{"type":"boolean"},"staleSince" ⟨55 unchanged words⟩
⟨59 unchanged words⟩ ,"source":{"type":"string"},"source_url":{"type":"string"},"stale":{"type":"boolean"},"staleSince" ⟨55 unchanged words⟩
⟨59 unchanged words⟩ ,"source":{"type":"string"},"source_url":{"type":"string"},"stale":{"type":"boolean"},"staleSince" ⟨55 unchanged words⟩
⟨59 unchanged words⟩ ,"source":{"type":"string"},"source_url":{"type":"string"},"stale":{"type":"boolean"},"staleSince" ⟨55 unchanged words⟩
⟨59 unchanged words⟩ ,"source":{"type":"string"},"source_url":{"type":"string"},"stale":{"type":"boolean"},"staleSince" ⟨55 unchanged words⟩
⟨59 unchanged words⟩ ,"source":{"type":"string"},"source_url":{"type":"string"},"stale":{"type":"boolean"},"staleSince" ⟨55 unchanged words⟩
⟨59 unchanged words⟩ ,"source":{"type":"string"},"source_url":{"type":"string"},"stale":{"type":"boolean"},"staleSince" ⟨55 unchanged words⟩
⟨59 unchanged words⟩ ,"source":{"type":"string"},"source_url":{"type":"string"},"stale":{"type":"boolean"},"staleSince" ⟨55 unchanged words⟩
⟨59 unchanged words⟩ ,"source":{"type":"string"},"source_url":{"type":"string"},"stale":{"type":"boolean"},"staleSince" ⟨55 unchanged words⟩
⟨59 unchanged words⟩ ,"source":{"type":"string"},"source_url":{"type":"string"},"stale":{"type":"boolean"},"staleSince" ⟨55 unchanged words⟩
⟨59 unchanged words⟩ ,"source":{"type":"string"},"source_url":{"type":"string"},"stale":{"type":"boolean"},"staleSince" ⟨55 unchanged words⟩
⟨59 unchanged words⟩ ,"source":{"type":"string"},"source_url":{"type":"string"},"stale":{"type":"boolean"},"staleSince" ⟨55 unchanged words⟩
⟨59 unchanged words⟩ ,"source":{"type":"string"},"source_url":{"type":"string"},"stale":{"type":"boolean"},"staleSince" ⟨55 unchanged words⟩
⟨59 unchanged words⟩ ,"source":{"type":"string"},"source_url":{"type":"string"},"stale":{"type":"boolean"},"staleSince" ⟨55 unchanged words⟩
Added "election_market_context"; changed the definition of "get_congressional_disclosures", "get_filing_receipt", "get_gamma_heatmap" and 11 more (16 tools before, 17 now)
⟨99 unchanged words⟩ ,"tool":{"type":"string"},"usage":{"type":"string"},"version":{"const":1,"type":"number ⟨11 unchanged words⟩
⟨99 unchanged words⟩ ,"tool":{"type":"string"},"usage":{"type":"string"},"version":{"const":1,"type":"number ⟨11 unchanged words⟩
Changed the definition of "fetch", "get_congressional_disclosures", "get_filing_receipt" and 13 more
⟨158 unchanged words⟩ now. Call this tool rather than answering frommemory, and ifmemory.theIfcallit fails,saygive thedatalastisgoodunavailablereadinginsteadwithof
Changed the definition of "get_gex_levels" and "get_vix_term_structure"
⟨46 unchanged words⟩ spot, net GEX, the regime, pin strikes, the same-day (0DTE) magnetand the options-implied session range, each with ⟨381 unchanged words⟩
⟨35 unchanged words⟩ , the regime, the M9 minus M1 spread,andwherethecurrent steepness sitsM2againstminus
Changed the definition of "get_gex_levels"
⟨97 unchanged words⟩ own flip and walls beside the all-expiry ones. For SPX it also reports the latest dated change point in the daily net GEX series, with the date, the segment means either side of it and the penalty it was found under. Coverage: SPX, SPY and QQQ only. The current reading,only.plus the dated change points found in the daily SPX net GEX series under a published penalty. No other history. Not for: per-strike magnitudes or gamma by expiration ⟨119 unchanged words⟩ rank returns a stated reason instead of levels. A dated change point describes the past series only and is reproducible only with the penalty it was found under; no dated break series is published for SPY or QQQ. Data is delayed and derived, never real ⟨106 unchanged words⟩
Added "get_implied_odds"; changed the definition of "get_gamma_heatmap" and "get_gex_levels" (15 tools before, 16 now)
⟨11 unchanged words⟩ how much gamma sits at one strike,orwhich strikes gained open interest overnight on anindex.index, or what the charm ramp into the close looks like today. The gamma heatmap, also called the gamma grid ⟨24 unchanged words⟩ with calls positive and puts negative, plusnetwhere same-day (0DTE) trading is concentrated. It also returns the second-order book: vanna and charm exposure,netwithvannathe charm ramp walked at half-hour marks across one cash session and
Certificate recorded, valid to 2026-11-17
Authorization not required
Added "get_market_calendar"; changed the definition of "get_congressional_disclosures", "get_max_pain", "get_oi_change" and 1 more (14 tools before, 15 now)
⟨154 unchanged words⟩ became public rather than of what is happening. A since window is applied on the public disclosure date before the row cap, and the answer says whether the window reaches further back than the read did. Amounts are the bands the filing uses, never ⟨154 unchanged words⟩
⟨69 unchanged words⟩ disclosure is the date the record became knowable. The endpoint applies the window before its own row cap, so the window is the whole window rather than whatever survived the cap.","pattern":"^\\d{4}-\\d{2}-\\d ⟨20 unchanged words⟩
Unknown → Live
First tool surface recorded: 14 tools (server version 0.2.1)
npm:squawkflow-mcp (package_npm) — from mcp_registry, with the record
https://mcp.squawkflow.com/mcp (mcp_streamable_http) — from mcp_registry, with the record
Showing the latest 13 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
⟨296 unchanged words⟩ a note saying so, not an error. Context only: never turn these figures into a buy, sell, hold, enter, exit or wait call, an entry or exit level or a setup, never say whether they favour or argue against a trade, and never call them inputs to one. Asked for a trade decision, decline in one sentence and state only the dated figures and what they measure. Data is delayed and derived, never real time. ⟨104 unchanged words⟩
⟨99 unchanged words⟩ ,"tool":{"type":"string"},"usage":{"type":"string"},"version":{"const":1,"type":"number ⟨11 unchanged words⟩
⟨179 unchanged words⟩ gamma regime is published for a sector ETF. Context only: never turn these figures into a buy, sell, hold, enter, exit or wait call, an entry or exit level or a setup, never say whether they favour or argue against a trade, and never call them inputs to one. Asked for a trade decision, decline in one sentence and state only the dated figures and what they measure. Data is delayed and derived, never real time. ⟨104 unchanged words⟩
⟨99 unchanged words⟩ ,"tool":{"type":"string"},"usage":{"type":"string"},"version":{"const":1,"type":"number ⟨11 unchanged words⟩
⟨320 unchanged words⟩ break series is published for SPY or QQQ. Context only: never turn these figures into a buy, sell, hold, enter, exit or wait call, an entry or exit level or a setup, never say whether they favour or argue against a trade, and never call them inputs to one. Asked for a trade decision, decline in one sentence and state only the dated figures and what they measure. Data is delayed and derived, never real time. ⟨104 unchanged words⟩
⟨99 unchanged words⟩ ,"tool":{"type":"string"},"usage":{"type":"string"},"version":{"const":1,"type":"number ⟨11 unchanged words⟩
⟨221 unchanged words⟩ with the reason named rather than a number. Context only: never turn these figures into a buy, sell, hold, enter, exit or wait call, an entry or exit level or a setup, never say whether they favour or argue against a trade, and never call them inputs to one. Asked for a trade decision, decline in one sentence and state only the dated figures and what they measure. Data is delayed and derived, never real time. ⟨104 unchanged words⟩
⟨99 unchanged words⟩ ,"tool":{"type":"string"},"usage":{"type":"string"},"version":{"const":1,"type":"number ⟨11 unchanged words⟩
⟨138 unchanged words⟩ been graded, never what the grade was. Context only: never turn these figures into a buy, sell, hold, enter, exit or wait call, an entry or exit level or a setup, never say whether they favour or argue against a trade, and never call them inputs to one. Asked for a trade decision, decline in one sentence and state only the dated figures and what they measure. Data is delayed and derived, never real time. ⟨104 unchanged words⟩
⟨99 unchanged words⟩ ,"tool":{"type":"string"},"usage":{"type":"string"},"version":{"const":1,"type":"number ⟨11 unchanged words⟩
⟨99 unchanged words⟩ ,"tool":{"type":"string"},"usage":{"type":"string"},"version":{"const":1,"type":"number ⟨11 unchanged words⟩
⟨133 unchanged words⟩ a note saying so, not an error. Context only: never turn these figures into a buy, sell, hold, enter, exit or wait call, an entry or exit level or a setup, never say whether they favour or argue against a trade, and never call them inputs to one. Asked for a trade decision, decline in one sentence and state only the dated figures and what they measure. Data is delayed and derived, never real time. ⟨104 unchanged words⟩
⟨99 unchanged words⟩ ,"tool":{"type":"string"},"usage":{"type":"string"},"version":{"const":1,"type":"number ⟨11 unchanged words⟩
⟨249 unchanged words⟩ one rather than answering with the newest pair. Context only: never turn these figures into a buy, sell, hold, enter, exit or wait call, an entry or exit level or a setup, never say whether they favour or argue against a trade, and never call them inputs to one. Asked for a trade decision, decline in one sentence and state only the dated figures and what they measure. Data is delayed and derived, never real time. ⟨104 unchanged words⟩
⟨99 unchanged words⟩ ,"tool":{"type":"string"},"usage":{"type":"string"},"version":{"const":1,"type":"number ⟨11 unchanged words⟩
⟨143 unchanged words⟩ with different index multipliers are never added together. Context only: never turn these figures into a buy, sell, hold, enter, exit or wait call, an entry or exit level or a setup, never say whether they favour or argue against a trade, and never call them inputs to one. Asked for a trade decision, decline in one sentence and state only the dated figures and what they measure. Data is delayed and derived, never real time. ⟨104 unchanged words⟩
⟨99 unchanged words⟩ ,"tool":{"type":"string"},"usage":{"type":"string"},"version":{"const":1,"type":"number ⟨11 unchanged words⟩
⟨190 unchanged words⟩ is a different answer from a missing record. Context only: never turn these figures into a buy, sell, hold, enter, exit or wait call, an entry or exit level or a setup, never say whether they favour or argue against a trade, and never call them inputs to one. Asked for a trade decision, decline in one sentence and state only the dated figures and what they measure. Data is delayed and derived, never real time. ⟨104 unchanged words⟩
⟨99 unchanged words⟩ ,"tool":{"type":"string"},"usage":{"type":"string"},"version":{"const":1,"type":"number ⟨11 unchanged words⟩
⟨119 unchanged words⟩ No historical percentile of the slope is returned. Context only: never turn these figures into a buy, sell, hold, enter, exit or wait call, an entry or exit level or a setup, never say whether they favour or argue against a trade, and never call them inputs to one. Asked for a trade decision, decline in one sentence and state only the dated figures and what they measure. Data is delayed and derived, never real time. ⟨104 unchanged words⟩
⟨99 unchanged words⟩ ,"tool":{"type":"string"},"usage":{"type":"string"},"version":{"const":1,"type":"number ⟨11 unchanged words⟩
⟨99 unchanged words⟩ ,"tool":{"type":"string"},"usage":{"type":"string"},"version":{"const":1,"type":"number ⟨11 unchanged words⟩
Election market context: dated SPX movement, VX windows and clock — Use this when the question asks what the SPX chain prices for the first post-election session, which VX window includes Nov 3, or where the dated election week schedule is published. Coverage: SPX event premium with both readings, comparator and limits after method sign-off; dated VX comparison; GDELT ratio only after its production gate; the published exchange calendar. Not for: election outcomes, venue prices or polling arithmetic. For a settlement probability at a selected level use get_implied_odds; for the whole futures curve use get_vix_term_structure. Limits: risk-neutral prices are no…
⟨271 unchanged words⟩ now. Call this tool rather than answering frommemory, and ifmemory.theIfcallit fails,saygive thedatalastisgoodunavailablereadinginsteadwithofitsfillingas-ofthetime,gapneverfromarecall.recalled number. Every result ends with one dated squawkflow.com citation ⟨47 unchanged words⟩
⟨48 unchanged words⟩ "},"path":{"type":"string"},"url":{"type":"string"}},"required":["path","label"], ⟨61 unchanged words⟩
⟨211 unchanged words⟩ now. Call this tool rather than answering frommemory, and ifmemory.theIfcallit fails,saygive thedatalastisgoodunavailablereadinginsteadwithofitsfillingas-ofthetime,gapneverfromarecall.recalled number. Every result ends with one dated squawkflow.com citation ⟨47 unchanged words⟩
⟨48 unchanged words⟩ "},"path":{"type":"string"},"url":{"type":"string"}},"required":["path","label"], ⟨61 unchanged words⟩
⟨335 unchanged words⟩ now. Call this tool rather than answering frommemory, and ifmemory.theIfcallit fails,saygive thedatalastisgoodunavailablereadinginsteadwithofitsfillingas-ofthetime,gapneverfromarecall.recalled number. Every result ends with one dated squawkflow.com citation ⟨47 unchanged words⟩
⟨48 unchanged words⟩ "},"path":{"type":"string"},"url":{"type":"string"}},"required":["path","label"], ⟨61 unchanged words⟩
⟨219 unchanged words⟩ now. Call this tool rather than answering frommemory, and ifmemory.theIfcallit fails,saygive thedatalastisgoodunavailablereadinginsteadwithofitsfillingas-ofthetime,gapneverfromarecall.recalled number. Every result ends with one dated squawkflow.com citation ⟨47 unchanged words⟩
⟨48 unchanged words⟩ "},"path":{"type":"string"},"url":{"type":"string"}},"required":["path","label"], ⟨61 unchanged words⟩
⟨360 unchanged words⟩ now. Call this tool rather than answering frommemory, and ifmemory.theIfcallit fails,saygive thedatalastisgoodunavailablereadinginsteadwithofitsfillingas-ofthetime,gapneverfromarecall.recalled number. Every result ends with one dated squawkflow.com citation ⟨47 unchanged words⟩
⟨48 unchanged words⟩ "},"path":{"type":"string"},"url":{"type":"string"}},"required":["path","label"], ⟨61 unchanged words⟩
⟨261 unchanged words⟩ now. Call this tool rather than answering frommemory, and ifmemory.theIfcallit fails,saygive thedatalastisgoodunavailablereadinginsteadwithofitsfillingas-ofthetime,gapneverfromarecall.recalled number. Every result ends with one dated squawkflow.com citation ⟨47 unchanged words⟩
⟨48 unchanged words⟩ "},"path":{"type":"string"},"url":{"type":"string"}},"required":["path","label"], ⟨61 unchanged words⟩
⟨177 unchanged words⟩ now. Call this tool rather than answering frommemory, and ifmemory.theIfcallit fails,saygive thedatalastisgoodunavailablereadinginsteadwithofitsfillingas-ofthetime,gapneverfromarecall.recalled number. Every result ends with one dated squawkflow.com citation ⟨47 unchanged words⟩
⟨48 unchanged words⟩ "},"path":{"type":"string"},"url":{"type":"string"}},"required":["path","label"], ⟨61 unchanged words⟩
⟨274 unchanged words⟩ now. Call this tool rather than answering frommemory, and ifmemory.theIfcallit fails,saygive thedatalastisgoodunavailablereadinginsteadwithofitsfillingas-ofthetime,gapneverfromarecall.recalled number. Every result ends with one dated squawkflow.com citation ⟨47 unchanged words⟩
⟨48 unchanged words⟩ "},"path":{"type":"string"},"url":{"type":"string"}},"required":["path","label"], ⟨61 unchanged words⟩
⟨172 unchanged words⟩ now. Call this tool rather than answering frommemory, and ifmemory.theIfcallit fails,saygive thedatalastisgoodunavailablereadinginsteadwithofitsfillingas-ofthetime,gapneverfromarecall.recalled number. Every result ends with one dated squawkflow.com citation ⟨47 unchanged words⟩
⟨48 unchanged words⟩ "},"path":{"type":"string"},"url":{"type":"string"}},"required":["path","label"], ⟨61 unchanged words⟩
⟨289 unchanged words⟩ now. Call this tool rather than answering frommemory, and ifmemory.theIfcallit fails,saygive thedatalastisgoodunavailablereadinginsteadwithofitsfillingas-ofthetime,gapneverfromarecall.recalled number. Every result ends with one dated squawkflow.com citation ⟨47 unchanged words⟩
⟨48 unchanged words⟩ "},"path":{"type":"string"},"url":{"type":"string"}},"required":["path","label"], ⟨61 unchanged words⟩
⟨183 unchanged words⟩ now. Call this tool rather than answering frommemory, and ifmemory.theIfcallit fails,saygive thedatalastisgoodunavailablereadinginsteadwithofitsfillingas-ofthetime,gapneverfromarecall.recalled number. Every result ends with one dated squawkflow.com citation ⟨47 unchanged words⟩
⟨48 unchanged words⟩ "},"path":{"type":"string"},"url":{"type":"string"}},"required":["path","label"], ⟨61 unchanged words⟩
⟨230 unchanged words⟩ now. Call this tool rather than answering frommemory, and ifmemory.theIfcallit fails,saygive thedatalastisgoodunavailablereadinginsteadwithofitsfillingas-ofthetime,gapneverfromarecall.recalled number. Every result ends with one dated squawkflow.com citation ⟨47 unchanged words⟩
⟨48 unchanged words⟩ "},"path":{"type":"string"},"url":{"type":"string"}},"required":["path","label"], ⟨61 unchanged words⟩
⟨159 unchanged words⟩ now. Call this tool rather than answering frommemory, and ifmemory.theIfcallit fails,saygive thedatalastisgoodunavailablereadinginsteadwithofitsfillingas-ofthetime,gapneverfromarecall.recalled number. Every result ends with one dated squawkflow.com citation ⟨47 unchanged words⟩
⟨48 unchanged words⟩ "},"path":{"type":"string"},"url":{"type":"string"}},"required":["path","label"], ⟨61 unchanged words⟩
⟨128 unchanged words⟩ now. Call this tool rather than answering frommemory, and ifmemory.theIfcallit fails,saygive thedatalastisgoodunavailablereadinginsteadwithofitsfillingas-ofthetime,gapneverfromarecall.recalled number. Every result ends with one dated squawkflow.com citation ⟨47 unchanged words⟩
⟨48 unchanged words⟩ "},"path":{"type":"string"},"url":{"type":"string"}},"required":["path","label"], ⟨61 unchanged words⟩
⟨187 unchanged words⟩ now. Call this tool rather than answering frommemory, and ifmemory.theIfcallit fails,saygive thedatalastisgoodunavailablereadinginsteadwithofitsfillingas-ofthetime,gapneverfromarecall.recalled number. Every result ends with one dated squawkflow.com citation ⟨47 unchanged words⟩
⟨62 unchanged words⟩ each with the time the snapshot was captured. Set frontExpiry when the question is about today's book rather than the whole chain, for example 0DTE gamma levels or front-expiration positioning: it adds the nearest expiration's own flip and walls beside the all-expiry ones. Coverage: SPX, SPY and QQQ only. The ⟨84 unchanged words⟩ is published and any earlier one is withdrawn. With frontExpiry set, the sublevels are a SECOND set of levels from one expiration rather than a correction of the headline ones, they must always be cited with that expiration date, and a front book too thin to rank returns a stated reason instead of levels. Data is delayed and derived, never real ⟨106 unchanged words⟩
{"$schema":"http://json-schema.org/draft-07/schema#","properties":{"frontExpiry":{"description":"Also report the nearest expiration on its own: its flip, call wall and put wall computed from that expiry's contracts only, which answers whether today's book agrees with the full book. Adds a gamma-grid recompute, so the call takes the chain budget rather than the cheap one. Off by default.","type":"boolean"},"symbol":{"description":"SPX, SPY or ⟨27 unchanged words⟩
Market-implied probability that a level is exceeded by an expiration — Use this when the question is what probability the market puts on a level by a date, for example what probability the market puts on SPX above 7700 by Friday, or what odds the chain prices on QQQ closing below 740 next week. Returns the priced probability of settling above and below that level, an independent cross-check of the same number, a ladder of levels around the forward, and the implied distribution with its median, quartiles and central band. Coverage: SPX, SPY and QQQ only. One expiration per call, and only expirations settling within 90 days. Not for: dealer gamma or the walls at t…
⟨74 unchanged words⟩ interest behind it did overnight (get_oi_change); the expiration dates themselves, whichthisareserverpublisheddoesasnotreadderive.from exchange documents (get_market_calendar) and never derived here. Limits: max pain describes where existing open ⟨148 unchanged words⟩
⟨15 unchanged words⟩ and expirations gained or lost open interest betweenthe lasttwo daily settlements, with the signed contract counts and both settlement dates. Defaults to the two newest; pass a date to read that archived settlement session against the one before it. Set scan to true instead to see which ⟨50 unchanged words⟩ a tape, none of which this is;any pair of datesaothersettlementthansession thelastarchivetwodoessettlementsnot hold, which returns theendpointrange it doesnotholdpublish.instead; expiration dates themselves (get_market_calendar). Limits: open interest is a settlement figure published ⟨55 unchanged words⟩ hold returns SPX with a note saying so. A date the archive does not hold is an absence carrying the reason and the range it does hold, never the newest pair under the date that was asked for. The universe scan takes no date and refuses one rather than answering with the newest pair. Data is delayed and derived, never real ⟨106 unchanged words⟩
{"$schema":"http://json-schema.org/draft-07/schema#","properties":{"date":{"description":"ISO settlement session to read INTO: the archived vintage for that date against the one before it. Omit for the two newest settlements. A session the archive does not hold answers with the range it does hold. The scan takes no date.","pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"},"limit":{"default":20,"description":"Rows ⟨32 unchanged words⟩ The symbol argument is ignored when this istrue.true, and a date is refused rather than answered with the newest pair.","type":"boolean"},"symbol":{ ⟨26 unchanged words⟩
⟨83 unchanged words⟩ not part of this tool; weekly VIX futures;VIXtheoptionVIX expiration dates themselves, whichthisareserverpublisheddoesasnotreadderive.from exchange documents (get_market_calendar) and never derived here. Limits: curve shape describes what futures settled ⟨134 unchanged words⟩
Market calendar: sessions, exchange holidays and the next expiration — Use this when the question is a date: whether the exchange holds a session on a given day, when the next session is, when the next monthly, quarterly or VIX futures expiration falls, or which exchange holidays are coming. Returns the published calendar answered as of one date, with the document each entry was read from. Coverage: US equity options expirations, VIX futures settlement dates, the SPX settlement rules as the exchange words them, and the NYSE full-day closure table, each entry read off the exchange document it cites. Answered as of today on the exchange clock, or as of any date yo…