aimiles · MCP builder for publishers

Het Financieele Dagblad

https://fd.nl/ · slug fd-nl

MCP server

URL: https://builder-one-delta.vercel.app/api/mcp/cmpvi9u0200005inkfqi71n9e
Card: /api/publishers/cmpvi9u0200005inkfqi71n9e/card · Manifest: /.well-known/mcp.json?slug=fd-nl
Claude 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)

View public terms →
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_prompt is 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} resource
  • list_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.
ToolSponsorDescriptionStatus
check_golden_temple_availabilityGolden 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_reservationGolden 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_availabilityReuring (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_reservationReuring (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:
TitlePublishedPolicyPrice (PAYWALL)
UitAgenda$
Dode bij nucleair ongeluk Frankrijk$
Gure wind$
FNV tegen langjarige tijdelijke contracten$
Crisis speelt supermarkt in de kaart$
Opinie: Griekse schuld nu afschrijven$
'Gucci Helle' verleidt de vrouwelijke kiezer$
Nederlandse hotelkamers duurste in eurozone$
Sukademaker profiteert van val Griekse rivaal$
Bij vijfsterrenhotels in Amsterdam rijdt de limousine weer af en aan$
De ergste crisis$
VU en AMC onderzoeken samenwerking$
FNV eist concessies Kamp en werkgevers$
OR laat het toezicht schieten$
Vinken veranderde het uitgeven$
Altijd op zoek naar het maximale resultaat$
Frankrijk voert extra bezuinigingen door$
Miljoenen voor Leids medicijn spierziekte$
Optiebeleggers gokken op eigen industrie$
Speeddaten met rijke en onzekere senioren$
Grieks bankroet weer een stukje dichterbij op Damrak$
Akkoord over brede coalitie Griekenland$
Verzet blijft na gestes van Kamp$
Waakhond consument verzesvoudigt boete$
Zelfmoordaanslag bij moskee in Afghanistan$
Markten$
‘Huis opeten voor financiering zorg’$
Keurmerkenruzie$
Innovatiegeld voor zwarte gaten$
Nieuwsoverzicht$
Steeds meer volgers keren premier van Italië rug toe$
Watersnood Thailand kost ruim 500 levens$
Jagers van velerlei pluimage op Nationale Wilddiner$
Rusland krijgt nieuw drukmiddel in handen$
Voordeel loonkosten neemt snel af$
Colombia deelt mokerslag uit aan Farc$
CSM en DSM in een biotechbedrijf$
‘Baltic Dry Index kan nog 19% dalen’$
Veilingsite voelt oppotten vakantiegeld$
‘Downgrade’ voor reeks Italiaanse banken$
Verlies voor AEX$
Maatschap Moszkowicz Advocaten ontbonden$
FrieslandCampina doet Filipijns bod gestand$
Dockwise trekt leiding Fairstar naar zich toe$
Brieven$
Van Thillo doet het toch$
Uit eten met het eigen prutje onder de arm$
De rente kan nog heel lang laag blijven$
Controversieel$
Kennis delen als concurrentiekracht$

MCP call log (last 100)

JSON-RPC traffic from MCP clients (Claude, ChatGPT, etc.) hitting /api/mcp/cmpvi9u0200005inkfqi71n9e.
TimeToolUALatencyStatus
2026-06-12 23:40:46_rest:get_articleMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.4; +https://openai.com/gptbot)426 mserror
2026-06-12 23:40:34_rest:search_articlesMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.4; +https://openai.com/gptbot)604 msok
2026-06-08 09:00:43_method:tools/listClaude-User0 mstrace
2026-06-08 09:00:40_method:tools/listClaude-User0 mstrace
2026-06-08 09:00:39_method:resources/listClaude-User0 mstrace
2026-06-08 09:00:35_method:notifications/initializedClaude-User0 mstrace
2026-06-08 09:00:33_method:initializeClaude-User0 mstrace
2026-06-07 14:09:56_method:tools/listClaude-User0 mstrace
2026-06-07 14:09:53_method:resources/listClaude-User0 mstrace
2026-06-07 14:09:51_method:notifications/initializedClaude-User0 mstrace
2026-06-07 14:09:49_method:initializeClaude-User0 mstrace
2026-06-07 14:09:46_method:initializeClaude-User0 mstrace
2026-06-06 12:37:24_method:tools/listClaude-User0 mstrace
2026-06-06 12:37:23_method:tools/listClaude-User0 mstrace
2026-06-06 12:37:18_method:notifications/initializedClaude-User0 mstrace
2026-06-06 12:37:16_method:initializeClaude-User0 mstrace
2026-06-06 12:37:14_method:initializeClaude-User0 mstrace
2026-06-05 11:48:03_method:notifications/initializedClaude-User0 mstrace
2026-06-05 11:47:58_method:initializeClaude-User0 mstrace
2026-06-04 17:53:09_method:tools/listClaude-User0 mstrace
2026-06-04 17:53:05_method:resources/listClaude-User0 mstrace
2026-06-04 17:53:04_method:resources/listClaude-User0 mstrace
2026-06-04 17:53:01_method:notifications/initializedClaude-User0 mstrace
2026-06-04 17:52:59_method:initializeClaude-User0 mstrace
2026-06-04 17:52:56_method:initializeClaude-User0 mstrace
2026-06-04 09:55:08_rest:search_articlesMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36595 msok
2026-06-04 09:01:49_method:tools/listClaude-User0 mstrace
2026-06-04 09:01:49_method:tools/listClaude-User0 mstrace
2026-06-04 09:01:44_method:notifications/initializedClaude-User0 mstrace
2026-06-04 09:01:41_method:initializeClaude-User0 mstrace
2026-06-04 09:01:40_method:initializeClaude-User0 mstrace
2026-06-03 09:21:50_method:tools/listClaude-User0 mstrace
2026-06-03 09:21:49_method:resources/listClaude-User0 mstrace
2026-06-03 09:21:45_method:notifications/initializedClaude-User0 mstrace
2026-06-03 09:21:43_method:initializeClaude-User0 mstrace
2026-06-03 09:21:36_method:initializeClaude-User0 mstrace
2026-06-03 09:21:33_method:initializeClaude-User0 mstrace
2026-06-02 14:12:20_method:tools/listClaude-User0 mstrace
2026-06-02 14:12:18_method:tools/listClaude-User0 mstrace
2026-06-02 14:12:15_method:notifications/initializedClaude-User0 mstrace
2026-06-02 14:12:13_method:initializeClaude-User0 mstrace
2026-06-02 14:12:10_method:initializeClaude-User0 mstrace
2026-06-02 13:00:39_method:tools/callClaude-User0 mstrace
2026-06-02 13:00:39get_articleClaude-User2301 msok
2026-06-02 13:00:32_method:tools/callClaude-User0 mstrace
2026-06-02 13:00:31search_articlesClaude-User588 msok
2026-06-02 11:27:56_method:tools/callClaude-User0 mstrace
2026-06-02 11:27:56get_articleClaude-User2228 msok
2026-06-02 11:27:40_method:tools/callClaude-User0 mstrace
2026-06-02 11:27:39search_articlesClaude-User610 msok
2026-06-02 11:27:36_method:notifications/initializedClaude-User0 mstrace
2026-06-02 11:26:19_method:tools/listClaude-User0 mstrace
2026-06-02 11:26:16_method:tools/listClaude-User0 mstrace
2026-06-02 11:26:14_method:resources/listClaude-User0 mstrace
2026-06-02 11:26:11_method:notifications/initializedClaude-User0 mstrace
2026-06-02 11:26:08_method:initializeClaude-User0 mstrace
2026-06-02 11:26:05_method:tools/listClaude-User0 mstrace
2026-06-02 11:26:02_method:notifications/initializedClaude-User0 mstrace
2026-06-02 11:26:00_method:initializeClaude-User0 mstrace
2026-06-02 10:40:31_method:tools/listClaude-User0 mstrace
2026-06-02 10:40:27_method:resources/listClaude-User0 mstrace
2026-06-02 10:40:25_method:resources/listClaude-User0 mstrace
2026-06-02 10:40:23_method:notifications/initializedClaude-User0 mstrace
2026-06-02 10:40:21_method:initializeClaude-User0 mstrace
2026-06-02 10:33:12_method:tools/listClaude-User0 mstrace
2026-06-02 10:33:11_method:resources/listClaude-User0 mstrace
2026-06-02 10:33:07_method:notifications/initializedClaude-User0 mstrace
2026-06-02 10:33:05_method:initializeClaude-User0 mstrace
2026-06-02 10:21:37_method:tools/listClaude-User0 mstrace
2026-06-02 10:21:37_method:tools/listClaude-User0 mstrace
2026-06-02 10:21:31_method:notifications/initializedClaude-User0 mstrace
2026-06-02 10:21:29_method:initializeClaude-User0 mstrace
2026-06-02 10:14:52_method:tools/listClaude-User0 mstrace
2026-06-02 10:14:50_method:resources/listClaude-User0 mstrace
2026-06-02 10:14:47_method:notifications/initializedClaude-User0 mstrace
2026-06-02 10:14:45_method:initializeClaude-User0 mstrace
2026-06-02 09:46:21_method:tools/listClaude-User0 mstrace
2026-06-02 09:46:18_method:tools/listClaude-User0 mstrace
2026-06-02 09:46:17_method:resources/listClaude-User0 mstrace
2026-06-02 09:46:13_method:notifications/initializedClaude-User0 mstrace
2026-06-02 09:46:11_method:initializeClaude-User0 mstrace
2026-06-02 09:46:07_method:tools/listClaude-User0 mstrace
2026-06-02 09:46:04_method:notifications/initializedClaude-User0 mstrace
2026-06-02 09:46:01_method:initializeClaude-User0 mstrace
2026-06-02 08:47:00_method:tools/listClaude-User0 mstrace
2026-06-02 08:46:58_method:resources/listClaude-User0 mstrace
2026-06-02 08:46:55_method:notifications/initializedClaude-User0 mstrace
2026-06-02 08:46:53_method:initializeClaude-User0 mstrace
2026-06-02 08:46:50_method:tools/listClaude-User0 mstrace
2026-06-02 08:46:47_method:notifications/initializedClaude-User0 mstrace
2026-06-02 08:46:45_method:initializeClaude-User0 mstrace
2026-06-01 18:00:03_method:tools/listClaude-User0 mstrace
2026-06-01 18:00:01_method:resources/listClaude-User0 mstrace
2026-06-01 17:59:58_method:notifications/initializedClaude-User0 mstrace
2026-06-01 17:59:57_method:initializeClaude-User0 mstrace
2026-06-01 17:59:53_method:tools/listClaude-User0 mstrace
2026-06-01 17:59:50_method:notifications/initializedClaude-User0 mstrace
2026-06-01 17:59:49_method:initializeClaude-User0 mstrace

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.