PHPackages                             brosua/webmcp - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. brosua/webmcp

ActiveTypo3-cms-extension

brosua/webmcp
=============

WebMCP integration: exposes TYPO3 forms and content as in-browser AI-agent tools.

0.1.0(yesterday)00GPL-2.0-or-later

Since Jul 19Compare

[ Source](https://github.com/brosua/typo3-webmcp)[ Packagist](https://packagist.org/packages/brosua/webmcp)[ Docs](https://typo3.org)[ RSS](/packages/brosua-webmcp/feed)WikiDiscussions Synced today

READMEChangelog (1)Dependencies (2)Versions (2)Used By (0)

WebMCP for TYPO3 (experimental PoC)
===================================

[](#webmcp-for-typo3-experimental-poc)

[![TYPO3 14](https://camo.githubusercontent.com/b17cdbb3ed3b3297e9fa8414009bf3cdeeae9865e4937ecd3e09bd23ae6d8290/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5459504f332d31342d6f72616e67652e7376673f7374796c653d666c61742d737175617265266c6f676f3d7479706f33)](https://get.typo3.org/14)[![Latest Stable Version](https://camo.githubusercontent.com/b48a2421fb55677b171f315ff3e9d9f4e8ce227f090c74223b9f03d84559a00b/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f62726f7375612f7765626d63703f7374796c653d666c61742d737175617265)](https://packagist.org/packages/brosua/webmcp)[![License](https://camo.githubusercontent.com/a7f0a83bab43dcbf98aa853c750cecbf381540802b500fd4853e1cf1653bd83e/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f62726f7375612f7765626d63703f7374796c653d666c61742d737175617265)](https://packagist.org/packages/brosua/webmcp)[![TER](https://camo.githubusercontent.com/5b22c5b8d87693e3c04d5c98ad0f1b9b05755e39a282e6fde215aeab2f6a8bd4/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5445522d7479706f335f5f7765626d63702d677265656e3f7374796c653d666c61742d737175617265)](https://extensions.typo3.org/extension/typo3_webmcp)

Exposes TYPO3 frontend **forms** (EXT:form, Extbase `` and any ``) and **page content** as in-browser [WebMCP](https://github.com/webmachinelearning/webmcp) tools via `document.modelContext`, so browser-based AI agents can discover and invoke them.

> **Status:** experimental proof of concept. Requires a native WebMCP implementation (Chrome 149+). Without native support the module does nothing.

What the extension provides
---------------------------

[](#what-the-extension-provides)

ComponentPurpose**Middleware** (`WebMcpInjectionMiddleware`)Registers `webmcp.js` as ES module via TYPO3 AssetCollector**webmcp.js**Registers read-only content tools on `document.modelContext` and fires `webmcp:ready`**ViewHelper** (`Form\ToolAttributesViewHelper`)Builds declarative `tool*` attributes from `renderingOptions.webmcp` for EXT:form**Site Set** (`brosua/webmcp`)Overrides the EXT:form frontend template so the `` tag carries the declarative attributes**Form editor config**Inspector fields for `toolname` / `tooldescription` in the backend form editorRequirements
------------

[](#requirements)

- TYPO3 v14.3+
- A browser with a native WebMCP implementation (Chrome 149+)

Content tools
-------------

[](#content-tools)

Registered automatically on every page. All are read-only (DOM only):

ToolInputEffect`page-get-summary``{}`Title, meta description, language, URL, heading outline`page-find-text``{ query: string }`Finds text, scrolls into view, highlights`page-get-content``{ selector?: string }`Structured main content (paragraphs, lists, links) as JSON`page-list-actions``{}`Available tools and primary navigation linksForm tools (declarative)
------------------------

[](#form-tools-declarative)

A `` becomes a tool when it carries the `toolname` attribute. The browser's native WebMCP implementation builds the tool from the form's controls. This extension only **renders the declarative attributes** — the native implementation handles everything else.

### Extbase ``

[](#extbase-fform)

```

```

### EXT:form (YAML)

[](#extform-yaml)

```
type: Form
identifier: contact
label: Contact
prototypeName: standard
renderingOptions:
  webmcp:
    toolname: contact
    tooldescription: 'Send us a message'
    autosubmit: false
renderables:
  - type: Page
    identifier: page-1
    renderables:
      - type: Text
        identifier: name
        label: Name
        properties:
          fluidAdditionalAttributes:
            toolparamdescription: 'Full name of the sender'
```

The same settings are available as inspector fields in the backend form editor.

### Plain HTML forms

[](#plain-html-forms)

```

  Subscribe

```

Extension point: register your own tools (JS)
---------------------------------------------

[](#extension-point-register-your-own-tools-js)

`webmcp.js` fires `webmcp:ready` once `document.modelContext` is available and the built-in tools are registered. The detail (also stored on `document.__webmcpReadyDetail`) carries `{ modelContext, register }`:

```
document.addEventListener('webmcp:ready', (e) => {
  const { modelContext } = e.detail;
  modelContext.registerTool({
    name: 'toggle-theme',
    description: 'Switch between light and dark mode.',
    annotations: { idempotentHint: true },
    inputSchema: { type: 'object', properties: { mode: { enum: ['light', 'dark'] } } },
    execute({ mode }) {
      document.documentElement.dataset.theme = mode;
      return { content: [{ type: 'text', text: `theme=${mode}` }] };
    },
  });
});
```

Known limitations
-----------------

[](#known-limitations)

- Not a production feature; APIs mirror the WebMCP draft and may change.
- **A native WebMCP browser is required** (Chrome 149+). Without it the `tool*` attributes are rendered but nothing registers them (no shim).

###  Health Score

32

—

LowBetter than 69% of packages

Maintenance100

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity23

Early-stage or recently created project

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

1d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/24011a38b7afd721989242c7ce2e457eebe0023c0de9db41d2f460c0bf136dc6?d=identicon)[brosua](/maintainers/brosua)

### Embed Badge

![Health badge](/badges/brosua-webmcp/health.svg)

```
[![Health](https://phpackages.com/badges/brosua-webmcp/health.svg)](https://phpackages.com/packages/brosua-webmcp)
```

###  Alternatives

[friendsoftypo3/content-blocks

TYPO3 CMS Content Blocks - Content Types API | Define reusable components via YAML

103519.9k57](/packages/friendsoftypo3-content-blocks)[netresearch/rte-ckeditor-image

Image support in CKEditor for the TYPO3 ecosystem - by Netresearch

611.1M8](/packages/netresearch-rte-ckeditor-image)[pagemachine/typo3-formlog

Form log for TYPO3

23238.6k8](/packages/pagemachine-typo3-formlog)[typo3/cms-fluid-styled-content

TYPO3 CMS Fluid Styled Content - Fluid templates for TYPO3 content elements.

229.4M400](/packages/typo3-cms-fluid-styled-content)[typo3/cms-seo

TYPO3 CMS SEO - SEO features including specific fields for SEO purposes, rendering of HTML meta tags and sitemaps.

168.9M157](/packages/typo3-cms-seo)[typo3/cms-form

TYPO3 CMS Form - Flexible TYPO3 frontend form framework that comes with a backend editor interface.

147.6M268](/packages/typo3-cms-form)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
