@pipeworx/us-race-matchups

Connect: https://pipeworx.io/mcp — every tool in the catalog, including @pipeworx/us-race-matchups’s. Install: one-click buttons

Connect to just the @pipeworx/us-race-matchups pack

https://gateway.pipeworx.io/us-race-matchups/mcp — only @pipeworx/us-race-matchups’s own tools, nothing else in the catalog.

No MCP client? Skip the connection: POST https://gateway.pipeworx.io/v1/tools/search_packs {"query":"..."} to find a tool below, GET /v1/tools/<name> for its schema, POST the same URL with arguments for the data — see For AI agents.

Tools: 2

Who is on the ballot in a US House district or Senate seat: the incumbent, every FEC-registered candidate by party with the money behind them, which of them won a primary, and the primary and general election dates. Built for the 2026 midterms (general election 3 November 2026); works for any even cycle.

Tools

  • race_matchup(state, office, district?, cycle?, special?) — one race. Returns the incumbent, candidates (party, incumbent status, total receipts, disbursements, cash on hand, the date each candidate’s money runs through, won_primary), primary result tables with vote counts and share, and the primary, runoff and general election dates. A district with no candidates returns an error naming the districts that do have candidates; a state with no Senate race that cycle says so; a race with no primary table says so in primary_results_note instead of returning an empty list.
  • list_races(state, office?, cycle?) — every race in a state with how many candidates registered and who the incumbent is. Use it to find a district number.

Auth

Platform key (the shared data.gov key the gateway already holds for the FEC pack). Callers pass nothing.

Data sources

  • FEC, candidate and committee filings — candidates, party, incumbent status, receipts, disbursements, cash on hand. Federal public record.
  • FEC, election calendar — primary, runoff and general election dates.
  • Wikipedia, 2026 race pages — primary vote counts and which candidates advanced. This is a volunteer-compiled source, not an official one; every response labels it and lists the state election authority the page cites (for example “Iowa Secretary of State”). Treat primary numbers as a convenience and check the state authority for anything that matters.

Notes the next person would otherwise rediscover:

  • The FEC money view omits registrants with no financial summary on file; those appear with financials_on_file: false and null money (null, not zero).
  • won_primary is matched by surname and party between the FEC filer and the primary table, not by an ID. null means no primary table was found.
  • FEC lists some candidates’ coverage dates in the future; those are shown as null and excluded from data_as_of.
  • Large states split their Wikipedia coverage across sub-pages by district range (California); the pack follows the link.
  • Ohio and Florida have both a regular and a special Senate election in 2026. FEC groups them under the state; special: true reads the special election’s primary page.
  • No home addresses or other individual contact details are served.

Tools

  • race_matchup — One US House district or Senate seat: who the incumbent is, every FEC-registered candidate by party with money raised/spent/cash on hand, which candidates won their primary, primary and general electi
  • list_races — Every federal race in a state for a cycle (the Senate seat if any, and each House district) with how many candidates registered with the FEC and who the incumbent is. Use it to find the district numbe

Tools

  • list_races — Every federal race in a state for a cycle (the Senate seat if any, and each House district) with how many candidates registered with the FEC and who the incumbent is. Use it to find the district numbe
  • race_matchup — One US House district or Senate seat: who the incumbent is, every FEC-registered candidate by party with money raised/spent/cash on hand, which candidates won their primary, primary and general electi

Regenerated from source · build October 28, 2026