Election Index
by electionindex.org · remote · no sign-in to list tools · v1.0.1 · published by org.electionindex
Neutral, sourced election calendar: polling days, when provisional and final results are due.
8 tools: 6 change things and 2 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things6Claude Code: ask: see these tools
- Only reads2Claude Code: allow: see these tools
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http elections https://electionindex.org/mcpTools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
8 tools
Changes things 6Claude Code: ask
check_questionIs a question about a given count stage answerable at a given time?No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
dataset_healthCoverage, stale records, races still lacking a results page, and publisher-gate warnings, as counts with the first 20 of each (full report at /v1/health).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Coverage, stale records, races still lacking a results page, and publisher-gate warnings, as counts with the first 20 of each (full report at /v1/health). Use to judge how far to trust an answer.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
next_electionThe next elections in one country, however far ahead: polling day and whether it is declared, still tentative, or only expected within a period, what is elected, the counting autho…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it The next elections in one country, however far ahead: polling day and whether it is declared, still tentative, or only expected within a period, what is elected, the counting authority, and when results are expected. Answers "When is the next election in Austria?" or "When are the US midterms?". National elections by default; level "regional" answers "When are the next state elections in Germany?". Covers 411 elections in 100 countries, 2021–2030, including 23 of the 27 EU member states, the 2026 US midterms in all 50 states and the certified 2024 US presidential result, with vote counts, in all 50 states and DC.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
resolution_sourcesEvery known source URL for a race, classified (race_results, feed, results_index, emb_home, directory, media).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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. A results page whose HTML shows no count once one is due (figures_in_html false) is not resolvable. Sources a settlement oracle has answered from come first (oracle_reads). For our own copy of the count, see secondary_source in check_question.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
submit_correctionReport a mistake or a missing election, with a URL that proves it (ideally the official authority page).No findings
Why it is in this group
- The name "submit_correction" says "submit": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
when_finalWhen will a race's final (certified) result exist?No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it When will a race's final (certified) result exist? Returns the expected window, its confidence (announced / precedent / estimate) and basis, how many days the final took last time, and the final count itself once we hold it. Use this before asking or settling any "final result" question.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
Only reads 2Claude Code: allow
election_statusFull record of one election: races, polls-close times, every count stage window (exit poll, election night, intermediate count, final result, government) with confidence and citati…No findings
Why it is in this group
- The name "election_status" says "status": a word for reading.
Description, as the server wrote it 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, recorded vote counts, and whether the record is stale.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
upcoming_electionsList elections by date range and/or country, soonest first, with each race's expected count stage right now.No findings
Why it is in this group
- The description's first verb is "list": a word for reading.
Description, as the server wrote it List elections by date range and/or country, soonest first, with each race's expected count stage right now. Answers "Which elections are in Europe this autumn?", "Which elections are this month?" or "What elections does Germany have coming up?". Without dates it starts today; with a country and no end date it covers every future election of that country, otherwise the next 365 days. Covers 411 elections in 100 countries, 2021–2030, including 23 of the 27 EU member states, the 2026 US midterms in all 50 states and the certified 2024 US presidential result, with vote counts, in all 50 states and DC.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Exfil surface
Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.
No private-data, untrusted-input, outbound path in this server alone: no tool is tagged private-data or untrusted-input or outbound.
- Reads private data0
- Reads files, mail, messages, databases, secrets, calendars or repositories.
- Reads text others write0
- Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
- Can send data out0
- Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.
Install
Pinned to version 1.0.1. Values in angle brackets are yours to fill in.
claude mcp add --transport http elections https://electionindex.org/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__elections__upcoming_elections",
"mcp__elections__election_status"
],
"ask": [
"mcp__elections__next_election",
"mcp__elections__when_final",
"mcp__elections__check_question",
"mcp__elections__resolution_sources",
"mcp__elections__submit_correction",
"mcp__elections__dataset_health"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as elections. Review it before you use it.