Skip to content

OParl — One Schema for Germany's Council Information Systems

← All posts

OParl — One Schema for Germany's Council Information Systems

2026-06-01 · FlowMCP Team · #data-formats #oparl #open-government

German municipalities publish an enormous amount of their democratic work online: council meetings, agendas, motions, the people who sit on committees. The data is public — but it lives behind dozens of different council information systems (RIS), each from a different vendor, each with its own URL layout. OParl is the open standard that unifies them, and FlowMCP now speaks it with a single schema.

What is OParl?

OParl is an open standard for anonymous, read-only access to German council information systems. It defines JSON-based REST APIs — no login, no sessions — for the recurring objects of municipal democracy: bodies, meetings, agenda items, papers (motions and documents), persons, and organizations (committees and parliamentary groups). Two versions are in the field today: OParl 1.1 (current) and OParl 1.0.

The catch is that OParl standardizes the data shape, not the URL layout. Different vendors expose the same objects under different paths. A tool that wants to read “the latest meetings of council X” has to know which vendor family X runs on.

What the FlowMCP oparl schema does

FlowMCP hides that vendor split behind one schema. You name a council; the handler resolves the vendor family from the endpoint’s URL pattern and routes the request to the right paths. Three pieces work together:

ComponentRole
oparl-registryDiscovery layer. listEndpoints returns all known German OParl councils; getMetaData returns a council’s OParl version, vendor family, available object types, and license. The registry is preloaded daily (preload { ttl: 86400 }).
oparlAccess layer. Eight core tools cover the standard objects (see below).
oparl-select (skill)UI helper. It uses prefill against listEndpoints so the council picker always reflects the live registry — never a stale hardcoded list.

The eight access tools:

ToolReturns
getBodiesThe bodies (Körperschaften) of a council
getMeetingsMeetings of a body (paginated)
getMeetingA single meeting with its agenda
getPapersPapers / motions (paginated)
getPaperA single paper
getPersonsCouncil members (paginated)
getOrganizationsCommittees and groups (paginated)
getAgendaItemA single agenda item (OParl 1.1)

The vendor family — SD.NET RIM, ALLRIS, gremien.info — is detected automatically from the URL pattern. For the caller it is invisible: you ask for a council by name, and the schema does the rest.

Coverage

The registry currently lists more than 120 German council systems, and because it is fetched from dev.oparl.org/api/endpoints daily, that number grows on its own as more municipalities come online. Berlin alone appears with several boroughs listed individually. Coverage is as wide as the public registry — from large city councils down to small municipalities of a few thousand inhabitants.

What you can ask

  • “Show me the latest meetings of council X.”getMeetings with reverse pagination.
  • “Who sits on this council? Who chairs which group?”getPersons, getOrganizations.
  • “What was decided on this motion?”getPaper, following the linked consultations and meetings.
  • “What changed since yesterday?” — the modified_since parameter, for crawlers and sync jobs.

Honest limits

OParl is a deliberately simple standard, and the schema does not paper over its gaps. The API has no full-text title search and no date sorting, and created_since filters by record date, not the meeting date. “All meetings in 2024” is therefore a two-step pattern (page through, filter client-side), not a single query. We map what the standard actually supports — nothing hallucinated on top.

Why this matters

Council data is the rawest form of open government: who proposed what, who voted, when. Until now, working with it across municipalities meant writing a separate adapter per vendor. With OParl as a FlowMCP data class, an AI assistant can read any registered council through the same eight tools — and the implementation stays intentionally minimal: eight tools, a daily registry, no database. Exactly what the standard needs, nothing more.


📖 Read also:

Related Posts

hackathon

Making the Connection — How FlowMCP Became a Mobility Framework

Story from DB InfraGO's 'Anschluss erreichen' hackathon, where FlowMCP's main contributor reached 3rd place with a multi-agent mobility assistant.

release

FlowMCP v4.2 — Grading as a Versioned Standard

FlowMCP Spec v4.2 delegates schema grading to its own independently versioned standard — the Grading-Spec v2.0, published as its own docs area so anyone can grade by the same rules.

release

FlowMCP v4.0 — Skills, Selections, Pipes

How deterministic structures carry LLM composition without the AI hallucinating parameters.