open source · source-cited · Belgium first
Insurance products,
as open data.
La responsabilité civile immeuble
à maximum 30.935.930 EUR
Cited to the page
Every extracted fact carries its page in the insurer's own PDF.
Open, machine-readable
One open knowledge base — browse it as a wiki, clone it as data.
Any agent plugs in
10 read-only MCP tools — keyless, offline, deterministic.
How it works.From public PDF to cited answer.
the public PDF
discover.py
download.py
cdn.website.axa.be
50 p. · éd. 10.2024
sha256 44aacb29
extract.pystructure the document
the only step that calls an LLMSYSTEM_PROMPT.md v1.1
the recordclaude-code-subagent:scale
gaps declared, not hidden
verify_grounding.py · build_wiki.py
build_index.py · validate.py
the wiki page
| Coverage | Limit | Source |
|---|---|---|
| Le heurt | à maximum 8.300 EUR par sinistre | p. 11 |
| Dépannage Cosy@home | maximum 200 EUR par an | p. 10 |
01
The pipeline freezes the source.
the public PDF
discover.py
download.py
cdn.website.axa.be
50 p. · éd. 10.2024
sha256 44aacb29
extract.pystructure the document
the only step that calls an LLMSYSTEM_PROMPT.md v1.1
the recordclaude-code-subagent:scale
gaps declared, not hidden
verify_grounding.py · build_wiki.py
build_index.py · validate.py
the wiki page
- Seven committed scripts, one make all — resumable and idempotent.
- extract.py is the only step that calls an LLM; the exact prompt is a file in the repo.
- A rebuild is a zero diff: every output regenerable from committed inputs.
02
Every fact is cited to the page.
| Coverage | Limit | Source |
|---|---|---|
| Le heurt | à maximum 8.300 EUR par sinistre | p. 11 |
| Dépannage Cosy@home | maximum 200 EUR par an | p. 10 |
- Each page carries its source PDF, edition and page numbers.
- 1,824 quotes verified character-for-character against the source PDFs.
- Gaps are labeled, not hidden — a project rule, not a slogan.
03
Any agent plugs in.
- The whole record travels as a git clone — the MCP server reads it straight from disk.
- Claude, ChatGPT, Cursor or your own loop: same query, same cited answer.
- No key, no account, no hosting — the data itself is the interface.
What an agent does with itonce the record is plugged in
Three real sessions, recorded against the MCP server and replayed here — not a live agent. Every tool call and every server response below is verbatim.
question
Quels assureurs belges du registre proposent une assurance vélo, et laquelle couvre le vol ? Réponse courte, avec les pages citées.
tool calls
Assureurs proposant une assurance vélo (registre BE, branche « velo »)
Cinq assureurs du registre proposent une assurance vélo — et tous couvrent le vol (garantie de base ou tous risques) :
| Assureur | Produit | Garantie Vol | Page |
|---|---|---|---|
| ACM Belgium | ACM Insurance Assurance Vélo (CG, éd. 04/2025) | Vol + tentative de vol, monde entier ≤ 3 mois | p. 10 |
| Ethias | Assurance Bike & More (CG, éd. 03/25) | Garantie « Le Vol » (optionnelle), monde entier | p. 6 |
| Belfius Direct | Assurance Vélo (CG, éd. 08/12/2025) | Formule tous risques incluant le vol, monde entier | p. 7 et 11 |
| AXA Belgium | Confort vélo+ (CG, éd. 12.2023) | Garantie « Le vol », Belgique + monde ≤ 2 mois | p. 5 |
| KBC | Police pour votre vélo (CG) | Couverture tous risques incluant le vol, monde entier | p. 2 |
Réponse courte : les cinq couvrent le vol. Ce n'est donc pas une exclusivité — la différence tient aux conditions (type de cadenas agréé exigé, déclaration à la police dans les 24 h, franchise, sort de la batterie/accessoires souvent exclus).
À noter : chez AXA, le vol de nuit (22 h–6 h) à Bruxelles ou Anvers est exclu si le vélo n'est pas dans un local fermé (p. 6). Franchise vol renforcée (200 €) pour les codes postaux 1000–1299 chez ACM et Ethias.
Sources (PDF officiels) : ACM 20250322_FR_CG_VELO_ACM_INSURANCE.pdf · Ethias cg-bikeandmore-fr.pdf · Belfius Direct cg-velo.pdf · AXA Confort Velo + - 20231211.pdf · KBC kbc-police-pour-votre-velo-conditions-generales.pdf. Extractions à vérifier contre les documents source.
Recorded 2026-07-29 · Claude Code (headless) · claude-opus-4-8 · server openinsurance-wiki-mcp
plug your own agent in →Real sessions recorded against the MCP server on the Belgian dataset. The calls and the responses are the server's own; only the client's internal tool-discovery steps are left out.
10 read-only tools.No key, no server, no quota.
One MCP server, many clients: Claude, ChatGPT, Cursor, your own agent — a few lines of config instead of a bespoke integration.
plug it in
{
"mcpServers": {
"insurance-wiki": {
"command": "uvx",
"args": ["openinsurance-wiki-mcp"],
"env": {
"INSURANCE_WIKI_REPO": "/path/to/OpenInsurance"
}
}
}
}measured 0.01–3.9 ms warm on the Belgian dataset
v0.2.0 on PyPI · MCP registry: io.github.sluyasu/openinsurance-wiki
the tools, as defined in the code
- list_countries
List countries covered: product/insurer/regulation counts, how many branches have at least one…
- list_branches
List insurance branches for a country with their labels, mandatory flag and product counts.
- search
Search wiki pages by title/branch/insurer and page content.
- get_page
Return the full text of one knowledge page by its repo-relative path (from search results).
- get_product
Return a product's structured data (coverages, exclusions, deductibles, etc.) as JSON, plus…
- get_coverage
Compact, question-oriented view of ONE product: only the coverages and exclusions relevant to…
- verify_claim
Verbatim evidence check for ONE factual claim about a product…
- compare_products
Compare 2+ products side by side on one dimension: coverages | exclusions | deductibles.
- find_overlap
Flag CANDIDATE duplicate cover when combining 2+ products…
- get_branch_overview
Return the hand-authored overview page for a branch (by slug or label).
Browse by branch.Every line of business on the belt.
The perils people actually insure — each card opens that branch in the wiki, real clause in hand.

Auto
49 docs · 17 insurers
« Omnium – Tous risques »
NN Insurance Belgium

Habitation
38 docs · 17 insurers
« Les catastrophes naturelles »
P&V Assurances

Santé
36 docs · 7 insurers
« Garantie Hospitalisation »
AMMA Assurances

Vie privée
28 docs · 15 insurers
« Responsabilité civile vie privée »
KBC Bank & Verzekering

Épargne / Placement (Branche 21/23)
28 docs · 2 insurers
« Prestation en cas de vie au terme du contrat »
Athora Belgium

Voyage
21 docs · 6 insurers
« Retour anticipé »
Touring

RC professionnelle
15 docs · 2 insurers
« Responsabilité Civile Professionnelle »
Hiscox SA

Autres
13 docs · 6 insurers
« Dépannage (Formule Belgique) »
Touring

Protection juridique
12 docs · 3 insurers
« Prévention et information juridique »
AXA Belgium

Vélo
10 docs · 5 insurers
« Vol »
ACM Belgium

Accidents
7 docs · 5 insurers
« Garantie de base — Incapacité permanente »
AXA Belgium

Pension (Branche 21)
4 docs · 1 insurers
« Pension complémentaire (retraite et décès) »
Athora Belgium

Animaux
2 docs · 1 insurers
« Frais vétérinaires (garantie de base) »
Belfius Direct Assurances

Obsèques
2 docs · 1 insurers
« Rapatriement en cas de décès à l'étranger »
Belfius Direct Assurances

Cyber
2 docs · 1 insurers
« Violation de données personnelles (First Party) »
Hiscox SA

Navigation
1 docs · 1 insurers
« Protection du bateau - Pertes et avaries »
AXA Belgium

Chasse
1 docs · 1 insurers
« Responsabilité civile du chasseur – tireur »
AMMA Assurances
All 17 branches, on file.
Drag to scan · hover to hold
Straight from the fine print.
1,824 clauses quoted verbatim, checked character-for-character against the source PDFs — a few of them drift by below, each sealed to its page. Hover to hold one.
« La limite d'indemnisation pour les dommages matériels s'élève à 100 millions d'euros par sinistre. »
« La compagnie indemnise le bris des fenêtres avant, latérales, arrière ou incorporées dans la toiture du véhicule assuré. »
Viviump. 33« les dommages ayant atteint le délai de prescription de 3 ans fixé par la loi relative aux assurances ; »
« Sont garantis, sans franchise, les dommages au véhicule assuré résultant d'un incendie, quelle qu'en soit la cause. »
« Self Life est un contrat d’assurance vie à versements planifiés souscrit entre le preneur d’assurance et la compagnie. »
« Nous ne payons pas le capital décès quand l’assuré décède dans les conditions suivantes : »
« Une fois cette période de garantie écoulée, nous appliquons un amortissement contractuel de 1% par mois entamé. »
« Tout événement connu lors de la souscription du contrat d’assurance ou au moment de la réservation du voyage ; »
« Le délai de prescription légal de toute action judiciaire résultant d'un contrat d'assurance est de trois ans. »
« Nous couvrons, après déduction de la franchise de 2 % de la valeur assurée, les pertes et avaries subies par le »
« L'intervention de l'assureur au titre de la garantie « accident » est plafonnée à € 10.000 par cas d'assurance. »
« L’assuré bénéficie de toutes les garanties de base, sauf stipulations contraires aux conditions particulières. »
AMMA Assurancesp. 9« survenant lors d’événements de guerre, de violations de neutralité, de révolutions, de rébellions et de révoltes »
« Le délai de prescription de toute action dérivant du contrat d’assurance est de trois ans. »
« Nous garantissons la responsabilité civile extra-contractuelle des assurés dans le cadre de leur vie privée. »
« Hiscox SA distribue ses produits par l’intermédiaire d’un groupe sélectionné d’intermédiaires en assurance. »
« Il s’agit d’une assurance optionnelle qui ne s’applique que lorsque indiqué dans les conditions particulières. »
« Aucune indemnité n'est versée pour les 30 premiers jours d'incapacité temporaire à compter du jour de l'accident. »
P&V Assurancesp. 41A public good,not a product pitch.
OpenInsurance turns the public documents of an insurance market — general conditions, IPID sheets — into a cited, cross-linked knowledge base: products, insurers, branches, regulations, concepts.
The whole chain lives in one open repo: sources, prompts, pipeline, data, wiki. Every input is committed, every output is regenerable. No hidden datasets.
It exists because there was no neutral, machine-readable map of what actually exists in a national insurance market. This one is built as a public good.
What it refuses to be
Not a comparator.
It never ranks, scores, or recommends. Neutral, factual, side by side at most.
Not advice.
Information only. Personalised insurance advice is a licensed activity — this project deliberately stays out of it.
Not a chatbot.
A knowledge layer built to serve many interfaces, not one conversation box.
Not a RAG black box.
Retrieval is deterministic matching over reviewed, committed files. Same query, same documents — you can diff it in a PR.
Not the official documents.
Faithful extractions that may contain errors — always verify against the cited source PDF.
Questions, answered plainly
01Is this insurance advice?
No. OpenInsurance provides information, not personalised insurance advice — advising is a licensed activity (FSMA in Belgium). The project never recommends, ranks or scores insurers, by design.
02Can I trust what a page says?
Every fact traces to its source PDF, page numbers included, and 1,824 quoted pieces of evidence are verified character-for-character against those PDFs at build. Pages remain faithful extractions, not the insurers' official documents — the cited source is always one click away.
03How complete is the dataset?
Belgium is the reference dataset — 24 insurers and 269 documents ingested, out of ~630 enumerated in the public backlog. Switzerland is started. Gaps are labeled, not hidden: that's a project rule.
04Why an MCP server, not a chatbot, a RAG stack or a REST API?
A chatbot is a single interface; a knowledge base should serve many. RAG adds an embedding index you cannot diff or review; retrieval here is deterministic matching over committed files. And a REST API means a server running 24/7 for a dataset that changes a few times a year — MCP gives the same programmatic access at the cost of a local process.
05Can I point it at my own country?
Yes — the taxonomy is data, not code. Adding a country is a documented recipe (_meta/BOOTSTRAP-COUNTRY.md): census from the regulator's registers, per-insurer discovery, then the same pipeline end to end.
What a cited fact looks like — straight from the dataset:
« Nous limitons notre intervention aux montants assurés et en tout état de cause à maximum 2.049.863,02 EUR. »
Information, not personalised insurance advice.