bundeswahlleiter-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@bundeswahlleiter-mcp show me the national results of the 2025 Bundestag election"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
bundeswahlleiter-mcp 🗳️
mcp-name: io.github.mohammad-abbasi-sh/bundeswahlleiter-mcp
Unofficial read-only MCP server for bundeswahlleiterin.de — Official Bundestag election results from bundeswahlleiterin.de (free open data, no key, no login): national results, party results, constituencies and turnout for 2017, 2021 and 2025. No key, no login.
Built by Mohammad Abbasi as part of the "Germany MCP factory". Not affiliated with bundeswahlleiterin.de.
For AI agents
Add to your MCP client config (stdio):
{
"mcpServers": {
"bundeswahlleiter": {
"command": "uvx",
"args": ["bundeswahlleiter-mcp==0.1.0"]
}
}
}Or run locally: python -m bundeswahlleiter_mcp.server (needs mcp<2, httpx).
Related MCP server: Bundestag MCP Server
Tools
Tool | Description |
| National results of a Bundestag election: turnout, valid votes, per-party second votes with previous-election comparison — |
| Results of one party in a Bundestag election, nationally and by Land — |
| Results of one constituency: winner, turnout, per-party first/second votes — |
| List all 299 constituencies with winner and turnout — |
| Voter turnout by Land and nationally — |
| Reachability probe (ok / blocked / error) — one polite request |
Notes
All data comes from the Bundeswahlleiterin's open data (free, no key, no login; Datenlizenz Deutschland – Namensnennung – Version 2.0).
Each call discovers the election's
*_kerg2.csvlink from its results page and parses the long-format file (semicolon-separated, German decimal commas).Supported years: 2017, 2021, 2025 — kerg2 exists only for these (2013 has only the wide kerg.csv; 2009 has no English results page).
2017/2021 files have 18 columns (no Gewählt) and call voters "Wähler" (2021/2025: "Wählende"); party names are the short names from kerg2 (CDU, CSU, AfD, GRÜNE, SPD, FDP, DIE LINKE/Die Linke, BSW …).
Constituency winner: 2025 reads the official Gewählt column — it names a party for 276 constituencies and shows "–" for the 23 whose direct winner was not allocated a seat under the 2025 second-vote coverage rule (there the winner is derived from the most first votes and labeled as such); 2017/2021 winners are always derived that way.
Tests: 24/24 green (19 offline + 5 live, 2026-11-10).
Development
python3 -m venv .venv && .venv/bin/pip install "mcp<2" httpx pytest
.venv/bin/pip install -e .
.venv/bin/python -m pytest tests/ -qLicense
MIT
Built by Mohammad Abbasi — Almanibama · mabbasi.ir
Available Tools
6 toolsbwl_constituenciesA
List constituencies with winner and turnout. year: 2017, 2021 or 2025. land: optional Land name or number (e.g. Bayern, 2) to filter. limit: 1..299 (default 50).
Inputs: year (required), land, limit. Returns: result
bwl_constituency_resultsA
Results of one constituency: winner, turnout, eligible voters, and per-party first/second votes ranked by first votes. year: 2017, 2021 or 2025. constituency: number 1–299 or (part of) the name, e.g. 1, Flensburg, München-Süd.
Inputs: year (required), constituency (required). Returns: result
bwl_healthA
Check whether bundeswahlleiterin.de is reachable right now.
Returns status ok (HTTP 200), blocked (HTTP 403/429 — bot wall or rate limit) or error, plus the HTTP status and the probed URL. One polite request; it does not fetch any listings.
Inputs: no named parameters. Returns: result
bwl_national_resultsA
National results of a Bundestag election: election date, eligible voters, turnout, valid votes, and per-party second votes (with previous-election comparison), ranked by votes. year: 2017, 2021 or 2025 (default 2025).
Inputs: year. Returns: result
bwl_party_resultsA
Results of one party in a Bundestag election: national second votes (with previous-election comparison) and second-vote share by Land. year: 2017, 2021 or 2025. party: e.g. CDU, SPD, AfD, GRĂśNE, FDP, Die Linke, BSW.
Inputs: year (required), party (required). Returns: result
bwl_turnoutA
Voter turnout by Land and nationally for a Bundestag election. year: 2017, 2021 or 2025 (default 2025).
Inputs: year. Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 6 tools
Each tool targets a clearly distinct slice: national aggregate, single-party breakdown, single-constituency detail, constituency list, turnout, and a health probe. The only mild overlap is that turnout figures also appear inside bwl_national_results and bwl_constituency_results, but bwl_turnout's per-Land view justifies its separate existence.
All six tools use a uniform bwl_<resource> snake_case pattern (bwl_national_results, bwl_party_results, bwl_constituencies, bwl_health). No mixed conventions or stray verbs, so names are fully predictable.
Six tools is well-scoped for a read-only election-results dataset, with one tool per natural query dimension plus a connectivity check. Nothing appears redundant or padded.
The surface covers national, party, constituency, list, and turnout queries for the stated years, which handles most research workflows. The notable gap is seat allocation / Sitzverteilung and first-vote national totals, which agents would have to derive or cannot obtain at all.
Maintenance
Related MCP Connectors
Read-only German federal election results for municipalities, with harmonized geography.
Read-only index to Japanese election data, official sources, relations and scoped search history.
Abgeordnetenwatch MCP — German federal & state parliament data.
Free read-only Israeli election, polling and dated CBS population data in four languages.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides access to Canadian federal election data, enabling queries about ridings, parties, vote shares, and close races for the 2021 and 2025 elections.2MIT
- AlicenseNot gradedqualityDmaintenanceProvides programmatic access to official German Bundestag parliamentary data, enabling LLMs to answer questions about legislation, voting records, and members.1MIT
- AlicenseNot gradedqualityDmaintenanceProvides live, source-linked transparency data on German MPs, including roll-call voting, side jobs, committee memberships, and election programs, via the Abgeordnetenwatch API. No API key required.AGPL 3.0
- FlicenseNot gradedqualityCmaintenanceEnables querying German Bundestag politician records and calculating parliamentary group distributions for a legislative period via the DIP API.-