{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_9k8bu8mwktjq","handle":"electionsmcp","url":"https://wellknown.network/agents/electionsmcp","links":{"self":"https://wellknown.network/agents/electionsmcp/record.json","html":"https://wellknown.network/agents/electionsmcp","markdown":"https://wellknown.network/agents/electionsmcp/record.md","api":"https://wellknown.network/api/v1/agents/electionsmcp","status":"https://wellknown.network/api/v1/agents/electionsmcp/status","claim":"https://wellknown.network/agents/electionsmcp/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/electionsmcp/claim.json","badge":"https://wellknown.network/agents/electionsmcp/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/electionsmcp/history","tools":"https://wellknown.network/api/v1/agents/electionsmcp/tools"},"ard":{"identifier":"urn:air:www.electionsmcp.com:server:electionsmcp","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"ElectionsMCP","summary":"Model and map any 2028 U.S. race down to the precinct: scenarios, swing, turnout, and roll-ups.","description":"Model and map any 2028 U.S. race down to the precinct: scenarios, swing, turnout, and roll-ups.","publisher":{"name":"com.electionsmcp","url":null},"homepage":"https://www.electionsmcp.com","repository":null,"version":"0.2.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://www.electionsmcp.com/mcp","type":"mcp_streamable_http","auth":null,"probeable":true},{"url":"https://www.electionsmcp.com/sse","type":"mcp_sse","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-09-26T18:46:39.239941Z","publishedAt":"2026-09-26T18:46:39.239941Z","registryName":"com.electionsmcp/electionsmcp"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"infra.browser-automation","name":"Browser Automation","confidence":1,"provenance":"derived"},{"slug":"security.identity","name":"Identity & Access","confidence":1,"provenance":"derived"},{"slug":"productivity.notes","name":"Notes & Docs","confidence":0.569,"provenance":"derived"},{"slug":"productivity.hr","name":"HR & Recruiting","confidence":0.554,"provenance":"derived"},{"slug":"content.marketing","name":"Marketing","confidence":0.525,"provenance":"derived"},{"slug":"productivity.calendar","name":"Calendar & Scheduling","confidence":0.525,"provenance":"derived"},{"slug":"knowledge.reasoning","name":"Reasoning & Planning","confidence":0.525,"provenance":"derived"},{"slug":"content.writing","name":"Writing & Editing","confidence":0.51,"provenance":"derived"}],"categories":["content","infra","knowledge","productivity","security"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 2h ago.","lastOkAt":"2026-10-12T18:31:46.903Z","lastProbedAt":"2026-10-12T18:31:46.903Z","statusComputedAt":"2026-10-12T18:33:14.253Z","reliability30d":{"probes":60,"successRate":0.9,"p50Ms":481,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":60,"ok":54,"authBoundaryOk":0,"serviceOk":54,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-12T18:31:46.903Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":486,"error":null,"detail":{"tools":[{"name":"resolve_geography","description":"Turn a place name or shorthand into its canonical geo_id — resolve natural-language or structured location input. Handles \"CA-03\"/\"NC-4\" (congressional district"},{"name":"resolve_candidate","description":"WHO holds or runs for WHAT — turn a candidate/officeholder name into their seat + next race. Given a name (full, last-name, or a registry alias — \"Lauren Boeber"},{"name":"search_candidates","description":"BROWSE the canonical candidate registry WITHOUT a name — the nameless companion to resolve_candidate (which requires a name). Filter the registry of canonical p"},{"name":"lookup_address","description":"Resolve a US street address, ZIP, state, or U.S. House district and show workspace campaigns covering the result. Street addresses return a geocoded point and c"},{"name":"list_contests","description":"Discover contests for a geography and election cycle. Filter general, primary (dem_primary/rep_primary), or all stages; count describes the returned top-level r"},{"name":"election_calendar","description":"The election planning calendar. National form ({cycle}) returns federal contests, governors and by_state office lists; state form ({state,cycle}) returns a four"},{"name":"set_performance","description":"Set a candidate's vote share, such as the Democratic candidate to 54%, in one specific county, district, state, or precinct (the general-election override). Rou"},{"name":"target_precincts","description":"Return structured precinct model rows: precinct_id, name, county, county_fips, baseline_share, modeled_share, ballots_est, overridden, and gap_to_goal. The resp"},{"name":"create_scenario","description":"Create a new Scenario (a modeled path) — optionally inside a Race and seeded from a contest_id or an existing scenario (import_from). Seeds an immutable baselin"},{"name":"get_view","description":"Read the exact map/view state the application renders for a canonical scenario: headline totals, selected geography, modeled feature colors, annotations, primar"},{"name":"render_view","description":"A headless server-rendered IMAGE of the map — the rendered view a viewer sees, as SVG or PNG, WITHOUT a browser (tk_0b6d3501 P2). For a scenario + level (presid"},{"name":"render_chart","description":"share_comparison compares candidate shares for two saved versions of one model or two same-contest statewide general-election models. Returns canonical integer "},{"name":"set_view","description":"Set the active scenario view and selected map context: race stage, calendar playhead, geography grain, result source, selected feature, camera, map theme, and r"},{"name":"get_scenario","description":"A Scenario at its latest version (or a specified version_id): metadata (incl. latest_hash) + the version's top_line (margin / EC / viability) + its content hash"},{"name":"commit_version","description":"Save the scenario's current state as a new immutable, hash-stamped version in the append-only chain. Records a diff vs the parent version and the recomputed top"},{"name":"list_scenarios","description":"Page saved scenarios/simulations in this workspace by updated_at descending and scenario_id ascending, without version blobs. Returns scenario_id, name, level, "},{"name":"diff_versions","description":"Structured diff between two immutable versions. Raw before/after remain stored override patches (null means no saved override). Precinct cells also include effe"},{"name":"billing_status","description":"BILLING — your subscription state: {billing_enabled, logged_in, plan (personal|team|null), status, active, renews, can_save}. billing_enabled is false until the"},{"name":"connection_status","description":"WHO AM I — how THIS session is authenticated and which workspace this request resolved to. Returns authentication fields plus workspace {workspace_id, role, sel"},{"name":"set_candidates","description":"Replace the entire candidate roster for a simulation+level in one call (add / edit / remove / reorder). Each candidate: {id?, name, party, color?, incumbent?}; "},{"name":"set_turnout","description":"Set the turnout (mobilization) model. PRESIDENT (default, unchanged): each dial is a percentage-point boost toward toward_candidate_id in counties over an ACS t"},{"name":"add_map_comment","description":"Leave a Google-Docs-style COMMENT on the scenario map — a threaded, resolvable discussion anchored to a place. CAMPAIGN ISOLATION: when working inside a campaig"},{"name":"list_map_comments","description":"List one campaign's map comments on a scenario (oldest-first), each with its campaign_id, anchor, author, body, @mentions, parent_id, and resolved state. Pass c"},{"name":"apply_uniform_swing","description":"Apply an incremental swing in points toward one candidate at the requested office. A saved race_scope restricts writes to that state or district and refuses a d"},{"name":"get_tally","description":"Compute the current per-candidate tally for a simulation+level. For President: state-aggregated EVs. For others: feature counts. For level:\"senate\" the default "},{"name":"list_simulations","description":"List saved simulations in this workspace (id, name, level, cycle, mode, contest_id, last-modified; rows stamped with an identity also carry created_by/updated_b"},{"name":"get_simulation","description":"Read the canonical simulation/scenario state, including candidates, race scope, geography overrides, active version identity, provenance, and optional summary o"},{"name":"list_flipped","description":"List baseline-to-model winner changes. Defaults to state for statewide offices, county for president, and district for house/state legislature. Explicit grain:c"},{"name":"compare_simulations","description":"Compare two simulations. Without grain, returns the existing chamber/feature comparison. With grain:county|precinct and one state, compares exact saved canonica"},{"name":"share_simulation","description":"Mint a public, read-only link to the exact canonical scenario/version. Authenticate for durable workspace ownership; revoke_share disables the link."},{"name":"roll_up_race","description":"Roll up precincts to a race outcome under the current simulation. Sums baseline votes for all precincts inside the district boundary, applying overrides in prec"},{"name":"apply_swing_to_query","description":"Apply a uniform swing or an explicit per-precinct weights vector to a filtered cohort in one atomic call. Weights select only their named IDs, support canonical"},{"name":"get_campaign_onboarding","description":"CAMPAIGN ONBOARDING — guide a campaign manager or joining staff member through setup in their connected AI. Read one step or the complete guide: connection, cam"},{"name":"help","description":"Orient an AI client to campaign onboarding through get_campaign_onboarding, user-controlled election modeling, candidate and presidential-primary workflows, sup"},{"name":"get_catalog","description":"DISCOVERY — browse workflow/category groups, search tool names and descriptions, or fetch one complete schema and AI guide with tool. No arguments returns a com"},{"name":"list_primary_calendar","description":"Read the 2028 primary calendar with source dates, schedule certainty, modeled delegate coverage, missing jurisdictions, and threshold basis. New calendars inclu"},{"name":"set_primary_shares","description":"Set a party's presidential-primary vote shares — one state, or MANY states in a single call. SINGLE STATE: pass `state` + `shares` (unchanged behavior; echoes t"},{"name":"roll_up_primary","description":"The running delegate count — OR, for a race-scoped downballot sim, that race's own share rollup. DOWNBALLOT (tk_2110d54c1d0871): when the scenario is race-scope"},{"name":"primary_batch_edit","description":"ATOMIC batch-edit transaction for a PRIMARY scenario — validate, preview, apply, and roll back a whole SET of candidate / share / calendar edits as ONE transact"},{"name":"set_race_scope","description":"Bind the canonical scenario to one race/campaign so its map, tally, candidates, War Room context, operations, outputs, and MCP actions share the same race ident"},{"name":"call_tool","description":"Run any other tool you are authorized for that is not in this list. Find it and its exact input schema with get_catalog (search, a workflow, or {tool: name}), t"}],"toolCount":41,"toolsHash":"f837618b320c441a0b448e5b357adffe0d39f1b7245475bc4bacb9b9a8fd5ce9","serverName":"electionsmcp","capabilities":["tools","prompts"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-12T12:26:41.916Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":476,"error":null,"detail":{"tools":[{"name":"resolve_geography","description":"Turn a place name or shorthand into its canonical geo_id — resolve natural-language or structured location input. Handles \"CA-03\"/\"NC-4\" (congressional district"},{"name":"resolve_candidate","description":"WHO holds or runs for WHAT — turn a candidate/officeholder name into their seat + next race. Given a name (full, last-name, or a registry alias — \"Lauren Boeber"},{"name":"search_candidates","description":"BROWSE the canonical candidate registry WITHOUT a name — the nameless companion to resolve_candidate (which requires a name). Filter the registry of canonical p"},{"name":"lookup_address","description":"Resolve a US street address, ZIP, state, or U.S. House district and show workspace campaigns covering the result. Street addresses return a geocoded point and c"},{"name":"list_contests","description":"Discover contests for a geography and election cycle. Filter general, primary (dem_primary/rep_primary), or all stages; count describes the returned top-level r"},{"name":"election_calendar","description":"The election planning calendar. National form ({cycle}) returns federal contests, governors and by_state office lists; state form ({state,cycle}) returns a four"},{"name":"set_performance","description":"Set a candidate's vote share, such as the Democratic candidate to 54%, in one specific county, district, state, or precinct (the general-election override). Rou"},{"name":"target_precincts","description":"Return structured precinct model rows: precinct_id, name, county, county_fips, baseline_share, modeled_share, ballots_est, overridden, and gap_to_goal. The resp"},{"name":"create_scenario","description":"Create a new Scenario (a modeled path) — optionally inside a Race and seeded from a contest_id or an existing scenario (import_from). Seeds an immutable baselin"},{"name":"get_view","description":"Read the exact map/view state the application renders for a canonical scenario: headline totals, selected geography, modeled feature colors, annotations, primar"},{"name":"render_view","description":"A headless server-rendered IMAGE of the map — the rendered view a viewer sees, as SVG or PNG, WITHOUT a browser (tk_0b6d3501 P2). For a scenario + level (presid"},{"name":"render_chart","description":"share_comparison compares candidate shares for two saved versions of one model or two same-contest statewide general-election models. Returns canonical integer "},{"name":"set_view","description":"Set the active scenario view and selected map context: race stage, calendar playhead, geography grain, result source, selected feature, camera, map theme, and r"},{"name":"get_scenario","description":"A Scenario at its latest version (or a specified version_id): metadata (incl. latest_hash) + the version's top_line (margin / EC / viability) + its content hash"},{"name":"commit_version","description":"Save the scenario's current state as a new immutable, hash-stamped version in the append-only chain. Records a diff vs the parent version and the recomputed top"},{"name":"list_scenarios","description":"Page saved scenarios/simulations in this workspace by updated_at descending and scenario_id ascending, without version blobs. Returns scenario_id, name, level, "},{"name":"diff_versions","description":"Structured diff between two immutable versions. Raw before/after remain stored override patches (null means no saved override). Precinct cells also include effe"},{"name":"billing_status","description":"BILLING — your subscription state: {billing_enabled, logged_in, plan (personal|team|null), status, active, renews, can_save}. billing_enabled is false until the"},{"name":"connection_status","description":"WHO AM I — how THIS session is authenticated and which workspace this request resolved to. Returns authentication fields plus workspace {workspace_id, role, sel"},{"name":"set_candidates","description":"Replace the entire candidate roster for a simulation+level in one call (add / edit / remove / reorder). Each candidate: {id?, name, party, color?, incumbent?}; "},{"name":"set_turnout","description":"Set the turnout (mobilization) model. PRESIDENT (default, unchanged): each dial is a percentage-point boost toward toward_candidate_id in counties over an ACS t"},{"name":"add_map_comment","description":"Leave a Google-Docs-style COMMENT on the scenario map — a threaded, resolvable discussion anchored to a place. CAMPAIGN ISOLATION: when working inside a campaig"},{"name":"list_map_comments","description":"List one campaign's map comments on a scenario (oldest-first), each with its campaign_id, anchor, author, body, @mentions, parent_id, and resolved state. Pass c"},{"name":"apply_uniform_swing","description":"Apply an incremental swing in points toward one candidate at the requested office. A saved race_scope restricts writes to that state or district and refuses a d"},{"name":"get_tally","description":"Compute the current per-candidate tally for a simulation+level. For President: state-aggregated EVs. For others: feature counts. For level:\"senate\" the default "},{"name":"list_simulations","description":"List saved simulations in this workspace (id, name, level, cycle, mode, contest_id, last-modified; rows stamped with an identity also carry created_by/updated_b"},{"name":"get_simulation","description":"Read the canonical simulation/scenario state, including candidates, race scope, geography overrides, active version identity, provenance, and optional summary o"},{"name":"list_flipped","description":"List baseline-to-model winner changes. Defaults to state for statewide offices, county for president, and district for house/state legislature. Explicit grain:c"},{"name":"compare_simulations","description":"Compare two simulations. Without grain, returns the existing chamber/feature comparison. With grain:county|precinct and one state, compares exact saved canonica"},{"name":"share_simulation","description":"Mint a public, read-only link to the exact canonical scenario/version. Authenticate for durable workspace ownership; revoke_share disables the link."},{"name":"roll_up_race","description":"Roll up precincts to a race outcome under the current simulation. Sums baseline votes for all precincts inside the district boundary, applying overrides in prec"},{"name":"apply_swing_to_query","description":"Apply a uniform swing or an explicit per-precinct weights vector to a filtered cohort in one atomic call. Weights select only their named IDs, support canonical"},{"name":"get_campaign_onboarding","description":"CAMPAIGN ONBOARDING — guide a campaign manager or joining staff member through setup in their connected AI. Read one step or the complete guide: connection, cam"},{"name":"help","description":"Orient an AI client to campaign onboarding through get_campaign_onboarding, user-controlled election modeling, candidate and presidential-primary workflows, sup"},{"name":"get_catalog","description":"DISCOVERY — browse workflow/category groups, search tool names and descriptions, or fetch one complete schema and AI guide with tool. No arguments returns a com"},{"name":"list_primary_calendar","description":"Read the 2028 primary calendar with source dates, schedule certainty, modeled delegate coverage, missing jurisdictions, and threshold basis. New calendars inclu"},{"name":"set_primary_shares","description":"Set a party's presidential-primary vote shares — one state, or MANY states in a single call. SINGLE STATE: pass `state` + `shares` (unchanged behavior; echoes t"},{"name":"roll_up_primary","description":"The running delegate count — OR, for a race-scoped downballot sim, that race's own share rollup. DOWNBALLOT (tk_2110d54c1d0871): when the scenario is race-scope"},{"name":"primary_batch_edit","description":"ATOMIC batch-edit transaction for a PRIMARY scenario — validate, preview, apply, and roll back a whole SET of candidate / share / calendar edits as ONE transact"},{"name":"set_race_scope","description":"Bind the canonical scenario to one race/campaign so its map, tally, candidates, War Room context, operations, outputs, and MCP actions share the same race ident"},{"name":"call_tool","description":"Run any other tool you are authorized for that is not in this list. Find it and its exact input schema with get_catalog (search, a workflow, or {tool: name}), t"}],"toolCount":41,"toolsHash":"445e951709d1de8c6f0c762ca3aef5fbbdeb275b70f14f2020acf5342ddc9327","serverName":"electionsmcp","capabilities":["tools","prompts"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-12T06:25:32.478Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":466,"error":null,"detail":{"tools":[{"name":"resolve_geography","description":"Turn a place name or shorthand into its canonical geo_id — resolve natural-language or structured location input. Handles \"CA-03\"/\"NC-4\" (congressional district"},{"name":"resolve_candidate","description":"WHO holds or runs for WHAT — turn a candidate/officeholder name into their seat + next race. Given a name (full, last-name, or a registry alias — \"Lauren Boeber"},{"name":"search_candidates","description":"BROWSE the canonical candidate registry WITHOUT a name — the nameless companion to resolve_candidate (which requires a name). Filter the registry of canonical p"},{"name":"lookup_address","description":"Resolve a US street address, ZIP, state, or U.S. House district and show workspace campaigns covering the result. Street addresses return a geocoded point and c"},{"name":"list_contests","description":"Discover contests for a geography and election cycle. Filter general, primary (dem_primary/rep_primary), or all stages; count describes the returned top-level r"},{"name":"election_calendar","description":"The election planning calendar. National form ({cycle}) returns federal contests, governors and by_state office lists; state form ({state,cycle}) returns a four"},{"name":"set_performance","description":"Set a candidate's vote share, such as the Democratic candidate to 54%, in one specific county, district, state, or precinct (the general-election override). Rou"},{"name":"target_precincts","description":"Return structured precinct model rows: precinct_id, name, county, county_fips, baseline_share, modeled_share, ballots_est, overridden, and gap_to_goal. The resp"},{"name":"create_scenario","description":"Create a new Scenario (a modeled path) — optionally inside a Race and seeded from a contest_id or an existing scenario (import_from). Seeds an immutable baselin"},{"name":"get_view","description":"Read the exact map/view state the application renders for a canonical scenario: headline totals, selected geography, modeled feature colors, annotations, primar"},{"name":"render_view","description":"A headless server-rendered IMAGE of the map — the rendered view a viewer sees, as SVG or PNG, WITHOUT a browser (tk_0b6d3501 P2). For a scenario + level (presid"},{"name":"render_chart","description":"share_comparison compares candidate shares for two saved versions of one model or two same-contest statewide general-election models. Returns canonical integer "},{"name":"set_view","description":"Set the active scenario view and selected map context: race stage, calendar playhead, geography grain, result source, selected feature, camera, map theme, and r"},{"name":"get_scenario","description":"A Scenario at its latest version (or a specified version_id): metadata (incl. latest_hash) + the version's top_line (margin / EC / viability) + its content hash"},{"name":"commit_version","description":"Save the scenario's current state as a new immutable, hash-stamped version in the append-only chain. Records a diff vs the parent version and the recomputed top"},{"name":"list_scenarios","description":"Page saved scenarios/simulations in this workspace by updated_at descending and scenario_id ascending, without version blobs. Returns scenario_id, name, level, "},{"name":"diff_versions","description":"Structured diff between two immutable versions. Raw before/after remain stored override patches (null means no saved override). Precinct cells also include effe"},{"name":"billing_status","description":"BILLING — your subscription state: {billing_enabled, logged_in, plan (personal|team|null), status, active, renews, can_save}. billing_enabled is false until the"},{"name":"connection_status","description":"WHO AM I — how THIS session is authenticated and which workspace this request resolved to. Returns authentication fields plus workspace {workspace_id, role, sel"},{"name":"set_candidates","description":"Replace the entire candidate roster for a simulation+level in one call (add / edit / remove / reorder). Each candidate: {id?, name, party, color?, incumbent?}; "},{"name":"set_turnout","description":"Set the turnout (mobilization) model. PRESIDENT (default, unchanged): each dial is a percentage-point boost toward toward_candidate_id in counties over an ACS t"},{"name":"add_map_comment","description":"Leave a Google-Docs-style COMMENT on the scenario map — a threaded, resolvable discussion anchored to a place. CAMPAIGN ISOLATION: when working inside a campaig"},{"name":"list_map_comments","description":"List one campaign's map comments on a scenario (oldest-first), each with its campaign_id, anchor, author, body, @mentions, parent_id, and resolved state. Pass c"},{"name":"apply_uniform_swing","description":"Apply an incremental swing in points toward one candidate at the requested office. A saved race_scope restricts writes to that state or district and refuses a d"},{"name":"get_tally","description":"Compute the current per-candidate tally for a simulation+level. For President: state-aggregated EVs. For others: feature counts. For level:\"senate\" the default "},{"name":"list_simulations","description":"List saved simulations in this workspace (id, name, level, cycle, mode, contest_id, last-modified; rows stamped with an identity also carry created_by/updated_b"},{"name":"get_simulation","description":"Read the canonical simulation/scenario state, including candidates, race scope, geography overrides, active version identity, provenance, and optional summary o"},{"name":"list_flipped","description":"List baseline-to-model winner changes. Defaults to state for statewide offices, county for president, and district for house/state legislature. Explicit grain:c"},{"name":"compare_simulations","description":"Compare two simulations. Without grain, returns the existing chamber/feature comparison. With grain:county|precinct and one state, compares exact saved canonica"},{"name":"share_simulation","description":"Mint a public, read-only link to the exact canonical scenario/version. Authenticate for durable workspace ownership; revoke_share disables the link."},{"name":"roll_up_race","description":"Roll up precincts to a race outcome under the current simulation. Sums baseline votes for all precincts inside the district boundary, applying overrides in prec"},{"name":"apply_swing_to_query","description":"Apply a uniform swing or an explicit per-precinct weights vector to a filtered cohort in one atomic call. Weights select only their named IDs, support canonical"},{"name":"get_campaign_onboarding","description":"CAMPAIGN ONBOARDING — guide a campaign manager or joining staff member through setup in their connected AI. Read one step or the complete guide: connection, cam"},{"name":"help","description":"Orient an AI client to campaign onboarding through get_campaign_onboarding, user-controlled election modeling, candidate and presidential-primary workflows, sup"},{"name":"get_catalog","description":"DISCOVERY — browse workflow/category groups, search tool names and descriptions, or fetch one complete schema and AI guide with tool. No arguments returns a com"},{"name":"list_primary_calendar","description":"Read the 2028 primary calendar with source dates, schedule certainty, modeled delegate coverage, missing jurisdictions, and threshold basis. New calendars inclu"},{"name":"set_primary_shares","description":"Set a party's presidential-primary vote shares — one state, or MANY states in a single call. SINGLE STATE: pass `state` + `shares` (unchanged behavior; echoes t"},{"name":"roll_up_primary","description":"The running delegate count — OR, for a race-scoped downballot sim, that race's own share rollup. DOWNBALLOT (tk_2110d54c1d0871): when the scenario is race-scope"},{"name":"primary_batch_edit","description":"ATOMIC batch-edit transaction for a PRIMARY scenario — validate, preview, apply, and roll back a whole SET of candidate / share / calendar edits as ONE transact"},{"name":"set_race_scope","description":"Bind the canonical scenario to one race/campaign so its map, tally, candidates, War Room context, operations, outputs, and MCP actions share the same race ident"},{"name":"call_tool","description":"Run any other tool you are authorized for that is not in this list. Find it and its exact input schema with get_catalog (search, a workflow, or {tool: name}), t"}],"toolCount":41,"toolsHash":"445e951709d1de8c6f0c762ca3aef5fbbdeb275b70f14f2020acf5342ddc9327","serverName":"electionsmcp","capabilities":["tools","prompts"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-12T00:27:40.923Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":502,"error":null,"detail":{"tools":[{"name":"resolve_geography","description":"Turn a place name or shorthand into its canonical geo_id — resolve natural-language or structured location input. Handles \"CA-03\"/\"NC-4\" (congressional district"},{"name":"resolve_candidate","description":"WHO holds or runs for WHAT — turn a candidate/officeholder name into their seat + next race. Given a name (full, last-name, or a registry alias — \"Lauren Boeber"},{"name":"search_candidates","description":"BROWSE the canonical candidate registry WITHOUT a name — the nameless companion to resolve_candidate (which requires a name). Filter the registry of canonical p"},{"name":"lookup_address","description":"Resolve a US street address, ZIP, state, or U.S. House district and show workspace campaigns covering the result. Street addresses return a geocoded point and c"},{"name":"list_contests","description":"Discover contests for a geography and election cycle. Filter general, primary (dem_primary/rep_primary), or all stages; count describes the returned top-level r"},{"name":"election_calendar","description":"The election planning calendar. National form ({cycle}) returns federal contests, governors and by_state office lists; state form ({state,cycle}) returns a four"},{"name":"set_performance","description":"Set a candidate's vote share, such as the Democratic candidate to 54%, in one specific county, district, state, or precinct (the general-election override). Rou"},{"name":"target_precincts","description":"Return structured precinct model rows: precinct_id, name, county, county_fips, baseline_share, modeled_share, ballots_est, overridden, and gap_to_goal. The resp"},{"name":"create_scenario","description":"Create a new Scenario (a modeled path) — optionally inside a Race and seeded from a contest_id or an existing scenario (import_from). Seeds an immutable baselin"},{"name":"get_view","description":"Read the exact map/view state the application renders for a canonical scenario: headline totals, selected geography, modeled feature colors, annotations, primar"},{"name":"render_view","description":"A headless server-rendered IMAGE of the map — the rendered view a viewer sees, as SVG or PNG, WITHOUT a browser (tk_0b6d3501 P2). For a scenario + level (presid"},{"name":"render_chart","description":"share_comparison compares candidate shares for two saved versions of one model or two same-contest statewide general-election models. Returns canonical integer "},{"name":"set_view","description":"Set the active scenario view and selected map context: race stage, calendar playhead, geography grain, result source, selected feature, camera, map theme, and r"},{"name":"get_scenario","description":"A Scenario at its latest version (or a specified version_id): metadata (incl. latest_hash) + the version's top_line (margin / EC / viability) + its content hash"},{"name":"commit_version","description":"Save the scenario's current state as a new immutable, hash-stamped version in the append-only chain. Records a diff vs the parent version and the recomputed top"},{"name":"list_scenarios","description":"Page saved scenarios/simulations in this workspace by updated_at descending and scenario_id ascending, without version blobs. Returns scenario_id, name, level, "},{"name":"diff_versions","description":"Structured diff between two immutable versions. Raw before/after remain stored override patches (null means no saved override). Precinct cells also include effe"},{"name":"billing_status","description":"BILLING — your subscription state: {billing_enabled, logged_in, plan (personal|team|null), status, active, renews, can_save}. billing_enabled is false until the"},{"name":"connection_status","description":"WHO AM I — how THIS session is authenticated and which workspace this request resolved to. Returns authentication fields plus workspace {workspace_id, role, sel"},{"name":"set_candidates","description":"Replace the entire candidate roster for a simulation+level in one call (add / edit / remove / reorder). Each candidate: {id?, name, party, color?, incumbent?}; "},{"name":"set_turnout","description":"Set the turnout (mobilization) model. PRESIDENT (default, unchanged): each dial is a percentage-point boost toward toward_candidate_id in counties over an ACS t"},{"name":"add_map_comment","description":"Leave a Google-Docs-style COMMENT on the scenario map — a threaded, resolvable discussion anchored to a place. CAMPAIGN ISOLATION: when working inside a campaig"},{"name":"list_map_comments","description":"List one campaign's map comments on a scenario (oldest-first), each with its campaign_id, anchor, author, body, @mentions, parent_id, and resolved state. Pass c"},{"name":"apply_uniform_swing","description":"Apply an incremental swing in points toward one candidate at the requested office. A saved race_scope restricts writes to that state or district and refuses a d"},{"name":"get_tally","description":"Compute the current per-candidate tally for a simulation+level. For President: state-aggregated EVs. For others: feature counts. For level:\"senate\" the default "},{"name":"list_simulations","description":"List saved simulations in this workspace (id, name, level, cycle, mode, contest_id, last-modified; rows stamped with an identity also carry created_by/updated_b"},{"name":"get_simulation","description":"Read the canonical simulation/scenario state, including candidates, race scope, geography overrides, active version identity, provenance, and optional summary o"},{"name":"list_flipped","description":"List baseline-to-model winner changes. Defaults to state for statewide offices, county for president, and district for house/state legislature. Explicit grain:c"},{"name":"compare_simulations","description":"Compare two simulations. Without grain, returns the existing chamber/feature comparison. With grain:county|precinct and one state, compares exact saved canonica"},{"name":"share_simulation","description":"Mint a public, read-only link to the exact canonical scenario/version. Authenticate for durable workspace ownership; revoke_share disables the link."},{"name":"roll_up_race","description":"Roll up precincts to a race outcome under the current simulation. Sums baseline votes for all precincts inside the district boundary, applying overrides in prec"},{"name":"apply_swing_to_query","description":"Apply a uniform swing or an explicit per-precinct weights vector to a filtered cohort in one atomic call. Weights select only their named IDs, support canonical"},{"name":"get_campaign_onboarding","description":"CAMPAIGN ONBOARDING — guide a campaign manager or joining staff member through setup in their connected AI. Read one step or the complete guide: connection, cam"},{"name":"help","description":"Orient an AI client to campaign onboarding through get_campaign_onboarding, user-controlled election modeling, candidate and presidential-primary workflows, sup"},{"name":"get_catalog","description":"DISCOVERY — browse workflow/category groups, search tool names and descriptions, or fetch one complete schema and AI guide with tool. No arguments returns a com"},{"name":"list_primary_calendar","description":"Read the 2028 primary calendar with source dates, schedule certainty, modeled delegate coverage, missing jurisdictions, and threshold basis. New calendars inclu"},{"name":"set_primary_shares","description":"Set a party's presidential-primary vote shares — one state, or MANY states in a single call. SINGLE STATE: pass `state` + `shares` (unchanged behavior; echoes t"},{"name":"roll_up_primary","description":"The running delegate count — OR, for a race-scoped downballot sim, that race's own share rollup. DOWNBALLOT (tk_2110d54c1d0871): when the scenario is race-scope"},{"name":"primary_batch_edit","description":"ATOMIC batch-edit transaction for a PRIMARY scenario — validate, preview, apply, and roll back a whole SET of candidate / share / calendar edits as ONE transact"},{"name":"set_race_scope","description":"Bind the canonical scenario to one race/campaign so its map, tally, candidates, War Room context, operations, outputs, and MCP actions share the same race ident"},{"name":"call_tool","description":"Run any other tool you are authorized for that is not in this list. Find it and its exact input schema with get_catalog (search, a workflow, or {tool: name}), t"}],"toolCount":41,"toolsHash":"445e951709d1de8c6f0c762ca3aef5fbbdeb275b70f14f2020acf5342ddc9327","serverName":"electionsmcp","capabilities":["tools","prompts"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-11T17:22:10.300Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":485,"error":null,"detail":{"tools":[{"name":"resolve_geography","description":"Turn a place name or shorthand into its canonical geo_id — resolve natural-language or structured location input. Handles \"CA-03\"/\"NC-4\" (congressional district"},{"name":"resolve_candidate","description":"WHO holds or runs for WHAT — turn a candidate/officeholder name into their seat + next race. Given a name (full, last-name, or a registry alias — \"Lauren Boeber"},{"name":"search_candidates","description":"BROWSE the canonical candidate registry WITHOUT a name — the nameless companion to resolve_candidate (which requires a name). Filter the registry of canonical p"},{"name":"lookup_address","description":"Resolve a US street address, ZIP, state, or U.S. House district and show workspace campaigns covering the result. Street addresses return a geocoded point and c"},{"name":"list_contests","description":"Discover contests for a geography and election cycle. Filter general, primary (dem_primary/rep_primary), or all stages; count describes the returned top-level r"},{"name":"election_calendar","description":"The election planning calendar. National form ({cycle}) returns federal contests, governors and by_state office lists; state form ({state,cycle}) returns a four"},{"name":"set_performance","description":"Set a candidate's vote share, such as the Democratic candidate to 54%, in one specific county, district, state, or precinct (the general-election override). Rou"},{"name":"target_precincts","description":"Return structured precinct model rows: precinct_id, name, county, county_fips, baseline_share, modeled_share, ballots_est, overridden, and gap_to_goal. The resp"},{"name":"create_scenario","description":"Create a new Scenario (a modeled path) — optionally inside a Race and seeded from a contest_id or an existing scenario (import_from). Seeds an immutable baselin"},{"name":"get_view","description":"Read the exact map/view state the application renders for a canonical scenario: headline totals, selected geography, modeled feature colors, annotations, primar"},{"name":"render_view","description":"A headless server-rendered IMAGE of the map — the rendered view a viewer sees, as SVG or PNG, WITHOUT a browser (tk_0b6d3501 P2). For a scenario + level (presid"},{"name":"render_chart","description":"share_comparison compares candidate shares for two saved versions of one model or two same-contest statewide general-election models. Returns canonical integer "},{"name":"set_view","description":"Set the active scenario view and selected map context: race stage, calendar playhead, geography grain, result source, selected feature, camera, map theme, and r"},{"name":"get_scenario","description":"A Scenario at its latest version (or a specified version_id): metadata (incl. latest_hash) + the version's top_line (margin / EC / viability) + its content hash"},{"name":"commit_version","description":"Save the scenario's current state as a new immutable, hash-stamped version in the append-only chain. Records a diff vs the parent version and the recomputed top"},{"name":"list_scenarios","description":"Page saved scenarios/simulations in this workspace by updated_at descending and scenario_id ascending, without version blobs. Returns scenario_id, name, level, "},{"name":"diff_versions","description":"Structured diff between two immutable versions. Raw before/after remain stored override patches (null means no saved override). Precinct cells also include effe"},{"name":"billing_status","description":"BILLING — your subscription state: {billing_enabled, logged_in, plan (personal|team|null), status, active, renews, can_save}. billing_enabled is false until the"},{"name":"connection_status","description":"WHO AM I — how THIS session is authenticated and which workspace this request resolved to. Returns authentication fields plus workspace {workspace_id, role, sel"},{"name":"set_candidates","description":"Replace the entire candidate roster for a simulation+level in one call (add / edit / remove / reorder). Each candidate: {id?, name, party, color?, incumbent?}; "},{"name":"set_turnout","description":"Set the turnout (mobilization) model. PRESIDENT (default, unchanged): each dial is a percentage-point boost toward toward_candidate_id in counties over an ACS t"},{"name":"add_map_comment","description":"Leave a Google-Docs-style COMMENT on the scenario map — a threaded, resolvable discussion anchored to a place. CAMPAIGN ISOLATION: when working inside a campaig"},{"name":"list_map_comments","description":"List one campaign's map comments on a scenario (oldest-first), each with its campaign_id, anchor, author, body, @mentions, parent_id, and resolved state. Pass c"},{"name":"apply_uniform_swing","description":"Apply an incremental swing in points toward one candidate at the requested office. A saved race_scope restricts writes to that state or district and refuses a d"},{"name":"get_tally","description":"Compute the current per-candidate tally for a simulation+level. For President: state-aggregated EVs. For others: feature counts. For level:\"senate\" the default "},{"name":"list_simulations","description":"List saved simulations in this workspace (id, name, level, cycle, mode, contest_id, last-modified; rows stamped with an identity also carry created_by/updated_b"},{"name":"get_simulation","description":"Read the canonical simulation/scenario state, including candidates, race scope, geography overrides, active version identity, provenance, and optional summary o"},{"name":"list_flipped","description":"List baseline-to-model winner changes. Defaults to state for statewide offices, county for president, and district for house/state legislature. Explicit grain:c"},{"name":"compare_simulations","description":"Compare two simulations. Without grain, returns the existing chamber/feature comparison. With grain:county|precinct and one state, compares exact saved canonica"},{"name":"share_simulation","description":"Mint a public, read-only link to the exact canonical scenario/version. Authenticate for durable workspace ownership; revoke_share disables the link."},{"name":"roll_up_race","description":"Roll up precincts to a race outcome under the current simulation. Sums baseline votes for all precincts inside the district boundary, applying overrides in prec"},{"name":"apply_swing_to_query","description":"Apply a uniform swing or an explicit per-precinct weights vector to a filtered cohort in one atomic call. Weights select only their named IDs, support canonical"},{"name":"get_campaign_onboarding","description":"CAMPAIGN ONBOARDING — guide a campaign manager or joining staff member through setup in their connected AI. Read one step or the complete guide: connection, cam"},{"name":"help","description":"Orient an AI client to campaign onboarding through get_campaign_onboarding, user-controlled election modeling, candidate and presidential-primary workflows, sup"},{"name":"get_catalog","description":"DISCOVERY — browse workflow/category groups, search tool names and descriptions, or fetch one complete schema and AI guide with tool. No arguments returns a com"},{"name":"list_primary_calendar","description":"Read the 2028 primary calendar with source dates, schedule certainty, modeled delegate coverage, missing jurisdictions, and threshold basis. New calendars inclu"},{"name":"set_primary_shares","description":"Set a party's presidential-primary vote shares — one state, or MANY states in a single call. SINGLE STATE: pass `state` + `shares` (unchanged behavior; echoes t"},{"name":"roll_up_primary","description":"The running delegate count — OR, for a race-scoped downballot sim, that race's own share rollup. DOWNBALLOT (tk_2110d54c1d0871): when the scenario is race-scope"},{"name":"primary_batch_edit","description":"ATOMIC batch-edit transaction for a PRIMARY scenario — validate, preview, apply, and roll back a whole SET of candidate / share / calendar edits as ONE transact"},{"name":"set_race_scope","description":"Bind the canonical scenario to one race/campaign so its map, tally, candidates, War Room context, operations, outputs, and MCP actions share the same race ident"},{"name":"call_tool","description":"Run any other tool you are authorized for that is not in this list. Find it and its exact input schema with get_catalog (search, a workflow, or {tool: name}), t"}],"toolCount":41,"toolsHash":"445e951709d1de8c6f0c762ca3aef5fbbdeb275b70f14f2020acf5342ddc9327","serverName":"electionsmcp","capabilities":["tools","prompts"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-11T10:25:27.771Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":485,"error":null,"detail":{"tools":[{"name":"resolve_geography","description":"Turn a place name or shorthand into its canonical geo_id — resolve natural-language or structured location input. Handles \"CA-03\"/\"NC-4\" (congressional district"},{"name":"resolve_candidate","description":"WHO holds or runs for WHAT — turn a candidate/officeholder name into their seat + next race. Given a name (full, last-name, or a registry alias — \"Lauren Boeber"},{"name":"search_candidates","description":"BROWSE the canonical candidate registry WITHOUT a name — the nameless companion to resolve_candidate (which requires a name). Filter the registry of canonical p"},{"name":"lookup_address","description":"Resolve a US street address, ZIP, state, or U.S. House district and show workspace campaigns covering the result. Street addresses return a geocoded point and c"},{"name":"list_contests","description":"Discover contests for a geography and election cycle. Filter general, primary (dem_primary/rep_primary), or all stages; count describes the returned top-level r"},{"name":"election_calendar","description":"The election planning calendar. National form ({cycle}) returns federal contests, governors and by_state office lists; state form ({state,cycle}) returns a four"},{"name":"set_performance","description":"Set a candidate's vote share, such as the Democratic candidate to 54%, in one specific county, district, state, or precinct (the general-election override). Rou"},{"name":"target_precincts","description":"Return structured precinct model rows: precinct_id, name, county, county_fips, baseline_share, modeled_share, ballots_est, overridden, and gap_to_goal. The resp"},{"name":"create_scenario","description":"Create a new Scenario (a modeled path) — optionally inside a Race and seeded from a contest_id or an existing scenario (import_from). Seeds an immutable baselin"},{"name":"get_view","description":"Read the exact map/view state the application renders for a canonical scenario: headline totals, selected geography, modeled feature colors, annotations, primar"},{"name":"render_view","description":"A headless server-rendered IMAGE of the map — the rendered view a viewer sees, as SVG or PNG, WITHOUT a browser (tk_0b6d3501 P2). For a scenario + level (presid"},{"name":"render_chart","description":"share_comparison compares candidate shares for two saved versions of one model or two same-contest statewide general-election models. Returns canonical integer "},{"name":"set_view","description":"Set the active scenario view and selected map context: race stage, calendar playhead, geography grain, result source, selected feature, camera, map theme, and r"},{"name":"get_scenario","description":"A Scenario at its latest version (or a specified version_id): metadata (incl. latest_hash) + the version's top_line (margin / EC / viability) + its content hash"},{"name":"commit_version","description":"Save the scenario's current state as a new immutable, hash-stamped version in the append-only chain. Records a diff vs the parent version and the recomputed top"},{"name":"list_scenarios","description":"Page saved scenarios/simulations in this workspace by updated_at descending and scenario_id ascending, without version blobs. Returns scenario_id, name, level, "},{"name":"diff_versions","description":"Structured diff between two immutable versions. Raw before/after remain stored override patches (null means no saved override). Precinct cells also include effe"},{"name":"billing_status","description":"BILLING — your subscription state: {billing_enabled, logged_in, plan (personal|team|null), status, active, renews, can_save}. billing_enabled is false until the"},{"name":"connection_status","description":"WHO AM I — how THIS session is authenticated and which workspace this request resolved to. Returns authentication fields plus workspace {workspace_id, role, sel"},{"name":"set_candidates","description":"Replace the entire candidate roster for a simulation+level in one call (add / edit / remove / reorder). Each candidate: {id?, name, party, color?, incumbent?}; "},{"name":"set_turnout","description":"Set the turnout (mobilization) model. PRESIDENT (default, unchanged): each dial is a percentage-point boost toward toward_candidate_id in counties over an ACS t"},{"name":"add_map_comment","description":"Leave a Google-Docs-style COMMENT on the scenario map — a threaded, resolvable discussion anchored to a place. CAMPAIGN ISOLATION: when working inside a campaig"},{"name":"list_map_comments","description":"List one campaign's map comments on a scenario (oldest-first), each with its campaign_id, anchor, author, body, @mentions, parent_id, and resolved state. Pass c"},{"name":"apply_uniform_swing","description":"Apply an incremental swing in points toward one candidate at the requested office. A saved race_scope restricts writes to that state or district and refuses a d"},{"name":"get_tally","description":"Compute the current per-candidate tally for a simulation+level. For President: state-aggregated EVs. For others: feature counts. For level:\"senate\" the default "},{"name":"list_simulations","description":"List saved simulations in this workspace (id, name, level, cycle, mode, contest_id, last-modified; rows stamped with an identity also carry created_by/updated_b"},{"name":"get_simulation","description":"Read the canonical simulation/scenario state, including candidates, race scope, geography overrides, active version identity, provenance, and optional summary o"},{"name":"list_flipped","description":"List baseline-to-model winner changes. Defaults to state for statewide offices, county for president, and district for house/state legislature. Explicit grain:c"},{"name":"compare_simulations","description":"Compare two simulations. Without grain, returns the existing chamber/feature comparison. With grain:county|precinct and one state, compares exact saved canonica"},{"name":"share_simulation","description":"Mint a public, read-only link to the exact canonical scenario/version. Authenticate for durable workspace ownership; revoke_share disables the link."},{"name":"roll_up_race","description":"Roll up precincts to a race outcome under the current simulation. Sums baseline votes for all precincts inside the district boundary, applying overrides in prec"},{"name":"apply_swing_to_query","description":"Apply a uniform swing or an explicit per-precinct weights vector to a filtered cohort in one atomic call. Weights select only their named IDs, support canonical"},{"name":"get_campaign_onboarding","description":"CAMPAIGN ONBOARDING — guide a campaign manager or joining staff member through setup in their connected AI. Read one step or the complete guide: connection, cam"},{"name":"help","description":"Orient an AI client to campaign onboarding through get_campaign_onboarding, user-controlled election modeling, candidate and presidential-primary workflows, sup"},{"name":"get_catalog","description":"DISCOVERY — browse workflow/category groups, search tool names and descriptions, or fetch one complete schema and AI guide with tool. No arguments returns a com"},{"name":"list_primary_calendar","description":"Read the 2028 primary calendar with source dates, schedule certainty, modeled delegate coverage, missing jurisdictions, and threshold basis. New calendars inclu"},{"name":"set_primary_shares","description":"Set a party's presidential-primary vote shares — one state, or MANY states in a single call. SINGLE STATE: pass `state` + `shares` (unchanged behavior; echoes t"},{"name":"roll_up_primary","description":"The running delegate count — OR, for a race-scoped downballot sim, that race's own share rollup. DOWNBALLOT (tk_2110d54c1d0871): when the scenario is race-scope"},{"name":"primary_batch_edit","description":"ATOMIC batch-edit transaction for a PRIMARY scenario — validate, preview, apply, and roll back a whole SET of candidate / share / calendar edits as ONE transact"},{"name":"set_race_scope","description":"Bind the canonical scenario to one race/campaign so its map, tally, candidates, War Room context, operations, outputs, and MCP actions share the same race ident"},{"name":"call_tool","description":"Run any other tool you are authorized for that is not in this list. Find it and its exact input schema with get_catalog (search, a workflow, or {tool: name}), t"}],"toolCount":41,"toolsHash":"445e951709d1de8c6f0c762ca3aef5fbbdeb275b70f14f2020acf5342ddc9327","serverName":"electionsmcp","capabilities":["tools","prompts"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-11T04:24:35.129Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":446,"error":null,"detail":{"tools":[{"name":"resolve_geography","description":"Turn a place name or shorthand into its canonical geo_id — resolve natural-language or structured location input. Handles \"CA-03\"/\"NC-4\" (congressional district"},{"name":"resolve_candidate","description":"WHO holds or runs for WHAT — turn a candidate/officeholder name into their seat + next race. Given a name (full, last-name, or a registry alias — \"Lauren Boeber"},{"name":"search_candidates","description":"BROWSE the canonical candidate registry WITHOUT a name — the nameless companion to resolve_candidate (which requires a name). Filter the registry of canonical p"},{"name":"lookup_address","description":"Resolve a US street address, ZIP, state, or U.S. House district and show workspace campaigns covering the result. Street addresses return a geocoded point and c"},{"name":"list_contests","description":"Discover contests for a geography and election cycle. Filter general, primary (dem_primary/rep_primary), or all stages; count describes the returned top-level r"},{"name":"election_calendar","description":"The election planning calendar. National form ({cycle}) returns federal contests, governors and by_state office lists; state form ({state,cycle}) returns a four"},{"name":"set_performance","description":"Set a candidate's vote share, such as the Democratic candidate to 54%, in one specific county, district, state, or precinct (the general-election override). Rou"},{"name":"target_precincts","description":"Return structured precinct model rows: precinct_id, name, county, county_fips, baseline_share, modeled_share, ballots_est, overridden, and gap_to_goal. The resp"},{"name":"create_scenario","description":"Create a new Scenario (a modeled path) — optionally inside a Race and seeded from a contest_id or an existing scenario (import_from). Seeds an immutable baselin"},{"name":"get_view","description":"Read the exact map/view state the application renders for a canonical scenario: headline totals, selected geography, modeled feature colors, annotations, primar"},{"name":"render_view","description":"A headless server-rendered IMAGE of the map — the rendered view a viewer sees, as SVG or PNG, WITHOUT a browser (tk_0b6d3501 P2). For a scenario + level (presid"},{"name":"render_chart","description":"share_comparison compares candidate shares for two saved versions of one model or two same-contest statewide general-election models. Returns canonical integer "},{"name":"set_view","description":"Set the active scenario view and selected map context: race stage, calendar playhead, geography grain, result source, selected feature, camera, map theme, and r"},{"name":"get_scenario","description":"A Scenario at its latest version (or a specified version_id): metadata (incl. latest_hash) + the version's top_line (margin / EC / viability) + its content hash"},{"name":"commit_version","description":"Save the scenario's current state as a new immutable, hash-stamped version in the append-only chain. Records a diff vs the parent version and the recomputed top"},{"name":"list_scenarios","description":"Page saved scenarios/simulations in this workspace by updated_at descending and scenario_id ascending, without version blobs. Returns scenario_id, name, level, "},{"name":"diff_versions","description":"Structured diff between two immutable versions. Raw before/after remain stored override patches (null means no saved override). Precinct cells also include effe"},{"name":"billing_status","description":"BILLING — your subscription state: {billing_enabled, logged_in, plan (personal|team|null), status, active, renews, can_save}. billing_enabled is false until the"},{"name":"connection_status","description":"WHO AM I — how THIS session is authenticated and which workspace this request resolved to. Returns authentication fields plus workspace {workspace_id, role, sel"},{"name":"set_candidates","description":"Replace the entire candidate roster for a simulation+level in one call (add / edit / remove / reorder). Each candidate: {id?, name, party, color?, incumbent?}; "},{"name":"set_turnout","description":"Set the turnout (mobilization) model. PRESIDENT (default, unchanged): each dial is a percentage-point boost toward toward_candidate_id in counties over an ACS t"},{"name":"add_map_comment","description":"Leave a Google-Docs-style COMMENT on the scenario map — a threaded, resolvable discussion anchored to a place. CAMPAIGN ISOLATION: when working inside a campaig"},{"name":"list_map_comments","description":"List one campaign's map comments on a scenario (oldest-first), each with its campaign_id, anchor, author, body, @mentions, parent_id, and resolved state. Pass c"},{"name":"apply_uniform_swing","description":"Apply an incremental swing in points toward one candidate at the requested office. A saved race_scope restricts writes to that state or district and refuses a d"},{"name":"get_tally","description":"Compute the current per-candidate tally for a simulation+level. For President: state-aggregated EVs. For others: feature counts. For level:\"senate\" the default "},{"name":"list_simulations","description":"List saved simulations in this workspace (id, name, level, cycle, mode, contest_id, last-modified; rows stamped with an identity also carry created_by/updated_b"},{"name":"get_simulation","description":"Read the canonical simulation/scenario state, including candidates, race scope, geography overrides, active version identity, provenance, and optional summary o"},{"name":"list_flipped","description":"List baseline-to-model winner changes. Defaults to state for statewide offices, county for president, and district for house/state legislature. Explicit grain:c"},{"name":"compare_simulations","description":"Compare two simulations. Without grain, returns the existing chamber/feature comparison. With grain:county|precinct and one state, compares exact saved canonica"},{"name":"share_simulation","description":"Mint a public, read-only link to the exact canonical scenario/version. Authenticate for durable workspace ownership; revoke_share disables the link."},{"name":"roll_up_race","description":"Roll up precincts to a race outcome under the current simulation. Sums baseline votes for all precincts inside the district boundary, applying overrides in prec"},{"name":"apply_swing_to_query","description":"Apply a uniform swing or an explicit per-precinct weights vector to a filtered cohort in one atomic call. Weights select only their named IDs, support canonical"},{"name":"get_campaign_onboarding","description":"CAMPAIGN ONBOARDING — guide a campaign manager or joining staff member through setup in their connected AI. Read one step or the complete guide: connection, cam"},{"name":"help","description":"Orient an AI client to campaign onboarding through get_campaign_onboarding, user-controlled election modeling, candidate and presidential-primary workflows, sup"},{"name":"get_catalog","description":"DISCOVERY — browse workflow/category groups, search tool names and descriptions, or fetch one complete schema and AI guide with tool. No arguments returns a com"},{"name":"list_primary_calendar","description":"Read the 2028 primary calendar with source dates, schedule certainty, modeled delegate coverage, missing jurisdictions, and threshold basis. New calendars inclu"},{"name":"set_primary_shares","description":"Set a party's presidential-primary vote shares — one state, or MANY states in a single call. SINGLE STATE: pass `state` + `shares` (unchanged behavior; echoes t"},{"name":"roll_up_primary","description":"The running delegate count — OR, for a race-scoped downballot sim, that race's own share rollup. DOWNBALLOT (tk_2110d54c1d0871): when the scenario is race-scope"},{"name":"primary_batch_edit","description":"ATOMIC batch-edit transaction for a PRIMARY scenario — validate, preview, apply, and roll back a whole SET of candidate / share / calendar edits as ONE transact"},{"name":"set_race_scope","description":"Bind the canonical scenario to one race/campaign so its map, tally, candidates, War Room context, operations, outputs, and MCP actions share the same race ident"},{"name":"call_tool","description":"Run any other tool you are authorized for that is not in this list. Find it and its exact input schema with get_catalog (search, a workflow, or {tool: name}), t"}],"toolCount":41,"toolsHash":"445e951709d1de8c6f0c762ca3aef5fbbdeb275b70f14f2020acf5342ddc9327","serverName":"electionsmcp","capabilities":["tools","prompts"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T21:26:13.941Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":470,"error":null,"detail":{"tools":[{"name":"resolve_geography","description":"Turn a place name or shorthand into its canonical geo_id — resolve natural-language or structured location input. Handles \"CA-03\"/\"NC-4\" (congressional district"},{"name":"resolve_candidate","description":"WHO holds or runs for WHAT — turn a candidate/officeholder name into their seat + next race. Given a name (full, last-name, or a registry alias — \"Lauren Boeber"},{"name":"search_candidates","description":"BROWSE the canonical candidate registry WITHOUT a name — the nameless companion to resolve_candidate (which requires a name). Filter the registry of canonical p"},{"name":"lookup_address","description":"Resolve a US street address, ZIP, state, or U.S. House district and show workspace campaigns covering the result. Street addresses return a geocoded point and c"},{"name":"list_contests","description":"Discover contests for a geography and election cycle. Filter general, primary (dem_primary/rep_primary), or all stages; count describes the returned top-level r"},{"name":"election_calendar","description":"The election planning calendar. National form ({cycle}) returns federal contests, governors and by_state office lists; state form ({state,cycle}) returns a four"},{"name":"set_performance","description":"Set a candidate's vote share, such as the Democratic candidate to 54%, in one specific county, district, state, or precinct (the general-election override). Rou"},{"name":"target_precincts","description":"Return structured precinct model rows: precinct_id, name, county, county_fips, baseline_share, modeled_share, ballots_est, overridden, and gap_to_goal. The resp"},{"name":"create_scenario","description":"Create a new Scenario (a modeled path) — optionally inside a Race and seeded from a contest_id or an existing scenario (import_from). Seeds an immutable baselin"},{"name":"get_view","description":"Read the exact map/view state the application renders for a canonical scenario: headline totals, selected geography, modeled feature colors, annotations, primar"},{"name":"render_view","description":"A headless server-rendered IMAGE of the map — the rendered view a viewer sees, as SVG or PNG, WITHOUT a browser (tk_0b6d3501 P2). For a scenario + level (presid"},{"name":"render_chart","description":"share_comparison compares candidate shares for two saved versions of one model or two same-contest statewide general-election models. Returns canonical integer "},{"name":"set_view","description":"Set the active scenario view and selected map context: race stage, calendar playhead, geography grain, result source, selected feature, camera, map theme, and r"},{"name":"get_scenario","description":"A Scenario at its latest version (or a specified version_id): metadata (incl. latest_hash) + the version's top_line (margin / EC / viability) + its content hash"},{"name":"commit_version","description":"Save the scenario's current state as a new immutable, hash-stamped version in the append-only chain. Records a diff vs the parent version and the recomputed top"},{"name":"list_scenarios","description":"Page saved scenarios/simulations in this workspace by updated_at descending and scenario_id ascending, without version blobs. Returns scenario_id, name, level, "},{"name":"diff_versions","description":"Structured diff between two immutable versions. Raw before/after remain stored override patches (null means no saved override). Precinct cells also include effe"},{"name":"billing_status","description":"BILLING — your subscription state: {billing_enabled, logged_in, plan (personal|team|null), status, active, renews, can_save}. billing_enabled is false until the"},{"name":"connection_status","description":"WHO AM I — how THIS session is authenticated and which workspace this request resolved to. Returns authentication fields plus workspace {workspace_id, role, sel"},{"name":"set_candidates","description":"Replace the entire candidate roster for a simulation+level in one call (add / edit / remove / reorder). Each candidate: {id?, name, party, color?, incumbent?}; "},{"name":"set_turnout","description":"Set the turnout (mobilization) model. PRESIDENT (default, unchanged): each dial is a percentage-point boost toward toward_candidate_id in counties over an ACS t"},{"name":"add_map_comment","description":"Leave a Google-Docs-style COMMENT on the scenario map — a threaded, resolvable discussion anchored to a place. CAMPAIGN ISOLATION: when working inside a campaig"},{"name":"list_map_comments","description":"List one campaign's map comments on a scenario (oldest-first), each with its campaign_id, anchor, author, body, @mentions, parent_id, and resolved state. Pass c"},{"name":"apply_uniform_swing","description":"Apply an incremental swing in points toward one candidate at the requested office. A saved race_scope restricts writes to that state or district and refuses a d"},{"name":"get_tally","description":"Compute the current per-candidate tally for a simulation+level. For President: state-aggregated EVs. For others: feature counts. For level:\"senate\" the default "},{"name":"list_simulations","description":"List saved simulations in this workspace (id, name, level, cycle, mode, contest_id, last-modified; rows stamped with an identity also carry created_by/updated_b"},{"name":"get_simulation","description":"Read the canonical simulation/scenario state, including candidates, race scope, geography overrides, active version identity, provenance, and optional summary o"},{"name":"list_flipped","description":"List baseline-to-model winner changes. Defaults to state for statewide offices, county for president, and district for house/state legislature. Explicit grain:c"},{"name":"compare_simulations","description":"Compare two simulations. Without grain, returns the existing chamber/feature comparison. With grain:county|precinct and one state, compares exact saved canonica"},{"name":"share_simulation","description":"Mint a public, read-only link to the exact canonical scenario/version. Authenticate for durable workspace ownership; revoke_share disables the link."},{"name":"roll_up_race","description":"Roll up precincts to a race outcome under the current simulation. Sums baseline votes for all precincts inside the district boundary, applying overrides in prec"},{"name":"apply_swing_to_query","description":"Apply a uniform swing or an explicit per-precinct weights vector to a filtered cohort in one atomic call. Weights select only their named IDs, support canonical"},{"name":"get_campaign_onboarding","description":"CAMPAIGN ONBOARDING — guide a campaign manager or joining staff member through setup in their connected AI. Read one step or the complete guide: connection, cam"},{"name":"help","description":"Orient an AI client to campaign onboarding through get_campaign_onboarding, user-controlled election modeling, candidate and presidential-primary workflows, sup"},{"name":"get_catalog","description":"DISCOVERY — browse workflow/category groups, search tool names and descriptions, or fetch one complete schema and AI guide with tool. No arguments returns a com"},{"name":"list_primary_calendar","description":"Read the 2028 primary calendar with source dates, schedule certainty, modeled delegate coverage, missing jurisdictions, and threshold basis. New calendars inclu"},{"name":"set_primary_shares","description":"Set a party's presidential-primary vote shares — one state, or MANY states in a single call. SINGLE STATE: pass `state` + `shares` (unchanged behavior; echoes t"},{"name":"roll_up_primary","description":"The running delegate count — OR, for a race-scoped downballot sim, that race's own share rollup. DOWNBALLOT (tk_2110d54c1d0871): when the scenario is race-scope"},{"name":"primary_batch_edit","description":"ATOMIC batch-edit transaction for a PRIMARY scenario — validate, preview, apply, and roll back a whole SET of candidate / share / calendar edits as ONE transact"},{"name":"set_race_scope","description":"Bind the canonical scenario to one race/campaign so its map, tally, candidates, War Room context, operations, outputs, and MCP actions share the same race ident"},{"name":"call_tool","description":"Run any other tool you are authorized for that is not in this list. Find it and its exact input schema with get_catalog (search, a workflow, or {tool: name}), t"}],"toolCount":41,"toolsHash":"445e951709d1de8c6f0c762ca3aef5fbbdeb275b70f14f2020acf5342ddc9327","serverName":"electionsmcp","capabilities":["tools","prompts"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T15:32:13.640Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":489,"error":null,"detail":{"tools":[{"name":"resolve_geography","description":"Turn a place name or shorthand into its canonical geo_id — resolve natural-language or structured location input. Handles \"CA-03\"/\"NC-4\" (congressional district"},{"name":"resolve_candidate","description":"WHO holds or runs for WHAT — turn a candidate/officeholder name into their seat + next race. Given a name (full, last-name, or a registry alias — \"Lauren Boeber"},{"name":"search_candidates","description":"BROWSE the canonical candidate registry WITHOUT a name — the nameless companion to resolve_candidate (which requires a name). Filter the registry of canonical p"},{"name":"lookup_address","description":"Resolve a US street address, ZIP, state, or U.S. House district and show workspace campaigns covering the result. Street addresses return a geocoded point and c"},{"name":"list_contests","description":"Discover contests for a geography and election cycle. Filter general, primary (dem_primary/rep_primary), or all stages; count describes the returned top-level r"},{"name":"election_calendar","description":"The election planning calendar. National form ({cycle}) returns federal contests, governors and by_state office lists; state form ({state,cycle}) returns a four"},{"name":"set_performance","description":"Set a candidate's vote share, such as the Democratic candidate to 54%, in one specific county, district, state, or precinct (the general-election override). Rou"},{"name":"target_precincts","description":"Return structured precinct model rows: precinct_id, name, county, county_fips, baseline_share, modeled_share, ballots_est, overridden, and gap_to_goal. The resp"},{"name":"create_scenario","description":"Create a new Scenario (a modeled path) — optionally inside a Race and seeded from a contest_id or an existing scenario (import_from). Seeds an immutable baselin"},{"name":"get_view","description":"Read the exact map/view state the application renders for a canonical scenario: headline totals, selected geography, modeled feature colors, annotations, primar"},{"name":"render_view","description":"A headless server-rendered IMAGE of the map — the rendered view a viewer sees, as SVG or PNG, WITHOUT a browser (tk_0b6d3501 P2). For a scenario + level (presid"},{"name":"render_chart","description":"share_comparison compares candidate shares for two saved versions of one model or two same-contest statewide general-election models. Returns canonical integer "},{"name":"set_view","description":"Set the active scenario view and selected map context: race stage, calendar playhead, geography grain, result source, selected feature, camera, map theme, and r"},{"name":"get_scenario","description":"A Scenario at its latest version (or a specified version_id): metadata (incl. latest_hash) + the version's top_line (margin / EC / viability) + its content hash"},{"name":"commit_version","description":"Save the scenario's current state as a new immutable, hash-stamped version in the append-only chain. Records a diff vs the parent version and the recomputed top"},{"name":"list_scenarios","description":"Page saved scenarios/simulations in this workspace by updated_at descending and scenario_id ascending, without version blobs. Returns scenario_id, name, level, "},{"name":"diff_versions","description":"Structured diff between two immutable versions. Raw before/after remain stored override patches (null means no saved override). Precinct cells also include effe"},{"name":"billing_status","description":"BILLING — your subscription state: {billing_enabled, logged_in, plan (personal|team|null), status, active, renews, can_save}. billing_enabled is false until the"},{"name":"connection_status","description":"WHO AM I — how THIS session is authenticated and which workspace this request resolved to. Returns authentication fields plus workspace {workspace_id, role, sel"},{"name":"set_candidates","description":"Replace the entire candidate roster for a simulation+level in one call (add / edit / remove / reorder). Each candidate: {id?, name, party, color?, incumbent?}; "},{"name":"set_turnout","description":"Set the turnout (mobilization) model. PRESIDENT (default, unchanged): each dial is a percentage-point boost toward toward_candidate_id in counties over an ACS t"},{"name":"add_map_comment","description":"Leave a Google-Docs-style COMMENT on the scenario map — a threaded, resolvable discussion anchored to a place. CAMPAIGN ISOLATION: when working inside a campaig"},{"name":"list_map_comments","description":"List one campaign's map comments on a scenario (oldest-first), each with its campaign_id, anchor, author, body, @mentions, parent_id, and resolved state. Pass c"},{"name":"apply_uniform_swing","description":"Apply an incremental swing in points toward one candidate at the requested office. A saved race_scope restricts writes to that state or district and refuses a d"},{"name":"get_tally","description":"Compute the current per-candidate tally for a simulation+level. For President: state-aggregated EVs. For others: feature counts. For level:\"senate\" the default "},{"name":"list_simulations","description":"List saved simulations in this workspace (id, name, level, cycle, mode, contest_id, last-modified; rows stamped with an identity also carry created_by/updated_b"},{"name":"get_simulation","description":"Read the canonical simulation/scenario state, including candidates, race scope, geography overrides, active version identity, provenance, and optional summary o"},{"name":"list_flipped","description":"List baseline-to-model winner changes. Defaults to state for statewide offices, county for president, and district for house/state legislature. Explicit grain:c"},{"name":"compare_simulations","description":"Compare two simulations. Without grain, returns the existing chamber/feature comparison. With grain:county|precinct and one state, compares exact saved canonica"},{"name":"share_simulation","description":"Mint a public, read-only link to the exact canonical scenario/version. Authenticate for durable workspace ownership; revoke_share disables the link."},{"name":"roll_up_race","description":"Roll up precincts to a race outcome under the current simulation. Sums baseline votes for all precincts inside the district boundary, applying overrides in prec"},{"name":"apply_swing_to_query","description":"Apply a uniform swing or an explicit per-precinct weights vector to a filtered cohort in one atomic call. Weights select only their named IDs, support canonical"},{"name":"get_campaign_onboarding","description":"CAMPAIGN ONBOARDING — guide a campaign manager or joining staff member through setup in their connected AI. Read one step or the complete guide: connection, cam"},{"name":"help","description":"Orient an AI client to campaign onboarding through get_campaign_onboarding, user-controlled election modeling, candidate and presidential-primary workflows, sup"},{"name":"get_catalog","description":"DISCOVERY — browse workflow/category groups, search tool names and descriptions, or fetch one complete schema and AI guide with tool. No arguments returns a com"},{"name":"list_primary_calendar","description":"Read the 2028 primary calendar with source dates, schedule certainty, modeled delegate coverage, missing jurisdictions, and threshold basis. New calendars inclu"},{"name":"set_primary_shares","description":"Set a party's presidential-primary vote shares — one state, or MANY states in a single call. SINGLE STATE: pass `state` + `shares` (unchanged behavior; echoes t"},{"name":"roll_up_primary","description":"The running delegate count — OR, for a race-scoped downballot sim, that race's own share rollup. DOWNBALLOT (tk_2110d54c1d0871): when the scenario is race-scope"},{"name":"primary_batch_edit","description":"ATOMIC batch-edit transaction for a PRIMARY scenario — validate, preview, apply, and roll back a whole SET of candidate / share / calendar edits as ONE transact"},{"name":"set_race_scope","description":"Bind the canonical scenario to one race/campaign so its map, tally, candidates, War Room context, operations, outputs, and MCP actions share the same race ident"},{"name":"call_tool","description":"Run any other tool you are authorized for that is not in this list. Find it and its exact input schema with get_catalog (search, a workflow, or {tool: name}), t"}],"toolCount":41,"toolsHash":"445e951709d1de8c6f0c762ca3aef5fbbdeb275b70f14f2020acf5342ddc9327","serverName":"electionsmcp","capabilities":["tools","prompts"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T09:25:41.701Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":457,"error":null,"detail":{"tools":[{"name":"resolve_geography","description":"Turn a place name or shorthand into its canonical geo_id — resolve natural-language or structured location input. Handles \"CA-03\"/\"NC-4\" (congressional district"},{"name":"resolve_candidate","description":"WHO holds or runs for WHAT — turn a candidate/officeholder name into their seat + next race. Given a name (full, last-name, or a registry alias — \"Lauren Boeber"},{"name":"search_candidates","description":"BROWSE the canonical candidate registry WITHOUT a name — the nameless companion to resolve_candidate (which requires a name). Filter the registry of canonical p"},{"name":"lookup_address","description":"Resolve a US street address, ZIP, state, or U.S. House district and show workspace campaigns covering the result. Street addresses return a geocoded point and c"},{"name":"list_contests","description":"Discover contests for a geography and election cycle. Filter general, primary (dem_primary/rep_primary), or all stages; count describes the returned top-level r"},{"name":"election_calendar","description":"The election planning calendar. National form ({cycle}) returns federal contests, governors and by_state office lists; state form ({state,cycle}) returns a four"},{"name":"set_performance","description":"Set a candidate's vote share, such as the Democratic candidate to 54%, in one specific county, district, state, or precinct (the general-election override). Rou"},{"name":"target_precincts","description":"Return structured precinct model rows: precinct_id, name, county, county_fips, baseline_share, modeled_share, ballots_est, overridden, and gap_to_goal. The resp"},{"name":"create_scenario","description":"Create a new Scenario (a modeled path) — optionally inside a Race and seeded from a contest_id or an existing scenario (import_from). Seeds an immutable baselin"},{"name":"get_view","description":"Read the exact map/view state the application renders for a canonical scenario: headline totals, selected geography, modeled feature colors, annotations, primar"},{"name":"render_view","description":"A headless server-rendered IMAGE of the map — the rendered view a viewer sees, as SVG or PNG, WITHOUT a browser (tk_0b6d3501 P2). For a scenario + level (presid"},{"name":"render_chart","description":"share_comparison compares candidate shares for two saved versions of one model or two same-contest statewide general-election models. Returns canonical integer "},{"name":"set_view","description":"Set the active scenario view and selected map context: race stage, calendar playhead, geography grain, result source, selected feature, camera, map theme, and r"},{"name":"get_scenario","description":"A Scenario at its latest version (or a specified version_id): metadata (incl. latest_hash) + the version's top_line (margin / EC / viability) + its content hash"},{"name":"commit_version","description":"Save the scenario's current state as a new immutable, hash-stamped version in the append-only chain. Records a diff vs the parent version and the recomputed top"},{"name":"list_scenarios","description":"Page saved scenarios/simulations in this workspace by updated_at descending and scenario_id ascending, without version blobs. Returns scenario_id, name, level, "},{"name":"diff_versions","description":"Structured diff between two immutable versions. Raw before/after remain stored override patches (null means no saved override). Precinct cells also include effe"},{"name":"billing_status","description":"BILLING — your subscription state: {billing_enabled, logged_in, plan (personal|team|null), status, active, renews, can_save}. billing_enabled is false until the"},{"name":"connection_status","description":"WHO AM I — how THIS session is authenticated and which workspace this request resolved to. Returns authentication fields plus workspace {workspace_id, role, sel"},{"name":"set_candidates","description":"Replace the entire candidate roster for a simulation+level in one call (add / edit / remove / reorder). Each candidate: {id?, name, party, color?, incumbent?}; "},{"name":"set_turnout","description":"Set the turnout (mobilization) model. PRESIDENT (default, unchanged): each dial is a percentage-point boost toward toward_candidate_id in counties over an ACS t"},{"name":"add_map_comment","description":"Leave a Google-Docs-style COMMENT on the scenario map — a threaded, resolvable discussion anchored to a place. CAMPAIGN ISOLATION: when working inside a campaig"},{"name":"list_map_comments","description":"List one campaign's map comments on a scenario (oldest-first), each with its campaign_id, anchor, author, body, @mentions, parent_id, and resolved state. Pass c"},{"name":"apply_uniform_swing","description":"Apply an incremental swing in points toward one candidate at the requested office. A saved race_scope restricts writes to that state or district and refuses a d"},{"name":"get_tally","description":"Compute the current per-candidate tally for a simulation+level. For President: state-aggregated EVs. For others: feature counts. For level:\"senate\" the default "},{"name":"list_simulations","description":"List saved simulations in this workspace (id, name, level, cycle, mode, contest_id, last-modified; rows stamped with an identity also carry created_by/updated_b"},{"name":"get_simulation","description":"Read the canonical simulation/scenario state, including candidates, race scope, geography overrides, active version identity, provenance, and optional summary o"},{"name":"list_flipped","description":"List baseline-to-model winner changes. Defaults to state for statewide offices, county for president, and district for house/state legislature. Explicit grain:c"},{"name":"compare_simulations","description":"Compare two simulations. Without grain, returns the existing chamber/feature comparison. With grain:county|precinct and one state, compares exact saved canonica"},{"name":"share_simulation","description":"Mint a public, read-only link to the exact canonical scenario/version. Authenticate for durable workspace ownership; revoke_share disables the link."},{"name":"roll_up_race","description":"Roll up precincts to a race outcome under the current simulation. Sums baseline votes for all precincts inside the district boundary, applying overrides in prec"},{"name":"apply_swing_to_query","description":"Apply a uniform swing or an explicit per-precinct weights vector to a filtered cohort in one atomic call. Weights select only their named IDs, support canonical"},{"name":"get_campaign_onboarding","description":"CAMPAIGN ONBOARDING — guide a campaign manager or joining staff member through setup in their connected AI. Read one step or the complete guide: connection, cam"},{"name":"help","description":"Orient an AI client to campaign onboarding through get_campaign_onboarding, user-controlled election modeling, candidate and presidential-primary workflows, sup"},{"name":"get_catalog","description":"DISCOVERY — browse workflow/category groups, search tool names and descriptions, or fetch one complete schema and AI guide with tool. No arguments returns a com"},{"name":"list_primary_calendar","description":"Read the 2028 primary calendar with source dates, schedule certainty, modeled delegate coverage, missing jurisdictions, and threshold basis. New calendars inclu"},{"name":"set_primary_shares","description":"Set a party's presidential-primary vote shares — one state, or MANY states in a single call. SINGLE STATE: pass `state` + `shares` (unchanged behavior; echoes t"},{"name":"roll_up_primary","description":"The running delegate count — OR, for a race-scoped downballot sim, that race's own share rollup. DOWNBALLOT (tk_2110d54c1d0871): when the scenario is race-scope"},{"name":"primary_batch_edit","description":"ATOMIC batch-edit transaction for a PRIMARY scenario — validate, preview, apply, and roll back a whole SET of candidate / share / calendar edits as ONE transact"},{"name":"set_race_scope","description":"Bind the canonical scenario to one race/campaign so its map, tally, candidates, War Room context, operations, outputs, and MCP actions share the same race ident"},{"name":"call_tool","description":"Run any other tool you are authorized for that is not in this list. Find it and its exact input schema with get_catalog (search, a workflow, or {tool: name}), t"}],"toolCount":41,"toolsHash":"445e951709d1de8c6f0c762ca3aef5fbbdeb275b70f14f2020acf5342ddc9327","serverName":"electionsmcp","capabilities":["tools","prompts"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"resolve_geography","description":"Turn a place name or shorthand into its canonical geo_id — resolve natural-language or structured location input. Handles \"CA-03\"/\"NC-4\" (congressional district"},{"name":"resolve_candidate","description":"WHO holds or runs for WHAT — turn a candidate/officeholder name into their seat + next race. Given a name (full, last-name, or a registry alias — \"Lauren Boeber"},{"name":"search_candidates","description":"BROWSE the canonical candidate registry WITHOUT a name — the nameless companion to resolve_candidate (which requires a name). Filter the registry of canonical p"},{"name":"lookup_address","description":"Resolve a US street address, ZIP, state, or U.S. House district and show workspace campaigns covering the result. Street addresses return a geocoded point and c"},{"name":"list_contests","description":"Discover contests for a geography and election cycle. Filter general, primary (dem_primary/rep_primary), or all stages; count describes the returned top-level r"},{"name":"election_calendar","description":"The election planning calendar. National form ({cycle}) returns federal contests, governors and by_state office lists; state form ({state,cycle}) returns a four"},{"name":"set_performance","description":"Set a candidate's vote share, such as the Democratic candidate to 54%, in one specific county, district, state, or precinct (the general-election override). Rou"},{"name":"target_precincts","description":"Return structured precinct model rows: precinct_id, name, county, county_fips, baseline_share, modeled_share, ballots_est, overridden, and gap_to_goal. The resp"},{"name":"create_scenario","description":"Create a new Scenario (a modeled path) — optionally inside a Race and seeded from a contest_id or an existing scenario (import_from). Seeds an immutable baselin"},{"name":"get_view","description":"Read the exact map/view state the application renders for a canonical scenario: headline totals, selected geography, modeled feature colors, annotations, primar"},{"name":"render_view","description":"A headless server-rendered IMAGE of the map — the rendered view a viewer sees, as SVG or PNG, WITHOUT a browser (tk_0b6d3501 P2). For a scenario + level (presid"},{"name":"render_chart","description":"share_comparison compares candidate shares for two saved versions of one model or two same-contest statewide general-election models. Returns canonical integer "},{"name":"set_view","description":"Set the active scenario view and selected map context: race stage, calendar playhead, geography grain, result source, selected feature, camera, map theme, and r"},{"name":"get_scenario","description":"A Scenario at its latest version (or a specified version_id): metadata (incl. latest_hash) + the version's top_line (margin / EC / viability) + its content hash"},{"name":"commit_version","description":"Save the scenario's current state as a new immutable, hash-stamped version in the append-only chain. Records a diff vs the parent version and the recomputed top"},{"name":"list_scenarios","description":"Page saved scenarios/simulations in this workspace by updated_at descending and scenario_id ascending, without version blobs. Returns scenario_id, name, level, "},{"name":"diff_versions","description":"Structured diff between two immutable versions. Raw before/after remain stored override patches (null means no saved override). Precinct cells also include effe"},{"name":"billing_status","description":"BILLING — your subscription state: {billing_enabled, logged_in, plan (personal|team|null), status, active, renews, can_save}. billing_enabled is false until the"},{"name":"connection_status","description":"WHO AM I — how THIS session is authenticated and which workspace this request resolved to. Returns authentication fields plus workspace {workspace_id, role, sel"},{"name":"set_candidates","description":"Replace the entire candidate roster for a simulation+level in one call (add / edit / remove / reorder). Each candidate: {id?, name, party, color?, incumbent?}; "},{"name":"set_turnout","description":"Set the turnout (mobilization) model. PRESIDENT (default, unchanged): each dial is a percentage-point boost toward toward_candidate_id in counties over an ACS t"},{"name":"add_map_comment","description":"Leave a Google-Docs-style COMMENT on the scenario map — a threaded, resolvable discussion anchored to a place. CAMPAIGN ISOLATION: when working inside a campaig"},{"name":"list_map_comments","description":"List one campaign's map comments on a scenario (oldest-first), each with its campaign_id, anchor, author, body, @mentions, parent_id, and resolved state. Pass c"},{"name":"apply_uniform_swing","description":"Apply an incremental swing in points toward one candidate at the requested office. A saved race_scope restricts writes to that state or district and refuses a d"},{"name":"get_tally","description":"Compute the current per-candidate tally for a simulation+level. For President: state-aggregated EVs. For others: feature counts. For level:\"senate\" the default "},{"name":"list_simulations","description":"List saved simulations in this workspace (id, name, level, cycle, mode, contest_id, last-modified; rows stamped with an identity also carry created_by/updated_b"},{"name":"get_simulation","description":"Read the canonical simulation/scenario state, including candidates, race scope, geography overrides, active version identity, provenance, and optional summary o"},{"name":"list_flipped","description":"List baseline-to-model winner changes. Defaults to state for statewide offices, county for president, and district for house/state legislature. Explicit grain:c"},{"name":"compare_simulations","description":"Compare two simulations. Without grain, returns the existing chamber/feature comparison. With grain:county|precinct and one state, compares exact saved canonica"},{"name":"share_simulation","description":"Mint a public, read-only link to the exact canonical scenario/version. Authenticate for durable workspace ownership; revoke_share disables the link."},{"name":"roll_up_race","description":"Roll up precincts to a race outcome under the current simulation. Sums baseline votes for all precincts inside the district boundary, applying overrides in prec"},{"name":"apply_swing_to_query","description":"Apply a uniform swing or an explicit per-precinct weights vector to a filtered cohort in one atomic call. Weights select only their named IDs, support canonical"},{"name":"get_campaign_onboarding","description":"CAMPAIGN ONBOARDING — guide a campaign manager or joining staff member through setup in their connected AI. Read one step or the complete guide: connection, cam"},{"name":"help","description":"Orient an AI client to campaign onboarding through get_campaign_onboarding, user-controlled election modeling, candidate and presidential-primary workflows, sup"},{"name":"get_catalog","description":"DISCOVERY — browse workflow/category groups, search tool names and descriptions, or fetch one complete schema and AI guide with tool. No arguments returns a com"},{"name":"list_primary_calendar","description":"Read the 2028 primary calendar with source dates, schedule certainty, modeled delegate coverage, missing jurisdictions, and threshold basis. New calendars inclu"},{"name":"set_primary_shares","description":"Set a party's presidential-primary vote shares — one state, or MANY states in a single call. SINGLE STATE: pass `state` + `shares` (unchanged behavior; echoes t"},{"name":"roll_up_primary","description":"The running delegate count — OR, for a race-scoped downballot sim, that race's own share rollup. DOWNBALLOT (tk_2110d54c1d0871): when the scenario is race-scope"},{"name":"primary_batch_edit","description":"ATOMIC batch-edit transaction for a PRIMARY scenario — validate, preview, apply, and roll back a whole SET of candidate / share / calendar edits as ONE transact"},{"name":"set_race_scope","description":"Bind the canonical scenario to one race/campaign so its map, tally, candidates, War Room context, operations, outputs, and MCP actions share the same race ident"},{"name":"call_tool","description":"Run any other tool you are authorized for that is not in this list. Find it and its exact input schema with get_catalog (search, a workflow, or {tool: name}), t"}],"package":null,"toolSurface":{"id":"ts_acss7ygb4zfg","endpointId":"ep_8m92krrjbdqe","hash":"f837618b320c441a0b448e5b357adffe0d39f1b7245475bc4bacb9b9a8fd5ce9","toolCount":41,"serverName":"electionsmcp","serverVersion":"1.0.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-12T18:31:46.904Z","lastSeenAt":"2026-10-12T18:31:46.904Z","observations":1,"toolNames":["resolve_geography","resolve_candidate","search_candidates","lookup_address","list_contests","election_calendar","set_performance","target_precincts","create_scenario","get_view","render_view","render_chart","set_view","get_scenario","commit_version","list_scenarios","diff_versions","billing_status","connection_status","set_candidates","set_turnout","add_map_comment","list_map_comments","apply_uniform_swing","get_tally","list_simulations","get_simulation","list_flipped","compare_simulations","share_simulation","roll_up_race","apply_swing_to_query","get_campaign_onboarding","help","get_catalog","list_primary_calendar","set_primary_shares","roll_up_primary","primary_batch_edit","set_race_scope","call_tool"],"distinctSurfaces":3},"endpointFacts":[{"id":"ep_8m92krrjbdqe","url":"https://www.electionsmcp.com/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-10T03:25:02.564Z","auth":{"observedAt":"2026-10-10T03:25:03.657Z","authRequired":false,"scheme":null,"resourceMetadata":{"url":"https://www.electionsmcp.com/.well-known/oauth-protected-resource/mcp","resource":"https://www.electionsmcp.com/mcp","authorizationServers":["https://www.electionsmcp.com"],"scopesSupported":["elections:read","campaigns:write","reports:publish","workspace:collaborate","workspace:admin"]},"authorizationServer":{"url":"https://www.electionsmcp.com/.well-known/oauth-authorization-server","issuer":"https://www.electionsmcp.com","grantTypesSupported":["authorization_code","refresh_token"],"codeChallengeMethodsSupported":["S256"],"tokenEndpointAuthMethodsSupported":["none"],"dynamicClientRegistration":true,"dpopSigningAlgValuesSupported":[],"clientIdMetadataDocumentSupported":null},"conformance":{"dpop":false,"rfc8414":true,"rfc9728":true,"pkceS256":true,"clientIdMetadataDocument":false,"dynamicClientRegistration":true}},"tls":{"observedAt":"2026-10-10T03:25:03.673Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"www.electionsmcp.com","issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validFrom":"2026-09-27T10:13:35.000Z","validTo":"2026-12-26T11:13:32.000Z","daysToExpiry":74,"sanCount":1,"fingerprint256":"2D:85:C0:F9:BA:FD:2B:DE:BE:41:2A:74:26:24:21:C8:76:A8:7C:00:3A:DA:C9:CC:08:DC:AB:6F:D8:6E:30:D4"}},{"id":"ep_mnq77dwat4ww","url":"https://www.electionsmcp.com/sse","type":"mcp_sse","factsCheckedAt":"2026-10-05T21:21:46.782Z","auth":null,"tls":{"observedAt":"2026-10-05T21:21:46.793Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"www.electionsmcp.com","issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validFrom":"2026-09-27T10:13:35.000Z","validTo":"2026-12-26T11:13:32.000Z","daysToExpiry":74,"sanCount":1,"fingerprint256":"2D:85:C0:F9:BA:FD:2B:DE:BE:41:2A:74:26:24:21:C8:76:A8:7C:00:3A:DA:C9:CC:08:DC:AB:6F:D8:6E:30:D4"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"com.electionsmcp/electionsmcp","url":"https://registry.modelcontextprotocol.io/v0/servers/com.electionsmcp%2Felectionsmcp","firstSeenAt":"2026-09-27T22:21:20.052Z","fetchedAt":"2026-10-12T02:20:47.307Z","normalizedAt":"2026-10-12T02:20:47.307Z"}]},"firstSeenAt":"2026-09-27T22:21:20.052Z","updatedAt":"2026-10-12T18:34:17.057Z"}