Election Index
Server Details
Neutral, sourced election calendar: polling days, when provisional and final results are due.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 7 tools
Most tools target clearly distinct needs (timing, status, sources, health, corrections). check_question and when_final could be confused around final-result timing, but the descriptions explicitly distinguish their purposes. election_status also exposes count-stage windows, creating minor overlap with the timing tools.
All names use snake_case consistently, which helps readability. However, the semantic pattern is mixed: some tools are verb-led (check_question, submit_correction), others are noun phrases (election_status, resolution_sources), and one is interrogative (when_final). No single predictable verb_noun convention.
Seven tools is well within the ideal 3-15 range and appropriate for a specialized election count-stage/metadata service. Each tool appears to have a distinct role, and no tool feels redundant or out of scope.
The set covers count-stage timing, source classification, health, corrections, upcoming elections, and final-result expectations. However, there is no obvious tool to search for elections by name, location, or historical period, nor one to retrieve actual result values, which can leave agents at a dead end for common election queries.
Available Tools
7 toolscheck_questionCheck a questionARead-onlyInspect
Is a question about a given count stage answerable at a given time? Returns verdict ok / too-early / inside-window / too-late, settle_after, and the resolvable sources. Built to stop questions that read the provisional count when they mean the final one.
| Name | Required | Description | Default |
|---|---|---|---|
| race | No | Race id, e.g. "president"; optional when the election has one race | |
| stage | No | Default final-result | |
| ask_at | No | ISO date-time; default now | |
| election | Yes | Election id, e.g. "brazil-general-2026"; list ids with upcoming_elections |
Output Schema
| Name | Required | Description |
|---|---|---|
| meta | Yes | What this answer was built from; cite dataset_version |
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered; the description adds real value on top by naming the return shape (verdict, settle_after, resolvable sources) and the provisional-vs-final trap it guards against. It does not discuss errors for unknown election/race ids, but the added context is substantive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences: the core question first, the return contract second, the motivating purpose last. Nothing is wasted and the key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be detailed, yet the description still names the verdicts and the supporting fields. With full schema coverage and read-only annotations, an agent has everything needed to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including the stage enum and defaults, so the schema already carries parameter meaning. The description only alludes to stage, ask_at and election in prose ('given count stage', 'at a given time') without adding format or default semantics. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb and resource: decides whether a question about a given count stage is answerable at a given time, and enumerates the verdicts returned. An agent can distinguish this from siblings like when_final or election_status without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The closing sentence gives the concrete situation it exists for (stopping questions that read the provisional count when they mean the final one), which is clear usage context. It stops short of naming alternatives such as when_final or election_status and when to prefer them instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dataset_healthDataset healthARead-onlyInspect
Coverage, stale records, races still lacking a results page, and publisher-gate warnings. Use to judge how far to trust an answer.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| meta | Yes | What this answer was built from; cite dataset_version |
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds genuinely useful behavioral content by naming the diagnostic categories and warnings surfaced, but says nothing about cost, scope of the underlying dataset, or what a warning implies for downstream use.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, nothing padded, and the content list is front-loaded before the usage cue. The first sentence is a noun-phrase fragment rather than a complete clause, which is terse but slightly less scannable than a well-formed statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and an output schema that carries the return structure, the description only needs to convey the tool's purpose and reported categories — which it does. It is adequately complete, though the relationship to sibling diagnostic/verification tools is left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is no parameter semantics to explain; the baseline for a parameterless tool applies. The description correctly adds no redundant argument discussion.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description enumerates the concrete diagnostic content returned (coverage, stale records, races lacking a results page, publisher-gate warnings), which lets an agent identify it as a dataset-level health diagnostic rather than an answer lookup. It never names a sibling (e.g. check_question, when_final) to sharpen the boundary, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use to judge how far to trust an answer' signals the intended context, so usage is implied rather than absent. However, it gives no explicit when-not condition and does not contrast with the closely related siblings like check_question or when_final, which is where the real ambiguity lies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
election_statusElection statusBRead-onlyInspect
Full record of one election: races, polls-close times, every count stage window (exit poll, election night, intermediate count, final result, government) with confidence and citation, the authority, sources, and whether the record is stale.
| Name | Required | Description | Default |
|---|---|---|---|
| election | Yes | Election id, e.g. "latvia-parliamentary-2026" |
Output Schema
| Name | Required | Description |
|---|---|---|
| meta | Yes | What this answer was built from; cite dataset_version |
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, covering the safety profile. The description adds some context by noting per-stage confidence/citation and a staleness flag, but says nothing about auth needs, rate limits, or lookup failure behavior for an unknown election id.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that opens with the core purpose before enumerating contents. The long parenthetical list of count stages is dense but each element is informative, so it earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is unnecessary, and the single parameter plus annotations are well covered. The description is complete enough for a read-only lookup, with the only gap being sibling-level routing guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single election parameter is fully documented with an example id in the schema, so the description adds nothing about the id format. Baseline 3 applies when the schema carries the parameter burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource and scope: the full record of one election, enumerated as races, poll-close times, count stage windows, authority, and sources. This lets an agent distinguish it from a narrow lookup, though it never names its closest sibling (when_final) that likely returns only a subset of this data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no routing to alternatives from the sibling set (e.g. when_final for a single result time, upcoming_elections for future contests). The agent must infer selection purely from the content list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolution_sourcesResolution sourcesARead-onlyInspect
Every known source URL for a race, classified (race_results, feed, results_index, emb_home, directory, media). Only race_results and feed can answer a results question; homepages never can.
| Name | Required | Description | Default |
|---|---|---|---|
| race | No | Race id, e.g. "president"; optional when the election has one race | |
| election | Yes | Election id, e.g. "brazil-general-2026"; list ids with upcoming_elections | |
| resolvable_only | No | Only sources that can answer a results question (race_results, feed); default false |
Output Schema
| Name | Required | Description |
|---|---|---|
| meta | Yes | What this answer was built from; cite dataset_version |
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds real domain semantics: what the classification values mean and which of them are capable of answering a results question, which annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler, and the high-value constraint (only race_results/feed resolve results) is placed where it is immediately visible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return structure need not be documented, and annotations carry the safety profile. The description supplies the necessary interpretive frame for the classifications, leaving only minor gaps around sibling routing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description exceeds that by defining the classification value domain that resolvable_only filters on, giving the boolean parameter meaning beyond the schema's phrasing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: it returns every known source URL for a race, and enumerates the classification taxonomy. No sibling tool overlaps this resource, though the description never explicitly names an alternative to differentiate against.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Only race_results and feed can answer a results question; homepages never can" gives clear guidance on which outputs are actionable and implicitly supports using resolvable_only. It stops short of stating when to call this tool versus check_question or when_final.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_correctionSubmit a correctionAInspect
Report a mistake or a missing election, with a URL that proves it (ideally the official authority page). The report is public and is checked like any other claim; it never changes the data by itself. Returns the report id; follow it at https://electionindex.org/corrections.
| Name | Required | Description | Default |
|---|---|---|---|
| race | No | Race id within that election, if the report is about one race | |
| claim | Yes | What is wrong and what is right, 10 to 2000 characters | |
| election | No | Election id, if the report is about a listed election | |
| evidence | Yes | http(s) URL of the page that proves it |
Output Schema
| Name | Required | Description |
|---|---|---|
| meta | Yes | What this answer was built from; cite dataset_version |
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (destructiveHint=false, openWorldHint=false, idempotentHint=false), and the description adds genuinely useful context beyond them: the report is public, it is checked like any other claim, and it never mutates data by itself. It stops short of noting auth needs or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the action, then the evidence requirement, then the outcome and follow-up URL. Every sentence carries information; nothing is padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite an output schema that would excuse omitting return details, the description still states the returned report id and where to follow it, and covers the public/moderation nature of the report. Nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is already 100%, so the baseline is 3. The description adds meaning on top of that by prescribing the quality of the evidence parameter ('ideally the official authority page') and framing the claim parameter as 'what is wrong and what is right'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action and object: reporting a mistake or a missing election, backed by a proving URL. It is unambiguous about what the tool does, though it never distinguishes itself from the sibling tools by name or scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear conditions for use (you have found a mistake or missing election) and a prerequisite (a URL that proves it), and clarifies the effect is review, not direct data change. No alternatives or when-not-to-use paths are offered, but the context is sufficient to select it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upcoming_electionsUpcoming electionsARead-onlyInspect
List national elections in a date range (default: today to +365 days), with each race's expected count stage right now. Use for "when is the next election in X" or "which elections are this month".
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | YYYY-MM-DD | |
| from | No | YYYY-MM-DD | |
| country | No | ISO 3166-1 alpha-2, e.g. "LV" | |
| include_discovered | No | Also list elections found on Wikidata but not yet verified by Election Index |
Output Schema
| Name | Required | Description |
|---|---|---|
| meta | Yes | What this answer was built from; cite dataset_version |
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety and world-scope are covered. The description adds the default date window and notes that each race's expected count stage is returned, but says nothing about verification status of results or result limits. Reasonable added value given the lower bar set by annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with what is returned and the default range, followed by example phrasings. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need no explanation, and all four params are described in the schema. The description covers defaults and intent; the only gap is that it doesn't flag how unverified/discovered elections appear in results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the four parameters are documented there; baseline would be 3. The description adds the non-schema default of 'today to +365 days' for from/to, which is genuine semantic information an agent needs when omitting those arguments.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('List') and resource ('national elections') plus the scoping dimension (date range) and a default window. It does not differentiate itself from siblings like when_final or election_status, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives two concrete example questions ('when is the next election in X', 'which elections are this month') that clearly frame the use case. It names no alternatives or exclusions, so it is clear context without routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
when_finalWhen is the result final?ARead-onlyInspect
When will a race's final (certified) result exist? Returns the expected window, its confidence (announced / precedent / estimate) and basis. Use this before asking or settling any "final result" question.
| Name | Required | Description | Default |
|---|---|---|---|
| race | No | Race id, e.g. "president"; optional when the election has one race | |
| election | Yes | Election id, e.g. "brazil-general-2026"; list ids with upcoming_elections |
Output Schema
| Name | Required | Description |
|---|---|---|
| meta | Yes | What this answer was built from; cite dataset_version |
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds meaningful context beyond that: the tool returns a predicted window plus confidence tiers (announced / precedent / estimate) and basis, signaling this is an estimate-bearing forecast rather than a factual lookup.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core question and followed by return shape and usage directive. No filler; every sentence carries distinct information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return-value detail need not be in the description, and the parameters are fully documented. The description covers purpose, output nature, and usage, leaving only minor gaps such as how the confidence tier should influence downstream behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (race, election, with its example and the pointer to upcoming_elections) are fully documented in the schema itself. The description adds no parameter-level detail, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific capability: forecasting when a race's certified final result will exist, distinct from any sibling tool (which report status, health, or sources rather than timing). The parenthetical '(certified)' clarifies the scope of 'final', removing ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit usage directive: 'Use this before asking or settling any "final result" question.' This tells the agent when to invoke it, but no alternative tool is named or excluded, so it stops short of full when/when-not routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
7 tool updates
- First observed
check_question - First observed
dataset_health - First observed
election_status - First observed
resolution_sources - First observed
submit_correction - First observed
upcoming_elections - First observed
when_final
Related MCP Connectors
Living, source-backed timelines of long-running events, with a quote and source per entry.
Neutral, sourced, real-time comparisons on any topic, in 32 languages.
Verified biotech catalyst calendar (PDUFA/AdComm/trial readouts) anchored to official sources.
Evidence-first news archive: briefs, breaking news, search, Palestine claims, conflict monitor.
Related MCP Servers
- AlicenseAqualityBmaintenanceSource-backed government processing times with current values, history, comparisons, and provenance.4Apache 2.0
- FlicenseNot gradedqualityBmaintenanceMCP server for civicAPI that provides live and historical election results worldwide with tools for searching races, retrieving race details and history, and accessing election dates and API status.-
- FlicenseNot gradedqualityDmaintenanceMCP server for querying Peruvian electoral data (ONPE) including mesa results, candidate votes, and regional statistics. Enables natural language queries about the 2026 presidential election with local SQLite cache and live API fallback.-
- AlicenseNot gradedqualityAmaintenanceCalibrated probability forecasts for any resolvable question — with evidence, prediction-market edge (Polymarket/Kalshi), and a live resolved track record.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.