Oasy · 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: 10323 ms (target < 300 ms) · search p50 10323 ms over 1 calls · all tools p50/p95 10323/10323 ms over 1 calls

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…

Book catalog (PDF upload)

Upload a book PDF (or a markdown/plain-text manuscript). It's split into chapter-level units — via the PDF's table of contents when present, otherwise by chapter headings — and each chapter is served like any article: search, MCP/A2A, paywall, and payments all apply. The author contract checkboxes set the rights ceiling from the underlying book contract; chapters can never be licensed beyond it.
Author contract permits
Loading catalog…

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.
No catalog tools defined.

Articles (50 shown of 296603)

Set policy on all articles:
TitlePublishedPolicyPrice (PAYWALL)
Jonge professionals uit Generatie Y kunnen wel degelijk loyaal zijn aan hun werkgever$
‘Een tekort van ?60.000 dreigde’$
41$
5 mrd$
Schadezaak Lernout & Hauspie in najaar 2016$
Nespresso steekt ruim 400 mln in ondersteunen koffieboeren$
Ordina hernieuwt contract met M&G Group$
Omzet AT&T groeit minder hard$
1,1 mrd$
Nike begint juridisch gevecht met Wal-Mart en H&M$
'Biotech-aandeel is meest rendabel aan S&P'$
Johnson & Johnson steekt $200 mln in ebolavaccin van Crucell$
Opnieuw dochters Swets & Zeitlinger bankroet$
Procter & Gamble haalt de bezem door zijn merken$
Procter & Gamble behoudt patent tandpasta$
Marks & Spencer stelt winstverwachting naar boven bij$
M&S-ceo Bolland heeft 'een uitstekende dag'$
AT&T neemt Mexicaanse telecom over$
AT&T breidt uit op Mexicaanse markt met overname$
Buffett koopt Duracell van Procter & Gamble$
Procter & Gamble zoekt onderdak voor weesmerken$
S&P waardeert Italiaanse banken af$
Alles is eindig — …zeker als het gaat om politiek of economie. Momenteel verkeert de middenklasse in verval. En dat treft de liberale democratie in het hart.$
S&P bevestigt kredietstatus Nederland$
SEC wil verbod S&P op beoordeling commerciële hypotheekobligaties$
S&P somberder over Europese levensverzekeraars$
V&D wil vier maanden geen huur betalen$
AT&T koopt Nextel Mexico voor $ 1,9 mrd$
S&P waardeert Rusland af naar junkstatus$
Overnamespeculatie rond Bang & Olufsen$
Personeel V&D stapt naar de rechter$
Fugro kiest voor Ernst & Young als accountant$
Sterke dollar raakt Procter & Gamble$
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$
Nuon en Eneco pleiten voor vlaktaks op kolen$
Reistips$
IJselijk mooi$

MCP call log (last 100)

JSON-RPC traffic from MCP clients (Claude, ChatGPT, etc.) hitting /api/mcp/cmpvi9u0200005inkfqi71n9e.
TimeToolUALatencyStatus
2026-09-09 06:55:18_rest:search_articlesMozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.110323 msok
2026-09-04 01:54:30_rest:search_articlesMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Amazonbot/0.1; +https://developer.amazon.com/support/amazonbot) Chrome/119.0.6045.214 Safari/537.366028 msok
2026-09-03 23:21:33_rest:search_articlesMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Amazonbot/0.1; +https://developer.amazon.com/support/amazonbot) Chrome/119.0.6045.214 Safari/537.3612875 msok
2026-08-28 05:06:19_rest:search_articlesMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.4; +https://openai.com/gptbot)11546 msok
2026-08-26 05:37:26_rest:search_articlesMozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.111194 msok
2026-08-19 10:34:47_rest:search_articlesMozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.110191 msok
2026-08-08 14:40:59_rest:search_articlesMozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.17289 msok
2026-07-31 16:44:39_rest:search_articlesMozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.110379 msok
2026-07-26 21:54:38_rest:search_articlesMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Amazonbot/0.1; +https://developer.amazon.com/support/amazonbot) Chrome/119.0.6045.214 Safari/537.3611412 msok
2026-07-18 16:06:14_rest:search_articlesMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.4; +https://openai.com/gptbot)6723 msok
2026-07-15 15:54:45_rest:search_articlesMozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.15178 msok
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

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.