RDW MCP Server
Consulte dados de registro de veículos da RDW holandesa para obter informações sobre veículos, combustível e emissões usando a API oficial de dados abertos da RDW.
Documentação
RDW MCP Server
Um servidor Model Context Protocol (MCP) para consultar dados de registro de veículos da RDW holandesa (Rijksdienst voor het Wegverkeer). Dada uma placa de licença (kenteken), ele retorna especificações do veículo, dados de combustível/emissões, histórico de APK/inspeção, histórico de registro/propriedade, especificações de eixo e carroceria, códigos de defeito e status de recall aberto - tudo a partir da API oficial de dados abertos da RDW. Execute-o localmente via stdio/npx, ou implante-o como um servidor MCP remoto no Cloudflare Workers e conecte-o diretamente ao claude.ai.
Início Rápido
Escolha o seu método preferido:
- Instalação Global (recomendado):
npm install -g rdw-mcp-server→rdw-mcp - NPX (sem instalação):
npx rdw-mcp-server - Desenvolvimento Local: Clone o repositório →
npm install→npm run build→node build/index.js - Remoto (Cloudflare Workers): Nenhum processo local - implante uma vez, conecte-se do claude.ai como um conector personalizado. Veja Implantar como um servidor MCP remoto.
Teste a instalação:
rdw-mcp # if globally installed
# OR
npx rdw-mcp-server # if using npx
(Pressione Ctrl+C para parar)
Adicione ao Claude Desktop (veja a seção de Configuração abaixo)
Comece a fazer perguntas como:
- "Consulte a placa 12-ABC-3"
- "Mostre-me o histórico de APK e quaisquer defeitos técnicos para o kenteken 1-ABC-23"
Recursos
- Consulta Completa de Placa: Obtenha informações disponíveis do veículo nos bancos de dados da RDW pela placa holandesa (kenteken)
- Dados Abrangentes do Veículo: Especificações básicas, detalhes técnicos, pesos, dimensões e informações de registro
- Combustível e Emissões Integrados: Tipo de combustível detalhado, emissões, especificações ambientais e níveis de som
- Histórico de Inspeção APK: Histórico de relatórios de inspeção periódica e datas de expiração do APK resultantes
- Histórico de Registro: Histórico de mudanças de propriedade/registro
- Especificações Técnicas: Cargas por eixo, tipos de carroceria e dados técnicos detalhados
- Registros de Defeitos: Códigos de defeito encontrados durante inspeções
- Status de Recall Aberto: Se o veículo atualmente possui um recall aberto do fabricante
- Dados em Tempo Real: Acesse informações atualizadas dos bancos de dados oficiais da RDW
- Remoto ou Local: Execute localmente via stdio/npx, ou implante como um servidor MCP remoto sem servidor no Cloudflare Workers - veja Implantar como um servidor MCP remoto
Instalação
Instalação Global (Recomendado para uso via CLI)
npm install -g rdw-mcp-server
Após a instalação global, você pode executar o servidor diretamente:
rdw-mcp
Usando NPX (Execute sem instalar)
npx rdw-mcp-server
Isso executa o pacote diretamente sem instalá-lo globalmente.
A partir do Código Fonte (Desenvolvimento Local)
git clone https://github.com/yourusername/rdw-mcp-server.git
cd rdw-mcp-server
npm install
npm run build
node build/index.js
Uso
Como um Comando Global
Após a instalação global, inicie o servidor MCP:
Modo Stdio (Padrão):
rdw-mcp
Modo HTTP:
rdw-mcp --http # Runs on port 3000
rdw-mcp --http --port=8080 # Custom port
O servidor suporta ambos os transportes stdio e HTTP:
- Stdio: Para integração direta com linha de comando e Claude Desktop
- HTTP: Para acesso remoto, integrações web e implantações escaláveis
Recursos do Transporte HTTP
Quando executado em modo HTTP (--http), o servidor fornece:
- Endpoint MCP:
POST /mcp- Endpoint principal do protocolo MCP - Verificação de Saúde:
GET /health- Status do servidor e informações de versão - Suporte a CORS: Solicitações entre origens habilitadas para integrações web
- Design sem Estado: Sem gerenciamento de sessão, perfeito para escalar
- Tratamento de Erros: Códigos de status HTTP adequados e respostas de erro JSON-RPC
Exemplo de Uso HTTP:
# Start HTTP server
rdw-mcp --http --port=3000
# Health check
curl http://localhost:3000/health
# MCP requests (requires proper JSON-RPC format)
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'
Na Configuração do Cliente MCP (VS Code)
O suporte MCP do VS Code (.vscode/mcp.json) usa uma chave servers com um type explícito:
Usando instalação global (recomendado):
{
"servers": {
"rdw": {
"type": "stdio",
"command": "rdw-mcp"
}
}
}
Usando npx (alternativa):
{
"servers": {
"rdw": {
"type": "stdio",
"command": "npx",
"args": ["rdw-mcp-server"]
}
}
}
Para o Claude Desktop, use a chave mcpServers mostrada em Configuração para Claude Desktop abaixo.
Modo de Desenvolvimento Local
Para desenvolvimento local a partir do código fonte:
git clone https://github.com/yourusername/rdw-mcp-server.git
cd rdw-mcp-server
npm install
npm run build
node build/index.js
Modo de Desenvolvimento
Para desenvolvimento com reconstrução automática:
npm run dev
Implante como um Servidor MCP Remoto (Cloudflare Workers)
Este repositório também inclui um ponto de entrada do Cloudflare Worker (src/worker.ts) que expõe a mesma ferramenta rdw-license-plate-lookup como um servidor MCP remoto - sem processo local, sem túnel, sem contêiner. Como esta ferramenta apenas faz proxy de dados abertos públicos da RDW (sem segredos, sem dados do usuário), ela pode ser adicionada ao claude.ai sem OAuth.
Isso é totalmente aditivo: a configuração existente de npx rdw-mcp-server / Claude Desktop stdio descrita acima não é afetada.
Opção A: Implante via painel do Cloudflare (sem CLI local necessário)
- Faça um fork ou envie este repositório para sua própria conta do GitHub.
- No painel do Cloudflare: Workers & Pages → Create → Import a Git repository.
- Autorize o aplicativo GitHub do Cloudflare (um clique OAuth único) e selecione seu repositório.
- O Cloudflare detecta automaticamente
wrangler.jsonce preenche o comando de build/deploy. Clique em Salvar e Implantar. - O Cloudflare executa
npm install+wrangler deployna nuvem e fornece uma URL ativa, por exemplo,https://rdw-mcp-worker.<your-subdomain>.workers.dev. - Todo push futuro para o branch conectado reconstrói e reimplanta automaticamente.
Opção B: Implante localmente com Wrangler
npm install
npm run cf:dev # local Worker at http://localhost:8787
Verifique localmente com o Inspetor MCP:
npx @modelcontextprotocol/inspector
# connect to http://localhost:8787/mcp (Streamable HTTP) or http://localhost:8787/sse (SSE)
Então implante:
npx wrangler login # first time only
npm run deploy
Adicione ao claude.ai
- claude.ai → Configurações → Conectores → Adicionar conector personalizado.
- Cole sua URL implantada com o caminho
/mcp, por exemplo,https://rdw-mcp-worker.<your-subdomain>.workers.dev/mcp. - Deixe os campos de ID do Cliente OAuth/Secreto em branco - este servidor não requer autenticação.
- Clique em Adicionar e depois habilite via + → Conectores em uma conversa.
- Experimente: "Consulte a placa 12-ABC-3".
Notas
O Worker é público após a implantação - qualquer pessoa com a URL pode chamar a consulta RDW através dele. Isso é aceitável, pois ele apenas faz proxy de dados RDW já públicos, sem autenticação também no lado da RDW, mas tenha isso em mente antes de adicionar ações de escrita ou dados privados no futuro (nesse ponto, adicione um provedor OAuth).
O Worker usa McpAgent (do pacote agents), que é suportado por Durable Objects e expõe tanto /mcp (HTTP Streamable) quanto /sse (SSE legado) para ampla compatibilidade com clientes.
Ferramenta Disponível
rdw-license-plate-lookup
Consulte informações do veículo nos bancos de dados da RDW pela placa holandesa.
Parâmetros:
kenteken(string): Placa holandesa a ser consultada
Retorna:
- Informações do veículo dos bancos de dados da RDW, incluindo:
- Detalhes Básicos: Marca, modelo, cor, tipo, variante, versão
- Especificações Técnicas: Motor, potência, dimensões, cilindros, cilindrada
- Peso e Capacidade: Peso vazio, peso em ordem de marcha, capacidade de reboque, cargas por eixo
- Dados de Registro: Primeiro registro, histórico de mudanças de registro/propriedade, aprovação de tipo
- Registros de Inspeção: Data de expiração do APK, histórico de relatórios de inspeção periódica, códigos de defeito encontrados
- Combustível e Emissões: Tipo de combustível, níveis de emissões, classe de CO2, níveis de som
- Informações de Segurança: Status de recall aberto (os dados abertos da RDW não expõem histórico de recall por veículo, apenas se um recall está atualmente aberto)
- Especificações da Carroceria: Tipo de carroceria, classificações europeias
- Dados Financeiros: Preço de catálogo, informações de imposto BPM
- Indicadores de Status: Status de exportação, indicador de táxi, status de seguro
Exemplo: Consulte a placa "12-ABC-3" para obter informações completas do banco de dados da RDW
Requisitos
- Node.js: Versão 18.0.0 ou superior
- npm: Versão 8.0.0 ou superior (vem com Node.js)
- Conexão com a internet: Necessária para acessar a API da RDW
Configuração para Claude Desktop
Para usar este servidor MCP com o Claude Desktop, adicione o seguinte ao seu claude_desktop_config.json:
Usando Instalação Global (Recomendado)
Se você instalou globalmente com npm install -g rdw-mcp-server:
{
"mcpServers": {
"rdw": {
"command": "rdw-mcp"
}
}
}
Usando NPX (Alternativa)
Se você preferir não instalar globalmente:
{
"mcpServers": {
"rdw": {
"command": "npx",
"args": ["rdw-mcp-server"]
}
}
}
Somente Modo de Desenvolvimento
Para desenvolvimento com código fonte local:
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"]
}
}
}
Fontes de Dados
Este servidor usa APIs de dados abertos oficiais da RDW (autoridade de veículos holandesa), verificadas ao vivo contra opendata.rdw.nl:
- API Base:
https://opendata.rdw.nl/resource/ - Registro de Veículos: Conjunto de dados
m9d7-ebf2- Informações básicas e especificações do veículo - Combustível e Emissões: Conjunto de dados
8ys7-d773- Tipos de combustível, emissões e dados ambientais - Relatórios APK / Inspeção: Conjunto de dados
sgfe-77wx("Meldingen Keuringsinstantie") - Histórico de relatórios de inspeção periódica e datas de expiração do APK resultantes - Histórico de Registro: Conjunto de dados
db8s-mw3u("Kenteken-tenaamstelling") - Histórico de mudanças de registro/propriedade - Especificações de Eixo: Conjunto de dados
3huj-srit- Especificações técnicas de carga por eixo - Tipos de Carroceria: Conjunto de dados
vezc-m2t6- Classificações de carroceria e tipo de corpo - Defeitos Técnicos: Conjunto de dados
a34c-vvps("Geconstateerde Gebreken") - Códigos de defeito encontrados durante inspeções
Nota: Os dados abertos da RDW não expõem um conjunto de dados de recall por veículo (apenas um catálogo geral de campanhas de recall sem campo de placa) nem um conjunto de dados separado de histórico de cor por veículo - as cores já são cobertas pelo registro básico do veículo. O status de recall aberto vem de um sinalizador no registro básico do veículo.
Todos os dados são recuperados em tempo real de fontes oficiais do governo e estão disponíveis publicamente.
Privacidade e Uso de Dados
- Sem Armazenamento de Dados: Este servidor não armazena nenhum dado de veículo localmente
- Consultas em Tempo Real: Todas as solicitações são encaminhadas diretamente às APIs da RDW
- Somente Dados Públicos: Apenas dados de registro disponíveis publicamente são acessados
- Sem Autenticação: Nenhum dado pessoal ou sensível é necessário ou processado
Limitação de Taxa
A API da RDW pode impor limites de taxa. Se você encontrar limitação de taxa:
- Aguarde alguns segundos entre solicitações
- Evite fazer solicitações em massa em rápida sucessão
- Considere implementar atrasos na lógica do seu aplicativo
Exemplos de Consultas
Depois de conectado a um cliente MCP como o Claude Desktop, você pode fazer perguntas como:
Informações Completas do Veículo:
- "Consulte a placa 12-ABC-3"
- "Quais informações estão disponíveis para o kenteken XYZ-123?"
- "Fale-me sobre o veículo com a placa 1-ABC-23"
- "Mostre-me todos os dados da placa ABC-12-D"
- "Obtenha informações completas da RDW para o kenteken DEF-456"
Solicitações de Informações Específicas:
- "Quais são os dados de emissões para o kenteken ABC-12-D?"
- "Mostre-me o histórico de APK da placa XYZ-456"
- "Há algum recall para o veículo 12-ABC-3?"
- "Qual é o histórico de registro do kenteken DEF-456?"
- "Mostre-me defeitos técnicos da placa GHI-789"
Detalhes Técnicos e de Segurança:
- "Qual é a capacidade de reboque do veículo 12-ABC-3?"
- "Mostre-me especificações de eixo para o kenteken XYZ-456"
- "Há algum recall aberto para a placa ABC-12-D?"
- "Quais defeitos foram encontrados durante as inspeções do kenteken DEF-456?"
- "Mostre-me o histórico completo de inspeções da placa GHI-789"
Detalhes Técnicos
- Linguagem: TypeScript
- Runtime: Node.js (stdio / HTTP) ou Cloudflare Workers (MCP remoto)
- Protocolo: Model Context Protocol (MCP)
- Transporte: I/O padrão (stdio), HTTP Streamable ou SSE (implantação no Cloudflare Workers)
- Validação: Esquemas Zod para validação de entrada
- API: Chamadas RESTful para endpoints de dados abertos da RDW
Tratamento de Erros
O servidor inclui tratamento abrangente de erros para:
- Placas inválidas (formato incorreto ou inexistente)
- Problemas de conectividade de rede
- Limitação de taxa e tempos limite da API
- Dados ausentes ou malformados da API da RDW
- Parâmetros de pesquisa inválidos
Solução de Problemas
Problemas Comuns
Servidor não iniciando:
- Certifique-se de que a versão do Node.js seja 18.0.0 ou superior:
node --version - Tente reinstalar:
npm uninstall -g rdw-mcp-server && npm install -g rdw-mcp-serverNenhum dado retornado: - Verifique sua conexão com a internet
- Verifique o formato da placa de licença (placas holandesas: XX-XXX-X, XXX-XX-X, etc.)
- Alguns veículos mais antigos podem não ter dados completos no banco de dados da RDW
Problemas de conexão com o Claude Desktop:
- Verifique se sua configuração corresponde ao método de instalação (global vs npx)
- Se estiver usando instalação global, garanta que o comando
rdw-mcpfuncione no terminal - Se estiver usando npx, garanta que
npx rdw-mcp-serverfuncione no terminal - Reinicie o Claude Desktop após alterações na configuração
- Para configurações de desenvolvimento, garanta que o caminho absoluto e o diretório de build estejam corretos
Obtendo Ajuda
Se você encontrar problemas:
- Verifique a saída do console para mensagens de erro
- Verifique se o formato da sua placa corresponde aos padrões holandeses
- Teste com placas de licença válidas conhecidas
- Garanta que você tenha uma conexão ativa com a internet
Licença
MIT
Contribuindo
Contribuições são bem-vindas! Este servidor MCP pode ser estendido com conjuntos de dados adicionais da RDW ou funcionalidades.
Configuração de Desenvolvimento
-
Clone o repositório:
git clone https://github.com/jodur/rdw-mcp-server.git cd rdw-mcp-server -
Instale as dependências:
npm install -
Compile e teste:
npm run build npm start
Conjuntos de Dados RDW Disponíveis
A RDW fornece muitos outros conjuntos de dados que poderiam ser integrados, além dos já usados acima:
- Registros de táxis e ônibus
- Variantes técnicas específicas de combustível
- Histórico de importação/exportação de veículos
Estilo de Código
- Use TypeScript com tipagem estrita
- Siga os padrões de código existentes
- Adicione comentários JSDoc para todas as funções
- Use Zod para validação de entrada
- Inclua tratamento de erros adequado
Changelog
Versão 2.3.0
- NOVO: Servidor MCP remoto no Cloudflare Workers: Adicionado
src/worker.ts, implantável via painel do Cloudflare (integração Git, sem necessidade de CLI) ouwrangler deploy. Expõe/mcp(Streamable HTTP) e/sse, sem autenticação - conecte-o diretamente do claude.ai como um conector personalizado. - Lógica de ferramenta compartilhada: Extraiu a ferramenta de consulta RDW para
src/rdw-lib.ts, importada sem alterações tanto pelo ponto de entrada Node quanto pelo Worker - sem lógica duplicada, sem mudança de comportamento na distribuição stdio/HTTP existente. - Correção de lacuna de dados: A ferramenta anteriormente afirmava retornar histórico de APK, recalls, histórico de propriedade e defeitos, mas nunca realmente os buscava (suposições
endpoint doesn't existque se mostraram erradas). Verificado ao vivo contraopendata.rdw.nle conectado os conjuntos de dados reais para histórico de APK/inspeção (sgfe-77wx), histórico de registro/propriedade (db8s-mw3u) e defeitos encontrados (a34c-vvps). - Afirmações corrigidas: A descrição da ferramenta e o README não afirmam mais histórico de recalls ou histórico de cores por veículo que a API aberta da RDW não expõe - o status de recall agora é descrito com precisão como um sinalizador aberto/fechado, não um histórico.
Versão 2.1.0
- NOVO TRANSPORTE: Adicionado suporte ao transporte Streamable HTTP (sem estado)
- Conformidade com SDK: Atualizado para padrões modernos do SDK TypeScript do MCP
- Recursos HTTP: Servidor Express.js com endpoint
/mcpe verificação/health - Linha de comando: Adicionados argumentos
--httpe--port=Npara modo HTTP - Suporte CORS: Solicitações de origem cruzada habilitadas para integrações web
- Design sem estado: Nova instância de servidor por solicitação, perfeito para escalabilidade
- API moderna: Atualizado de
server.tool()(obsoleto) paraserver.registerTool() - Estrutura aprimorada: Melhor organização do código com funções separadas
- Transporte duplo: Suporta transportes stdio (padrão) e HTTP
Versão 2.0.0
- GRANDE MELHORIA: Agora consulta TODOS os bancos de dados RDW disponíveis em uma única consulta
- Adicionado histórico e registros de inspeção APK
- Adicionadas informações de recall de veículos e ações de segurança
- Adicionado histórico completo de registro/propriedade
- Adicionadas especificações de carga por eixo e dados técnicos
- Adicionadas classificações de tipo de carroceria e carrosserie
- Adicionados registros de defeitos técnicos e achados de inspeção
- Adicionadas informações adicionais de cor
- Busca paralela de dados aprimorada para melhor desempenho
- Dados abrangentes do veículo de mais de 8 conjuntos de dados RDW
- Descrição da ferramenta e documentação atualizadas
Versão 1.1.0
- MUDANÇA IMPORTANTE: Simplificado para uma única ferramenta de consulta abrangente
- Integrados todos os dados de combustível e emissões na consulta principal de placa de licença
- Removidas ferramentas separadas de combustível/emissões e busca de veículos
- Exibição aprimorada de dados de combustível/emissões com códigos de emissão e emissões de fuligem
- Completude de dados melhorada em consulta única
Versão 1.0.2
- Melhorias abrangentes no README para usuários npm
- Instruções aprimoradas de instalação e uso
- Adicionadas seções de solução de problemas e privacidade
- Exemplos de consultas e configuração de desenvolvimento melhorados
- Corrigidas referências no package.json a arquivos de teste removidos
Versão 1.0.1
- Saída de dados do veículo aprimorada
- Normalização de placa de licença melhorada
- Tratamento abrangente de erros adicionado
- Documentação aprimorada
Versão 1.0.0
- Lançamento inicial
- Consulta básica de placa de licença
- Dados de combustível e emissões
- Busca de veículos por marca/modelo
Aviso Legal
Este servidor usa dados públicos da RDW e não é afiliado à organização oficial da RDW. Sempre verifique informações críticas do veículo por meio de canais oficiais.