Skip to main content
Glama

verzamel_context

Read-onlyIdempotent

Bundelt server-side meerdere achtergrondbronnen voor een onderwerp in één antwoord, zodat je niet meerdere losse tools hoeft te ketenen. Alleen de via parameters gevraagde bronnen worden opgehaald (opt-in), zodat de call snel blijft. Beschikbare bronnen:

  • CBS-achtergrond (publieke StatLine open data, geen credentials): geef cbs_beleidsgebied (bv. 'wonen', 'inkomen', 'criminaliteit') voor EXACTE, geciteerde cijfers uit de gecureerde nationale-contextlaag (cache-first, WS85/ADR-0037; nooit vector-embedded) voor cbs_gemeente (default GM0599). Of geef cbs_zoekterm / cbs_tabel_id (+ optioneel cbs_perioden + cbs_extra_filters + cbs_top) voor ad-hoc live StatLine-zoek. Voor aggregerende Iv3-tabellen (84413NED rekeningen, 83641NED begrotingen — grootteklasse-niveau, NIET per gemeente) gebruik cbs_extra_filters (bv. {"RegioS": "LD03"}) en verhoog cbs_top (default 100). LET OP: CBS StatLine biedt jeugd-lasten UITSLUITEND op grootteklasse-niveau, NIET per gemeente; gebruik iv3_kerncijfers_gemeenten voor per-gemeente totale lasten (niet taakveld-specifiek). Netwerk-call.

  • CBS afgeleide cijfers (metrics-laag, WS85b): geef cbs_metric (bv. 'woningvoorraad_per_1000_inw') voor een BEREKEND cijfer (per-1.000 / Δ-t.o.v.-vorig-jaar / verhouding) mét bronherkomst; optioneel cbs_compare_regions (tussen regio's) OF cbs_compare_periodes (over de tijd) — precies één van beide — met vergelijkbaarheidswaarborg, OF cbs_rollup_region (bv. 'NL01') om op te rollen van leden naar ouder-niveau (anti-Simpson, dekkingsvlag).

  • CBS cube-engine (WS90/ADR-0054, vrije slice-and-dice): voor een vraag die NIET op een vaste cbs_metric past, geef eerst cube_describe (tabel-id/onderwerp) → krijg de maten met hun aggregation_type + toegestane ops + dimensieleden; geef daarna cube_query (een {table_id|topic, measures, filters, op, region, + max één vergelijkings-as}-dict). De engine compileert deterministisch en WEIGERT illegale ops ('je kunt geen gemiddelde middelen') of ONTHOUDT ZICH bij een onbekend lid / niet-vergelijkbare as i.p.v. een fout cijfer te geven.

  • CBS Iv3 per-gemeente financiële data (gemeentelijke aanleveringen bij CBS, ADR-0042): geef iv3_kerncijfers_gemeenten voor ELKE vraag over financiën per gemeente — dit queries fin_iv3_fact (NeoDemos eigen DB, beschikbare gemeenten en verslagjaren vanaf 2017, gemeentelijke aanleveringen gepubliceerd door CBS). NOOIT CBS StatLine hiervoor gebruiken (84413NED/83641NED = grootteklasse, niet per gemeente). Retourneert: totale lasten, overhead% (taakveld 0.4 ÷ totale lasten excl. 0.10 en 0.11, Iv3-afgeleid), overhead & uitvoering €/inwoner — per gemeente, gesorteerd op laagste overhead%. Optioneel iv3_jaar + iv3_verslagsoort ('jaarrekening' / 'begroting'). Kant-en-klare tabel + JSON-blok. Gebruik dit i.p.v. vraag_begrotingsregel voor vergelijkingen TUSSEN gemeenten. Voeg iv3_taakvelden toe voor een PER-TAAKVELD uitsplitsing (bv. ['6.72','6.71'] voor jeugd + WMO; laat leeg voor alle taakvelden). BBV-codes (selectie): 0.4=Overhead, 1.2=OOV, 2.1=Verkeer, 4.3=Onderwijs, 6.1=Samenkracht, 6.3=Inkomen, 6.71=WMO 18+, 6.72=Jeugdhulp 18-, 7.3=Afval, 7.4=Milieu, 8.3=Wonen.

  • RIVM gezondheidsdata (WS88, separate path): geef rivm_gezondheid (bv. 'levensverwachting', 'gezonde levensverwachting') voor EXACTE, geciteerde RIVM-cijfers per gemeente uit de gecureerde RIVM-contextlaag (cache-first, rivm_context_*; nooit vector-embedded). Bron: RIVM — Gezondheidsmonitor (GGD'en, CBS, RIVM), CC-BY 4.0. Tabel 50108NED (gezonde levensverwachting per gemeente, RegioS) live. Optioneel cbs_gemeente voor het regio-filter (default GM0599 Rotterdam). GEBRUIK DIT voor elke vraag over levensverwachting / gemeente-gezondheid — NIET cbs_beleidsgebied (CBS StatLine heeft geen per-gemeente gezondheidsdata).

  • Raadsinstrument-advies: geef instrument_doel ('informatie'/'controle'/'agenderen'/'besluit_wijzigen'/'nieuw_beleid'/'onderzoek') om te adviseren WELK instrument past, mét doorlooptijd-afweging en RvO-template.

Gebruik wanneer: je een onderwerp wilt staven met maatschappelijke cijfers en/of wilt weten welk raadsinstrument past — in één keer. Voor zware corpus-retrieval (notulen, moties): gebruik zoek_raadshistorie / zoek_moties apart (die zijn niet in deze orchestrator gebundeld om binnen de tijdslimiet te blijven).

KRITIEKE GUARDRAILS — DATA-INTEGRITEIT:

  1. Nooit een CBS-tabel-ID noemen dat je niet hebt geverifieerd. Als cbs_beleidsgebied niets oplevert (geen curated match), zeg dan eerlijk dat de data niet beschikbaar is in NeoDemos — NOOIT een tabel-ID suggereren dat je niet via deze tool hebt opgehaald. Een hallucinated tabel-ID is erger dan 'niet beschikbaar': de gebruiker gaat op zoek naar data die niet bestaat op de plek waar je hem stuurt.

  2. CBS StatLine heeft GEEN levensverwachting per individuele gemeente. Gebruik de rivm_gezondheid-parameter (bv. 'levensverwachting') — die haalt tabel 50108NED op uit de gecureerde RIVM-contextlaag (WS88). Verwijs NIET naar 85388NED of een ander onbekend CBS-tabel-ID voor gezondheidsdata.

  3. CBS StatLine heeft GEEN Iv3-lasten per individuele gemeente per taakveld. Dat is grootteklasse-niveau (84413NED/83641NED). Verwijs naar iv3_kerncijfers_gemeenten voor totale per-gemeente lasten, of leg de bronbeperking uit.

Retourneert: markdown met een sectie per gevraagde bron.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cbs_topNo
iv3_jaarNo
onderwerpYes
cbs_metricNo
cube_queryNo
cbs_gemeenteNoGM0599
cbs_periodenNo
cbs_tabel_idNo
cbs_zoektermNo
cube_describeNo
iv3_taakveldenNo
instrument_doelNo
rivm_gezondheidNo
iv3_verslagsoortNojaarrekening
cbs_beleidsgebiedNo
cbs_extra_filtersNo
cbs_rollup_regionNo
cbs_compare_regionsNo
instrument_urgentieNonormaal
cbs_compare_periodesNo
instrument_op_agendaNo
iv3_kerncijfers_gemeentenNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (readOnly, idempotent, non-destructive, openWorld), and the description adds substantial context beyond them: sources are opt-in to keep calls fast, CBS/RIVM layers are cache-first and never vector-embedded, the CBS path is a network call, and the cube engine deterministically refuses illegal aggregations or abstains on unknown members rather than emitting wrong figures. The guardrails section further warns against hallucinating table IDs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is long but well structured — core purpose front-loaded, then one bullet per source, then a guardrails list — which suits a 22-parameter orchestrator. It loses a point for redundancy: guardrail items 2 and 3 restate caveats already given verbatim in the CBS and Iv3 bullets.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a highly complex, 22-parameter aggregator with no output schema, the definition supplies source-by-source routing, parameter semantics, integrity guardrails, and an explicit return description ('markdown met een sectie per gevraagde bron'). An agent has everything it needs to select sources and call the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description carries the full burden, and it documents the large majority of the 22 parameters with concrete examples and semantics (cbs_beleidsgebied values, cbs_metric, cube_describe→cube_query flow, iv3_taakvelden BBV codes, cbs_gemeente default GM0599, cbs_top default 100). However, instrument_urgentie and instrument_op_agenda receive no explanation at all, and the internal shape of cube_query is only loosely sketched.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening states a specific verb and resource — bundling multiple background sources for a topic into one answer so the agent needn't chain tools — and immediately scopes the behavior (opt-in, only requested sources). It explicitly distinguishes itself from siblings by naming zoek_raadshistorie / zoek_moties as the tools for heavy corpus retrieval that are deliberately not bundled.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'Gebruik wanneer' line states the triggering condition (substantiate a topic with societal figures and/or determine which raadsinstrument fits), and it names the alternative tools for the excluded use case. Each source bullet further says exactly which parameter to supply for which question type (e.g. use rivm_gezondheid, not cbs_beleidsgebied, for health data; use iv3_kerncijfers_gemeenten instead of vraag_begrotingsregel for cross-municipality comparisons).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources