Otevřená data, API a MCP
Všechna data jsou volně k použití pod licencí CC BY 4.0. Aktualizují se automaticky po zveřejnění nového zápisu (poslední: 12. 3. 2025).
Soubory
- ballots.csv
- ballots.json
- datapackage.json
- meetings.csv
- meetings.json
- members.csv
- members.json
- resolutions.csv
- resolutions.json
- votes.csv
- votes.json
datapackage.json popisuje soubory ve formátu Frictionless Data Package. Surové výstupy zpracování po jednotlivých jednáních: seznam (/opendata/extracted/<id>.parse.json). Historie dat je v gitu.
REST API
Dokumentace OpenAPI: /api/docs. Například:
curl 'https://usneseni.dev.varecha.work/api/v1/resolutions?q=parkování&body=rmo&status=neprijato' curl 'https://usneseni.dev.varecha.work/api/v1/resolutions/154-2025-z' curl 'https://usneseni.dev.varecha.work/api/v1/members/filip-varecha/votes?dissent_only=true'
MCP pro Claude a další asistenty
MCP server (streamable HTTP, bez přihlášení, jen čtení): https://usneseni.dev.varecha.work/mcp
claude mcp add --transport http usneseni-mo5 https://usneseni.dev.varecha.work/mcp
V Claude.ai: Nastavení → Konektory → Přidat vlastní konektor → URL výše. Nástroje: hledej_usneseni, usneseni_detail, jednani, clenove, hlasovani_clena, statistika.
Metodika
- Zdrojem jsou PDF „Usnesení (a zápis)“ zveřejněná městem na pardubice.eu od roku 2018 pro zastupitelstvo (ZMO) i radu (RMO). Každý den se kontroluje, zda nepřibyl nový.
- Strukturu zápisu (body, usnesení, hlasování, prezenci) čte jazykový model Claude; znění usnesení se ale přebírá doslova z PDF podle čísel řádků a počty hlasů se strojově kontrolují proti hlasovacímu řádku v zápisu. Jednání, kde kontrola něco nesedí, se označí k ruční kontrole.
- Číslo usnesení neznamená, že bylo přijato. Výsledek se určuje z hlasování: přijato je, pokud pro hlasovala nadpoloviční většina všech členů (zastupitelstvo 8 z 15, rada 3 ze 5). Pokud zápis výslovně uvádí „bylo / nebylo přijato“ a nesouhlasí to, jednání jde ke kontrole.
- Hlasy jednotlivých členů: zápisy MO V jmenovitě uvádějí jen ty, kdo hlasovali jinak než většina (případně nikoho). Hlas ostatních odvozujeme: přítomní (podle prezence a zmínek o příchodech a odchodech) minus jmenovaní = hlasovali pro zbývající možnost, pokud to přesně odpovídá součtu. Takový hlas je označen hvězdičkou /
provenance=inferred. Pokud součty nesedí nebo chybí jména u více možností, uvádíme jen součty. - Název, shrnutí, klíčová slova, témata a rozprava jsou odvozené modelem a slouží k hledání. Částky se jen opisují, nesčítají.
- Jména fyzických osob, která město v textech anonymizuje („xxxx“), nedoplňujeme.