# De MCP-server van Theorie Rijbewijs

Koppel een compatibele AI-assistent aan de openbare documenten van Theorie Rijbewijs: de tools search en fetch, protocolversies, headers en een volledig voorbeeld.

Pagina: https://theorie-rijbewijs.nl/open-data/mcp/

Corpus: 21 openbare documenten, met hun links, bronnen en data waar die zijn gedocumenteerd.

## Gebruik

Openbare toegang, alleen lezen, zonder sleutel. Geen accountgegevens, geen voortgang van leerlingen en geen privé-informatie. Citeer de link van het document en bewaar de bronnen en de reikwijdte van de controle. De officiële regels (met hun bron) zijn te onderscheiden van de lessen, de methode en het aanbod van Theorie Rijbewijs.

## MCP

URL: https://theorie-rijbewijs.nl/mcp

Transport Streamable HTTP, JSON-antwoorden, protocollen 2026-07-28 en 2025-11-25 (en ook 2025-06-18 en 2025-03-26), zonder authenticatie of sessie. Een SSE-stroom is niet nodig.

Tools:
- search: {query: "maximumsnelheid"}, geeft {results: [{id, title, url}]} terug in content en structuredContent (maximaal 20 resultaten).
- fetch: {id: "id uit het resultaat van search"}, geeft {id, title, text, url, metadata} terug. De metadata geven de aard van het document, de bronnen, de data (verified_at voor een controle, modified_at voor een wijziging van de publicatie) en bij een les het hoofdstuk, de afbeelding en de video.

Met protocol 2026-07-28: server/discover, daarna tools/list en tools/call. Met protocol 2025: initialize, daarna notifications/initialized, daarna tools/list en tools/call.

## Headers

Stuur Content-Type: application/json en Accept: application/json, text/event-stream mee. Geef na initialize MCP-Protocol-Version door met de afgesproken versie. Bij 2026-07-28 draagt elk verzoek zijn versie in _meta en in de headers MCP-Protocol-Version, Mcp-Method en, bij een tool, Mcp-Name. Een externe browser moet de REST-API gebruiken: de MCP-route controleert de origins. Controleer JSON-RPC-fouten en isError ook bij een HTTP 200-antwoord.

## Voorbeelden

### Zoeken en daarna een document lezen met de MCP-SDK

Met Node.js 20 of nieuwer: installeer npm install @modelcontextprotocol/sdk@1.30.0 en sla deze code op in een .mjs-bestand. De SDK regelt de initialisatie en de headers van het protocol. Het lezen gebruikt de identifier die de zoekopdracht echt heeft teruggegeven. Bewaar het veld url als zichtbare bronvermelding in je interface.

```javascript
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';

const client = new Client({ name: 'exemple-site', version: '1.0.0' }, { capabilities: {} });
const transport = new StreamableHTTPClientTransport(new URL('https://theorie-rijbewijs.nl/mcp'));

function readTool(result) {
  if (result.isError) throw new Error('De MCP-tool kon het verzoek niet verwerken.');
  if (result.structuredContent) return result.structuredContent;
  const content = result.content?.find(item => item.type === 'text');
  if (!content) throw new Error('MCP-antwoord zonder inhoud.');
  return JSON.parse(content.text);
}

try {
  await client.connect(transport);
  const available = await client.listTools();
  if (!['search', 'fetch'].every(name => available.tools.some(tool => tool.name === name))) {
    throw new Error('De verwachte tools zijn niet beschikbaar.');
  }
  const search = readTool(await client.callTool({
    name: 'search', arguments: { query: 'theorie-examen' }
  }));
  if (!search.results.length) {
    console.log('Geen document gevonden.');
  } else {
    const record = readTool(await client.callTool({
      name: 'fetch', arguments: { id: search.results[0].id }
    }));
    console.log(JSON.stringify(record, null, 2));
  }
} finally {
  await client.close();
}
```

## De actuele versie van een gegeven terugvinden

De API en de MCP-server geven toegang tot de openbare publicaties van Theorie Rijbewijs. De documenten volgen de updates van de site, met een link naar de oorspronkelijke pagina en de bijbehorende bronnen.

Lees voordat je antwoordt of je tool bijwerkt de relevante documenten opnieuw: je vindt hun online versie, hun bronnen en hun data. Een officiële regel kan veranderen: de controledatum zegt wanneer de regel voor het laatst in de wettekst is nagelezen.

## Hergebruiken met bronvermelding

De openbare inhoud van Theorie Rijbewijs mag worden bekeken, geciteerd en samengevat om een antwoord te onderbouwen of een tool te bouwen, ook voor commercieel gebruik, met zichtbare bronvermelding en een link naar de gebruikte pagina: ‘Bron: Theorie Rijbewijs’.

Bewaar de bronnen en de voorbehouden die bij de informatie horen. Vermeld welke aanpassingen je hebt gedaan en maak onderscheid tussen de officiële regels en de uitleg, de methode en het aanbod van Theorie Rijbewijs.

Documenten en beeldmateriaal van derden vallen onder hun eigen voorwaarden. Wil je een cursus of artikel volledig opnieuw publiceren, vraag dan toestemming via contact@theorie-rijbewijs.nl. Toegang tot de gegevens betekent niet dat Theorie Rijbewijs of Permis Online SRL met jou samenwerkt of jouw dienst goedkeurt.

## Bestanden en referentiepagina’s

- [llms.txt](https://theorie-rijbewijs.nl/llms.txt) : de inhoudsopgave van de site voor AI-assistenten
- [llms-full.txt](https://theorie-rijbewijs.nl/llms-full.txt) : de volledige tekst van de openbare inhoud
- [Referentie-informatie](https://theorie-rijbewijs.nl/brand-facts/) : wie de site uitgeeft, wat de site biedt, de officiële regels met bron en datum
- [brand-facts.md](https://theorie-rijbewijs.nl/brand-facts.md) : de referentie-informatie in Markdown
- [brand-facts.json](https://theorie-rijbewijs.nl/.well-known/brand-facts.json) : de referentie-informatie in JSON
- [schema.json](https://theorie-rijbewijs.nl/.well-known/schema.json) : alle gestructureerde gegevens van de site in één graaf
- [ai.json](https://theorie-rijbewijs.nl/.well-known/ai.json) : de uitgever, het officiële domein en de bestanden voor AI
- [offers.json](https://theorie-rijbewijs.nl/.well-known/offers.json) : het aanbod dat echt beschikbaar is in Nederland
- [Bronnen en verwijzingen](https://theorie-rijbewijs.nl/sources/) : de officiële teksten en alle genoemde bronnen
- [sources.txt](https://theorie-rijbewijs.nl/sources.txt) : het bronnenregister als tekst
- [Sitemap](https://theorie-rijbewijs.nl/sitemap.xml) : alle openbare pagina’s, hun afbeeldingen en de opbouw van de site (XML voor robots, leesbare pagina in een browser)
- [Markdown-varianten](https://theorie-rijbewijs.nl/index.md) : elke openbare pagina als tekst: het adres gevolgd door .md (de homepage: /index.md)
