@ribba/cbr-mcp
v0.1.0
Published
MCP-server met de slagingspercentages en examencijfers van het CBR, per rijschool, examencentrum, stad en provincie.
Maintainers
Readme
cbr-mcp
Een MCP-server met de slagingspercentages en examencijfers van het CBR: per rijschool, per examencentrum, per stad en per provincie. Gratis, zonder account en zonder sleutel.
Het CBR publiceert zijn cijfers per rijschool, als losse momentopname. Wie het andersom wil zien, per examencentrum of per stad, of wie wil weten hoe een cijfer zich over de tijd ontwikkelt, moet dat zelf opbouwen. Dat is precies wat deze server teruggeeft.
Gemaakt en onderhouden door Ribba, de vergelijker voor rijscholen en gratis theorie in Nederland.
Installeren
Er is geen account en geen sleutel nodig. Elke client hieronder start de server zelf met npx, dus je hoeft niets vooraf te installeren behalve Node 20 of nieuwer.
Claude Code
claude mcp add --scope user cbr -- npx -y @ribba/cbr-mcp--scope user schrijft hem naar ~/.claude.json, waarmee hij in al je projecten werkt en ook beschikbaar is in het Code-tabblad van de desktop-app. Laat je --scope weg, dan geldt hij alleen in de map waar je op dat moment staat. Wil je hem juist met je team delen, gebruik dan --scope project: die schrijft naar .mcp.json in de repo, en dat bestand hoort in versiebeheer.
Codex
codex mcp add cbr -- npx -y @ribba/cbr-mcpOf met de hand in ~/.codex/config.toml:
[mcp_servers.cbr]
command = "npx"
args = ["-y", "@ribba/cbr-mcp"]De Codex-CLI, de IDE-extensie en de ChatGPT-desktopapp lezen alle drie datzelfde bestand, dus één keer instellen is genoeg. Zet je het in .codex/config.toml binnen een project, dan geldt het alleen daar.
Claude Desktop
De chat-app deelt zijn instellingen niet met Claude Code en heeft een eigen bestand:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"cbr": {
"command": "npx",
"args": ["-y", "@ribba/cbr-mcp"]
}
}
}Herstart de app daarna. Heb je hem daar al staan en wil je hem ook in Claude Code, dan neemt claude mcp add-from-claude-desktop hem over.
Cursor, Windsurf en andere clients
Dezelfde JSON als hierboven, in het configuratiebestand van je client.
Werkt het?
Vraag je client:
Wat is het landelijk slagingspercentage voor het autoexamen?
Komt er een antwoord met cijfers, dan staat de server. Zo niet:
De server staat er niet bij. De meeste clients lezen hun instellingen alleen bij het opstarten. Sluit hem helemaal af en start opnieuw.
npx: command not foundof een foutmelding over de Node-versie. Je hebt Node 20 of nieuwer nodig. Controleer metnode --version; installeren kan via nodejs.org.De eerste keer duurt even.
npxhaalt het pakket dan nog op. Daarna start hij meteen.Het duurt lang, of je krijgt een foutmelding over een verbinding. Deze server haalt zijn gegevens op bij Ribba, dus hij heeft internet nodig. Zit je achter een bedrijfsproxy of firewall, dan moet die
registry.npmjs.org,ribba.nlen de bijbehorende diensten doorlaten.Nog steeds niets? Start de server met de hand en kijk wat hij zegt:
npx -y @ribba/cbr-mcp. Hij wacht dan op invoer, wat betekent dat hij werkt; foutmeldingen komen erbij te staan.
Kom je er niet uit, open een issue of mail [email protected].
Wat je kunt vragen
- Wat is het landelijk slagingspercentage voor het autoexamen?
- Welk examencentrum heeft het hoogste slagingspercentage, en welk het laagste?
- Waar zit examencentrum Den Bosch en hoe parkeer ik daar?
- Wat zijn de tien beste rijscholen in Rotterdam, gemeten aan eerste examens?
- Hoe doet rijschool 883 het ten opzichte van het examencentrum waar hij rijdt?
- In welke provincie slaag je het vaakst in één keer?
Gereedschappen
| Naam | Wat het teruggeeft |
| --- | --- |
| rijbewijscategorieen | De categorieën waarvoor het CBR cijfers publiceert, met per categorie wat het examen meet. |
| landelijke_cijfers | Het landelijk gemiddelde, het aantal rijscholen met cijfers en het totaal aantal examens. |
| examencentra | Alle 54 CBR-examencentra met hun cijfers, adres en examenaantal. |
| examencentrum | Eén centrum in detail: adres, parkeren, eerste examens en herexamens, en de ranglijst van rijscholen. |
| ranglijst | De best scorende rijscholen, landelijk of binnen één stad of provincie. |
| cijfers_per_gebied | Het gemiddelde per provincie, of per stad binnen één provincie. |
| school_cijfers | De cijfers van één rijschool, met de uitsplitsing per examencentrum. |
| cijfers_over_tijd | De tijdreeks van wekelijkse metingen voor één rijschool. |
Alles gaat standaard over categorie B, de personenauto. Voor motor, bromfiets, aanhanger, vrachtwagen, bus of tractor geef je categorie mee: AVB, AVD, AM, BE, C, CE, D of T.
De cijfers goed lezen
Een slagingspercentage is een breuk, en een breuk over weinig examens zegt weinig. Elke uitvoer bevat daarom het aantal examens waarop een percentage rust. De ranglijsten hanteren een drempel: minstens honderd eerste examens voor een landelijke notering, minstens vijfentwintig binnen een stad of examencentrum.
Verder is er niet één slagingspercentage maar drie, en ze meten iets anders:
- Eerste examen. Het aandeel kandidaten dat in één keer slaagt. Dit is het cijfer waar het meestal om gaat.
- Herexamen. Het aandeel dat bij een tweede of latere poging slaagt.
- Gemiddelde van het examencentrum. Wat álle rijscholen op dat centrum halen. Dit is een eerlijker ijkpunt dan het landelijk gemiddelde: het ene centrum is strenger dan het andere, en een school die op een streng centrum rijdt wordt anders onterecht afgestraft.
Eén ding om op te letten bij school_cijfers: het veld slagingspercentage_eerste_examen komt zo uit de CBR-publicatie en neemt de hoogste locatiescore. Voor een rijschool die op meerdere centra examineert valt dat cijfer te hoog uit. Het veld per_examencentrum in dezelfde uitvoer bevat de losse cijfers, en cijfers_over_tijd geeft de naar examenaantal gewogen variant.
Waar de gegevens vandaan komen
De cijfers komen uit de openbare CBR-publicatie per rijschool en worden wekelijks opgehaald. De examencentra worden hier opgeteld uit die publicatie: het CBR levert de uitsplitsing per centrum alleen als bijvangst bij een rijschool.
Twee dingen zijn afgeleid en geen CBR-gegeven. De coördinaten van een examencentrum zijn het zwaartepunt van de rijscholen die er examen doen, want het CBR publiceert geen coördinaten; het adres in dezelfde uitvoer is wél het echte pand. En de tijdreeks in cijfers_over_tijd begint bij de eerste meting van Ribba, niet bij het begin van de rijschool: het CBR publiceert geen historie.
Testen
npm install
npm run build
npm testDe tests praten met de echte database, dus je hebt een verbinding nodig. Ze controleren niet alleen dat elk gereedschap antwoordt, maar ook dat de cijfers kloppen: dat totalen optellen, dat ranglijsten aflopend staan, dat drempels en filters echt worden toegepast en dat de links naar ribba.nl de vorm hebben die de site bouwt.
Zelf draaien
npm install
npm run build
node dist/index.jsDe server praat JSON-RPC over stdin en stdout. Handmatig starten is vooral nuttig om de foutuitvoer te zien; normaal doet je MCP-client dit.
Deze cijfers op het web
Dezelfde gegevens staan als gewone pagina's op ribba.nl, met grafieken, kaarten en uitleg erbij:
- Slagingspercentages per rijschool, stad en provincie
- Alle CBR-examencentra met adres, parkeerinformatie en ranglijst
- Rijscholen vergelijken op cijfers, prijs en beoordeling
- De gids: hoe het examen werkt en wat de cijfers betekenen
Elke rijschool, elk examencentrum en elk gebied in de uitvoer draagt een verwijzing naar de bijbehorende pagina, zodat je een cijfer altijd in zijn context kunt teruglezen.
Licentie
De code staat onder de MIT-licentie. De examencijfers zijn openbare CBR-gegevens; de bewerking en samenstelling door Ribba staan onder CC BY 4.0. Verwijs bij hergebruik naar https://ribba.nl.
Verwant
- rijschool-mcp voor de rijscholen zelf: adressen, prijzen, beoordelingen en dekkingsgebied.
- theorie-mcp voor de theorie: hoofdstukken, verkeersborden, begrippen en wetsartikelen.
Vragen of iets kapot? [email protected] of open een issue.
