← Back to search

io.github.malkreide/swiss-democracy-mcp

malkreide Scanned 25d ago

Parliament OData, Swissvotes, referendums, voting results

B
80 / 100

Versions

0.2.3latest
first seen Jun 30, 2026
PermissionsTool SafetyAuthAnnotationsCode QualityStabilitySpecVuln HistoryAuthorTransparencyCommunity

Tools 10

democracy_search_votes
annotations: none low

Durchsucht alle eidgenössischen Volksabstimmungen seit 1848 (Swissvotes-Datenbank). <use_case>Politische/journalistische Recherche: Vorlagen nach Thema, Zeitraum oder Ergebnis finden.</use_case> Filtert nach Stichwort, Zeitraum, Rechtsform, Ergebnis und Politikbereich. Gibt Titel, Datum, Rechtsform, Ja-Anteil, Beteiligung und Bundesratsempfehlung zurück. Args: params (VoteSearchInput): Suchparameter mit optionalen Feldern: - keyword (str): Freitextsuche im Titel (DE/EN) - year_from/year_to (int): Zeitraumfilter - legal_form (str): 'initiative', 'obligatorisch', 'fakultativ' - result (str): 'angenommen' oder 'abgelehnt' - policy_domain (str): Politikbereich-Stichwort - limit (int): Max. Resultate (Standard: 20) - offset (int): Pagination-Offset Returns: str: JSON mit 'total', 'count', 'offset', 'has_more', 'votes' (Liste von Vote-Objekten mit vote_number, date, title_de, legal_form, accepted, yes_percent, turnout_percent, federal_council_position)

ctx string params VoteSearchInput
democracy_get_vote_detail
annotations: none low

Gibt vollständige Details zu einer eidgenössischen Volksabstimmung zurück. <use_case>Vertiefung zu einer konkreten Vorlage (Parlamentsempfehlungen, Resultat, Beteiligung).</use_case> Inkl. offiziellem Titel, Rechtsform, Parlamentsempfehlungen (NR, SR, Bundesrat), Abstimmungsresultat (national und kantonal), Beteiligung, Finanzierungsdaten und Link zur Swissvotes-Seite. Args: params (VoteDetailInput): Enthält: - vote_number (str): Abstimmungsnummer (anr) aus democracy_search_votes Returns: str: JSON mit vollständigen Vote-Details oder Fehlermeldung

ctx string params VoteDetailInput
democracy_get_party_positions
annotations: none low

Gibt die Parteiparolen der grossen Schweizer Parteien zu einer Volksabstimmung zurück. <use_case>Analyse von Parteilinien und Kampagnen-Finanzierung zu einer Vorlage.</use_case> Dekodiert die numerischen Parolen-Codes aus Swissvotes in lesbare Labels: 1=Ja, 2=Nein, 3=Stimmfreigabe, 4=Nein zum Gegenentwurf, 5=Ja zum Gegenentwurf, 66=Keine Parole gefasst, 9=Unbekannt. Args: params (VoteDetailInput): Enthält: - vote_number (str): Abstimmungsnummer (anr) Returns: str: JSON mit Parteiparolen und Links zu Ja-/Nein-Komitees

ctx string params VoteDetailInput
democracy_get_cantonal_results
annotations: none low

Gibt die Abstimmungsresultate aller 26 Kantone für eine eidgenössische Volksabstimmung zurück. <use_case>Kantonsvergleich und Ständemehr-Analyse zu einer Vorlage.</use_case> Inkl. Stimmberechtigte, abgegebene Stimmen, gültige Stimmen, Ja- und Nein-Stimmen, Ja-Prozent und ob der Kanton angenommen hat (für Ständemehr-Zählung). Args: params (VoteDetailInput): Enthält: - vote_number (str): Abstimmungsnummer (anr) Returns: str: JSON mit kantonalen Resultaten (26 Kantone), nationalem Total und Stimmenmehr/Ständemehr-Übersicht

ctx string params VoteDetailInput
democracy_list_vote_dates
annotations: none low

Listet alle eidgenössischen Abstimmungsdaten auf, an denen Vorlagen zur Abstimmung kamen. <use_case>Orientierung/Navigation vor einer Detailabfrage.</use_case> Gibt für jedes Datum die Anzahl Vorlagen zurück. Nützlich zur Orientierung vor einer Detailabfrage. Args: params (ListDatesInput): Optionaler Zeitraumfilter (year_from, year_to) Returns: str: JSON mit Liste von Abstimmungsdaten und Anzahl Vorlagen pro Datum

ctx string params ListDatesInput
democracy_bfs_list_vote_dates
annotations: none low

Listet alle verfügbaren eidgenössischen Abstimmungsdaten im BFS-Echtzeit-Webservice auf. <use_case>Einstieg in BFS-Echtzeit-/Archivdaten; liefert die Ressourcen-URLs für democracy_bfs_get_vote_results.</use_case> Die Daten werden am Abstimmungssonntag ab 12:00 Uhr laufend aktualisiert. Das Archiv enthält eidgenössische Abstimmungen seit 1981. Returns: str: JSON mit verfügbaren Abstimmungsdaten und deren Ressource-URLs

ctx string
democracy_bfs_get_vote_results
annotations: none low

Ruft Echtzeit- oder Archiv-Abstimmungsresultate vom BFS ab. <use_case>Resultate auf Gemeinde-/Kantons-/Bundesebene, v.a. am Abstimmungssonntag.</use_case> Nutzt die direkte JSON-URL eines Abstimmungsdatums (aus democracy_bfs_list_vote_dates). Gibt Resultate pro Vorlage auf nationaler, kantonaler oder Gemeindeebene zurück. Am Abstimmungssonntag werden die Daten laufend aktualisiert. Args: params (BfsVoteResultInput): Enthält: - result_url (str): URL aus democracy_bfs_list_vote_dates - level (str): 'national', 'cantonal' oder 'municipality' Returns: str: JSON mit Abstimmungsresultaten pro Vorlage

ctx string params BfsVoteResultInput
democracy_polis_list_votations
annotations: none low

Ruft historische Volksabstimmungen aus dem SRGSSR Polis-System ab (seit 1900). <use_case>Historische Analysen mit Gemeinde-Granularität.</use_case> Polis enthält Resultate auf Gemeinde-Ebene, was für historische Analysen besonders wertvoll ist. Benötigt SRGSSR_CONSUMER_KEY und SRGSSR_CONSUMER_SECRET. Args: params (PolisListInput): Enthält: - year_from/year_to (int): Zeitraumfilter - lang (str): Sprache ('de', 'fr', 'it', 'rm', 'en') - limit/offset (int): Pagination Returns: str: JSON mit Polis-Abstimmungsliste oder Hinweis zur Registrierung

ctx string params PolisListInput
democracy_polis_get_votation_detail
annotations: none low

Gibt detaillierte Polis-Daten zu einer Volksabstimmung zurück. <use_case>Gemeindescharfe Detailanalyse einer historischen Abstimmung.</use_case> Optional mit Gemeinde-Resultaten – ideal für Fragen wie «Wie hat die Stadt Zürich bei der AHV-Reform abgestimmt?». Benötigt SRGSSR_CONSUMER_KEY und SRGSSR_CONSUMER_SECRET. Args: params (PolisVotationDetailInput): Enthält: - votation_id (str): Polis-ID aus democracy_polis_list_votations - lang (str): Ausgabesprache - include_municipalities (bool): Gemeinderesultate einschliessen Returns: str: JSON mit Polis-Abstimmungsdetails, kantonalen und optionalen Gemeindedaten

ctx string params PolisVotationDetailInput
democracy_polis_list_elections
annotations: none low

Ruft historische Wahlen (National-/Ständerat, Regierungsrat) aus Polis ab. <use_case>Wahlanalysen (Kandidierende, Parteistimmen) seit 1900.</use_case> Polis enthält Wahlresultate seit 1900, inkl. Kandidatinnen- und Parteistimmen. Benötigt SRGSSR_CONSUMER_KEY und SRGSSR_CONSUMER_SECRET. Args: params (PolisElectionInput): Enthält: - year_from/year_to (int): Zeitraumfilter - lang (str): Ausgabesprache - limit (int): Max. Resultate Returns: str: JSON mit Wahlliste oder Hinweis zur Registrierung

ctx string params PolisElectionInput

Permissions 3

network medium
Server uses network capabilities via: httpx, socket, urllib
filesystem low
Server uses filesystem capabilities via: pathlib
env_vars low
Server uses env_vars capabilities via: os.environ

Scan Findings 31

low
Tool 'democracy_search_votes' has no annotations annotation_checker · 100%
low
Tool 'democracy_get_vote_detail' has no annotations annotation_checker · 100%
low
Tool 'democracy_get_party_positions' has no annotations annotation_checker · 100%
low
Tool 'democracy_get_cantonal_results' has no annotations annotation_checker · 100%
low
Tool 'democracy_list_vote_dates' has no annotations annotation_checker · 100%
low
Tool 'democracy_bfs_list_vote_dates' has no annotations annotation_checker · 100%
low
Tool 'democracy_bfs_get_vote_results' has no annotations annotation_checker · 100%
low
Tool 'democracy_polis_list_votations' has no annotations annotation_checker · 100%
low
Tool 'democracy_polis_get_votation_detail' has no annotations annotation_checker · 100%
low
Tool 'democracy_polis_list_elections' has no annotations annotation_checker · 100%
info
Sandbox failed to start for behavioral verification behavioral_verifier · 100%
medium
Vulnerable dependency: pydantic@2.0.0 (GHSA-mr82-8j83-vxmv) dependency_analyzer · 95%
medium
Vulnerable dependency: pydantic@2.0.0 (PYSEC-2026-1812) dependency_analyzer · 95%
info
pyproject.toml metadata manifest_parser · 100%
info
Tool: democracy_search_votes manifest_parser · 90%
info
Tool: democracy_get_vote_detail manifest_parser · 90%
info
Tool: democracy_get_party_positions manifest_parser · 90%
medium
Permission: network access detected permission_analyzer · 90%
info
Tool: democracy_get_cantonal_results manifest_parser · 90%
info
Tool: democracy_list_vote_dates manifest_parser · 90%
info
Tool: democracy_bfs_list_vote_dates manifest_parser · 90%
info
Tool: democracy_bfs_get_vote_results manifest_parser · 90%
info
Tool: democracy_polis_list_votations manifest_parser · 90%
info
Tool: democracy_polis_get_votation_detail manifest_parser · 90%
info
Tool: democracy_polis_list_elections manifest_parser · 90%
info
Transport: streamable-http manifest_parser · 80%
info
Sandbox failed to start for output poisoning scan output_poisoning · 100%
low
Permission: filesystem access detected permission_analyzer · 70%
low
Permission: env_vars access detected permission_analyzer · 90%
info
No dependency files found for SBOM generation sbom_generator · 100%
medium
No build provenance detected (SLSA L0) slsa_assessor · 90%