Warning
Experimental. This extension is experimental and not yet ready for production use. It is built on top of WebMCP, which is itself an experimental, early-stage proposal. Both the underlying specification and this extension's API may change or break at any time without notice. Use at your own risk.
Introduction
What is WebMCP?
WebMCP exposes page-scoped tools to AI agents through the browser's
ModelContext interface (document.modelContext, with a fallback to
navigator.modelContext used by Chrome's origin trial). An agent operating
the page can discover these tools and call them – for example to search
content, navigate to a section, or open a pre-filled contact e-mail.
What this extension does
The extension turns tool definitions into a declarative concern:
- A tool is a small PHP class implementing
\Neoblack\. It returns aWebmcp\ Tool\ Tool Provider Interface Manifestdescribing the tool's name, JSON schema and behaviour. - Behaviour is expressed through one of four primitives –
navigate,search,mailtoandstatic– whose generic interpreters live in a single JavaScript runtime (webmcp.). No per-tool JavaScript is required.js - A
Tool(a TYPO3 data processor) collects every registered provider into one JSON block per page; the runtime reads it and registers the tools.Manifest Processor
Because tools are pure server-side configuration, other extensions and site packages can add their own without touching JavaScript. For behaviour that no primitive covers, a tool may point at its own ES module (escape hatch).
Privacy-preserving analytics
An optional first-party ingest endpoint (/webmcp-event) logs one row per
tool call – only the tool name and a coarse, self-reported client hint, never
free text, cookies or IP. A backend module visualises the usage. Analytics can
be disabled in the extension configuration.
Feature detection & progressive enhancement
Everything degrades gracefully: without a ModelContext implementation,
without configuration, or with a malformed manifest, nothing is registered and
regular visitors are unaffected.