webmcp — das Browser-MCP für Ihr TYPO3.
Web Model Context Protocol Server, der Tools wie Suche, Navigation und Page-Content direkt über navigator.modelContext bereitstellt. KI-Agenten nutzen sie unmittelbar im Browser, mit SecureContext-Checks und CSRF-Nonce — keine externe API nötig.
Wenn der KI-Agent nicht weiterkommt, weil er nichts sieht.
Mit webmcp
- Standardisiertes
navigator.modelContext-API direkt im Browser - Built-in-Tools: search, navigation, page-content
- Eigene Tools registrierbar via
ToolProviderInterface - SecureContext + CSRF-Nonce, FE-Group-bewusst
Bisher
- KI-Agenten müssen externe REST-/GraphQL-APIs lernen
- Auth-Tokens, Rate Limits, Caching-Probleme
- Tools sind nicht im aktuellen Browser-Kontext verfügbar
- Jede Site implementiert ein eigenes Tool-Vokabular
Vier Bausteine
Optional: Form-Tool
Mit typo3/cms-form als optionaler Dependency wird auch Formular-Submission als Tool exponiert — KI-Agenten können direkt Anfragen einreichen.
Sicherheit by default
SecureContext-Pflicht (HTTPS), CSRF-Nonce in jeder Tool-Anfrage, Access-Control über TYPO3-FE-Groups respektiert.
Custom Tool Provider
Eigene Tools über ToolProviderInterface registrieren — z.B. um shop-spezifische Such-Funktionen oder Custom-Forms freizugeben.
Built-in Tools
search, navigation, page-content — sofort einsatzbereit nach der Installation.
Konfiguration
Site Set aktivieren
Binden Sie das Site Set moselwal/webmcp in Ihre Site-Konfiguration ein.
Settings
In config/sites/<site>/settings.yaml:
webmcp:
enabled: true
apiBasePath: '/_webmcp/api'
tools:
search:
enabled: true
maxResults: 20
navigation:
enabled: true
maxDepth: 4
page-content:
enabled: trueEingebaute Tools
Alle Tools respektieren TYPO3-Zugriffsrechte (fe_group, starttime, endtime, hidden). Es werden nur Inhalte ausgeliefert, die für den aktuellen Besucher (anonym oder eingeloggt) sichtbar sind.
| Tool | Beschreibung | Input |
|---|---|---|
search | Volltextsuche über Seiten und Inhaltselemente | { query: string, limit?: int } |
navigation | Seitenbaum als strukturiertes JSON | { rootPageId?: int, maxDepth?: int } |
page-content | Strukturierter Inhalt einer einzelnen Seite | { pageId?: int, slug?: string } |
Eigene Tools entwickeln
1. ToolProvider implementieren
<?php
use Moselwal\WebMcp\Domain\Contract\ToolProviderInterface;
use Moselwal\WebMcp\Domain\Model\ToolAnnotations;
use Moselwal\WebMcp\Domain\Model\ToolDefinition;
final class ShopToolProvider implements ToolProviderInterface
{
public function getIdentifier(): string
{
return 'shop';
}
public function getTools(): array
{
return [
new ToolDefinition(
name: 'product-search',
description: 'Search products in the shop',
inputSchema: [
'type' => 'object',
'properties' => [
'query' => ['type' => 'string'],
'category' => ['type' => 'string'],
],
'required' => ['query'],
],
annotations: new ToolAnnotations(readOnlyHint: true),
),
];
}
}
2. ToolHandler implementieren
<?php
use Moselwal\WebMcp\Domain\Contract\ToolHandlerInterface;
use Moselwal\WebMcp\Domain\Model\ToolResult;
use Psr\Http\Message\ServerRequestInterface;
final class ProductSearchHandler implements ToolHandlerInterface
{
public function getToolName(): string
{
return 'product-search';
}
public function execute(array $input, ServerRequestInterface $request): ToolResult
{
// Produkt-Suche implementieren ...
return ToolResult::success(['products' => $results]);
}
}
Beide Klassen werden automatisch über _instanceof-Tags in der Services.yaml registriert — keine zusätzliche Konfiguration nötig.
Wie es funktioniert
- Beim Rendering einer Seite injiziert die Extension JavaScript über den
AssetCollector. - Das JavaScript registriert alle aktivierten Tools über
navigator.modelContext.registerTool(). - Ruft ein KI-Agent ein Tool auf, sendet der Browser einen
POST-Request an/_webmcp/api/{toolName}. - Die PSR-15-Middleware validiert Request (CSRF-Nonce, Input) und delegiert an den passenden ToolHandler.
- Das Ergebnis wird als JSON zurückgegeben.
Voraussetzungen
- TYPO3 13.4 oder 14.0
- PHP 8.2 oder höher
- HTTPS (SecureContext erforderlich)
Quellcode & Doku
TYPO3 Extension Repository
Nicht im offiziellen TER — Installation ausschließlich über Composer.
GitLab (Source of Truth)
Primäres Repository inkl. CI/CD und Composer-Package-Registry.
GitHub
Mirror auf GitHub mit Issues und PRs (Platzhalter — vor Publish verifizieren).
Hilfe bei der Integration?
webmcp ist Open Source und für Selbst-Integratoren gedacht. Wenn Sie webmcp für Ihren spezifischen Use Case (eigene Tools, kommerzielle KI-Agenten-Anbindung, Custom-Permissions) integrieren wollen, helfen wir gegen Tagessatz oder als Teil unseres CMS as a Service.
Oder direkt schreiben: kontakt@moselwal.de