Skip to main content
Glama
rleefers

Dutch Vehicle Context

by rleefers

Dutch Vehicle Context — オランダのナンバープレート用 MCPサーバー & API

1枚のナンバープレートを入力すると、それに紐づく車両レポートが1件返ってくる。APK(オランダの定期車両検査)の履歴、読みやすい説明付きの不合格項目、走行距離に対する公式の判定、そして完全なリコールチェーン — 何が壊れ得て、それの危険度はどの程度で、どう対処すればよいのかまで。

It works as a remote MCP server and also as an ordinary HTTPS API. Free, no API key, no registration required.

https://vehicle-context.tradebrite.nl

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


10秒で接続

Add dutch-vehicle-context MCP server to Cursor

Claude(Web/デスクトップ? Customize → Connectors → + → Add custom connectorを選択し、https://vehicle-context.tradebrite.nl/mcp following。

ChatGPT: カスタムコネクタには Developer Mode(Pro/Team/Enterprise/Edu)が必要。Plusでは利用できない — その場合はHTTPS APIを使う。

Claude Code:

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

Or, in the MCP configuration (Claude Desktop, Cursor, Windsurf, ...):

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

After saving, you can raise questions: “tell me about license plate 01-TH-FD, is this a good deal?”

If you prefer pure HTTP:

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

Why

All underlying data is public and free. The problem is the fragmentation: the answer to an ordinary question is scattered across eleven datasets and two code tables, and the most important conclusions are not even in there.

Two practical examples.

The recall chain. The base register says no more than Yes for an open action. To know which action it is, you have to work through from the license plate to the reference code (t49b-isb7), then to the action description (j9yg-7rg9), then to the hazards list (9ihi-jgpf). The test vehicle came back with two actions: an action from 2018 already handled, and one open action from 2024 about an airbag gas generator that can explode in an accident. If you go with the first row, you report the wrong one.

Recurring defects. An inspection rejection alone says little — it gets repaired. But the same rejection across three consecutive years says something structurally is not right. That conclusion is not available anywhere; it only comes into being by grouping the records per inspection round. Suddenly before the pitfall that almost got isa: a re-inspection after repair is a separate date with the same rejection. Counting by date produces false alarms. See src/context.ts.

What you get back

One JSON response (approx. 10 kB) with identity, technical, fuel, inspection, defects, odometer, recalls, status_flags, value, signals and provenance.

The layer that makes this useful for an agent is the signals — observations that never state a defect, sorted by severity, each containing a recommendation and the underlying evidence:

Signal

Meaning

open_recall

Open recall action, with defect, hazard, and remedy

recurring_defect

Same inspection rejection in multiple inspection rounds

odometer_illogical

Registry considers the mile read illogical

odometer_no_judgement

There is no judgment — that is different from a clean approval

imported_vehicle

Pre-import history is missing from the NL register

emission_zone_restricted

Diesel under Euro 5

apk_expired, not_insured, exported, taxi_history, source_unavailable

What it does NOT do

Stolen status is not included — and that is not an omission. Whether a vehicle is registered as stolen or missing is, as a matter of principle, not provided as open data. Every response states that explicitly, even when the rest of the data is clean. Otherwise, a completely clear-looking report without a stolen-vehicle mention could be read as “not stolen”, and that would be the most dangerous conclusion anyone could draw from these data.

Furthermore: no valuation, no technical inspection, no purchase advice. No damage history, no number of owners, no current odometer reading — those are not in the open public register.

Design principles

  1. Missing values are never filled in merely because they seem plausible. Every source has a status: ok / not_found / empty / not_published / unavailable / error.

  2. 事实 ≠ 否定信号 ≠ unknown.

  3. What is not public is explicitly reported as unknown.

  4. One MCP tool, not dozens. Our tool list is 2347 characters. In comparison, a broad Dutch opens uses data MCP we set next to it: 55,452 characters for 64 tools — that’s about 15,000 tokens an agent has of read inline before it can even ask anything.

  5. A failing source fails visibly. Silence must not look like “nothing to report”.

  6. Every derived conclusion carries its own evidence in based_on.

Run it yourself

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

No keys needed — all sources are public. No precomputed data in the bundle; everything is queried live (240–480 ms per source, in parallel).

Sources and license

Eleven datasets from the Dutch vehicle register and the recall register, all published under Creative Commons Zero. Note: the data source explicitly does not permit source attribution in reuse and prohibits the use of its name and logo, so they are intentionally not shown here — only the neutral register label plus the dataset ID.

The source issuer gives no guarantee of availability and may withdraw datasets without notice. A fair-use policy applies, hence the rate limit of 10 requests per 10 seconds and 60 per minute per IP on the hosted service.

Code: MIT — see LICENSE.

Privacy

A license plate can be personal data. The hosted service logs no license plates and no IP addresses — a log file containing license plates plus timestamps would create the exact link that is missing in the source data. What is logged: vehicle make, model year, vehicle type, and the signals produced.

Dutch Property Context — the same approach for Dutch homes: address in, year of construction, energy label, neighborhood scores, monument status, and schools out.


Built by Tradebrite BV · info@tradebrite.nl

-
license - not tested
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • A paid remote MCP for AI SDK data query MCP, built to return verdicts, receipts, usage logs, and aud

  • A paid remote MCP for hosted MCP server, built to return verdicts, receipts, usage logs, and audit-r

  • A paid remote MCP for CLI tool MCP, built to return verdicts, receipts, usage logs, and audit-ready

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/rleefers/dutch-vehicle-context'

If you have feedback or need assistance with the MCP directory API, please join our Discord server