Skip to content
ElectionsMCP logo

ElectionsMCP MCP server

Which MCP servers are ElectionsMCP's own, from the official registry and from asking its own domain, whether they answer, and what they offer. A program checked each of these, nobody copied them from a product page.

read 2026-10-19

← Back to ElectionsMCP

Whose server it is
  • Registry namecom.electionsmcp/electionsmcpverified in the MCP registry

The registry name sits under electionsmcp.com. The registry only lets a publisher use that namespace after proving control of the domain through DNS or HTTP.

When we asked itchecked 2026-10-19
  • Stateanswerschecked 2026-10-19
  • Tools48
  • Server calls itselfelectionsmcp
  • Server version1.0.0
  • Protocol version2025-06-18

On 2026-10-19 the server answered initialize and tools/list without a sign-in. First answer in 37 ms.

Should an agent connect itNot proven either way yet
  • Whether its tools do the product's job has not been judged yet.

Once connected

  • set_performance, create_scenario, set_candidates, set_turnout, add_map_comment change data without a sign-in: anyone with the address can call them.
  • Its definitions take about 27475 tokens of context: enable only the tools a task needs.
  • Parameters are untyped or undescribed in 26 of 48 tools: check arguments before calling.

Said by rules from the measurements above. The likely first call is a model's pick from the tool list; read its description before relying on it.

Measured dailydaily checks: 15, the first on 2026-10-19
  • INITE MCP score70 of 100answers 100 · definitions 91 · context 40 · connects 100 · lowered by the warning signs below
  • Answered100% of days15 of 15 daily checks
  • Median first answer72 ms
  • Space in an agent's context≈ 27,475 tokensthe definitions of all its tools (48), which an agent carries on every turn
  • Tool definitionsA · 91 of 100
  • Typed results6 of 48 toolsdeclared outputSchema: results come typed, read once
  • Parameters without a type: in 1 of 48
  • Parameters without a description: in 26 of 48

What an agent can do with it

  • not sure · Compare turnout scenarios across the local units in a district
  • not sure · Rank local units that need attention on a shared map
  • cannot · Assign field work to precincts and track it by geography

Each of the product's use cases, put to Jev against this server's tool list: can an agent do it with these tools?

Worth a look

  • Tools that change data, on a server that answers without a sign-in: set_performance, create_scenario, set_candidates, set_turnout, add_map_comment

A program checks the server once a day: initialize and tools/list, no model. Tokens are the definitions' length at about four characters a token. The grade averages six checks of every tool's name, description, schema and annotations; it says how well the tools are described, not whether they work. The score weighs what was measured and nothing else: answering (25%), doing the product's job (25%), definitions (20%), context (10%), use (10%) and how readily a client connects (10%). A part that was not measured is left out, and a hidden instruction caps the score at 40. The state of vendors' MCP servers: method and numbers →

Tools it offers48 tools · read 2026-10-19
  • 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…

  • 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…

  • 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:…

  • 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.…

  • 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…

  • 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…

  • 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…

  • 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…

  • 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…

  • 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…

  • 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…

  • 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,…

  • 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…

  • 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…

  • 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`…

  • 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…

  • 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…

  • 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…

  • 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…

  • 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…

  • 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…

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

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

  • 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,…

  • 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,…

  • 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…

  • 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…

  • 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%…

  • 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…

  • 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…

  • 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…

  • 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…

  • 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…

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

  • 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…

  • 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…

  • share_simulation

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

  • 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…

  • 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…

  • 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…

  • 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…

  • 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…

  • 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…

  • 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":…

  • 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…

  • 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…

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

  • 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…

How to connect

Add the server to your MCP client config. Claude Desktop, Cursor and most other clients read this shape:

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

Add it

Claude Code, in a terminal

claude mcp add --transport http electionsmcp https://www.electionsmcp.com/mcp

Add to CursorAdd to VS Code

claude.ai, ChatGPT and other clients: add https://www.electionsmcp.com/mcp as a custom connector in the settings.

Each line is something a program found when it went looking: the registry entry, the server's own answer, a spec that parses. A missing line means we did not find it, not that it does not exist.