Automatische Wetsanalyse met JAS + MCP

Van wetgeving naar kennismodel

Een workflow die de Invorderingswet 1990 — en elke andere Nederlandse wet — automatisch annoteert, ontleedt en documenteert.

Wettenbank MCP + JAS v1.0.7 + Claude Code

Automatische Wetsanalyse — JAS + MCP

Het probleem

Wetgeving interpreteren is handwerk:

  • Een artikel van de Invorderingswet 1990 lezen, kruisverwijzingen volgen, begrippen opzoeken in andere wetten
  • De Leidraad Invordering en het Uitvoeringsbesluit erbij
  • Awb-toepasselijkheid controleren
  • Termijnen, parameters, afleidingsregels uit de tekst destilleren
  • Documenteren in een gestandaardiseerd format

Resultaat: uren werk per artikel, met risico op inconsistentie en gemiste kruisverwijzingen.

Wettenbank MCP / JAS-annotatie • 2026-04-04
Automatische Wetsanalyse — JAS + MCP

De oplossing

Een end-to-end geautomatiseerde workflow:

  1. Wettenbank MCP — haalt wetsteksten direct van wetten.overheid.nl, zonder API-sleutel
  2. JAS-annotatie — classificeert elk zinsdeel in 13 gestandaardiseerde elementen (Hohfeld-taxonomie, MinBZK v1.0.7)
  3. Kwaliteitskaders — werkafspraken in CLAUDE.md en jas-kaders.md garanderen reproduceerbare, volledige analyses

Een /jas-commando produceert een rapport van ~4000 woorden, inclusief kruisreferenties, rekenregels, en beleidsanalyse — in minuten.

Wettenbank MCP / JAS-annotatie • 2026-04-04
Automatische Wetsanalyse — JAS + MCP

Wat is de Wettenbank MCP?

Een MCP-server (TypeScript) die drie tools biedt:

Tool Doel
wettenbank_zoek Vind wetten op naam, rechtsgebied, type
wettenbank_ophalen Haal volledige wet of één specifiek artikel op; zoek termen in tekst; historische versies via peildatum
wettenbank_wijzigingen Overzicht gewijzigde regelingen sinds datum X

Geen API-sleutel nodig. Communiceert via de publieke SRU-interface van KOOP; alle data is CC-0.

Wettenbank MCP / JAS-annotatie • 2026-04-04
Automatische Wetsanalyse — JAS + MCP

Technische architectuur — MCP

Claude Code
    │
    │  JSON via stdio
    ▼
┌─────────────────────────────┐
│  wettenbank-mcp (index.ts)   │
│                              │
│  ┌───────────────────────┐   │
│  │ Tool-handler          │   │
│  │  → CQL-query bouwen   │   │
│  │  → SRU-aanroep        │   │
│  │  → XML parseren       │   │
│  │  → markdown formatteren│  │
│  └───────────────────────┘   │
└──────────┬───────────────────┘
           │ HTTPS
     ┌─────▼─────┐     ┌─────────────────┐
     │ SRU API   │     │ BWB Repository  │
     │ zoekservice│     │ XML-toestand    │
     │ .overheid. │     │ repository.     │
     │ nl         │     │ officiele-      │
     └────────────┘     │ overheids       │
                        │ publicaties.nl  │
                        └─────────────────┘
Wettenbank MCP / JAS-annotatie • 2026-04-04
Automatische Wetsanalyse — JAS + MCP

Data-pipelining in detail

wettenbank_ophalen(bwbId, artikel)
──────────────────────────────────
1. sruRequest()  →  SRU-query met BWB-id + peildatum
2. parseRecords() → Regeling-object (metadata)
3. fetch(repoUrl) → BWB-toestand XML (volledige wet)
4. wetParser.parse() → DOM-structuur (fast-xml-parser)
   ↳ XSD-gebaseerde isArray-config
     (artikel, lid, hoofdstuk... maxOccurs="unbounded")
5. zoekArtikelInDom() → vind artikel-node recursief
6. formateerArtikelNode() → tekst + kop = markdown
  • wetParser — geconfigureerd op basis van toestand_base_2016-1.xsd
  • zoekArtikelInDom — recursieve DOM-traversal; ondersteunt <artikel> en <circulaire.divisie> (Leidraad)
  • fallback — regex-extractie uit platte tekst als XML-parsing faalt
Wettenbank MCP / JAS-annotatie • 2026-04-04
Automatische Wetsanalyse — JAS + MCP

Wat is JAS?

Juridisch Analyseschema v1.0.7 — standaard van MinBZK (2024), gebaseerd op Hohfeld

13 elementen:

rechtssubject              rechtsobject               rechtsbetrekking
delegatiebevoegdheid       delegatie-invulling        rechtsfeit
voorwaarde                 afleidingsregel            operator
variabele / waarde         parameter / waarde         tijdsaanduiding
plaatsaanduiding           brondefinitie

Doel: interpretatie- en preciseringskeuzes traceerbaar maken, kennismodel voor ICT-implementatie opstellen.

Wettenbank MCP / JAS-annotatie • 2026-04-04
Automatische Wetsanalyse — JAS + MCP

JAS Workflow — Stap 0 t/m 8

┌──────────┐    ┌──────────┐     ┌─────────────────┐
│ Stap 0   │ ▶  │ Stap 1   │  ▶  │ Stap 2A + 2B    │
│ Bestaat  │    │ Parsen   │     │ (parallel)      │
│ annotatie│    │ art/wet  │     │ Wet + begrippen │
└──────────┘    └──────────┘     └────────┬────────┘
                                          ▼
┌─────────────────┐    ┌───────────────────────────────┐
│ Stap 12 Opslaan  │ ◀ │ Stap 5 t/m 11                 │
│ analyses/       │    │ JAS-annotatie per lid          │
│ *.md            │    │ Afleidingsregels, termijnen    │
└─────────────────┘    │ Kruisref, Leidraad, Analyse    │
                       │ Lacunes, Conclusie             │
                       └───────────────────────────────┘

Elke stap heeft vaste kwaliteitscontroles en conditionele vertakkingen (bijv. Awb-check alleen bij IW 1990).

Wettenbank MCP / JAS-annotatie • 2026-04-04
Automatische Wetsanalyse — JAS + MCP

Voorbeeld — Art. 9 IW 1990

Artikel 9 regelt betalingstermijnen — 12 leden, 75 geannoteerde elementen:

┌──────────┬──────────────────────┬─────────────────────┬──────────────────┐
│ Nr       │ Formulering           │ JAS-element        │ Toelichting      │
├──────────┼──────────────────────┼─────────────────────┼──────────────────┤
│  1       │ "belastingaanslag"    │ Rechtsobject       | Systematisch     │
│  2       │ "is invorderbaar"     │ Rechtsbetrekking   | Grammaticaal     │
│  3       │ "zes weken"          │ Parameter          | Grammaticaal     │
│  4       │ "na de dagtekening"   │ Tijdsaanduiding    | Grammaticaal     │
│ ...      │ 75 annotaties totaal  │ ...                │ ...              │
└──────────┴──────────────────────┴─────────────────────┴──────────────────┘

Opgeleverd: 4 beslisregels, 6 rekenregels, 9 interne + 5 externe kruisreferenties, 4 spanningsvelden, 4 lacunes.

Wettenbank MCP / JAS-annotatie • 2026-04-04
Automatische Wetsanalyse — JAS + MCP

Rapport-structuur

Elk JAS-rapport heeft 12 secties + 2 bijlagen:

Sectie Inhoud
§1 Wetstekst (letterlijk citaat)
§2 Structuurdiagram (interne lid-relaties)
§3 Brondefinities (begrippen)
§4 JAS-annotatie per lid (tabellen)
§5 Afleidingsregels & rekenstructuur
§6 Termijnen en tijdsaanduidingen
§7 Kruisreferenties (intern + extern + Awb)
§8 Beleidskader Leidraad Invordering
§9 Juridische analyse (gram/subsys/teleo)
§10 Lacunes
§11 Conclusie
Bijlage A-B Geraadpleegde artikelen en bronnen
Wettenbank MCP / JAS-annotatie • 2026-04-04
Automatische Wetsanalyse — JAS + MCP

Kernontwerp

50KB-omzeiling
Volledige wetten (Awb) zijn >50KB. De artikel-parameter haalt één XML-node op, onafhankelijk van totale wetgrootte.

Peildatum
Elke MCP-call retourneert een geldigheidsdatum. Historische versies zijn opvraagbaar → essentieel voor wijzigingsanalyse.

CLAUDE.md als configuratie
Werkafspraken (rol, BWB-quickref, valkuilen) worden geladen vóór elke sessie. De AI volgt deze regels consistent.

Geen parafrase
Wetstekst wordt altijd letterlijk geciteerd. Geen interpretatie zonder wettelijke grondslag.

Wettenbank MCP / JAS-annotatie • 2026-04-04
Automatische Wetsanalyse — JAS + MCP

Project-structuur

wetten overheid_test/
├── wettenbank-mcp/           # TypeScript MCP-server
│   ├── src/index.ts          # Eén bestand, 633 regels
│   ├── src/index.test.ts     # Vitest unit tests
│   └── package.json          # @modelcontextprotocol, fast-xml-parser
│
├── analyses/                 # Gegenereerde rapporten
│   ├── jas-annotatie-art9-*.md
│   └── jas-workflow-v1.0.7.md
│
├── CLAUDE.md                 # Werkafspraken + BWB-quickref
├── jas-kaders.md             # JAS v1.0.7 — 13 elementen
├── .claude/commands/         # /wetzoek + /jas workflows
└── presentaties/             # Deze presentatie
Wettenbank MCP / JAS-annotatie • 2026-04-04
Automatische Wetsanalyse — JAS + MCP

Wat levert het op?

Handmatig Met workflow
uren per artikel minuten
Inconsistente kwaliteit Vaste 12-sectie structuur
Kruisverwijzingen handmatig volgen Automatisch geëxtraheerd en opgezocht
Geen rekenregels gestructureerd Formules + parameters geclassificeerd
Geen Awb-check Automatische toepasselijkheidscheck
Niet reproduceerbaar Volledig traceerbaar, opgeslagen als MD
Wettenbank MCP / JAS-annotatie • 2026-04-04
Automatische Wetsanalyse — JAS + MCP

Volgende stappen

  • Meer wetten annoteren — de workflow is generiek; elke wet met BWB-id kan
  • Wijzigingsmonitoringwettenbank_wijzigingen gebruiken om impact van wetswijzigingen te volgen
  • Samenwerking met Gemini CLI — dezelfde MCP-server is inzetbaar in andere MCP-compatibele tools
  • Kennismodel genereren — de JAS-annotaties vormen de input voor een ICT-kennismodel
Wettenbank MCP / JAS-annotatie • 2026-04-04

Vragen & Demo

/jas art. 25 IW 1990

Wettenbank MCP / JAS-annotatie • 2026-04-04