github Python re-analysis due

malkreide/swiss-democracy-mcp

github

MCP server for Swiss direct democracy: Swissvotes (1848+), BFS opendata.swiss, SRGSSR Polis (1900+)

maintainer
malkreide
license
MIT
first seen
2026-06-04
last seen
2026-08-24
releases · 30d
2
short id

Drift inferred · capture-to-capture

tool count over time

06-04 19:50 now
10t
10t
capabilities 10 tools
transport stdio · streamable-http · http verified reported listed in the official MCP registry counts 10 tools · 0 res · 0 prompts permission surface via README inference

tools

  • democracy_bfs_get_vote_results

    Real-time or archived results at national, cantonal, or municipality level

  • democracy_bfs_list_vote_dates

    List all BFS voting dates (archive + current)

  • democracy_get_cantonal_results

    Results for all 26 cantons: yes%, turnout, accepted flag

  • democracy_get_party_positions

    Party recommendations (FDP, SP, SVP, Die Mitte, GPS, GLP, …) with campaign finance data

  • democracy_get_vote_detail

    Full details for a specific vote: official title, parliamentary positions, national result, signatures

  • democracy_list_vote_dates

    List all voting dates with number of proposals per date

  • democracy_polis_get_votation_detail

    Full Polis detail, optionally with all municipality results

  • democracy_polis_list_elections

    National Council, Council of States, and cantonal elections since 1900

  • democracy_polis_list_votations

    Historical votations since 1900 with municipality-level data

  • democracy_search_votes

    Search all federal popular votes since 1848 by keyword, date range, legal form, outcome, policy domain

skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit 4da7514 · analyzer v33 · 1w ago

skills & prompt files 1

danger signals1

code evidence vv0.2.5 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 15

filesystem 9

  • fs malkreide-swiss-democracy-mcp-4da7514/audits/2026-06-02T031038-Z-swiss-democracy-mcp/_gen_findings.py :8 from pathlib import Path
  • fs malkreide-swiss-democracy-mcp-4da7514/audits/2026-06-02T035936-Z-swiss-democracy-mcp/_gen_findings.py :8 from pathlib import Path
  • fs (weak) malkreide-swiss-democracy-mcp-4da7514/scripts/check_ruff_pin.py :35 import shutil
  • fs (weak) malkreide-swiss-democracy-mcp-4da7514/scripts/check_version_sync.py :35 from pathlib import Path
  • fs (weak) malkreide-swiss-democracy-mcp-4da7514/scripts/classify_live_run.py :55 from pathlib import Path
  • fs (weak) malkreide-swiss-democracy-mcp-4da7514/scripts/record_fixtures.py :34 from pathlib import Path
  • fs (weak) malkreide-swiss-democracy-mcp-4da7514/tests/fixture_data.py :16 from pathlib import Path
  • fs (weak) malkreide-swiss-democracy-mcp-4da7514/tests/test_classify_live_run.py :21 from pathlib import Path
  • fs (weak) malkreide-swiss-democracy-mcp-4da7514/tests/test_live_abdeckung.py :25 import pathlib

shell / exec 1

  • shell (weak) malkreide-swiss-democracy-mcp-4da7514/scripts/check_ruff_pin.py :36 import subprocess

network 6

  • net malkreide-swiss-democracy-mcp-4da7514/audits/2026-06-02T031038-Z-swiss-democracy-mcp/_gen_findings.py :41 "Kein Lifespan/Dependency-Injection; `httpx.AsyncClient` wird pro Call erzeugt (siehe SDK-001)"],
  • net malkreide-swiss-democracy-mcp-4da7514/audits/2026-06-02T035936-Z-swiss-democracy-mcp/_gen_findings.py :76 ["Geteilter, gepoolter `httpx.AsyncClient` via @asynccontextmanager-Lifespan; Cleanup im finally"],[], "","","",""),
  • net (weak) malkreide-swiss-democracy-mcp-4da7514/scripts/record_fixtures.py :36 import httpx
  • net malkreide-swiss-democracy-mcp-4da7514/src/swiss_democracy_mcp/server.py :32 import socket
  • net (weak) malkreide-swiss-democracy-mcp-4da7514/tests/test_response_shape.py :21 import httpx
  • net (weak) malkreide-swiss-democracy-mcp-4da7514/tests/test_server.py :11 import httpx

declared dependencies 10

  • mcp@>=2.0.0,<3
  • httpx@>=0.27.0
  • pydantic@>=2.0.0
  • pydantic-settings@>=2.0.0
  • structlog@>=24.1.0,<27
  • pytest@>=8.0.0
  • pytest-asyncio@>=0.23.0
  • respx@>=0.21.0
  • .@*
  • ruff@==0.16.1