API & agents
WebMCP.nl is zelf machine-leesbaar. Alle endpoints zijn CORS-open en zonder auth, agents en developers kunnen ze direct gebruiken.
Probeer in Swagger →openapi.json
Register-API
De lijst van AI-Ready erkende bedrijven, gesorteerd op score (merit). Betaalde plaatsing staat apart in partners.
# Alle erkende bedrijven (filter optioneel: ?branche=hotel) curl https://webmcp.nl/api/register
Respons:
{
"aantal": 9,
"aanbieders": [
{
"naam": "Garage Van der Meer",
"domein": "garage-vandermeer.nl",
"branche": "garage",
"brancheLabel": "Garages",
"regio": "Flevoland",
"score": 94,
"niveau": "GOUD",
"tools": ["plan_afspraak"],
"uitgelicht": false
}
],
"partners": []
}Directe scan-preview
Snelle AI-Ready score van een willekeurige site (geen e-mail, geen opslag).
curl -X POST https://webmcp.nl/api/scan/preview \
-H "content-type: application/json" \
-d '{"website":"voorbeeld.nl"}'{
"ok": true,
"totaalScore": 41,
"niveau": "GEEN",
"niveauLabel": "Nog niet AI-ready",
"checks": [
{ "sleutel": "structuredData", "label": "Structured data (schema.org)", "score": 60, "bevindingen": ["1x JSON-LD gevonden"] }
]
}MCP-endpoint (voor agents)
JSON-RPC 2.0 op /api/mcp, Model Context Protocol. Tools: zoek_aanbieders, vraag_offertes_aan, vraag_scan_aan.
Waarom deze site béíde heeft: het MCP-endpoint bedient agents en integraties systeem-tot-systeem (altijd bereikbaar, ook zonder bezoeker); de WebMCP-tools hieronder bedienen agents in de browser, binnen de sessie van de bezoeker. Zelfde backend-logica, twee loketten.
curl -X POST https://webmcp.nl/api/mcp \
-H "content-type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"zoek_aanbieders","arguments":{"branche":"garage"}}}'Koppelen in een MCP-client (config):
{
"mcpServers": {
"webmcp-nl": {
"type": "http",
"url": "https://webmcp.nl/api/mcp"
}
}
}Zelf een WebMCP-tool registreren
De kern van WebMCP: je site biedt een actie aan die een agent in de browser kan aanroepen.
// Chrome 150+: document.modelContext; 149: navigator.modelContext.
const mc = document.modelContext ?? navigator.modelContext;
mc?.registerTool({
name: "plan_afspraak",
description: "Plan een afspraak. Retourneert bevestiging en tijdslot.",
inputSchema: {
type: "object",
properties: {
datum: { type: "string" },
tijd: { type: "string" }
},
required: ["datum", "tijd"]
},
async execute({ datum, tijd }) {
const res = await fetch("/api/afspraak", {
method: "POST",
body: JSON.stringify({ datum, tijd })
});
return { content: [{ type: "text", text: await res.text() }] };
}
});Geen idee waar te beginnen? Onze tool-generator schrijft een concept voor je.
Limieten & fouten
- Rate limit: per IP (scan 5/min, register 5/min, MCP 30/min) →
429 Too Many Requests. 400bij ongeldige invoer of een onveilig/privé doel (SSRF-guard).- Alle endpoints:
application/json, UTF-8, CORS*.
Voor LLMs
- /llms.txt, beknopte gids
- /llms-full.txt, volledige kennisbasis