WebMCP

This site implements the Web Model Context API, so an AI agent in the browser can call tools instead of scraping the rendered page. Everything is generated at build time and served as static files. There is no server and no key.

The tools

Registered on every page of the site. Individual pages can add their own on top, as both datasets below do.

Tool What it does
search_site Keyword search across posts, projects, art and pages
list_posts Posts newest first, with paging
get_post Full markdown of one post by slug
list_projects Playground projects, optionally filtered by tag
list_art Art pieces
get_current_page Title, headings, links and text of the page on screen
get_contact_options Booking link, LinkedIn, X, GitHub, shop, llms.txt

Using it without WebMCP

The tools need a browser that exposes document.modelContext. If yours does not, the same data is plain JSON over HTTP and needs no client at all:

Everything is read-only. All tools are annotated readOnlyHint, and the ones returning ledger prose or page text carry untrustedContentHint, since that text comes from news sources rather than from me.

Datasets

Two of them. Both are scoped to their own page: WebMCP is per-document, so an agent reading a blog post should not be offered nine tools about German insolvencies and humanoid robotics. They register on the pages below and nowhere else. An agent elsewhere finds both in the datasets array of the manifest, which carries the data URL, and can either fetch that file directly or navigate to the page and pick up the tools.

The insolvency ledger

Germany bites the dust is a running ledger of 135 named German company insolvencies since February 2025, 53,970 jobs between them, each with a published headcount and a linked source. Four tools query it, and the whole dataset is one file:

/webmcp/insolvencies.json

Tool What it does Arguments
insolvency_summary Totals and breakdowns: cases, jobs, how many have stopped trading, and the split by sector, state and month. Start here. None
list_insolvencies The cases themselves, newest first, paged. Filter by sector, state, date range, minimum headcount, or whether the business has stopped. sector, state, since, until, minEmployees, ceasedTrading, sortBy, limit, offset
get_insolvency The full record for one company, including the narrative detail, what the headcount counts, and the source link. company
insolvency_trend The national monthly series from the IWH-Insolvenztrend: filings and jobs affected across all German partnerships and corporations. None

What the data does and does not claim

The humanoid supply chain watchlist

Humanoid supply chain prices and fact-checks 17 companies across three tiers: the component makers who sell to every assembler, the rare-earth and critical-minerals names they get confused with, and the magnet layer in between. 13 are listed; the rest are private and are carried because they move the thesis, not because you can buy them. Five tools query it, and the whole dataset is one file:

/webmcp/robotics.json

Tool What it does Arguments
robotics_summary The three tiers, what each one is, how many names are listed against how many are private, and every correlation to REMX and to the robotics basket. Start here. None
list_robotics_companies The priced rows: last close, one day, one month, year to date, one year and how far below the 52-week high. Filter by tier or to listed names, sort by any return column. tier, listedOnly, sortBy
get_robotics_company One company in full: price, returns, correlations, the verified figures, the one thing to watch, and on request the written analysis. company, detail
robotics_briefing The dated running log, newest first, plus the catalysts worth watching and which way each one cuts. entries
robotics_claim_audit The fact-check: claims made about these companies in viral posts and the press, each with a verdict and what the filings say. query

What the data does and does not claim