You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs(blog): Expand WebMCP section with implementation details and examples
- Correct WebMCP repository link to official webmachinelearning organization
- Add explanation of tool registration across three levels (global, route, service)
- Include complete code example for global WebMCP tool registration with BookStore service
- Document Signal Forms integration with WebMCP via experimentalWebMcpTool option
- Add step-by-step setup guide for provideExperimentalWebMcpForms provider
- Provide comprehensive Signal Form example with validation and WebMCP tool declaration
- Add browser testing section with Chrome flag configuration
- Include console API example for manual tool execution via navigator.modelContextTesting
- Clarify that Angular handles automatic tool deregistration on injector destruction
- Emphasize tool name uniqueness requirement and runtime error handling
@@ -343,44 +343,147 @@ So bleibt das Initial-Bundle schlank, und die Nutzer:innen müssen trotzdem nich
343
343
## WebMCP: KI-Agenten in Web-Apps integrieren
344
344
345
345
Ein Thema, das uns in den nächsten Jahren noch intensiv begleiten wird, ist die Integration von KI-Agenten in unsere Anwendungen.
346
-
Mit dem aufkommenden Webstandard **[WebMCP](https://github.com/MiguelsPizza/WebMCP)** lässt sich aus einer Webseite heraus dem Browser – und damit angeschlossenen KI-Agenten – ein Set von **Tools** zur Verfügung stellen.
347
-
348
-
Tools werden über die neue Browser-API `navigator.modelContext.registerTool()` registriert.
349
-
Externe Agenten wie Claude, ChatGPT-Erweiterungen oder Gemini können diese Tools entdecken und auf Wunsch der Nutzer:innen aufrufen.
346
+
Mit dem aufkommenden Webstandard **[WebMCP](https://github.com/webmachinelearning/webmcp)** (Web Model Context Protocol) lässt sich aus einer Webseite heraus dem Browser – und damit angeschlossenen KI-Agenten – ein Set von **Tools** zur Verfügung stellen.
347
+
Statt dass ein Agent die DOM-Struktur einer Seite analysieren und Klicks simulieren muss, kann eine Web-App ihre Funktionalität als strukturierte Tools deklarieren.
348
+
Externe Agenten wie Gemini, Claude oder ChatGPT-Erweiterungen können diese Tools entdecken und auf Wunsch der Nutzer:innen aufrufen.
350
349
Damit verschmelzen Web-App und Agent: Aktionen, die sonst über die UI ausgeführt werden, können auch direkt aus einem Chat-Kontext heraus ausgelöst werden.
351
350
352
-
Angular 22 bringt dafür erste Bausteine mit, um diese Welt sauber an die Komponenten- und Service-Architektur anzudocken:
351
+
Angular 22 bringt experimentelle Unterstützung für WebMCP mit und dockt das Konzept sauber an die bestehende Komponenten- und Service-Architektur an.
352
+
Tools lassen sich auf drei Ebenen registrieren:
353
+
354
+
-**Global** für die gesamte Anwendung (über `provideExperimentalWebMcpTools()` in der App-Config)
355
+
-**Pro Route** (über `provideExperimentalWebMcpTools()` in den Route-Providers)
356
+
-**In Services** (über `declareExperimentalWebMcpTool()` im Injection Context)
357
+
358
+
Angular übernimmt dabei das Lifecycle-Handling: Tools werden automatisch wieder abgemeldet, wenn der zugehörige Injector zerstört wird.
359
+
Wichtig ist, dass Tool-Namen eindeutig sein müssen – eine doppelte Registrierung führt zu einem Laufzeitfehler.
353
360
354
-
- Tools können direkt in Services oder Komponenten definiert und über die Dependency Injection bereitgestellt werden.
355
-
- Das Lifecycle-Handling übernimmt Angular: Tools werden automatisch wieder abgemeldet, wenn die zugehörige Komponente zerstört wird.
361
+
Ein einfaches Beispiel für ein globales Tool:
356
362
357
363
```ts
358
-
// TODO: konkretes Codebeispiel und Quelle prüfen (Doku/PR-Link), sobald die offizielle Doku verfügbar ist
Der `execute`-Callback wird im Injection Context des zugehörigen Injectors ausgeführt – wir können also direkt `inject()` verwenden, um auf Services zuzugreifen.
395
+
396
+
### Signal Forms als WebMCP-Tools
362
397
363
398
Besonders charmant ist die Brücke zwischen Signal Forms und WebMCP:
364
-
Mit der Funktion **`experimentalWebMcpTool`** lässt sich ein Formular deklarativ als WebMCP-Tool registrieren.
365
-
Angular leitet das JSON-Schema automatisch aus der Form-Definition ab – inklusive aller Validierungsregeln.
399
+
Mit der Option `experimentalWebMcpTool` in der `form()`-Funktion lässt sich ein Formular deklarativ als WebMCP-Tool registrieren.
400
+
Angular leitet das JSON-Schema automatisch aus dem initialen Wert des Form-Models ab – inklusive aller hinterlegter Validierungen.
401
+
Damit kann ein KI-Agent ein Formular stellvertretend "ausfüllen" und absenden, ohne dass wir per Hand ein eigenes Tool mit JSON-Schema definieren müssen.
366
402
367
-
Damit kann ein KI-Agent ein Formular stellvertretend "ausfüllen", ohne dass wir per Hand ein eigenes Tool definieren müssen.
368
-
Praktische Anwendungsfälle gibt es viele: Eine Buchsuche, eine Buchung oder eine strukturierte Datenerfassung, die der Agent im Auftrag der Nutzer:innen vornimmt.
403
+
Um das Feature zu aktivieren, registrieren wir zunächst den Provider `provideExperimentalWebMcpForms()`:
369
404
370
405
```ts
371
-
// TODO: Beispielcode aus offizieller Doku prüfen / einfügen
Anschließend können wir ein Signal Form als WebMCP-Tool deklarieren, indem wir die Option `experimentalWebMcpTool` mit einem Namen und einer Beschreibung übergeben:
required(path.title, { message: 'Title is required.' });
437
+
// ... weitere Validierungen
438
+
},
439
+
{
440
+
experimentalWebMcpTool: {
441
+
name: 'createBook',
442
+
description: 'Create a new book',
443
+
},
444
+
submission: {
445
+
action: async (bookForm) => {
446
+
// Formular absenden ...
447
+
}
448
+
}
449
+
}
450
+
);
451
+
}
380
452
```
381
453
382
-
Wie der Name verrät, ist diese Schnittstelle noch experimentell.
383
-
Die genaue Form der API kann sich also noch ändern – wir behalten das Thema im Auge und werden hier in Kürze einen ausführlichen Blogpost dazu veröffentlichen.
454
+
Angular generiert daraus ein WebMCP-Tool, dessen JSON-Schema die Felder des Formular-Modells mit ihren Validierungsregeln enthält.
455
+
Wenn der Agent das Tool aufruft, validiert Angular die Eingaben gegen die definierten Regeln und gibt eventuelle Fehler zurück – der Agent kann sich also selbst korrigieren und es erneut versuchen.
456
+
457
+
### Testen im Browser
458
+
459
+
Um WebMCP lokal zu testen, muss das experimentelle Feature im Browser aktiviert werden.
460
+
In Chrome geht das über das Flag:
461
+
462
+
```text
463
+
chrome://flags/#enable-webmcp-testing
464
+
```
465
+
466
+
Anschließend steht die Testing-API `navigator.modelContextTesting` in der Browser-Konsole zur Verfügung.
467
+
Damit lässt sich ein registriertes Tool manuell in der Browser-Konsole aufrufen:
Wie der Name "experimental" verrät, ist diese Schnittstelle noch nicht stabil.
484
+
Die WebMCP-Spezifikation selbst befindet sich in einem frühen Stadium und wird aktiv weiterentwickelt – die Angular-APIs können sich daher auch außerhalb von Major-Releases ändern.
485
+
486
+
Alle Details zur WebMCP-Integration in Angular findest du im offiziellen [Angular WebMCP Guide](https://angular.dev/ai/webmcp).
0 commit comments