VotePredictor Elections
2026 US election forecasts with a public accuracy record, plus congressional voting records.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (1)
- LOWen forecaster_accuracy
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"elections": {
"url": "https://votepredictor.com/api/mcp"
}
}
}Puntos de conexión remotos
https://votepredictor.com/api/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (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.
Esquema de entrada
{
"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"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
}Esquema de salida
{
"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
}Comunidad
Evidencia