Dutch Vehicle Context — MCP server & API voor Nederlandse kentekens

MCP serverDev tools

Your AI can look up any Dutch vehicle by its licence plate once this is added. It pulls together a report with the MOT status, reported defects, odometer verdict, and open recalls, so you can check a car's condition with a single question.

Use Dutch Vehicle Context — MCP server & API voor Nederlandse kentekens in Claude, ChatGPT or Ahel Desktop

Free. Sign in, add Dutch Vehicle Context — MCP server & API voor Nederlandse kentekens and connect your AI. About a minute.

Also: Claude Code · Cursor · Codex

Then ask your AI: use Dutch Vehicle Context to get verified vehicle context

Details

Available today. Use it from your connected AI after setup.

After adding it, ask your AI for a report on a Dutch licence plate to see the full vehicle details. The source code is available at github.com/rleefers/dutch-vehicle-context if you want to see how it works.

Dutch Vehicle Context — MCP server & API voor Nederlandse kentekensStart free

What your AI can do with it

  • Look up a Dutch vehicle by its licence plate
  • Report the current MOT status
  • List reported defects
  • Give the odometer verdict
  • Show any open recalls

Install Dutch Vehicle Context — MCP server & API voor Nederlandse kentekens

The server’s own address, for the clients that take one directly. Or connect Ahel once and every client you use reads it from one address, with the account kept on Ahel rather than in each client’s config.

  • Claude Code

    claude mcp add --transport http --scope user dutch-vehicle-context-mcp-server 'https://vehicle-context.tradebrite.nl/mcp'

    Run it once in your project, then open /mcp to approve any sign-in the server asks for.

  • Claude Desktop

    https://vehicle-context.tradebrite.nl/mcp

    Add a custom connector in Settings, paste this address, and approve the sign-in.

  • Cursor

    cursor://anysphere.cursor-deeplink/mcp/install?name=dutch-vehicle-context-mcp-server&config=eyJ1cmwiOiJodHRwczovL3ZlaGljbGUtY29udGV4dC50cmFkZWJyaXRlLm5sL21jcCJ9

    Open the link and Cursor adds the server at that address.

  • ChatGPT

    https://vehicle-context.tradebrite.nl/mcp

    In Settings, enable Developer mode, create an MCP app, and paste this address. Your plan and workspace must allow custom apps.

  • Codex

    codex mcp add dutch-vehicle-context-mcp-server --url 'https://vehicle-context.tradebrite.nl/mcp'

    Run it once, then sign in with codex mcp login dutch-vehicle-context-mcp-server if the server asks for an account.

From the project's README

As published by rleefers/dutch-vehicle-context in README.md.

Eén kenteken erin, één gekoppeld voertuigrapport eruit. APK-historie, afkeurpunten met leesbare omschrijving, het officiële oordeel over de kilometerstand, en de volledige terugroepketen — inclusief wat er stuk kan, hoe gevaarlijk dat is en wat het herstel is.

Draait als remote MCP-server en als gewone HTTPS-API. Gratis, geen API-sleutel, geen registratie.

https://vehicle-context.tradebrite.nl

📖 Documentatie: https://tradebrite.nl/vehicle-context/


Aansluiten in 10 seconden

Claude (web of desktop, elk abonnement): Customize → Connectors → + → Add custom connector, plak https://vehicle-context.tradebrite.nl/mcp.

ChatGPT: custom connectors vereisen Developer Mode (Pro/Team/Enterprise/Edu); op Plus kan het niet — gebruik daar de HTTPS-API.

Claude Code:

claude mcp add --transport http vehicle-context https://vehicle-context.tradebrite.nl/mcp

Of in je MCP-configuratie (Claude Desktop, Cursor, Windsurf, …):

{
  "mcpServers": {
    "vehicle-context": {
      "type": "http",
      "url": "https://vehicle-context.tradebrite.nl/mcp"
    }
  }
}

Daarna kun je vragen: "Wat weet je van kenteken 01-TH-FD, is dat een verstandige koop?"

Liever gewoon HTTP:

curl "https://vehicle-context.tradebrite.nl/v1/vehicle/context?plate=01-TH-FD"

Waarom dit bestaat

Alle onderliggende gegevens zijn openbaar en gratis. Het probleem is de versnippering: het antwoord op een normale vraag staat verspreid over elf datasets en twee codetabellen, en de interessantste conclusies staan in géén enkele daarvan.

Twee voorbeelden uit de praktijk.

De terugroepketen. Het basisregister meldt over een openstaande actie niet meer dan Ja. Wil je weten wélke actie, dan moet je van kenteken naar referentiecode (t49b-isb7), naar de actiebeschrijving (j9yg-7rg9), naar de gevarenlijst (9ihi-jgpf). Bij het testvoertuig leverde dat twee acties op: een afgehandelde uit 2018 en een openstaande uit 2024 over een airbag-gasgenerator die bij een ongeval kan exploderen. Wie de eerste rij pakt, rapporteert de verkeerde.

Terugkerende gebreken. Eén afkeuring zegt weinig — dat wordt gerepareerd. Dezelfde afkeuring in drie opeenvolgende jaren zegt dat er iets structureel niet in orde is. Die conclusie staat nergens; hij ontstaat pas door registraties per keuringsronde te groeperen. En let op de valkuil die ons bijna te pakken had: een herkeuring ná reparatie is een eigen datum met dezelfde gebreken. Op datum tellen levert vals alarm. Zie src/context.ts.

Wat je terugkrijgt

Eén JSON-antwoord (~10 kB) met identity, technical, fuel, inspection, defects, odometer, recalls, status_flags, value, signals en provenance.

De laag die dit bruikbaar maakt voor een agent is signals — observaties die nooit een gebrek vaststellen, gesorteerd op ernst, elk met een aanbeveling en de onderbouwing:

SignaalBetekenis
open_recallOpenstaande terugroepactie, met defect, gevaar en herstel
recurring_defectZelfde afkeurpunt in meerdere keuringsrondes
odometer_illogicalRegister beoordeelt de kilometerstand als onlogisch
odometer_no_judgementEr is géén oordeel — dat is iets anders dan een goedkeuring
imported_vehicleHistorie van vóór de import ontbreekt in het NL-register
emission_zone_restrictedDiesel onder EURO 5
apk_expired, not_insured, exported, taxi_history, source_unavailable…

Wat het níét doet

Diefstalstatus zit er niet in, en dat is geen omissie. Of een voertuig als gestolen of vermist geregistreerd staat wordt principieel niet als open data verstrekt. Elk antwoord meldt dat expliciet, óók als de rest schoon is — anders leest een volledig ogend rapport zonder diefstalvermelding als "niet gestolen", en dat is de gevaarlijkste conclusie die iemand uit deze gegevens kan trekken.

Verder: geen taxatie, geen technische keuring, geen aankoopadvies. Geen schadeverleden, geen aantal eigenaren, geen actuele kilometerstand — die staan niet in de open registers.

Ontwerpprincipes

  1. Nooit een ontbrekende waarde invullen omdat hij waarschijnlijk lijkt. Elke bron draagt een status: ok / not_found / empty / not_published / unavailable / error.
  2. FEIT ≠ SIGNAAL ≠ ONBEKEND.
  3. Wat niet openbaar is, wordt expliciet als onbekend gemeld.
  4. Eén MCP-tool, niet tientallen. Onze toollijst is 2.347 tekens. Een brede Nederlandse open-data-MCP die we ernaast legden: 55.452 tekens voor 64 tools — ongeveer 15.000 tokens die een agent moet inlezen vóór hij iets kan vragen.
  5. Een falende bron faalt zichtbaar. Stilte mag niet lijken op "niets te melden".
  6. Elke afgeleide conclusie draagt zijn onderbouwing in based_on.

Zelf draaien

npm install
npx wrangler deploy      # vul eerst je eigen account_id in wrangler.toml
node regression.mjs      # acht gevallen tegen de live dienst

Geen sleutels nodig — alle bronnen zijn publiek. Geen voorberekende data in de bundle, alles wordt live bevraagd (240–480 ms per bron, parallel).

Bronnen en licentie

Elf datasets uit het Nederlandse kentekenregister en het terugroepregister, allemaal beschikbaar onder Creative Commons Zero. Let op: de bronhouder stáát bronvermelding bij hergebruik uitdrukkelijk niet toe en verbiedt gebruik van naam en logo, dus die staan hier bewust niet in — alleen de neutrale registeraanduiding plus de dataset-id.

De bronhouder geeft geen garantie op beschikbaarheid en mag datasets zonder opgaaf intrekken. Performance is fair use; vandaar de rate limit van 10 verzoeken per 10 s en 60 per minuut per IP op de gehoste dienst.

Code: MIT, zie LICENSE.

Privacy

Een kenteken kan een persoonsgegeven zijn. De gehoste dienst logt geen kentekens en geen IP-adressen — een logbestand met kentekens plus tijdstippen zou precies de koppeling maken die in de brondata ontbreekt. Wel: merk, bouwjaar, voertuigsoort en de afgegeven signalen.

Verwant

Dutch Property Context — dezelfde aanpak voor Nederlandse woningen: adres erin, bouwjaar, energielabel, buurtcijfers, monumentstatus en scholen eruit.


Gebouwd door Tradebrite BV · info@tradebrite.nl

Tools it offers (1)

What this server listed when Ahel dialed its public endpoint in Sep 2026, with no key and no account of yours. The names are the server’s own.

  • get_verified_vehicle_context

Signals

Last commit
Aug 2026
Advanced
Delivery
dutch-vehicle-context MCP server → your Ahel connector (mcp.ahel.ai) → your AI.
Item type
mcp-server
Key
nl-tradebrite-dutch-vehicle-context
Source
github.com/rleefers/dutch-vehicle-context
Hosted endpoint
https://vehicle-context.tradebrite.nl/mcp