ElectionsMCP

com.electionsmcpPublished by electionsmcp.comOfficial publisherv0.2.0Updated Oct 24, 2026

Model and map any 2028 U.S. race down to the precinct: scenarios, swing, turnout, and roll-ups.

VerifiedStreamable HTTPWeb executableLocation & LifestyleData & Analytics

Overview

AI-generated overview

Lets an assistant model and map 2028 U.S. elections, with precinct-level scenarios, swing, turnout, and roll-ups.

What you can do
Provides U.S. election modeling and mapping tools: resolve place names, candidates, and addresses; list contests and election calendars; create scenarios, set candidate vote shares, apply swing and turnout models, and read tallies, flips, and version diffs. It also renders maps and charts, mints read-only share links, supports map comments, and returns historical state turnout, early-voting, and county economic data.
When to use it
For political analysis, campaign planning, or election reporting where you want to model 2028 federal and state races in conversation, test swing and turnout assumptions, or look up voter registration and turnout history.
Requirements
Remote HTTP endpoint; no local runtime needed. An optional API key is sent in the x-electionsmcp-key header; without it you get a free read/simulate sandbox, and with it simulations save to a durable tier. The key is obtained by signing in on the provider's site.
Before you install
The key travels in the x-electionsmcp-key header, so keep it private. Tools create and modify scenarios, versions, candidate rosters, and map comments, and can mint public read-only share links; review content before sharing. Billing and subscription status tools exist, so check plan and save limits first.

Installation

In SourceWeft

  1. Open ElectionsMCP in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/com.electionsmcp%2Felectionsmcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "electionsmcp": {
      "type": "http",
      "url": "https://www.electionsmcp.com/mcp"
    }
  }
}

Tools

48

resolve_geography

Turn a place name or shorthand into its canonical geo_id — resolve natural-language or structured location input. Handles "CA-03"/"NC-4" (congressional districts), bare state names/abbreviations, "<County> County…

Parametersyearqueryrequiredworkspace_scope

resolve_candidate

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 Boebert", "Boebert"), returns the person(s) who match with their…

Parametersnamerequiredcyclelimitpartyofficeworkspace_scope

search_candidates

BROWSE the canonical candidate registry WITHOUT a name — the nameless companion to resolve_candidate (which requires a name). Filter the registry of canonical people by party, office, and/or a name substring:…

Parametersqlimitpartyofficeworkspace_scope

lookup_address

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 containing districts, with a precinct when coverage exists.…

Parametersaddressrequiredworkspace_scopeinclude_officials

list_contests

Discover contests for a geography and election cycle. Filter general, primary (dem_primary/rep_primary), or all stages; count describes the returned top-level rows. National presidential primaries are discoverable in…

Parameterscyclestagegeo_idrequiredworkspace_scope

election_calendar

The election planning calendar. National form ({cycle}) returns federal contests, governors and by_state office lists; state form ({state,cycle}) returns a four-year horizon. Other statewide executive offices use the…

Parameterscyclestateworkspace_scope

set_performance

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). Routes a county/state/district geo_id to a feature override…

Parameterslevelgeo_idrequiredmarginsharesrequiredturnoutrebalancescenario_idrequiredtotal_votessimulation_idworkspace_scopeexpected_version

target_precincts

Return structured precinct model rows: precinct_id, name, county, county_fips, baseline_share, modeled_share, ballots_est, overridden, and gap_to_goal. The response does not include demographic columns or demographic…

Parameterslimitfiltergeo_idmarginoffsetcontextgoal_modetarget_pctscenario_idrequiredcandidate_idrolloff_rateworkspace_scope

create_scenario

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 baseline version (v1). Returns scenario_id + version_id. (A…

Parametersnamerequiredtagsrace_idcontest_idbaseline_idcampaign_idimport_fromidempotency_keyworkspace_scopeboundary_versionexpected_campaign_revision

get_view

Read the exact map/view state the application renders for a canonical scenario: headline totals, selected geography, modeled feature colors, annotations, primary-calendar playhead, candidate roster, presence, and a…

Parametersviewcyclegrainlevelstateversion_aversion_bversion_idcampaign_id_acampaign_id_bsimulation_idrequiredexpected_hash_a+5 more

render_view

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 (president | senate | house | governor | the execs) it draws the…

Parametersasofviewgrainlevelsharestatethemetitleformatgeo_idlayersregion+16 more

render_chart

share_comparison compares candidate shares for two saved versions of one model or two same-contest statewide general-election models. Returns canonical integer candidate votes, all-ballot shares, D-minus-R margins,…

Parametersasoftyperequiredcyclelevelpartysharestatestylethemetitleclinchformat+17 more

set_view

Set the active scenario view and selected map context: race stage, calendar playhead, geography grain, result source, selected feature, camera, map theme, and rail. The same persisted view state and deep link are used…

Parametersasofrailzoomcyclelevelstagestatelayerssourcecontestmap_grainmap_theme+5 more

get_scenario

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/prev_hash. EM-119: pass a version_id (or…

Parametersversion_idscenario_idrequiredinclude_stateworkspace_scopeexpected_version_hash

commit_version

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_line, and returns a content `hash` (+ `prev_hash`…

Parameterstitlesummaryinsight_idsscenario_idrequiredinclude_diffannotation_idsworkspace_scope

list_scenarios

Page saved scenarios/simulations in this workspace by updated_at descending and scenario_id ascending, without version blobs. Returns scenario_id, name, level, cycle, contest_id, race_id, tags, durable_id, published…

Parameterstagslimitoffsetworkspace_scope

diff_versions

Structured diff between two immutable versions. Raw before/after remain stored override patches (null means no saved override). Precinct cells also include effective_before/effective_after shares with their…

Parameterslimitoffsetversion_arequiredversion_brequiredscenario_idrequiredworkspace_scope

get_early_voting_turnout

Read early voting, absentee/mail, election-day, and provisional vote-method breakdowns alongside registered-voter, ballots-cast, and undervote/overvote turnout statistics by race and candidate from RoutPoint v2…

Parametersstaterequiredofficedistrictsource_idcounty_fipsoffice_levelelection_dateelection_typeworkspace_scopeinclude_precincts

get_county_voter_turnout_and_registration

Read county voter registration, party registration (DEM/REP/UNA/Other), voting-age population, 2024/2022/2020/2026 ballots cast and turnout percentages, 2020-to-2024 partisan swing, and competitiveness tiers across all…

Parameterssorttierlimitstateoffsetcounty_fipsworkspace_scope

get_state_historical_turnout

Read 50-year statewide prior-cycle turnout and vote totals (1976 through 2026 across all 50 states and DC): ballots cast, registered voters, voting-age population, turnout percentage, DEM/REP vote shares, margin, and…

Parametersyearlimitstateoffsetworkspace_scope

get_live_early_vote_returns

Read live 2026-11-03 General Election pre-election mail ballot requests, mail ballots returned, early in-person ballots, and partisan ballot composition (DEM vs. REP vs. UNA/Other) compared against each county’s 2024…

Parameterslimitstateoffsetcounty_fipselection_dateworkspace_scope

get_precinct_election_returns

Read precinct-level election returns and normalized early-voting, absentee/mail, election-day, and provisional breakdowns across 87.7M precinct rows (linked to mapsmcp_precinct_id) from RoutPoint v2.

Parametersyearlimitpartystateofficeoffsetdistrictcontest_idcounty_fipselection_idoffice_levelelection_date+3 more

get_county_officials

Read current local, county, municipal, judicial, and school-board officials (40,431 local officials; 97,231 total officials) by 5-digit county FIPS or state from RoutPoint v2.

Parametersqfipslimitpartystateoffsetoffice_levelworkspace_scope

get_county_economic_and_wealth_profile

Read a county’s economic vitality dossier (Census 15-sector business patterns, establishments, employees, payroll, average annual wage, new SOS LLC/Corp formations, SEC Form D capital raises, Form 4/FEC major donors,…

Parametersfipssortlimitstateoffsetworkspace_scope

billing_status

BILLING — your subscription state: {billing_enabled, logged_in, plan (personal|team|null), status, active, renews, can_save}. billing_enabled is false until the server is configured with Stripe; while it is false,…

Parametersworkspace_scope

connection_status

WHO AM I — how THIS session is authenticated and which workspace this request resolved to. Returns authentication fields plus workspace {workspace_id, role, selection_source}. Modern MCP clients select a workspace with…

Parametersworkspace_scope

set_candidates

Replace the entire candidate roster for a simulation+level in one call (add / edit / remove / reorder). Each candidate: {id?, name, party, color?, incumbent?}; ids auto-assigned if omitted. Use this to set the real…

Parameterslevelrequiredcandidatesrequiredsimulation_idrequiredworkspace_scopeexpected_version

set_turnout

Set the turnout (mobilization) model. PRESIDENT (default, unchanged): each dial is a percentage-point boost toward toward_candidate_id in counties over an ACS threshold (college = >20% BA share, immig = >15%…

Parametersclearimmiglevelsourcecollegegeo_idshiUnemplowHomecountieshighHomecriterionassumption+5 more

add_map_comment

Leave a Google-Docs-style COMMENT on the scenario map — a threaded, resolvable discussion anchored to a place. CAMPAIGN ISOLATION: when working inside a campaign, pass campaign_id; the scenario must be filed under it…

Parameterslatlngbodyrequiredleveltitleobjectpayloadregionscategoryicon_typeparent_idfeature_id+10 more

list_map_comments

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 campaign_id inside a campaign; only that exact campaign is…

Parameterscampaign_idcomment_idssimulation_idrequiredworkspace_scopeinclude_resolved

apply_uniform_swing

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 different office or unresolved geography. Unscoped and…

Parametersas_oflevelrequiredswing_pprequiredsimulation_idrequireddecay_halflifeworkspace_scopedecay_start_datetoward_candidate_id

get_tally

Compute the current per-candidate tally for a simulation+level. For President: state-aggregated EVs. For others: feature counts. For level:"senate" the default is the 50-state per-candidate race scoreboard; pass…

Parameterscyclelevelrequiredchambersimulation_idrequiredworkspace_scope

list_simulations

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_by member user_ids). Optional filters narrow a large…

Parametersqmodecyclelevellimitowneroffsetrace_idcontest_idupdated_sinceworkspace_scope

get_simulation

Read the canonical simulation/scenario state, including candidates, race scope, geography overrides, active version identity, provenance, and optional summary or selected dot-path fields.

Parametersfieldssimulation_idrequiredworkspace_scope

list_flipped

List baseline-to-model winner changes. Defaults to state for statewide offices, county for president, and district for house/state legislature. Explicit grain:county|precinct uses canonical integer local votes for a…

Parametersgrainlevelrequiredlimitstateoffsetsimulation_idrequiredworkspace_scope

compare_simulations

Compare two simulations. Without grain, returns the existing chamber/feature comparison. With grain:county|precinct and one state, compares exact saved canonical vote rows: margin(B)-margin(A), winners, flips, ballots…

Parametersgrainlevelrequiredlimitstateformatoffsetversion_aversion_bcampaign_id_acampaign_id_bexpected_hash_aexpected_hash_b+3 more

share_simulation

Mint a public, read-only link to the exact canonical scenario/version. Authenticate for durable workspace ownership; revoke_share disables the link.

Parameterssectionsttl_dayscampaign_idsimulation_idrequiredinclude_deltasinclude_impactworkspace_scope

roll_up_race

Roll up precincts to a race outcome under the current simulation. Sums baseline votes for all precincts inside the district boundary, applying overrides in precedence order: a per-precinct override wins, else…

Parameterslevelregiondistrict_idregion_groupsimulation_idrequiredworkspace_scope

apply_swing_to_query

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 statewide mechanisms, and optionally rescale a persuasion…

Parametersmixmodelevelstaterequiredfilterrequiredsourceweightsswing_ppassumptionmax_precinctssimulation_idrequiredworkspace_scope+2 more

get_campaign_onboarding

CAMPAIGN ONBOARDING — guide a campaign manager or joining staff member through setup in their connected AI. Read one step or the complete guide: connection, campaign identity, team access, optional data imports, first…

Parameterssectionworkspace_scope

help

Orient an AI client to campaign onboarding through get_campaign_onboarding, user-controlled election modeling, candidate and presidential-primary workflows, supported geography, scenario versions, contextual War Room…

Parametersworkspace_scope

get_catalog

DISCOVERY — browse workflow/category groups, search tool names and descriptions, or fetch one complete schema and AI guide with tool. No arguments returns a compact counted index of the authorized inventory. Core…

Parameterstoollimitquerycursorcategoryworkflowworkspace_scopeexpected_catalog_version

list_primary_calendar

Read the 2028 primary calendar with source dates, schedule certainty, modeled delegate coverage, missing jurisdictions, and threshold basis. New calendars include the six DNC-approved early dates; other unverified…

Parameterspartyrequiredsimulation_idworkspace_scope

set_primary_shares

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 the full running roll_up). BATCH: pass `states` = { "SC":…

Parameterspartyrequiredstatesharesstatessimulation_idrequiredinclude_rollupworkspace_scope

roll_up_primary

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-scoped to a non-presidential office (set_race_scope…

Parametersasofpartyrequiredstateby_districtsimulation_idrequiredinclude_statesworkspace_scope

primary_batch_edit

ATOMIC batch-edit transaction for a PRIMARY scenario — validate, preview, apply, and roll back a whole SET of candidate / share / calendar edits as ONE transaction. Pass edits:[{op, ...}, …] where each entry carries…

Parameterseditsrequiredforcepartydry_runsimulation_idrequiredsetup_evidenceworkspace_scopecheckpoint_labelexpected_version_hash

set_race_scope

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 identity.

Parameterscyclelevelstageofficerebindcandidatecandidatesgeography_idsimulation_idrequiredworkspace_scope

call_tool

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}), then call call_tool({ name, arguments }). The named tool…

Parametersnamerequiredarguments

Version history

1
  1. v0.2.0LatestSep 27, 2026

Score

72% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts

    Publish an icon in the registry entry.

  • Documentation15 pts

    Declare a GitHub repository with a README, or serve resource_documentation in the OAuth protected-resource metadata.

  • LicenseNot applicable

    A hosted service is used under its provider's terms, so no license is expected here. This check is left out of the percentage.