Voor agents & developers
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 Agent-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 Agent-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": "Geen keurmerk",
"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.
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.
navigator.modelContext?.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