Module · Machine access
Politikdaten-Engine
The own build over the Federal Chancellery's public LINDAS endpoint: popular votes per canton with the Ständemehr, referendum bills, popular initiatives, the Federal Council and National Council elections — 44 cubes, every figure with its provenance.
prepared Machine access licence not declared in the crate (corpus: Apache-2.0) no public endpoint Source on GitHub
L2.7 · mcp/servers/lindas
Start now
Requirements:
- Rust (stable via rustup) and Git; every command runs from the root of the corpus checkout.
cargo run --locked --manifest-path mcp/gateway/Cargo.toml -- --root . --http 8700 --fedlex-fixtures mcp/servers/fedlex/tests/fixtures --lindas-fixtures mcp/servers/lindas/tests/fixturesExpected: gateway on 127.0.0.1:8700
Like the fedlex engine: MCP over stdio, simplest start behind the gateway. Directly: cargo run --locked --manifest-path mcp/servers/lindas/Cargo.toml -- --fixtures mcp/servers/lindas/tests/fixtures.
Download
- Source
- https://github.com/OpenHelvetia/mcp-lindas-politics-oh · mcp/servers/lindas
- Release
- not yet No tagged release yet; the first follows the publication lane.
- Container image
- not yet No container image published yet.
- Crate
- not applicable — the module is not a library crate
git clone https://github.com/OpenHelvetia/mcp-lindas-politics-oh
Dependencies
- Needs
- none
- Needed by
- MCP-Gateway prepared
- Documentation
- the page in the documentation
State and evidence
prepared — built and tested, not publicly served.
Every piece of evidence carries its source. Values marked «recounted» are counted from the source at every build; if the figure differs, the build fails.
| Measure | Value | Source |
|---|---|---|
| Tools | 8 8: list_cubes, find_cube, describe_cube, dimension_values, observations, list_versions, describe, resolve_label recounted: jq '[getpath([])[] | select(.domain == "lindas")] | length' mcp/gateway/tool-inventory.json |
mcp/gateway/tool-inventory.json |
| Tests | 64 run (22 in lib, 7 contract gate, 35 e2e); 5 more are deliberate recording runs marked #[ignore] that go live to lindas.admin.ch | mcp/servers/lindas |
| Contract and its gate | mcp/servers/lindas/TOOLSET-v0.md lists 38 numbered points P1–P38; 37 are pinned by a running test, 1 (P18, related cubes) is deferred with a reason — the gate tests/contract_table.rs admits no third state | mcp/servers/lindas |
| Rulebook | docs/reference/lindas-cube-rules.md: 58 rules C0.1 to C14.1 over 14 chapters (scope, identifiers, schema, values, labels, status, sets, relations, votes, referendums, elections, the apg register, endpoint behaviour, completeness) — each with its measured figure of 29./30.08.2026 | mcp/servers/lindas |
| Recording pass | 104 requests over 78 keys — the figure is measured before it is believed: a counting backend replays the same call sequence and a test holds the result; the same figure stands in README, ENGINE.md and the manifest and is read from the test file by the check gate | mcp/servers/lindas |
| Never deriving a figure | Contract points P19 and P20: the outcome is read from the «ergebnis» dimension, the cantonal majority from standesstimmenJa/-Nein and the cantonal counters — no tool counts cantons and none sums cantonal rows. For 07.02.1971 the test reads standesstimmenJa 15.5, standesstimmenNein 6.5 and «14 3/2», not the 17 that counting would give | mcp/servers/lindas |
What is missing
- until in operation: A public endpoint is missing: entry no. 2 is complete, validated and listed in the register since 02.09.2026, verification state «never checked» until the endpoint answers. One contract point is deferred (P18 — related cubes are not named at all, because the register carries no link), joins across cubes and any graph enumeration are deliberately not built, four of the 44 cubes are still empty placeholders, and the rulebook's figures are measurements of 29/30 August 2026 against a holding that is maintained and therefore ages.
History
- 2026-09-03 Source published as its own repository on GitHub (publication lane, wave 1).
Documentation
- Politikdaten-Engine in the documentation: what it does, run, test, call
- Run it yourself · Test · Call