aimiles · MCP builder for publishers

Press Gazette

https://pressgazette.co.uk/ · slug pressgazette-co-uk

MCP server

URL: https://builder-one-delta.vercel.app/api/mcp/cmpoev6d00000g8n18q4yvbb2
Card: /api/publishers/cmpoev6d00000g8n18q4yvbb2/card · Manifest: /.well-known/mcp.json?slug=pressgazette-co-uk
Claude Desktop / ChatGPT install snippet
{
  "mcpServers": {
    "pressgazette-co-uk": {
      "transport": {
        "type": "streamable-http",
        "url": "https://builder-one-delta.vercel.app/api/mcp/cmpoev6d00000g8n18q4yvbb2"
      }
    }
  }
}

Retrieval (hybrid search) & latency SLO

Semantic index: 3 / 19519 articles embedded (gap-fill: npx tsx --env-file=.env scripts/backfill-embeddings.ts pressgazette-co-uk; unembedded articles are still searchable via full-text)
Last 7 days · search p95: no calls yet (target < 300 ms)

Ingestion

Last job (sync): SUCCEEDED · discovered 0 · ingested 51 · failed 0

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://oasy.pressgazette.co.uk/api/v1/articles/search?query=...
  • Get article: GET https://oasy.pressgazette.co.uk/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://oasy.pressgazette.co.uk/.well-known/agent-card.json
  • JSON-RPC: POST https://oasy.pressgazette.co.uk/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 19519)

Set policy on all articles:
TitlePublishedPolicyPrice (PAYWALL)
Home Page$
Dale Vince wins damages on appeal over &#8216;unfair&#8217; Daily Mail headline juxtaposition2026-07-15$
First-party data mastery: Tips for publishers from Norway&#8217;s Schibsted Media2026-07-15$
Future of Media Awards shortlists celebrate excellence in digital news2026-07-14$
Top-paid BBC journalists 2025/26: Stephen Nolan and Laura Kuenssberg top list2026-07-14$
&#8216;Petulant&#8217; Harry statement after Mail hacking trial was &#8216;beyond the pale&#8217;2026-07-14$
Claude&#8217;s ability to remix &#8216;liquid content&#8217; is &#8216;serious challenge for news media&#8217;2026-07-14$
Take a Break fiction magazine pauses commissions and starts using AI2026-07-10$
News diary 13-19 July: World Cup final, Labour expected to confirm Burnham as PM, BBC Proms2026-07-10$
AI in journalism: Live tracker of scandals and mistakes2026-07-10$
Top 50 English-language news sites in the world: Indian news sites see biggest declines in June2026-07-10$
Top 50 US news websites: Traffic decline at 90% of newsbrands in June2026-07-10$
Print magazine boosts revenue for Youtube newsbrand TLDR2026-07-09$
Journalist fired by Clickout Media saw robot reporter take over their byline2026-07-09$
&#8216;Travesty&#8217; if publishers don&#8217;t take up chance to opt out of Google AI Overviews2026-07-08$
The 53 Mail articles vindicated by Prince Harry privacy judgment2026-07-07$
Paul Dacre: Prince Harry privacy case ‘conspiracy to destroy paper’2026-07-07$
Prince Harry privacy trial judgment: &#8216;Overwhelming victory&#8217; for Daily Mail2026-07-07$
ITV News to remain distinct from Sky News up to &#8216;at least&#8217; 2030 following merger2026-07-07$
News diary 6-12 July: Prince Harry vs Mail judgement, Labour leadership nominations, World Cup quarterfinals2026-07-06$
Video monetisation mastery: Tips for publishers from JWX2026-07-06$
How Le Monde is &#8216;fiercely defending&#8217; journalism from bad bots2026-07-06$
The Canary halts daily print edition after two weeks as it is &#8216;debanked&#8217;2026-07-03$
Who&#8217;s suing AI and who&#8217;s signing: Microsoft signs Australian Copilot deal, US local newspapers sue2026-07-03$
Google AI Overviews give &#8216;incredibly worrying&#8217; prominence to suicide method2026-07-02$
CMA targets Apple and Google app stores: &#8216;Good news for publishers&#8217;2026-07-02$
Daily Mail sued over &#8216;systematic&#8217; lifting of social media images2026-07-02$
Substack reveals newsletters with most paying subscribers in UK2026-06-30$
Spurious copyright claim sees second Press Gazette story removed from Google search2026-06-30$
Guardian to create 55 jobs in digital and global push2026-06-30$
Court sets precedent on source protection in Westgaph-Mill Media case2026-06-30$
Journalism job cuts in 2026 tracked: Minnesota Star Tribune to cut 15% of staff2026-06-04$
Youtube boss says publisher paywall integration coming &#8216;very soon&#8217;2026-06-04$
Youtube boss says publisher paywall integration coming &#8216;very soon&#8217;2026-06-04$
Press Gazette meets the UK civil servant trying to regulate Google2026-06-04$
AI licensing coalition SPUR in huge expansion2026-06-03$
UK regulator tells Google to let publishers opt out of AI Overviews2026-06-03$
Publishing in a warzone at Lebanon&#8217;s L&#8217;Orient-Le Jour2026-06-02$
Cost cuts and new donors help Full Fact weather loss of £1m Google funding2026-06-02$
OpenAI not planning to share advertising revenue with publishers2026-06-02$
Mandelson and Streeting wooed News UK bosses days before general election2026-06-02$
New York Times chief: How and why publishers should fight AI &#8216;tsunami&#8217;2026-06-02$
Economist president Luke Bradley-Jones to become group CEO2026-05-27$
Reuters releases first documentary in bid to reach new audiences2026-05-27$
Journalists using AI to save time but don&#8217;t want AI-generated pitches or press releases2026-05-27$
What Google&#8217;s expanded AI features mean for publishers2026-05-26$
Who are the UK&#8217;s political editors? From broadcast to print2026-05-26$
Goalhanger invests in creators via new Ventures division2026-05-26$
Dorset newsbrand relaunches after acquiring assets of defunct magazine2026-05-26$
How niche UK-based B2B brand became one of most cited in world by LLMs2026-05-26$

MCP call log (last 100)

JSON-RPC traffic from MCP clients (Claude, ChatGPT, etc.) hitting /api/mcp/cmpoev6d00000g8n18q4yvbb2.
TimeToolUALatencyStatus
2026-07-04 19:25:32_method:tools/listClaude-User0 mstrace
2026-07-04 19:25:31_method:tools/listClaude-User0 mstrace
2026-07-04 19:25:29_method:tools/listClaude-User0 mstrace
2026-07-04 19:25:25_method:resources/listClaude-User0 mstrace
2026-07-04 19:25:22_method:notifications/initializedClaude-User0 mstrace
2026-07-04 19:25:19_method:initializeClaude-User0 mstrace
2026-07-04 19:25:10_method:tools/listClaude-User0 mstrace
2026-07-04 19:25:06_method:tools/listClaude-User0 mstrace
2026-07-04 19:25:04_method:resources/listClaude-User0 mstrace
2026-07-04 19:24:59_method:notifications/initializedClaude-User0 mstrace
2026-07-04 19:24:55_method:initializeClaude-User0 mstrace
2026-07-04 19:23:47_method:tools/listClaude-User0 mstrace
2026-07-04 19:23:40_method:resources/listClaude-User0 mstrace
2026-07-04 19:23:40_method:resources/listClaude-User0 mstrace
2026-07-04 19:23:37_method:notifications/initializedClaude-User0 mstrace
2026-07-04 19:23:36_method:initializeClaude-User0 mstrace
2026-07-04 19:23:35_method:initializeClaude-User0 mstrace
2026-07-04 19:23:35_method:initializeClaude-User0 mstrace
2026-07-04 19:23:34_method:initializeClaude-User0 mstrace
2026-07-04 12:27:04_method:resources/listClaude-User0 mstrace
2026-07-04 12:27:03_method:tools/listClaude-User0 mstrace
2026-07-04 12:27:00_method:notifications/initializedClaude-User0 mstrace
2026-07-04 12:26:58_method:initializeClaude-User0 mstrace
2026-07-04 12:26:56_method:initializeClaude-User0 mstrace
2026-07-03 23:15:35_method:tools/listClaude-User0 mstrace
2026-07-03 23:15:31_method:resources/listClaude-User0 mstrace
2026-07-03 23:15:30_method:resources/listClaude-User0 mstrace
2026-07-03 23:15:27_method:notifications/initializedClaude-User0 mstrace
2026-07-03 23:15:25_method:initializeClaude-User0 mstrace
2026-07-03 23:15:23_method:initializeClaude-User0 mstrace
2026-07-03 20:10:12_method:resources/listClaude-User0 mstrace
2026-07-03 20:10:11_method:tools/listClaude-User0 mstrace
2026-07-03 20:10:08_method:notifications/initializedClaude-User0 mstrace
2026-07-03 20:10:05_method:initializeClaude-User0 mstrace
2026-07-03 20:10:03_method:initializeClaude-User0 mstrace
2026-07-03 09:56:34_method:resources/listClaude-User0 mstrace
2026-07-03 09:56:31_method:tools/listClaude-User0 mstrace
2026-07-03 09:56:31_method:tools/listClaude-User0 mstrace
2026-07-03 09:56:26_method:notifications/initializedClaude-User0 mstrace
2026-07-03 09:56:23_method:initializeClaude-User0 mstrace
2026-07-03 09:56:21_method:initializeClaude-User0 mstrace
2026-07-02 14:04:00_method:tools/listClaude-User0 mstrace
2026-07-02 14:03:58_method:resources/listClaude-User0 mstrace
2026-07-02 14:03:55_method:notifications/initializedClaude-User0 mstrace
2026-07-02 14:03:53_method:initializeClaude-User0 mstrace
2026-07-02 14:03:51_method:initializeClaude-User0 mstrace
2026-07-02 08:54:25_method:tools/listClaude-User0 mstrace
2026-07-02 08:54:23_method:resources/listClaude-User0 mstrace
2026-07-02 08:54:19_method:notifications/initializedClaude-User0 mstrace
2026-07-02 08:54:16_method:initializeClaude-User0 mstrace
2026-07-02 08:54:16_method:tools/listClaude-User0 mstrace
2026-07-02 08:54:12_method:tools/listClaude-User0 mstrace
2026-07-02 08:54:09_method:notifications/initializedClaude-User0 mstrace
2026-07-02 08:54:07_method:initializeClaude-User0 mstrace
2026-07-02 08:54:05_method:initializeClaude-User0 mstrace
2026-07-01 21:08:16_method:tools/listClaude-User0 mstrace
2026-07-01 21:08:13_method:tools/listClaude-User0 mstrace
2026-07-01 21:08:12_method:resources/listClaude-User0 mstrace
2026-07-01 21:08:08_method:notifications/initializedClaude-User0 mstrace
2026-07-01 21:08:05_method:initializeClaude-User0 mstrace
2026-07-01 21:07:44_method:tools/listClaude-User0 mstrace
2026-07-01 21:07:43_method:resources/listClaude-User0 mstrace
2026-07-01 21:07:39_method:tools/listClaude-User0 mstrace
2026-07-01 21:07:38_method:tools/listClaude-User0 mstrace
2026-07-01 21:07:33_method:notifications/initializedClaude-User0 mstrace
2026-07-01 21:07:31_method:initializeClaude-User0 mstrace
2026-07-01 21:07:29_method:initializeClaude-User0 mstrace
2026-07-01 11:20:17_method:tools/listClaude-User0 mstrace
2026-07-01 11:20:14_method:tools/listClaude-User0 mstrace
2026-07-01 11:20:12_method:resources/listClaude-User0 mstrace
2026-07-01 11:20:08_method:notifications/initializedClaude-User0 mstrace
2026-07-01 11:20:06_method:initializeClaude-User0 mstrace
2026-07-01 11:20:04_method:initializeClaude-User0 mstrace
2026-07-01 08:30:57_method:tools/listClaude-User0 mstrace
2026-07-01 08:30:55_method:resources/listClaude-User0 mstrace
2026-07-01 08:30:51_method:notifications/initializedClaude-User0 mstrace
2026-07-01 08:30:49_method:initializeClaude-User0 mstrace
2026-07-01 08:30:47_method:initializeClaude-User0 mstrace
2026-06-30 23:30:55_method:tools/listClaude-User0 mstrace
2026-06-30 23:30:52_method:resources/listClaude-User0 mstrace
2026-06-30 23:30:50_method:notifications/initializedClaude-User0 mstrace
2026-06-30 23:30:47_method:initializeClaude-User0 mstrace
2026-06-30 23:30:45_method:tools/listClaude-User0 mstrace
2026-06-30 23:30:42_method:tools/listClaude-User0 mstrace
2026-06-30 23:30:41_method:resources/listClaude-User0 mstrace
2026-06-30 23:30:37_method:notifications/initializedClaude-User0 mstrace
2026-06-30 23:30:34_method:initializeClaude-User0 mstrace
2026-06-30 23:30:00_method:tools/listClaude-User0 mstrace
2026-06-30 23:30:00_method:tools/listClaude-User0 mstrace
2026-06-30 23:29:55_method:notifications/initializedClaude-User0 mstrace
2026-06-30 23:29:52_method:initializeClaude-User0 mstrace
2026-06-30 23:29:42_method:tools/listClaude-User0 mstrace
2026-06-30 23:29:42_method:tools/listClaude-User0 mstrace
2026-06-30 23:29:37_method:notifications/initializedClaude-User0 mstrace
2026-06-30 23:29:34_method:initializeClaude-User0 mstrace
2026-06-30 23:29:33_method:initializeClaude-User0 mstrace
2026-06-30 18:48:06_method:resources/listClaude-User0 mstrace
2026-06-30 18:48:03_method:tools/listClaude-User0 mstrace
2026-06-30 18:48:02_method:tools/listClaude-User0 mstrace
2026-06-30 18:47:59_method:notifications/initializedClaude-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.