Search / com.electionsmcp/electionsmcp
ElectionsMCP
R0· no sign-inModel and map any 2028 U.S. race down to the precinct: scenarios, swing, turnout, and roll-ups.
v0.2.0 · active · website · descriptor JSON · versions
Search / com.electionsmcp/electionsmcp
R0· no sign-inModel and map any 2028 U.S. race down to the precinct: scenarios, swing, turnout, and roll-ups.
v0.2.0 · active · website · descriptor JSON · versions
{
"mcpServers": {
"electionsmcp": {
"type": "http",
"url": "https://www.electionsmcp.com/mcp",
"headers": {
"x-electionsmcp-key": "${X_ELECTIONSMCP_KEY}"
}
}
}
}claude mcp add --transport http electionsmcp https://www.electionsmcp.com/mcp --header "x-electionsmcp-key: ${X_ELECTIONSMCP_KEY}"[mcp_servers.electionsmcp]
url = "https://www.electionsmcp.com/mcp"
env_http_headers = { "x-electionsmcp-key" = "X_ELECTIONSMCP_KEY" }
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"electionsmcp": {
"type": "remote",
"url": "https://www.electionsmcp.com/mcp",
"enabled": true,
"headers": {
"x-electionsmcp-key": "{env:X_ELECTIONSMCP_KEY}"
}
}
}
}{
"mcpServers": {
"electionsmcp": {
"type": "http",
"url": "https://www.electionsmcp.com/mcp",
"headers": {
"x-electionsmcp-key": "${X_ELECTIONSMCP_KEY}"
}
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=electionsmcp&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vd3d3LmVsZWN0aW9uc21jcC5jb20vbWNwIiwiaGVhZGVycyI6eyJ4LWVsZWN0aW9uc21jcC1rZXkiOiIke1hfRUxFQ1RJT05TTUNQX0tFWX0ifX0%3D"
}{
"servers": {
"electionsmcp": {
"type": "http",
"url": "https://www.electionsmcp.com/mcp",
"headers": {
"x-electionsmcp-key": "${X_ELECTIONSMCP_KEY}"
}
}
}
}{
"mcpServers": {
"electionsmcp": {
"httpUrl": "https://www.electionsmcp.com/mcp",
"headers": {
"x-electionsmcp-key": "${X_ELECTIONSMCP_KEY}"
}
}
}
}extensions:
"electionsmcp":
enabled: true
name: "electionsmcp"
type: streamable_http
uri: "https://www.electionsmcp.com/mcp"
headers:
"x-electionsmcp-key": "${X_ELECTIONSMCP_KEY}"
timeout: 300
Placeholders to fill from your own secret store: ${X_ELECTIONSMCP_KEY}. The registry never accepts secret values.
protocol.modernsupports 2026-07-28 (server/discover)protocol.statelessanswers without a sessionprotocol.transportstreamable HTTPprotocol.list_ttltools/list declares ttlMs 0, so clients re-fetch it on every useauth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptionsevery tool has a descriptiontools.description_lengthdescriptions are concisetools.schemasevery tool has an object input schematools.annotations48 of 48 tools declare readOnlyHint or destructiveHinttools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHinttools.token_costabout 27,959 tokens to load every tool, a large share of an agent's contexttools.api_dumptools are not a one-to-one API dumpstability.changes118 tool changes in 30 daysstability.rug_pullno tool changed its meaning under the same namedeps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI packageget_county_economic_and_wealth_profileaddedRead 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,…
get_county_officialsaddedRead 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_precinct_election_returnsaddedRead 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_live_early_vote_returnsaddedRead 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_state_historical_turnoutaddedRead 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_county_voter_turnout_and_registrationaddedRead 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_early_voting_turnoutaddedRead 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…
clear_race_scoperemovedRemove the race scope from a simulation, returning it to national/retrospective mode.
analyze_primary_inflectionsremovedINFLECTION + SENSITIVITY analysis of a modeled presidential primary — under YOUR scenario's assumptions: not just who leads, but when your modeled race clinches and which contests could flip it. Walks roll_up_primary…
optimize_calendarremovedRANK primary-calendar orderings for a candidate against the sim's modeled per-state delegate hauls — which calendar order best helps candidate X. DETERMINISTIC and EXPLAINED, with NO invented probabilities: the total…
Showing the latest 10. Full history: list_changes · trend: quality JSON.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+dns-namespace +website +reachable +uptime-100% +updated-23d-ago -no-repository
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://www.electionsmcp.com/mcp streamable-http | none | yes | 100% | 376 ms | 2026-07-28, 2025-06-18, 2024-11-05 | 2026-10-19 |
https://www.electionsmcp.com/sse sse | none | yes | 100% | 381 ms | 2025-11-25 | 2026-10-19 |
add_map_commentdestructive | 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… |
apply_swing_to_querydestructive | 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… |
apply_uniform_swingdestructive | 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… |
billing_statusread-only | 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,… |
call_tooldestructive | 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… |
commit_versiondestructive | 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`… |
compare_simulationsread-only | 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… |
connection_statusread-only | 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… |
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… |
diff_versionsread-only | 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… |
election_calendarread-only | 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… |
get_campaign_onboardingread-only | 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… |
get_catalogread-only | 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… |
get_county_economic_and_wealth_profileread-only | 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,… |
get_county_officialsread-only | 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_voter_turnout_and_registrationread-only | 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_early_voting_turnoutread-only | 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_live_early_vote_returnsread-only | 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_returnsread-only | 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_scenarioread-only | 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… |
get_simulationread-only | Read the canonical simulation/scenario state, including candidates, race scope, geography overrides, active version identity, provenance, and optional summary or selected dot-path fields. |
get_state_historical_turnoutread-only | 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_tallyread-only | 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… |
get_viewread-only | 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… |
helpread-only | 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… |
list_contestsread-only | 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… |
list_flippedread-only | 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… |
list_map_commentsread-only | 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… |
list_primary_calendarread-only | 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… |
list_scenariosread-only | 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… |
list_simulationsread-only | 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… |
lookup_addressread-only | 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.… |
primary_batch_editdestructive | 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… |
render_chartread-only | 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,… |
render_viewread-only | 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… |
resolve_candidateread-only | 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… |
resolve_geographyread-only | 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… |
roll_up_primaryread-only | 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… |
roll_up_raceread-only | 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… |
search_candidatesread-only | 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:… |
set_candidatesdestructive | 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_performancedestructive | 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… |
set_primary_sharesdestructive | 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":… |
set_race_scopedestructive | 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. |
set_turnoutdestructive | 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%… |
set_viewdestructive | 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… |
share_simulationdestructive | Mint a public, read-only link to the exact canonical scenario/version. Authenticate for durable workspace ownership; revoke_share disables the link. |
target_precinctsread-only | 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… |
Schemas: list_tools.
{
"name": "com.electionsmcp/electionsmcp",
"_meta": {
"io.modelcontextprotocol.registry/publisher-provided": {
"mcpProtocolVersions": {
"asOf": "2026-07-28",
"eras": {
"legacy": {
"notes": "The initialize handshake negotiates the revision and the server returns an Mcp-Session-Id. Clients on 2025-11-25 and earlier use this path.",
"status": "served",
"opensWith": "initialize",
"revisions": [
"2025-06-18"
]
},
"modern": {
"notes": "Stateless. Every request carries io.modelcontextprotocol/protocolVersion (required) and io.modelcontextprotocol/clientCapabilities (required) in params._meta, plus the matching MCP-Protocol-Version header. Served beside the legacy handshake, not instead of it: server/discover answers, and a legacy initialize exchange is unchanged.",
"status": "served",
"opensWith": "no handshake — per-request _meta",
"revisions": [
"2026-07-28"
]
}
},
"served": [
"2026-07-28",
"2025-06-18"
],
"comment": "Which MCP revisions this endpoint actually serves. `served` is the honest list — a revision only appears there once a probe has observed the endpoint answering it. `planned` is a revision the code is being written for and is NOT a claim of support. Kept truthful by three things: scripts/registry-check.mjs validates the shape, mcp/audit/protocol.mjs re-derives it from the live endpoint on every audit run (audit-report.json -> protocol), and tests/mcp-dual-era-client.test.mjs fails if `served` disagrees with the server this repo actually boots.",
"planned": [],
"verifiedBy": [
"mcp/audit/protocol.mjs",
"tests/mcp-dual-era-client.test.mjs"
]
}
}
},
"title": "ElectionsMCP",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://www.electionsmcp.com/mcp",
"type": "streamable-http",
"headers": [
{
"name": "x-electionsmcp-key",
"isSecret": true,
"description": "Optional API key. Without a key you get a free read/simulate sandbox; with a key, simulations save to your durable tier. Get one by signing in at https://www.electionsmcp.com."
}
]
},
{
"url": "https://www.electionsmcp.com/sse",
"type": "sse"
}
],
"version": "0.2.0",
"websiteUrl": "https://www.electionsmcp.com",
"description": "Model and map any 2028 U.S. race down to the precinct: scenarios, swing, turnout, and roll-ups."
}