Skip to main content
Glama

VotePredictor Elections

Chamber control outlook

chamber_outlook
Read-onlyIdempotent

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 since the current model began (its latest revision).

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "chamber_outlook"
  }
}

Input Schema

NameRequiredDescriptionDefault
chamberNoWhich chamber of Congress: 'senate' (51 seats for control) or 'house' (218).

Output Schema

NameRequiredDescriptionDefault
urlYes
as_ofYes
chamberYes
summaryYes
since_dateYes
range_80pctYes[p10, p90] seats in 80% of simulations
seats_totalYes
seats_neededYes
p_dem_controlYesProbability Democrats control the chamber
biggest_moversYes
expected_dem_seatsYes
change_points_sinceYesChange in the published control probability since since_date, in points, positive toward Democrats. since_date is the first day after the chamber's latest model revision; null when the current model has under two days on file.
seats_with_forecastYes
seats_without_forecastYesPublishing nothing (an independent challenger, or polls of a former nominee); each is counted for the party defending it
seats_from_fundamentalsYesForecast without any poll, because none exists

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • addedOutput schema / properties / change_points_since / anyOf
      Added value: +[
      +  {
      +    "type": "number"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / change_points_since / description
      Previous value: -"BACKCAST change since since_date, in points, positive toward Democrats: today's model rerun on the polls of that date, not the number published then"New value: +"Change in the published control probability since since_date, in points, positive toward Democrats. since_date is the first day after the chamber's latest model revision; null when the current model has under two days on file."
    • removedOutput schema / properties / change_points_since / type
      Removed value: -"number"
    • addedOutput schema / properties / since_date / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / since_date / type
      Removed value: -"string"
  2. Changed3 schema fields changed
    • removedInput schema / required
      Removed value: -[
      -  "chamber"
      -]
    • changedOutput schema / properties / change_points_since / description
      Previous value: -"Points moved since the first snapshot, positive toward Democrats"New value: +"BACKCAST change since since_date, in points, positive toward Democrats: today's model rerun on the polls of that date, not the number published then"
    • changedOutput schema / properties / seats_without_forecast / description
      Previous value: -"Publishing nothing, because a candidate left the ballot"New value: +"Publishing nothing (an independent challenger, or polls of a former nominee); each is counted for the party defending it"
  3. First observed

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this a read-only, idempotent, open-world read, so the bar is lower. The description adds genuine behavioral context beyond them: the movement baseline ('since January') and the fact that 'most moved' races are measured against the current model's latest revision, which pre-empts a likely agent misinterpretation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single well-formed sentence with no filler, and the subject (chamber control after 2026) is front-loaded. The trailing parenthetical about the model revision is slightly awkward but earns its place by clarifying the comparison baseline.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and annotations covering the safety profile, the description need not explain return values, and its content list is enough to set expectations. The one remaining gap is behavior when the optional chamber parameter is omitted – presumably both chambers, but that is not stated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the enum already explains the 51/218 control thresholds, so the schema does the heavy lifting. The description's 'Senate or House' loosely echoes the parameter but adds no new semantics, and the fact that the parameter is optional and what happens when it is omitted is left unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource precisely – chamber control outlook for Senate/House after 2026 – and enumerates the exact contents (control probability, expected seats with 80% range, movement since January, most-moved races). It is clearly different from the race-level sibling forecast_race, though it omits an explicit verb like 'get' or 'return'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: 'after 2026' frames the horizon and the aggregate nature of the output hints it is the right tool for chamber-level rather than race-level questions. No sibling is named and there is no statement of when not to use it instead of forecast_race or forecaster_accuracy.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources