The RDW MCP Server enables comprehensive querying of Dutch vehicle registration data from official RDW databases using license plates.
With this server, you can:
Retrieve complete vehicle specifications including technical details, dimensions, weights, engine specs, and body classifications
Access fuel and emissions data including environmental specifications and CO2 class
View APK (MOT) inspection history, expiry dates, and findings
Check for vehicle recalls and safety action notices
Track ownership history and registration changes
Identify known technical defects
Look up financial information such as catalog price and BPM tax data
Access vehicle status indicators like export status, taxi indicator, and insurance status
Perform enhanced searches by license plate, brand, or model
Enables searching for BMW vehicles registered in the Netherlands through the RDW (Dutch Vehicle Authority) database, providing access to vehicle information and specifications.
Serves as the runtime environment for the MCP server, enabling execution of the TypeScript code that interfaces with the RDW API.
Used as the programming language for implementing the MCP server's functionality, providing type safety for API interactions.
Allows querying for Volkswagen vehicles (including specific models like Golf) in the RDW database, retrieving registration data and vehicle specifications for vehicles in the Netherlands.
Employed for input validation of parameters passed to the MCP tools, ensuring proper data types and formats when querying the RDW API.
RDW MCP Server
A Model Context Protocol (MCP) server for querying Dutch RDW (Rijksdienst voor het Wegverkeer) vehicle registration data. This server provides tools to look up vehicle information, fuel/emissions data, and search vehicles by brand and model using the official RDW open data API.
Quick Start
Choose your preferred method:
Global Install (recommended):
npm install -g rdw-mcp-server
→rdw-mcp
NPX (no install):
npx rdw-mcp-server
Local Dev: Clone repo →
npm install
→npm run build
→node build/index.js
Test the installation:
(Press Ctrl+C to stop)
Add to Claude Desktop (see Configuration section below)
Start asking questions like:
"Look up license plate 12-ABC-3"
"Show me BMW vehicles"
Features
Complete License Plate Lookup: Get ALL available vehicle information from RDW databases by Dutch license plate (kenteken)
Comprehensive Vehicle Data: Basic specs, technical details, weights, dimensions, and registration information
Integrated Fuel & Emissions: Detailed fuel type, emissions, environmental specifications, and sound levels
APK Inspection History: Complete APK (MOT) inspection records and expiry dates
Safety & Recalls: Vehicle recall information and safety action notices
Registration History: Complete ownership and registration change history
Technical Specifications: Axle loads, body types, and detailed technical data
Defect Records: Known technical defects and inspection findings
Real-time Data: Access up-to-date information from all official RDW databases
Enhanced Coverage: Data from 8+ different RDW datasets in a single lookup
Installation
Global Installation (Recommended for CLI usage)
After global installation, you can run the server directly:
Using NPX (Run without installing)
This runs the package directly without installing it globally.
From Source (Local Development)
Usage
As a Global Command
After global installation, start the MCP server:
Stdio Mode (Default):
HTTP Mode:
The server supports both stdio and HTTP transports:
Stdio: For direct command-line and Claude Desktop integration
HTTP: For remote access, web integrations, and scalable deployments
HTTP Transport Features
When running in HTTP mode (--http
), the server provides:
MCP Endpoint:
POST /mcp
- Main MCP protocol endpointHealth Check:
GET /health
- Server status and version infoCORS Support: Cross-origin requests enabled for web integrations
Stateless Design: No session management, perfect for scaling
Error Handling: Proper HTTP status codes and JSON-RPC error responses
Example HTTP Usage:
In MCP Client Configuration
Add to your MCP client configuration (e.g., Claude Desktop):
Using global installation (recommended):
Using npx (alternative):
Local Development Mode
For local development from source:
Development Mode
For development with auto-rebuild:
Available Tool
rdw-license-plate-lookup
Look up ALL available vehicle information from RDW databases by Dutch license plate.
Parameters:
kenteken
(string): Dutch license plate to look up
Returns:
Complete vehicle information from all RDW databases including:
Basic Details: Brand, model, color, type, variant, version
Technical Specifications: Engine, power, dimensions, cylinders, displacement
Weight & Capacity: Empty weight, curb weight, towing capacity, axle loads
Registration Data: First registration, ownership history, type approval
Inspection Records: APK expiry dates, inspection history, technical defects
Fuel & Emissions: Fuel type, emissions levels, CO2 class, sound levels
Safety Information: Recall notices, safety actions, open recalls
Body Specifications: Carrosserie type, European classifications
Financial Data: Catalog price, BPM tax information
Status Indicators: Export status, taxi indicator, insurance status
Example: Look up license plate "12-ABC-3" for complete RDW database information
Requirements
Node.js: Version 18.0.0 or higher
npm: Version 8.0.0 or higher (comes with Node.js)
Internet connection: Required for accessing RDW API
Configuration for Claude Desktop
To use this MCP server with Claude Desktop, add the following to your claude_desktop_config.json
:
Using Global Installation (Recommended)
If you installed globally with npm install -g rdw-mcp-server
:
Using NPX (Alternative)
If you prefer not to install globally:
Development Mode Only
For development with local source code:
Windows
macOS/Linux
Data Sources
This server uses ALL major official RDW (Dutch vehicle authority) open data APIs:
Base API:
https://opendata.rdw.nl/resource/
Vehicle Registration: Dataset
m9d7-ebf2
- Basic vehicle information and specificationsFuel & Emissions: Dataset
8ys7-d773
- Fuel types, emissions, and environmental dataAPK Inspections: Dataset
2wi1-7t2k
- APK (MOT) inspection history and expiry datesRecalls & Safety: Dataset
j3wq-qf4v
- Vehicle recalls and safety action noticesAxle Specifications: Dataset
3huj-srit
- Technical axle load specificationsBody Types: Dataset
vezc-m2t6
- Carrosserie and body type classificationsVehicle Colors: Dataset
t8be-g8yr
- Additional color informationTechnical Defects: Dataset
hx2c-gt41
- Known defects and inspection findings
All data is retrieved in real-time from official government sources and is publicly available.
Privacy & Data Usage
No Data Storage: This server does not store any vehicle data locally
Real-time Queries: All requests are forwarded directly to RDW APIs
Public Data Only: Only publicly available registration data is accessed
No Authentication: No personal or sensitive data is required or processed
Rate Limiting
The RDW API may impose rate limits. If you encounter rate limiting:
Wait a few seconds between requests
Avoid making bulk requests in quick succession
Consider implementing delays in your application logic
Example Queries
Once connected to an MCP client like Claude Desktop, you can ask questions like:
Complete Vehicle Information:
"Look up license plate 12-ABC-3"
"What information is available for kenteken XYZ-123?"
"Tell me about the vehicle with plate 1-ABC-23"
"Show me all data for license plate ABC-12-D"
"Get complete RDW information for kenteken DEF-456"
Specific Information Requests:
"What are the emissions data for kenteken ABC-12-D?"
"Show me the APK history for license plate XYZ-456"
"Are there any recalls for vehicle 12-ABC-3?"
"What's the registration history of kenteken DEF-456?"
"Show me technical defects for license plate GHI-789"
Technical & Safety Details:
"What's the towing capacity of vehicle 12-ABC-3?"
"Show me axle specifications for kenteken XYZ-456"
"Are there any open recalls for license plate ABC-12-D?"
"What defects were found during inspections for kenteken DEF-456?"
"Show me the complete inspection history for license plate GHI-789"
Technical Details
Language: TypeScript
Runtime: Node.js
Protocol: Model Context Protocol (MCP)
Transport: Standard I/O (stdio)
Validation: Zod schemas for input validation
API: RESTful calls to RDW open data endpoints
Error Handling
The server includes comprehensive error handling for:
Invalid license plates (wrong format or non-existent)
Network connectivity issues
API rate limiting and timeouts
Missing or malformed data from RDW API
Invalid search parameters
Troubleshooting
Common Issues
Server not starting:
Ensure Node.js version is 18.0.0 or higher:
node --version
Try reinstalling:
npm uninstall -g rdw-mcp-server && npm install -g rdw-mcp-server
No data returned:
Check your internet connection
Verify the license plate format (Dutch plates: XX-XXX-X, XXX-XX-X, etc.)
Some older vehicles may not have complete data in the RDW database
Claude Desktop connection issues:
Verify your configuration matches the installation method (global vs npx)
If using global installation, ensure
rdw-mcp
command works in terminalIf using npx, ensure
npx rdw-mcp-server
works in terminalRestart Claude Desktop after configuration changes
For development setups, ensure the absolute path and build directory are correct
Getting Help
If you encounter issues:
Check the console output for error messages
Verify your license plate format matches Dutch standards
Test with known valid license plates
Ensure you have an active internet connection
License
MIT
Contributing
Contributions are welcome! This MCP server can be extended with additional RDW datasets or functionality.
Development Setup
Clone the repository:
git clone https://github.com/jodur/rdw-mcp-server.git cd rdw-mcp-serverInstall dependencies:
npm installBuild and test:
npm run build npm start
Available RDW Datasets
The RDW provides many more datasets that could be integrated:
APK (MOT) inspection results
Vehicle recalls
Taxi and bus registrations
Vehicle ownership changes
Technical defects data
Code Style
Use TypeScript with strict typing
Follow existing code patterns
Add JSDoc comments for all functions
Use Zod for input validation
Include proper error handling
Changelog
Version 2.1.0
NEW TRANSPORT: Added Streamable HTTP transport support (stateless)
SDK Compliance: Updated to modern MCP TypeScript SDK patterns
HTTP Features: Express.js server with
/mcp
endpoint and/health
checkCommand Line: Added
--http
and--port=N
arguments for HTTP modeCORS Support: Cross-origin requests enabled for web integrations
Stateless Design: New server instance per request, perfect for scaling
Modern API: Updated from deprecated
server.tool()
toserver.registerTool()
Enhanced Structure: Better code organization with separated functions
Dual Transport: Supports both stdio (default) and HTTP transports
Version 2.0.0
MAJOR ENHANCEMENT: Now queries ALL available RDW databases in a single lookup
Added APK inspection history and records
Added vehicle recall and safety action information
Added complete registration/ownership history
Added axle load specifications and technical data
Added body type and carrosserie classifications
Added technical defect records and inspection findings
Added additional color information
Enhanced parallel data fetching for improved performance
Comprehensive vehicle data from 8+ RDW datasets
Updated tool description and documentation
Version 1.1.0
BREAKING CHANGE: Simplified to single comprehensive lookup tool
Integrated all fuel and emissions data into main license plate lookup
Removed separate fuel/emissions and vehicle search tools
Enhanced fuel/emissions data display with emission codes and soot emissions
Improved data completeness in single query
Version 1.0.2
Comprehensive README improvements for npm users
Enhanced installation and usage instructions
Added troubleshooting and privacy sections
Improved example queries and development setup
Fixed package.json references to removed test files
Version 1.0.1
Enhanced vehicle data output
Improved license plate normalization
Added comprehensive error handling
Enhanced documentation
Version 1.0.0
Initial release
Basic license plate lookup
Fuel and emissions data
Vehicle search by brand/model
Disclaimer
This server uses public RDW data and is not affiliated with the official RDW organization. Always verify critical vehicle information through official channels.
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Provides tools to query Dutch vehicle registration data through the official RDW open API, allowing users to look up vehicle information by license plate, retrieve fuel/emissions data, and search vehicles by brand and model.
Related MCP Servers
- AsecurityAlicenseAqualityAllows you to search for artworks, retrieve detailed information about specific artworks, access image tiles for artworks, and explore user-created collections from the Rijksmuseum.Last updated -2257MIT License
- AsecurityFlicenseAqualityEnables AI agents to perform WHOIS lookups to retrieve domain registration details, including ownership, registration dates, and availability status without requiring browser searches.Last updated -43119
- AsecurityAlicenseAqualityA bridge between large language models and Dutch parliamentary data, providing access to Dutch parliamentary documents, debates, and member information from the Tweede Kamer.Last updated -141114MIT License
- AsecurityAlicenseAqualityProvides access to Dutch weather data (current conditions, forecasts, alerts, and historical data) via the KNMI API, with automatic location name resolution for Dutch cities.Last updated -11Apache 2.0