Serveur MCP

VotePredictor Elections

com.votepredictor/elections
Recherche et exploration Public et accessible MCP 2025-11-25

Ce que fait ce MCP

Provides 2026 US election forecasts, forecaster accuracy records, congressional member profiles, and voting-related data.

chamber_outlook
Chamber control outlook
Who is favoured to control the Senate or House after 2026: control probability, expected seats with an 80% range, how far it has moved since January, and the races that have moved most.
Lecture seule Accès externe Idempotent
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['chamber'], 'properties': {'chamber': {'enum': ['senate', 'house'], 'type': 'string', 'description': "Which chamber of Congress: 'senate' (51 seats for control) or 'house' (218)."}}}
Schéma de sortie
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['chamber', 'p_dem_control', 'expected_dem_seats', 'range_80pct', 'seats_needed', 'as_of', 'change_points_since', 'since_date', 'seats_total', 'seats_with_forecast', 'seats_from_fundamentals', 'seats_without_forecast', 'biggest_movers', 'url', 'summary'], 'properties': {'url': {'type': 'string'}, 'as_of': {'type': 'string'}, 'chamber': {'type': 'string'}, 'summary': {'type': 'string'}, 'since_date': {'type': 'string'}, 'range_80pct': {'type': 'array', 'items': {'type': 'number'}, 'description': '[p10, p90] seats in 80% of simulations'}, 'seats_total': {'type': 'number'}, 'seats_needed': {'type': 'number'}, 'p_dem_control': {'type': 'number', 'description': 'Probability Democrats control the chamber'}, 'biggest_movers': {'type': 'array', 'items': {'type': 'object', 'required': ['race_id', 'delta_points', 'toward'], 'properties': {'toward': {'type': 'string'}, 'race_id': {'type': 'string'}, 'delta_points': {'type': 'number'}}, 'additionalProperties': False}}, 'expected_dem_seats': {'type': 'number'}, 'change_points_since': {'type': 'number', 'description': 'Points moved since the first snapshot, positive toward Democrats'}, 'seats_with_forecast': {'type': 'number'}, 'seats_without_forecast': {'type': 'number', 'description': 'Publishing nothing, because a candidate left the ballot'}, 'seats_from_fundamentals': {'type': 'number', 'description': 'Forecast without any poll, because none exists'}}, 'additionalProperties': False}
forecaster_accuracy
Forecast accuracy track record
How accurate each election forecaster, model, prediction market and pollster has been on resolved races, adjusted for how hard each race was. Use this to answer 'whose election forecast should I trust'. Difficulty adjustment matters: on raw scores whoever rated the safest races wins.
Lecture seule Accès externe Idempotent
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'limit': {'type': 'integer', 'default': 10, 'maximum': 25, 'minimum': 1, 'description': 'How many ranked entries to return, best first. Default 10.'}, 'office': {'enum': ['ALL', 'PRES', 'SEN', 'GOV', 'HOUSE'], 'type': 'string', 'default': 'ALL', 'description': 'Restrict the board to one office, or ALL for every resolved race.'}}}
Schéma de sortie
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['metric', 'office', 'lower_is_better', 'adjusted_for_difficulty', 'entries', 'url', 'summary'], 'properties': {'url': {'type': 'string'}, 'metric': {'type': 'string'}, 'office': {'type': 'string'}, 'entries': {'type': 'array', 'items': {'type': 'object', 'required': ['rank', 'name', 'score', 'races_scored'], 'properties': {'name': {'type': 'string'}, 'rank': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'score': {'type': 'number'}, 'races_scored': {'type': 'number'}}, 'additionalProperties': False}}, 'summary': {'type': 'string'}, 'lower_is_better': {'type': 'boolean'}, 'adjusted_for_difficulty': {'type': 'boolean', 'description': 'True. Raw scores reward whoever rated the safest races, so unadjusted rankings mislead.'}}, 'additionalProperties': False}
forecast_race
Forecast a 2026 race
Current VotePredictor forecast for one 2026 US election: win probability, predicted margin, whether it comes from polls or fundamentals, how far it has moved this cycle, and the candidates. Accepts a state name or code ('Ohio', 'OH') or a district ('CA-12'). Returns an explicit refusal for races where a candidate has left the ballot and no forecast is published.
Lecture seule Accès externe Idempotent
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['where', 'office'], 'properties': {'where': {'type': 'string', 'description': "Where the race is: a state name ('Ohio'), a two-letter state code ('OH'), or a House district ('CA-12'). Pass what the user said."}, 'office': {'enum': ['SEN', 'GOV', 'HOUSE'], 'type': 'string', 'description': 'Which office: SEN for U.S. Senate, GOV for governor, HOUSE for a U.S. House district.'}}}
Schéma de sortie
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['race_id', 'forecast_published', 'no_forecast_reason', 'office', 'location', 'state_name', 'p_dem_win', 'rating', 'pred_margin', 'source', 'n_polls', 'dem_candidate', 'rep_candidate', 'movement_points', 'url', 'summary'], 'properties': {'url': {'type': 'string', 'description': 'Cite this'}, 'office': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'rating': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Safe D / Likely D / Lean D / Toss-up / Lean R / Likely R / Safe R'}, 'source': {'anyOf': [{'enum': ['polls', 'fundamentals'], 'type': 'string'}, {'type': 'null'}], 'description': "'polls' where a poll-driven forecast exists, otherwise 'fundamentals' (lean, incumbency, national environment)"}, 'n_polls': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'race_id': {'type': 'string', 'description': 'Canonical id, {year}_{OFFICE}_{location}'}, 'summary': {'type': 'string', 'description': 'One-paragraph answer suitable for reading aloud'}, 'location': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'State code, or district id for the House'}, 'p_dem_win': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'description': 'Democratic win probability, 0.01-0.99. Never 0 or 1: an election that has not happened is not certain.'}, 'state_name': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'pred_margin': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'description': 'Predicted Dem-minus-Rep margin in points'}, 'dem_candidate': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'rep_candidate': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'movement_points': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'description': 'Change in win probability in POINTS since the first snapshot this cycle, positive toward Democrats'}, 'forecast_published': {'type': 'boolean', 'description': 'False when this site declines to publish a probability for the race'}, 'no_forecast_reason': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Why nothing is published, e.g. a candidate has left the ballot. Do not substitute your own estimate.'}}, 'additionalProperties': False}
member_profile
Member of Congress
A member of Congress by name or bioguide id: party, state, ideology score, reported net worth from financial disclosures, and the 2026 race for their seat.
Lecture seule Accès externe Idempotent
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['who'], 'properties': {'who': {'type': 'string', 'description': "Who to look up: a surname ('Pelosi'), a full name, or a bioguide id ('P000197'). If several sitting members match, the tool returns the candidates rather than choosing one."}}}
Schéma de sortie
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['found', 'ambiguous_matches', 'bioguide_id', 'name', 'party', 'state', 'chamber', 'net_worth_year', 'net_worth_range', 'race_2026', 'currently_serving', 'url', 'summary'], 'properties': {'url': {'type': 'string'}, 'name': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'found': {'type': 'boolean'}, 'party': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'state': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'chamber': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'summary': {'type': 'string'}, 'race_2026': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Race id for their seat, if it is on the 2026 ballot AND they still hold it'}, 'bioguide_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'net_worth_year': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'net_worth_range': {'anyOf': [{'type': 'array', 'items': {'type': 'number'}}, {'type': 'null'}], 'description': '[low, high] in dollars. Disclosures report brackets, never an exact figure.'}, 'ambiguous_matches': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'description': 'Populated when the name matches several sitting members; ask the user which, do not pick one'}, 'currently_serving': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'description': 'False for a former member. Lookup still resolves them, but they are not in office and are not a candidate.'}}, 'additionalProperties': False}
Ajouté
member_profile
17 September 2026 12:38
Ajouté
forecaster_accuracy
17 September 2026 12:38
Ajouté
chamber_outlook
17 September 2026 12:38
Ajouté
forecast_race
17 September 2026 12:38