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 (AUTORITATIEVE bron, ADR-0042): geef iv3_kerncijfers_gemeenten voor ELKE vraag over financiën per gemeente — dit queries fin_iv3_fact (NeoDemos eigen DB, alle 342 gemeenten, 2017–heden, geauditeerde CBS Iv3-data). NOOIT CBS StatLine hiervoor gebruiken (84413NED/83641NED = grootteklasse, niet per gemeente). Retourneert: totale lasten, overhead% (taakveld 0.4 ÷ totale lasten, BBV-beleidsindicator), 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

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false. The description adds significant behavioral context beyond these: it explains opt-in parameter fetching (only requested sources are fetched to keep the call fast), cache-first behavior, and network calls for some sources. Critically, it discloses refusal/abstention behavior: the cube engine 'WEIGERT illegale ops' or 'ONTHOUDT ZICH' rather than returning incorrect figures, and it provides integrity guardrails against hallucinated CBS table IDs. This is rich, non-redundant transparency.

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?

The description is long but well-structured with clear headers, bullet lists, and bolded source names. It is front-loaded with the core purpose. Some repetition exists (e.g., the warning about CBS StatLine lacking per-gemeente health data appears both in the RIVM section and guardrail #2), which adds emphasis but could be trimmed. Overall, it is appropriately sized for the tool's complexity, but not maximally concise.

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?

Given the tool's high complexity (22 parameters, multiple data sources, no output schema), the description is remarkably complete. It covers every source with usage details, parameter constraints, data-freshness/network behavior, and even states the return format ('markdown met een sectie per gevraagde bron'). Guardrails for data integrity ensure safe usage. No critical gaps are apparent.

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

Parameters5/5

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

With 22 parameters and 0% schema description coverage, the description carries the full burden of explaining parameters. It does so in depth: each parameter group (cbs_beleidsgebied, cbs_metric, cube_query, iv3_kerncijfers_gemeenten, rivm_gezondheid, instrument_doel) receives examples, constraints, and mutual exclusions (e.g., 'precies één van beide' for cbs_compare_regions vs cbs_compare_periodes). It clarifies defaults (cbs_gemeente default GM0599), explains how to use cbs_extra_filters and cbs_top for Iv3 tables, and describes the cube_describe/cube_query workflow. This far exceeds schema-provided meaning.

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 description opens with a clear, specific verb+resource statement: 'Bundelt server-side meerdere achtergrondbronnen voor een onderwerp in één antwoord' (bundles server-side multiple background sources for a topic into one answer). It enumerates distinct data sources (CBS, RIVM, IV3, raadsinstrument) and explicitly differentiates itself from sibling tools by noting that heavy corpus retrieval (zoek_raadshistorie / zoek_moties) is not bundled here. This distinguishes it from get_neodemos_context and other siblings.

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?

Provides explicit 'Gebruik wanneer' guidance and names alternatives: use this tool for societal figures and raadsinstrument advice in one call; for heavy corpus retrieval use zoek_raadshistorie/zoek_moties. It also gives strong exclusionary warnings: use iv3_kerncijfers_gemeenten instead of CBS StatLine for per-gemeente finances, and rivm_gezondheid instead of cbs_beleidsgebied for health data. This far exceeds typical when-to-use guidance.

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.

TDQS

A4.4/5.0
Disambiguation4/5

Each tool has a distinct primary function: advising on instruments, reviewing text, formatting citations, generating a memo, generating a council document, retrieving context, and gathering background data. However, adviseer_raadsinstrument and verzamel_context's instrument_doel option overlap in providing instrument advice, which could lead to misselection.

Naming Consistency4/5

Names follow a consistent verb_noun pattern in Dutch (adviseer_, beoordeel_, formatteer_, genereer_, verzamel_), with one deviation: get_neodemos_context uses the English verb 'get' instead of the Dutch imperative, breaking the pattern slightly.

Tool Count5/5

Seven tools is well within the ideal 3-15 range and each tool serves a clear purpose in the council-member workflow, from advising and generating documents to reviewing and gathering context. No tool feels redundant or out of place.

Completeness2/5

The set covers drafting and reviewing but references essential missing tools (zoek_raadshistorie, zoek_moties, lijst_vergaderingen, mijn_fractie_context, sla_fractie_artifact_op). This creates dead ends, such as genereer_fractienotitie requiring meeting_ids from a tool that is not available, and no way to search existing documents or save generated artifacts.

Resources