README
🚀 RDW MCP Server
RDW MCP Server 是一个模型上下文协议(MCP)服务器,用于查询荷兰 RDW(Rijksdienst voor het Wegverkeer)的车辆注册数据。该服务器借助官方 RDW 开放数据 API,提供了查询车辆信息、燃油/排放数据,以及按品牌和型号搜索车辆的工具。
🚀 快速开始
选择你喜欢的方式:
- 全局安装(推荐):
npm install -g rdw-mcp-server→rdw-mcp - 使用 NPX(无需安装):
npx rdw-mcp-server - 本地开发:克隆仓库 →
npm install→npm run build→node build/index.js
测试安装:
rdw-mcp # 若为全局安装
# 或者
npx rdw-mcp-server # 若使用 npx
(按 Ctrl+C 停止)
添加到 Claude Desktop(见下面的配置部分)
开始提问,例如:
- "查询车牌号 12 - ABC - 3"
- "展示宝马车辆"
✨ 主要特性
- 完整的车牌号查询:通过荷兰车牌号(kenteken)从 RDW 数据库获取所有可用的车辆信息。
- 全面的车辆数据:包括基本规格、技术细节、重量、尺寸和注册信息。
- 集成燃油与排放数据:详细的燃油类型、排放、环境规格和噪音水平。
- APK 检查历史:完整的 APK(MOT)检查记录和到期日期。
- 安全与召回信息:车辆召回信息和安全行动通知。
- 注册历史:完整的所有权和注册变更历史。
- 技术规格:轴载荷、车身类型和详细的技术数据。
- 缺陷记录:已知的技术缺陷和检查结果。
- 实时数据:从所有官方 RDW 数据库访问最新信息。
- 增强的数据覆盖:一次查询可获取 8 个以上不同 RDW 数据集的数据。
📦 安装指南
全局安装(推荐用于 CLI 使用)
npm install -g rdw-mcp-server
全局安装后,你可以直接运行服务器:
rdw-mcp
使用 NPX(无需安装直接运行)
npx rdw-mcp-server
这将直接运行该包,而无需全局安装。
从源代码安装(本地开发)
git clone https://github.com/yourusername/rdw-mcp-server.git
cd rdw-mcp-server
npm install
npm run build
node build/index.js
💻 使用示例
作为全局命令使用
全局安装后,启动 MCP 服务器:
标准输入输出模式(默认):
rdw-mcp
HTTP 模式:
rdw-mcp --http # 在端口 3000 运行
rdw-mcp --http --port=8080 # 自定义端口
服务器支持标准输入输出和 HTTP 两种传输方式:
- 标准输入输出:用于直接的命令行和 Claude Desktop 集成。
- HTTP:用于远程访问、Web 集成和可扩展部署。
HTTP 传输特性
当以 HTTP 模式(--http)运行时,服务器提供以下功能:
- MCP 端点:
POST /mcp- 主要的 MCP 协议端点。 - 健康检查:
GET /health- 服务器状态和版本信息。 - CORS 支持:为 Web 集成启用跨域请求。
- 无状态设计:无会话管理,非常适合扩展。
- 错误处理:适当的 HTTP 状态码和 JSON - RPC 错误响应。
HTTP 使用示例:
# 启动 HTTP 服务器
rdw-mcp --http --port=3000
# 健康检查
curl http://localhost:3000/health
# MCP 请求(需要正确的 JSON - RPC 格式)
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'
在 MCP 客户端配置中使用
将以下内容添加到你的 MCP 客户端配置(例如 Claude Desktop)中:
使用全局安装(推荐):
{
"servers": {
"rdw": {
"command": "rdw-mcp"
}
}
}
使用 NPX(替代方案):
{
"servers": {
"rdw": {
"command": "npx",
"args": ["rdw-mcp-server"]
}
}
}
本地开发模式
从源代码进行本地开发:
git clone https://github.com/yourusername/rdw-mcp-server.git
cd rdw-mcp-server
npm install
npm run build
node build/index.js
开发模式
使用自动重建进行开发:
npm run dev
可用工具
rdw-license-plate-lookup
通过荷兰车牌号从 RDW 数据库中查询所有可用的车辆信息。
参数:
kenteken(字符串):要查询的荷兰车牌号。
返回:
- 来自所有 RDW 数据库的完整车辆信息,包括:
- 基本详情:品牌、型号、颜色、类型、变体、版本。
- 技术规格:发动机、功率、尺寸、气缸数、排量。
- 重量与容量:空载重量、整备重量、牵引能力、轴载荷。
- 注册数据:首次注册日期、所有权历史、型式认证。
- 检查记录:APK 到期日期、检查历史、技术缺陷。
- 燃油与排放:燃油类型、排放水平、CO2 等级、噪音水平。
- 安全信息:召回通知、安全行动、未解决的召回。
- 车身规格:车身类型、欧洲分类。
- 财务数据:目录价格、BPM 税信息。
- 状态指标:出口状态、出租车指标、保险状态。
示例:查询车牌号 "12 - ABC - 3" 的完整 RDW 数据库信息。
📚 详细文档
要求
- Node.js:版本 18.0.0 或更高。
- npm:版本 8.0.0 或更高(随 Node.js 附带)。
- 互联网连接:访问 RDW API 必需。
Claude Desktop 配置
要在 Claude Desktop 中使用此 MCP 服务器,请将以下内容添加到你的 claude_desktop_config.json 中:
使用全局安装(推荐)
如果你使用 npm install -g rdw-mcp-server 进行了全局安装:
{
"mcpServers": {
"rdw": {
"command": "rdw-mcp"
}
}
}
使用 NPX(替代方案)
如果你不想进行全局安装:
{
"mcpServers": {
"rdw": {
"command": "npx",
"args": ["rdw-mcp-server"]
}
}
}
仅用于开发模式
对于使用本地源代码进行开发:
Windows
{
"mcpServers": {
"rdw": {
"command": "node",
"args": ["C:\\ABSOLUTE\\PATH\\TO\\rdw-mcp\\build\\index.js"]
}
}
}
macOS/Linux
{
"mcpServers": {
"rdw": {
"command": "node",
"args": ["/ABSOLUTE/PATH/TO/rdw-mcp/build/index.js"]
}
}
}
数据来源
该服务器使用了所有主要的官方 RDW(荷兰车辆管理局)开放数据 API:
- 基础 API:
https://opendata.rdw.nl/resource/ - 车辆注册:数据集
m9d7-ebf2- 基本车辆信息和规格。 - 燃油与排放:数据集
8ys7-d773- 燃油类型、排放和环境数据。 - APK 检查:数据集
2wi1-7t2k- APK(MOT)检查历史和到期日期。 - 召回与安全:数据集
j3wq-qf4v- 车辆召回和安全行动通知。 - 轴规格:数据集
3huj-srit- 技术轴载荷规格。 - 车身类型:数据集
vezc-m2t6- 车身和车身类型分类。 - 车辆颜色:数据集
t8be-g8yr- 额外的颜色信息。 - 技术缺陷:数据集
hx2c-gt41- 已知缺陷和检查结果。 所有数据均从官方政府来源实时获取,并且是公开可用的。
隐私与数据使用
- 无数据存储:该服务器不会在本地存储任何车辆数据。
- 实时查询:所有请求都直接转发到 RDW API。
- 仅访问公开数据:仅访问公开可用的注册数据。
- 无需身份验证:不需要或处理任何个人或敏感数据。
速率限制
RDW API 可能会实施速率限制。如果你遇到速率限制:
- 请求之间等待几秒钟。
- 避免连续快速进行批量请求。
- 考虑在你的应用程序逻辑中实现延迟。
示例查询
连接到像 Claude Desktop 这样的 MCP 客户端后,你可以提出以下问题:
完整车辆信息
- "查询车牌号 12 - ABC - 3"
- "车牌号 XYZ - 123 有哪些可用信息?"
- "告诉我车牌号为 1 - ABC - 23 的车辆信息"
- "展示车牌号 ABC - 12 - D 的所有数据"
- "获取车牌号 DEF - 456 的完整 RDW 信息"
特定信息请求
- "车牌号 ABC - 12 - D 的排放数据是什么?"
- "展示车牌号 XYZ - 456 的 APK 历史记录"
- "车牌号 12 - ABC - 3 的车辆有召回信息吗?"
- "车牌号 DEF - 456 的注册历史是什么?"
- "展示车牌号 GHI - 789 的技术缺陷"
技术与安全细节
- "车牌号 12 - ABC - 3 的车辆牵引能力是多少?"
- "展示车牌号 XYZ - 456 的轴规格"
- "车牌号 ABC - 12 - D 的车辆有未解决的召回吗?"
- "车牌号 DEF - 456 在检查中发现了哪些缺陷?"
- "展示车牌号 GHI - 789 的完整检查历史"
🔧 技术细节
- 语言:TypeScript
- 运行时环境:Node.js
- 协议:模型上下文协议(MCP)
- 传输方式:标准输入输出(stdio)
- 验证:使用 Zod 模式进行输入验证
- API:对 RDW 开放数据端点的 RESTful 调用
错误处理
服务器包含全面的错误处理,用于处理以下情况:
- 无效的车牌号(格式错误或不存在)
- 网络连接问题
- API 速率限制和超时
- RDW API 返回的缺失或格式错误的数据
- 无效的搜索参数
故障排除
常见问题
服务器无法启动
- 确保 Node.js 版本为 18.0.0 或更高:
node --version - 尝试重新安装:
npm uninstall -g rdw-mcp-server && npm install -g rdw-mcp-server
无数据返回
- 检查你的互联网连接。
- 验证车牌号格式(荷兰车牌号格式:XX - XXX - X、XXX - XX - X 等)。
- 一些较旧的车辆可能在 RDW 数据库中没有完整的数据。
Claude Desktop 连接问题
- 验证你的配置与安装方法(全局安装还是使用 NPX)匹配。
- 如果你使用全局安装,确保
rdw-mcp命令在终端中可用。 - 如果你使用 NPX,确保
npx rdw-mcp-server命令在终端中可用。 - 配置更改后重启 Claude Desktop。
- 对于开发环境,确保绝对路径和构建目录正确。
获取帮助
如果你遇到问题:
- 检查控制台输出中的错误消息。
- 验证你的车牌号格式是否符合荷兰标准。
- 使用已知有效的车牌号进行测试。
- 确保你有活动的互联网连接。
📄 许可证
本项目采用 MIT 许可证。
贡献
欢迎贡献!这个 MCP 服务器可以通过集成更多 RDW 数据集或功能来扩展。
开发设置
- 克隆仓库:
git clone https://github.com/jodur/rdw-mcp-server.git
cd rdw-mcp-server
- 安装依赖:
npm install
- 构建和测试:
npm run build
npm start
可用的 RDW 数据集
RDW 提供了更多可以集成的数据集:
- APK(MOT)检查结果
- 车辆召回信息
- 出租车和公交车注册信息
- 车辆所有权变更信息
- 技术缺陷数据
代码风格
- 使用 TypeScript 并启用严格类型检查。
- 遵循现有的代码模式。
- 为所有函数添加 JSDoc 注释。
- 使用 Zod 进行输入验证。
- 包含适当的错误处理。
变更日志
版本 2.1.0
- 新增传输方式:添加了可流式传输的 HTTP 传输支持(无状态)。
- SDK 兼容性:更新为现代 MCP TypeScript SDK 模式。
- HTTP 特性:使用 Express.js 服务器,提供
/mcp端点和/health检查。 - 命令行:添加
--http和--port=N参数以支持 HTTP 模式。 - CORS 支持:为 Web 集成启用跨域请求。
- 无状态设计:每个请求使用新的服务器实例,非常适合扩展。
- 现代 API:从已弃用的
server.tool()更新为server.registerTool()。 - 增强的结构:通过分离函数实现更好的代码组织。
- 双传输方式:支持标准输入输出(默认)和 HTTP 两种传输方式。
版本 2.0.0
- 重大改进:现在可以在一次查询中查询所有可用的 RDW 数据库。
- 添加了 APK 检查历史和记录。
- 添加了车辆召回和安全行动信息。
- 添加了完整的注册/所有权历史。
- 添加了轴载荷规格和技术数据。
- 添加了车身类型和车身分类。
- 添加了技术缺陷记录和检查结果。
- 添加了额外的颜色信息。
- 增强了并行数据获取以提高性能。
- 从 8 个以上 RDW 数据集获取全面的车辆数据。
- 更新了工具描述和文档。
版本 1.1.0
- 重大变更:简化为单一的综合查询工具。
- 将所有燃油和排放数据集成到主要的车牌号查询中。
- 移除了单独的燃油/排放和车辆搜索工具。
- 增强了燃油/排放数据显示,包括排放代码和烟尘排放。
- 提高了单次查询的数据完整性。
版本 1.0.2
- 为 npm 用户全面改进了 README。
- 增强了安装和使用说明。
- 添加了故障排除和隐私部分。
- 改进了示例查询和开发设置。
- 修复了 package.json 中对已移除测试文件的引用。
版本 1.0.1
- 增强了车辆数据输出。
- 改进了车牌号规范化。
- 添加了全面的错误处理。
- 增强了文档。
版本 1.0.0
- 初始版本。
- 基本的车牌号查询。
- 燃油和排放数据。
- 按品牌/型号搜索车辆。
免责声明
该服务器使用公共 RDW 数据,与官方 RDW 组织没有关联。请始终通过官方渠道验证关键车辆信息。
Scan to join WeChat group