{"server":"com.electionsmcp/electionsmcp","count":50,"changes":[{"tool":"get_county_economic_and_wealth_profile","kind":"added","observed_at":"2026-10-16T17:39:15.388Z","fields":[],"description_before":null,"description_after":"Read a county’s economic vitality dossier (Census 15-sector business patterns, establishments, employees, payroll, average annual wage, new SOS LLC/Corp formations, SEC Form D capital raises, Form 4/FEC major donors,…","description_similarity":null,"before_hash":null,"after_hash":"c24ac791caca23880bdde168d4f309eb"},{"tool":"get_county_officials","kind":"added","observed_at":"2026-10-16T17:39:15.388Z","fields":[],"description_before":null,"description_after":"Read current local, county, municipal, judicial, and school-board officials (40,431 local officials; 97,231 total officials) by 5-digit county FIPS or state from RoutPoint v2.","description_similarity":null,"before_hash":null,"after_hash":"0679007cf6fc8afec8b4d0f5efe6ffab"},{"tool":"get_precinct_election_returns","kind":"added","observed_at":"2026-10-16T17:39:15.388Z","fields":[],"description_before":null,"description_after":"Read precinct-level election returns and normalized early-voting, absentee/mail, election-day, and provisional breakdowns across 87.7M precinct rows (linked to mapsmcp_precinct_id) from RoutPoint v2.","description_similarity":null,"before_hash":null,"after_hash":"6bd84ccb9c01855a96ef629765fcaa31"},{"tool":"get_live_early_vote_returns","kind":"added","observed_at":"2026-10-16T17:39:15.388Z","fields":[],"description_before":null,"description_after":"Read live 2026-11-03 General Election pre-election mail ballot requests, mail ballots returned, early in-person ballots, and partisan ballot composition (DEM vs. REP vs. UNA/Other) compared against each county’s 2024…","description_similarity":null,"before_hash":null,"after_hash":"cca18c4e6bcb08f0d9dc66f13f2eeb5b"},{"tool":"get_state_historical_turnout","kind":"added","observed_at":"2026-10-16T17:39:15.388Z","fields":[],"description_before":null,"description_after":"Read 50-year statewide prior-cycle turnout and vote totals (1976 through 2026 across all 50 states and DC): ballots cast, registered voters, voting-age population, turnout percentage, DEM/REP vote shares, margin, and…","description_similarity":null,"before_hash":null,"after_hash":"cade575735ad14728f8c05865f72f785"},{"tool":"get_county_voter_turnout_and_registration","kind":"added","observed_at":"2026-10-16T17:39:15.388Z","fields":[],"description_before":null,"description_after":"Read county voter registration, party registration (DEM/REP/UNA/Other), voting-age population, 2024/2022/2020/2026 ballots cast and turnout percentages, 2020-to-2024 partisan swing, and competitiveness tiers across all…","description_similarity":null,"before_hash":null,"after_hash":"2f2891a86bb55ee5fdd4c7e120d4d2aa"},{"tool":"get_early_voting_turnout","kind":"added","observed_at":"2026-10-16T17:39:15.388Z","fields":[],"description_before":null,"description_after":"Read early voting, absentee/mail, election-day, and provisional vote-method breakdowns alongside registered-voter, ballots-cast, and undervote/overvote turnout statistics by race and candidate from RoutPoint v2…","description_similarity":null,"before_hash":null,"after_hash":"a9b683f159ecbbb84e02e199f956ac16"},{"tool":"clear_race_scope","kind":"removed","observed_at":"2026-10-10T06:14:10.003Z","fields":[],"description_before":"Remove the race scope from a simulation, returning it to national/retrospective mode.","description_after":null,"description_similarity":null,"before_hash":"0967ae83d6a67ed2ebaea9bbc0b50fbc","after_hash":null},{"tool":"analyze_primary_inflections","kind":"removed","observed_at":"2026-10-10T06:14:10.003Z","fields":[],"description_before":"INFLECTION + SENSITIVITY analysis of a modeled presidential primary — under YOUR scenario's assumptions: not just who leads, but when your modeled race clinches and which contests could flip it. Walks roll_up_primary…","description_after":null,"description_similarity":null,"before_hash":"f24285e92f671695b6d92b4ecddbaae6","after_hash":null},{"tool":"optimize_calendar","kind":"removed","observed_at":"2026-10-10T06:14:10.003Z","fields":[],"description_before":"RANK primary-calendar orderings for a candidate against the sim's modeled per-state delegate hauls — which calendar order best helps candidate X. DETERMINISTIC and EXPLAINED, with NO invented probabilities: the total…","description_after":null,"description_similarity":null,"before_hash":"2802b258d3a71fa47c9a93af57b57e69","after_hash":null},{"tool":"list_calendar_scenarios","kind":"removed","observed_at":"2026-10-10T06:14:10.003Z","fields":[],"description_before":"List the named calendar orderings saved in your workspace (save_calendar_scenario), newest first, optionally filtered by party. Requires a verified account.","description_after":null,"description_similarity":null,"before_hash":"87aa35203fe63ef947a992edd0af065d","after_hash":null},{"tool":"clear_dem_calendar","kind":"removed","observed_at":"2026-10-10T06:14:10.003Z","fields":[],"description_before":"Discard the simulation's user-defined Democratic calendar and revert to the default 2024-based Dem calendar.","description_after":null,"description_similarity":null,"before_hash":"118d054905842381507982c91c423f2b","after_hash":null},{"tool":"answer_assumption","kind":"removed","observed_at":"2026-10-10T06:14:10.003Z","fields":[],"description_before":"SCENARIO TRUST assumptions ledger (tk_960747792b23d3) — record a question you asked the user (or a premise you were given) and the answer that now drives this scenario's modeling: \"Does the field consolidate after…","description_after":null,"description_similarity":null,"before_hash":"de155659fe8d1055fcb894ed67c88a22","after_hash":null},{"tool":"primary_state_effective","kind":"removed","observed_at":"2026-10-10T06:14:10.003Z","fields":[],"description_before":"ONE STATE's primary exactly as the delegate count sees it — the per-state READ view of roll_up_primary. When a state is modeled at COUNTY or PRECINCT grain, the statewide sliders no longer set its number: the state's…","description_after":null,"description_similarity":null,"before_hash":"411e83aa552691645af10d6f3e486a0b","after_hash":null},{"tool":"set_compare_paths","kind":"removed","observed_at":"2026-10-10T06:14:10.003Z","fields":[],"description_before":"Generate a two-path comparison that the browser renders side-by-side. Stores two named delegate PATHS (per-state candidate allocations) on the sim as Path A and Path B; when the user opens the sim in the simulator, the…","description_after":null,"description_similarity":null,"before_hash":"0902a9f7c1ac3e456ca42416bcbadf0e","after_hash":null},{"tool":"set_primary_asof","kind":"removed","observed_at":"2026-10-10T06:14:10.003Z","fields":[],"description_before":"Move the calendar playhead — the point in the primary calendar \"as of\" which to view the race on the map/chart. Pass an integer (number of contests counted, 0 = before the first contest) or null for the full calendar —…","description_after":null,"description_similarity":null,"before_hash":"fdd52e4b6845365154bf2636297c0bfe","after_hash":null},{"tool":"apply_primary_cohort","kind":"removed","observed_at":"2026-10-10T06:14:10.003Z","fields":[],"description_before":"BULK conditional primary edit — for every precinct in a HOUSE district that matches a 2024 cohort filter, set the candidate shares, in ONE call (instead of one set_primary_precinct_shares per precinct). Scopes to THIS…","description_after":null,"description_similarity":null,"before_hash":"bfc9923887d5fa97a33acfa5fb455db5","after_hash":null},{"tool":"set_primary_county_shares","kind":"removed","observed_at":"2026-10-10T06:14:10.003Z","fields":[],"description_before":"Model a party's presidential primary at COUNTY level: set one county's candidate vote shares within a state's primary. The state's effective share is the TURNOUT-WEIGHTED aggregate of its modeled counties (weighted by…","description_after":null,"description_similarity":null,"before_hash":"a0827dd8272845b4de5f53f1fb6a1a71","after_hash":null},{"tool":"exit_primary_candidate","kind":"removed","observed_at":"2026-10-10T06:14:10.003Z","fields":[],"description_before":"Remove a candidate from a party's presidential-primary FIELD and REDISTRIBUTE their modeled vote share to the survivors in one atomic, provenance-carrying edit — the \"so-and-so drops out, where do their voters go?\"…","description_after":null,"description_similarity":null,"before_hash":"1ccd53c77754f1f4c1508510f0ebe7b1","after_hash":null},{"tool":"set_primary_candidates","kind":"removed","observed_at":"2026-10-10T06:14:10.003Z","fields":[],"description_before":"Define the candidate field for a party's presidential primary on this simulation (the GOP/Dem contenders). Persisted on the sim so the browser and AI share one roster. Shares set via set_primary_shares reference these…","description_after":null,"description_similarity":null,"before_hash":"77cde472472b58e3ebbeef8e65e86fed","after_hash":null},{"tool":"list_modeled_candidates","kind":"removed","observed_at":"2026-10-10T06:14:10.003Z","fields":[],"description_before":"PORTFOLIO — every candidate or elected official you are modeling, unioned across ALL of your simulations and every level, deduped by name+party. One call returns the roster behind the candidate portals: each entry…","description_after":null,"description_similarity":null,"before_hash":"ad72f603e1344a6c4ce0c266275f6885","after_hash":null},{"tool":"candidate_standing","kind":"removed","observed_at":"2026-10-10T06:14:10.003Z","fields":[],"description_before":"PORTAL — one candidate/official's standing across every race you model them in. Give a {name} (and optional {party} to disambiguate); it finds all their appearances across your sims, builds each sim's impact report,…","description_after":null,"description_similarity":null,"before_hash":"71e2ce7cd91788360e11d5d85684885e","after_hash":null},{"tool":"exposure","kind":"removed","observed_at":"2026-10-10T06:14:10.003Z","fields":[],"description_before":"Run a deterministic swing-sensitivity sweep over the active user-controlled scenario and return the modeled control curve, swing-to-flip values, and most sensitive races.","description_after":null,"description_similarity":null,"before_hash":"8b9e5afd3fcb17cc5ae352f5e407b522","after_hash":null},{"tool":"tipping_point","kind":"removed","observed_at":"2026-10-10T06:14:10.003Z","fields":[],"description_before":"Identify the tipping-point race and nearby high-leverage races in the active user-controlled scenario, using its modeled margins and canonical version context.","description_after":null,"description_similarity":null,"before_hash":"73e8e7582c6ed4a344aa1a88b09c9c50","after_hash":null},{"tool":"roll_up_state_races","kind":"removed","observed_at":"2026-10-10T06:14:10.003Z","fields":[],"description_before":"Roll up every user-modeled race at one office level within a state, returning current modeled winners and margins from the canonical scenarios.","description_after":null,"description_similarity":null,"before_hash":"c8322d6219bc6b74cf65b379b865067c","after_hash":null},{"tool":"list_districts","kind":"removed","observed_at":"2026-10-10T06:14:10.003Z","fields":[],"description_before":"List every district at a given race level. Returns id, name, state. For House: 435 CDs. For state_senate: ~1900 districts. For state_assembly: ~5400 districts.","description_after":null,"description_similarity":null,"before_hash":"3c112c7ef2912969a0814058f7349b89","after_hash":null},{"tool":"list_precinct_overrides","kind":"removed","observed_at":"2026-10-10T06:14:10.003Z","fields":[],"description_before":"List every precinct override stored in a simulation. Useful for AI clients to inspect what state they've already mutated.","description_after":null,"description_similarity":null,"before_hash":"c0b284c8661f594e335b7faa58b1396d","after_hash":null},{"tool":"get_impact_report","kind":"removed","observed_at":"2026-10-10T06:14:10.003Z","fields":[],"description_before":"Nation-wide election impact across ALL 6 legislative levels in one call. Cascades county-level (president) overrides to senate/governor state outcomes. Computes state-chamber control where state-leg overrides exist.…","description_after":null,"description_similarity":null,"before_hash":"f6b0d4d29f9b71c123580784420d7a13","after_hash":null},{"tool":"revoke_share","kind":"removed","observed_at":"2026-10-10T06:14:10.003Z","fields":[],"description_before":"Revoke a previously-minted public share token. The /share/<token> URL stops resolving.","description_after":null,"description_similarity":null,"before_hash":"b84bf284a8ad56efd6a48f03e90df3be","after_hash":null},{"tool":"list_siblings","kind":"removed","observed_at":"2026-10-10T06:14:10.003Z","fields":[],"description_before":"List scenario branches that share a common parent so user-authored alternatives remain navigable and comparable.","description_after":null,"description_similarity":null,"before_hash":"1282ed0a56525dde3d1eee547cfc2a71","after_hash":null},{"tool":"clone_simulation","kind":"removed","observed_at":"2026-10-10T06:14:10.003Z","fields":[],"description_before":"Duplicate a simulation under a new name. Useful for \"save as / variant\" workflows. The clone carries the source scenario's overrides, candidates, description, campaign membership AND its annotations…","description_after":null,"description_similarity":null,"before_hash":"3e887122068e098974b121e7e6a2e45a","after_hash":null},{"tool":"delete_simulation","kind":"removed","observed_at":"2026-10-10T06:14:10.003Z","fields":[],"description_before":"Permanently delete a simulation.","description_after":null,"description_similarity":null,"before_hash":"2803d3383e9a1b1c1dcdcb3be482276d","after_hash":null},{"tool":"announce_presence","kind":"removed","observed_at":"2026-10-10T06:14:10.003Z","fields":[],"description_before":"HEARTBEAT — announce that this session (a browser tab or an MCP agent) is live in the workspace, optionally on one scenario. Presence rows power the \"who's here\" roster: list_presence, plus presence[] on get_view /…","description_after":null,"description_similarity":null,"before_hash":"61ab0a1e14687b662166fb13c6b2fe08","after_hash":null},{"tool":"bind_session","kind":"removed","observed_at":"2026-10-10T06:14:10.003Z","fields":[],"description_before":"BIND this agent session to the USER'S OPEN /sim — the session-bootstrap contract (tk_2ba54e8466bc19 / tk_7069d33b0c682e). Call this FIRST, before creating or editing anything: pass the page URL the user has open…","description_after":null,"description_similarity":null,"before_hash":"da5325981029983cf90c90898f9687de","after_hash":null},{"tool":"create_simulation","kind":"removed","observed_at":"2026-10-10T06:14:10.003Z","fields":[],"description_before":"Start a brand-new what-if model: an empty simulation of any race, ready for candidates, swings, and turnout. Returns simulation_id you can pass to subsequent calls. Pass level to pick the office (president | senate |…","description_after":null,"description_similarity":null,"before_hash":"97c01d376208f69a575511f836c72aca","after_hash":null},{"tool":"list_workspace_comments","kind":"removed","observed_at":"2026-10-10T06:14:10.003Z","fields":[],"description_before":"List contextual War Room discussion across the active workspace, optionally limited to one campaign. Deep links preserve the exact campaign, scenario, geography, and selected-map context.","description_after":null,"description_similarity":null,"before_hash":"3f4df6f2a9c70219c68019121ea3f32e","after_hash":null},{"tool":"remove_map_comment","kind":"removed","observed_at":"2026-10-10T06:14:10.003Z","fields":[],"description_before":"Delete a map comment by id (soft-delete, so threads stay intact). Only the comment's author can delete it.","description_after":null,"description_similarity":null,"before_hash":"86fa016ce9b9398b3e35b02e39df4a2e","after_hash":null},{"tool":"react_map_comment","kind":"removed","observed_at":"2026-10-10T06:14:10.003Z","fields":[],"description_before":"Toggle an emoji reaction on a War Room chat message (map comment): adds the caller to reactions[emoji] if absent, removes them if present. reactions = { \"<emoji>\": [\"<email/agent>\", …] }. Live (~1s).","description_after":null,"description_similarity":null,"before_hash":"72ee7c963dcd87bf5357839cec590b57","after_hash":null},{"tool":"resolve_map_comment","kind":"removed","observed_at":"2026-10-10T06:14:10.003Z","fields":[],"description_before":"Mark a map comment resolved (closed), like resolving a Google-Docs comment — or reopen it with resolved:false. Records who resolved it.","description_after":null,"description_similarity":null,"before_hash":"773621739708e381322b46d12fd10aa7","after_hash":null},{"tool":"list_threads","kind":"removed","observed_at":"2026-10-10T06:14:10.003Z","fields":[],"description_before":"The War Room as ONE campaign-scoped feed of THREADS — full discussion context in a single call. Pass campaign_id inside a campaign; omit it for scenario-global discussion only. Every content object is a thread: the…","description_after":null,"description_similarity":null,"before_hash":"d1dee808e0596384a0676eca95ac725f","after_hash":null},{"tool":"add_annotation","kind":"removed","observed_at":"2026-10-10T06:14:10.003Z","fields":[],"description_before":"Pin a note or highlight on the map — an annotation that travels with the scenario, so collaborators see what the scenario is targeting at a glance. Three types: \"pin\" (a labeled marker at lng/lat, or anchored to a…","description_after":null,"description_similarity":null,"before_hash":"00cf17ef4e7e4e55b82a9979f63c4aa0","after_hash":null},{"tool":"set_swings","kind":"removed","observed_at":"2026-10-10T06:14:10.003Z","fields":[],"description_before":"Persist the swing-slider state so a scenario built by hand in the browser (uniform + demographic share swings, the swing target, and the demographic region scope) survives reload. Opaque blob, mirrored to/from the UI.","description_after":null,"description_similarity":null,"before_hash":"cde19ceb69b95f6369848833a296ce12","after_hash":null},{"tool":"set_mode","kind":"removed","observed_at":"2026-10-10T06:14:10.003Z","fields":[],"description_before":"Set presidential modeling mode to general, 2028 Democratic primary, or 2028 Republican primary. Existing candidate rosters and user changes are preserved; use set_primary_candidates to define the prospective field…","description_after":null,"description_similarity":null,"before_hash":"b2541eceef91f14741243809cec03742","after_hash":null},{"tool":"set_cycle","kind":"removed","observed_at":"2026-10-10T06:14:10.003Z","fields":[],"description_before":"Set the election cycle modeled by the active scenario. This updates the canonical scenario and any open application view bound to it.","description_after":null,"description_similarity":null,"before_hash":"88af17e0f885dc2fcb46f2d565dfd59e","after_hash":null},{"tool":"reset_overrides","kind":"removed","observed_at":"2026-10-10T06:14:10.003Z","fields":[],"description_before":"Clear all manual overrides — the \"reset to baseline\" action. Pass level to reset just that level; omit to reset every level. include_precincts (default true) also clears precinct overrides.","description_after":null,"description_similarity":null,"before_hash":"5276855ec6a74505db1fa136eafd9c4c","after_hash":null},{"tool":"clear_feature_override","kind":"removed","observed_at":"2026-10-10T06:14:10.003Z","fields":[],"description_before":"Clear the manual percentage override on a single feature (county/state/district), reverting it to its baseline.","description_after":null,"description_similarity":null,"before_hash":"aa275c113efadf7482b2d4e94536c461","after_hash":null},{"tool":"create_custom_candidate","kind":"removed","observed_at":"2026-10-10T06:14:10.003Z","fields":[],"description_before":"Create a workspace-scoped prospective or write-in candidate with a stable identity, party, color, and optional office, then add that identity to canonical general- or primary-model rosters.","description_after":null,"description_similarity":null,"before_hash":"9e7faf6c995aa69b8ff919990b6c1930","after_hash":null},{"tool":"add_candidate","kind":"removed","observed_at":"2026-10-10T06:14:10.003Z","fields":[],"description_before":"Add a candidate to the candidates list for a simulation+level. Returns the candidate_id assigned. Pass an optional id (e.g. \"boebert\") to give the candidate a stable, human-readable id you can reference in later…","description_after":null,"description_similarity":null,"before_hash":"587cadc5caefbf6225552826cf1cbc26","after_hash":null},{"tool":"list_candidates","kind":"removed","observed_at":"2026-10-10T06:14:10.003Z","fields":[],"description_before":"List candidates currently configured for a simulation+level. Defaults: a 2024 presidential sim is Harris (D) / Trump (R); every other cycle and down-ballot level defaults to generic Democrat / Republican until you set…","description_after":null,"description_similarity":null,"before_hash":"1dcde939e5d2237f01684f7f6f6a540a","after_hash":null},{"tool":"list_map_themes","kind":"removed","observed_at":"2026-10-10T06:14:10.003Z","fields":[],"description_before":"MAP THEMES — the audience-preset registry (tk_bb87df86fdbc28): every theme with its semantic color tokens (party safe/likely/lean steps, tossup, missing, independent, selection, canvas). The SAME registry the live map…","description_after":null,"description_similarity":null,"before_hash":"086dddebc54e8d9c016e8a4e744771ce","after_hash":null}],"next_before":"567600","next_actions":[{"action":"list_changes","description":"Older changes","href":"/v1/servers/com.electionsmcp%2Felectionsmcp/changes?before=567600&limit=50"}]}