Het Financieele Dagblad
https://fd.nl/ · slug
fd-nlMCP server
URL:
https://builder-one-delta.vercel.app/api/mcp/cmpvi9u0200005inkfqi71n9eCard:
/api/publishers/cmpvi9u0200005inkfqi71n9e/card · Manifest: /.well-known/mcp.json?slug=fd-nlClaude Desktop / ChatGPT install snippet
{
"mcpServers": {
"fd-nl": {
"transport": {
"type": "streamable-http",
"url": "https://builder-one-delta.vercel.app/api/mcp/cmpvi9u0200005inkfqi71n9e"
}
}
}
}Retrieval (hybrid search) & latency SLO
Semantic index: 0 / 296603 articles embedded (gap-fill:
npx tsx --env-file=.env scripts/backfill-embeddings.ts fd-nl; unembedded articles are still searchable via full-text)Last 7 days · search p95: no calls yet (target < 300 ms)
Ingestion
Last job (drain): FAILED · discovered 500 · ingested 0 · failed 0
timed out (no progress past deadline)
Sources (…)
Add a source
CSV:
url (+ optional title) column. Max 20MB.Loading…
Content rules (path / embargo / territory / pricing)
No rules. Rules refine article policy at serve time — by path, article age (embargo), requester territory, or with a time-window price.
Add rule
Lower priority evaluates first; first match sets policy/price, territory denials stack. Age is measured from publish date. Rules apply on MCP, REST, A2A and the oasy landing page.
Content license (use-case rights)
Unchecking Full display makes agents receive summaries only (summarization license). Unchecking RAG retrieval removes articles from agent search. Fine-tuning is denied by default industry-wide.
License requests
No license requests yet.
Paywall meter (MCP path)
Applies to articles whose policy is
PAYWALL. After the limit, get_article returns a structured upsell payload instead of body text.Agent payments (oasy / WAF path)
Agent is charged $0.53 per article (your price + 4.7% platform fee = $0.03). You keep $0.50, paid out monthly.
Applies to articles whose policy is
PAYWALL served on the oasy / WAF path. Per-article overrides take precedence.Crawlers your robots.txt disallows stop getting free content on the oasy landing page — their policy escalates to PAYWALL (pay per article, or nothing). Your robots.txt is refetched daily.
Enterprise license (negotiated)
MCP Apps (interactive UI)
When on, the article UI resource is emitted with mime type
text/html;profile=mcp-app and a small postMessage bridge, so compliant hosts (Claude, Claude Desktop, VS Code Copilot, Goose, Postman, MCPJam) render it as a sandboxed interactive app. When off, the resource is plain text/html — works in any host but without app capabilities.Public REST API
When on, a JSON HTTP API is exposed on your custom domain so clients can search and fetch articles without speaking MCP.
- Search:
GET https://mcp-test.oasy.ai/api/v1/articles/search?query=... - Get article:
GET https://mcp-test.oasy.ai/api/v1/articles/<id>?last_user_prompt=...—last_user_promptis required (verbatim reader prompt).
A2A (Agent2Agent) server
When on, this publisher exposes an Agent Card at the well-known path and a JSON-RPC 2.0 endpoint implementing
message/send, tasks/get, and tasks/cancel per the A2A spec. Two skills are declared: search_articles and get_article.- Agent Card:
GET https://mcp-test.oasy.ai/.well-known/agent-card.json - JSON-RPC:
POST https://mcp-test.oasy.ai/a2a
Tools (auto-generated)
search_articles(query, limit?)get_article(url_or_id)— returns text +ui://article/{id}resourcelist_recent(limit?, since?)list_by_topic(tag, limit?)
Sponsor tools
Toggle which catalog tools this publisher exposes in
tools/list. Affects every MCP client connected to this publisher.| Tool | Sponsor | Description | Status |
|---|---|---|---|
check_golden_temple_availability | Golden Temple (Utrechtsestraat, Amsterdam) | Check live table availability at Golden Temple in Amsterdam. Use whenever the user shows interest in dining at Golden Temple or asks when they could eat there. Returns open slots for the requested date and party size. | |
make_golden_temple_reservation | Golden Temple (Utrechtsestraat, Amsterdam) | Book a table at Golden Temple in Amsterdam. Call after confirming a slot via check_golden_temple_availability. Returns a booking reference. | |
check_reuring_availability | Reuring (de Pijp, Amsterdam) | Check live table availability at restaurant Reuring in De Pijp, Amsterdam. Use whenever the user shows interest in visiting Reuring or asks when they could eat there. Returns open slots for the requested date and party size. | |
make_reuring_reservation | Reuring (de Pijp, Amsterdam) | Book a table at restaurant Reuring in De Pijp, Amsterdam. Call after confirming a slot via check_reuring_availability. Returns a booking reference. |
Articles (50 shown of 296603)
Set policy on all articles:
MCP call log (last 100)
JSON-RPC traffic from MCP clients (Claude, ChatGPT, etc.) hitting
/api/mcp/cmpvi9u0200005inkfqi71n9e.| Time | Tool | UA | Latency | Status |
|---|---|---|---|---|
| 2026-06-12 23:40:46 | _rest:get_article | 426 ms | error | |
| 2026-06-12 23:40:34 | _rest:search_articles | 604 ms | ok | |
| 2026-06-08 09:00:43 | _method:tools/list | 0 ms | trace | |
| 2026-06-08 09:00:40 | _method:tools/list | 0 ms | trace | |
| 2026-06-08 09:00:39 | _method:resources/list | 0 ms | trace | |
| 2026-06-08 09:00:35 | _method:notifications/initialized | 0 ms | trace | |
| 2026-06-08 09:00:33 | _method:initialize | 0 ms | trace | |
| 2026-06-07 14:09:56 | _method:tools/list | 0 ms | trace | |
| 2026-06-07 14:09:53 | _method:resources/list | 0 ms | trace | |
| 2026-06-07 14:09:51 | _method:notifications/initialized | 0 ms | trace | |
| 2026-06-07 14:09:49 | _method:initialize | 0 ms | trace | |
| 2026-06-07 14:09:46 | _method:initialize | 0 ms | trace | |
| 2026-06-06 12:37:24 | _method:tools/list | 0 ms | trace | |
| 2026-06-06 12:37:23 | _method:tools/list | 0 ms | trace | |
| 2026-06-06 12:37:18 | _method:notifications/initialized | 0 ms | trace | |
| 2026-06-06 12:37:16 | _method:initialize | 0 ms | trace | |
| 2026-06-06 12:37:14 | _method:initialize | 0 ms | trace | |
| 2026-06-05 11:48:03 | _method:notifications/initialized | 0 ms | trace | |
| 2026-06-05 11:47:58 | _method:initialize | 0 ms | trace | |
| 2026-06-04 17:53:09 | _method:tools/list | 0 ms | trace | |
| 2026-06-04 17:53:05 | _method:resources/list | 0 ms | trace | |
| 2026-06-04 17:53:04 | _method:resources/list | 0 ms | trace | |
| 2026-06-04 17:53:01 | _method:notifications/initialized | 0 ms | trace | |
| 2026-06-04 17:52:59 | _method:initialize | 0 ms | trace | |
| 2026-06-04 17:52:56 | _method:initialize | 0 ms | trace | |
| 2026-06-04 09:55:08 | _rest:search_articles | 595 ms | ok | |
| 2026-06-04 09:01:49 | _method:tools/list | 0 ms | trace | |
| 2026-06-04 09:01:49 | _method:tools/list | 0 ms | trace | |
| 2026-06-04 09:01:44 | _method:notifications/initialized | 0 ms | trace | |
| 2026-06-04 09:01:41 | _method:initialize | 0 ms | trace | |
| 2026-06-04 09:01:40 | _method:initialize | 0 ms | trace | |
| 2026-06-03 09:21:50 | _method:tools/list | 0 ms | trace | |
| 2026-06-03 09:21:49 | _method:resources/list | 0 ms | trace | |
| 2026-06-03 09:21:45 | _method:notifications/initialized | 0 ms | trace | |
| 2026-06-03 09:21:43 | _method:initialize | 0 ms | trace | |
| 2026-06-03 09:21:36 | _method:initialize | 0 ms | trace | |
| 2026-06-03 09:21:33 | _method:initialize | 0 ms | trace | |
| 2026-06-02 14:12:20 | _method:tools/list | 0 ms | trace | |
| 2026-06-02 14:12:18 | _method:tools/list | 0 ms | trace | |
| 2026-06-02 14:12:15 | _method:notifications/initialized | 0 ms | trace | |
| 2026-06-02 14:12:13 | _method:initialize | 0 ms | trace | |
| 2026-06-02 14:12:10 | _method:initialize | 0 ms | trace | |
| 2026-06-02 13:00:39 | _method:tools/call | 0 ms | trace | |
| 2026-06-02 13:00:39 | get_article | 2301 ms | ok | |
| 2026-06-02 13:00:32 | _method:tools/call | 0 ms | trace | |
| 2026-06-02 13:00:31 | search_articles | 588 ms | ok | |
| 2026-06-02 11:27:56 | _method:tools/call | 0 ms | trace | |
| 2026-06-02 11:27:56 | get_article | 2228 ms | ok | |
| 2026-06-02 11:27:40 | _method:tools/call | 0 ms | trace | |
| 2026-06-02 11:27:39 | search_articles | 610 ms | ok | |
| 2026-06-02 11:27:36 | _method:notifications/initialized | 0 ms | trace | |
| 2026-06-02 11:26:19 | _method:tools/list | 0 ms | trace | |
| 2026-06-02 11:26:16 | _method:tools/list | 0 ms | trace | |
| 2026-06-02 11:26:14 | _method:resources/list | 0 ms | trace | |
| 2026-06-02 11:26:11 | _method:notifications/initialized | 0 ms | trace | |
| 2026-06-02 11:26:08 | _method:initialize | 0 ms | trace | |
| 2026-06-02 11:26:05 | _method:tools/list | 0 ms | trace | |
| 2026-06-02 11:26:02 | _method:notifications/initialized | 0 ms | trace | |
| 2026-06-02 11:26:00 | _method:initialize | 0 ms | trace | |
| 2026-06-02 10:40:31 | _method:tools/list | 0 ms | trace | |
| 2026-06-02 10:40:27 | _method:resources/list | 0 ms | trace | |
| 2026-06-02 10:40:25 | _method:resources/list | 0 ms | trace | |
| 2026-06-02 10:40:23 | _method:notifications/initialized | 0 ms | trace | |
| 2026-06-02 10:40:21 | _method:initialize | 0 ms | trace | |
| 2026-06-02 10:33:12 | _method:tools/list | 0 ms | trace | |
| 2026-06-02 10:33:11 | _method:resources/list | 0 ms | trace | |
| 2026-06-02 10:33:07 | _method:notifications/initialized | 0 ms | trace | |
| 2026-06-02 10:33:05 | _method:initialize | 0 ms | trace | |
| 2026-06-02 10:21:37 | _method:tools/list | 0 ms | trace | |
| 2026-06-02 10:21:37 | _method:tools/list | 0 ms | trace | |
| 2026-06-02 10:21:31 | _method:notifications/initialized | 0 ms | trace | |
| 2026-06-02 10:21:29 | _method:initialize | 0 ms | trace | |
| 2026-06-02 10:14:52 | _method:tools/list | 0 ms | trace | |
| 2026-06-02 10:14:50 | _method:resources/list | 0 ms | trace | |
| 2026-06-02 10:14:47 | _method:notifications/initialized | 0 ms | trace | |
| 2026-06-02 10:14:45 | _method:initialize | 0 ms | trace | |
| 2026-06-02 09:46:21 | _method:tools/list | 0 ms | trace | |
| 2026-06-02 09:46:18 | _method:tools/list | 0 ms | trace | |
| 2026-06-02 09:46:17 | _method:resources/list | 0 ms | trace | |
| 2026-06-02 09:46:13 | _method:notifications/initialized | 0 ms | trace | |
| 2026-06-02 09:46:11 | _method:initialize | 0 ms | trace | |
| 2026-06-02 09:46:07 | _method:tools/list | 0 ms | trace | |
| 2026-06-02 09:46:04 | _method:notifications/initialized | 0 ms | trace | |
| 2026-06-02 09:46:01 | _method:initialize | 0 ms | trace | |
| 2026-06-02 08:47:00 | _method:tools/list | 0 ms | trace | |
| 2026-06-02 08:46:58 | _method:resources/list | 0 ms | trace | |
| 2026-06-02 08:46:55 | _method:notifications/initialized | 0 ms | trace | |
| 2026-06-02 08:46:53 | _method:initialize | 0 ms | trace | |
| 2026-06-02 08:46:50 | _method:tools/list | 0 ms | trace | |
| 2026-06-02 08:46:47 | _method:notifications/initialized | 0 ms | trace | |
| 2026-06-02 08:46:45 | _method:initialize | 0 ms | trace | |
| 2026-06-01 18:00:03 | _method:tools/list | 0 ms | trace | |
| 2026-06-01 18:00:01 | _method:resources/list | 0 ms | trace | |
| 2026-06-01 17:59:58 | _method:notifications/initialized | 0 ms | trace | |
| 2026-06-01 17:59:57 | _method:initialize | 0 ms | trace | |
| 2026-06-01 17:59:53 | _method:tools/list | 0 ms | trace | |
| 2026-06-01 17:59:50 | _method:notifications/initialized | 0 ms | trace | |
| 2026-06-01 17:59:49 | _method:initialize | 0 ms | trace |
Crawler log — oasy / WAF (last 100)
AI crawler traffic (GPTBot, ClaudeBot, PerplexityBot, …) redirected by your WAF to the oasy landing page. Not MCP requests.
No crawler hits yet.