VotePredictor Elections
2026 US election forecasts with a public accuracy record, plus congressional voting records.
Sollte ich dies verwenden
Qualität und Sicherheit
Befunde (1)
- LOWin forecaster_accuracy
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"elections": {
"url": "https://votepredictor.com/api/mcp"
}
}
}Remote-Endpunkte
https://votepredictor.com/api/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (4)
🟢forecast_race(where, office)
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.
Eingabe-Schema
{
"type": "object",
"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": {
"type": "string",
"enum": [
"SEN",
"GOV",
"HOUSE"
],
"description": "Which office: SEN for U.S. Senate, GOV for governor, HOUSE for a U.S. House district."
}
},
"required": [
"where",
"office"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"race_id": {
"type": "string",
"description": "Canonical id, {year}_{OFFICE}_{location}"
},
"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."
},
"office": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"location": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "State code, or district id for the House"
},
"state_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"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."
},
"rating": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Safe D / Likely D / Lean D / Toss-up / Lean R / Likely R / Safe R"
},
"pred_margin": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Predicted Dem-minus-Rep margin in points"
},
"source": {
"anyOf": [
{
"type": "string",
"enum": [
"polls",
"fundamentals"
]
},
{
"type": "null"
}
],
"description": "'polls' where a poll-driven forecast exists, otherwise 'fundamentals' (lean, incumbency, national environment)"
},
"n_polls": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"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"
},
"url": {
"type": "string",
"description": "Cite this"
},
"summary": {
"type": "string",
"description": "One-paragraph answer suitable for reading aloud"
}
},
"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"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢chamber_outlook(chamber)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"chamber": {
"type": "string",
"enum": [
"senate",
"house"
],
"description": "Which chamber of Congress: 'senate' (51 seats for control) or 'house' (218)."
}
},
"required": [
"chamber"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"chamber": {
"type": "string"
},
"p_dem_control": {
"type": "number",
"description": "Probability Democrats control the chamber"
},
"expected_dem_seats": {
"type": "number"
},
"range_80pct": {
"type": "array",
"items": {
"type": "number"
},
"description": "[p10, p90] seats in 80% of simulations"
},
"seats_needed": {
"type": "number"
},
"as_of": {
"type": "string"
},
"change_points_since": {
"type": "number",
"description": "Points moved since the first snapshot, positive toward Democrats"
},
"since_date": {
"type": "string"
},
"seats_total": {
"type": "number"
},
"seats_with_forecast": {
"type": "number"
},
"seats_from_fundamentals": {
"type": "number",
"description": "Forecast without any poll, because none exists"
},
"seats_without_forecast": {
"type": "number",
"description": "Publishing nothing, because a candidate left the ballot"
},
"biggest_movers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"race_id": {
"type": "string"
},
"delta_points": {
"type": "number"
},
"toward": {
"type": "string"
}
},
"required": [
"race_id",
"delta_points",
"toward"
],
"additionalProperties": false
}
},
"url": {
"type": "string"
},
"summary": {
"type": "string"
}
},
"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"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢forecaster_accuracy(office, limit)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"office": {
"default": "ALL",
"description": "Restrict the board to one office, or ALL for every resolved race.",
"type": "string",
"enum": [
"ALL",
"PRES",
"SEN",
"GOV",
"HOUSE"
]
},
"limit": {
"default": 10,
"description": "How many ranked entries to return, best first. Default 10.",
"type": "integer",
"minimum": 1,
"maximum": 25
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"metric": {
"type": "string"
},
"office": {
"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."
},
"entries": {
"type": "array",
"items": {
"type": "object",
"properties": {
"rank": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"name": {
"type": "string"
},
"score": {
"type": "number"
},
"races_scored": {
"type": "number"
}
},
"required": [
"rank",
"name",
"score",
"races_scored"
],
"additionalProperties": false
}
},
"url": {
"type": "string"
},
"summary": {
"type": "string"
}
},
"required": [
"metric",
"office",
"lower_is_better",
"adjusted_for_difficulty",
"entries",
"url",
"summary"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢member_profile(who)
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.
Eingabe-Schema
{
"type": "object",
"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."
}
},
"required": [
"who"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"found": {
"type": "boolean"
},
"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"
},
"bioguide_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"party": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"state": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"chamber": {
"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."
},
"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"
},
"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."
},
"url": {
"type": "string"
},
"summary": {
"type": "string"
}
},
"required": [
"found",
"ambiguous_matches",
"bioguide_id",
"name",
"party",
"state",
"chamber",
"net_worth_year",
"net_worth_range",
"race_2026",
"currently_serving",
"url",
"summary"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}Community
Nachweis