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

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.9/5.0
Behavior5/5

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

With annotations already declaring readOnlyHint=true, the description goes far beyond by disclosing cache-first behavior, network-call timing, opt-in parameter semantics, deterministic cube-engine compilation, and explicit refusal/abstention behavior on illegal operations. It adds critical data-integrity guardrails (never cite an unverified CBS table-ID, state unavailability honestly) and anti-Simpson rollup coverage flags. No contradiction between the read-only annotations and the gathering behavior.

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 text is very long, but the complexity (22 parameters, 6 distinct data sources, no output schema) justifies the length. It is well-structured with bolded source headers, bullet lists, and prominent 'LET OP' / 'KRITIEKE GUARDRAILS' callouts that front-load the critical caveats. The core purpose is front-loaded in the first sentence; a slightly tighter pass on the RIVM/guardrail duplication would push this to 5.

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 an orchestrator of this scale — 22 params, 6 sources, zero schema coverage, no output schema — the description is remarkably complete. It states the return format (markdown with a section per requested source), documents source limitations (grootteklasse vs per-gemeente), provides concrete parameter schemas for complex fields (cube_query as a dict), and covers data-integrity behavior. The only omissions are a few rarely-used parameters and the required onderwerp field, which is self-evident from context.

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?

Despite 0% schema description coverage, the description documents nearly all 22 parameters with concrete examples: cbs_beleidsgebied (with sample values 'wonen', 'inkomen'), cbs_zoekterm/cbs_tabel_id/cbs_perioden/cbs_extra_filters/cbs_top, cbs_metric with sample 'woningvoorraad_per_1000_inw', cbs_compare_regions vs cbs_compare_periodes ('precies één van beide'), cbs_rollup_region, cube_describe/cube_query, iv3_kerncijfers_gemeenten/iv3_jaar/iv3_verslagsoort/iv3_taakvelden with BBV-code mapping, rivm_gezondheid, and instrument_doel. Only minor gaps: onderwerp (required) and instrument_urgentie/instrument_op_agenda lack explicit documentation.

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 sentence states a specific verb (bundelt) and resource (meerdere achtergrondbronnen) — it aggregates server-side context sources for a topic in one call so the agent need not chain tools. It clearly distinguishes from siblings by explicitly naming what it is NOT (zoek_raadshistorie / zoek_moties are excluded deliberately) and routing financial comparisons to iv3_kerncijfers_gemeenten over vraag_begrotingsregel.

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?

Contains an explicit 'Gebruik wanneer' section with the exact trigger conditions (maatschappelijke cijfers staven and/or raadsinstrument-advies in one call), plus explicit exclusions with named alternatives for heavy corpus retrieval (zoek_raadshistorie / zoek_moties). For every source it states when to prefer it over alternatives, e.g., 'GEBRUIK DIT voor elke vraag over levensverwachting — NIET cbs_beleidsgebied'.

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