Skip to content

Commit 02649bd

Browse files
committed
docs(blog): Condense WebMCP section and link to dedicated article
- Simplify WebMCP overview to focus on Angular 22's experimental support - Remove detailed implementation examples (global, route, and service registration) - Remove Signal Forms WebMCP integration code examples - Remove browser testing instructions and Chrome flag configuration - Replace extensive content with concise explanation and link to dedicated WebMCP article - Streamline narrative to highlight key concepts: tool registration, Signal Forms integration, and agent capabilities - Redirect readers to comprehensive guide at /blog/2026-05-webmcp for full implementation details
1 parent de80f12 commit 02649bd

1 file changed

Lines changed: 7 additions & 140 deletions

File tree

blog/2026-06-angular22/README.md

Lines changed: 7 additions & 140 deletions
Original file line numberDiff line numberDiff line change
@@ -342,148 +342,15 @@ So bleibt das Initial-Bundle schlank, und die Nutzer:innen müssen trotzdem nich
342342

343343
## WebMCP: KI-Agenten in Web-Apps integrieren
344344

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/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.
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.
345+
Angular 22 bringt experimentelle Unterstützung für **[WebMCP](https://github.com/webmachinelearning/webmcp)** (Web Model Context Protocol) mit.
346+
Dieser aufkommende Webstandard ermöglicht es, aus einer Web-App heraus strukturierte Tools für KI-Agenten im Browser bereitzustellen.
347+
Statt DOM-Scraping und simulierten Klicks können Agenten wie Gemini oder Claude die deklarierten Tools direkt aufrufen – etwa um ein Formular auszufüllen oder eine Suche auszulösen.
350348

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:
349+
Angular dockt WebMCP sauber an die bestehende Architektur an: Tools lassen sich global, pro Route oder in Services und Komponenten registrieren.
350+
Besonders elegant ist die Brücke zu Signal Forms: Mit der Option `experimentalWebMcpTool` in der `form()`-Funktion wird ein Formular automatisch als WebMCP-Tool exponiert – inklusive JSON-Schema und Validierung.
353351

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.
360-
361-
Ein einfaches Beispiel für ein globales Tool:
362-
363-
```ts
364-
import { provideExperimentalWebMcpTools, Service, inject } from '@angular/core';
365-
import { bootstrapApplication } from '@angular/platform-browser';
366-
367-
@Service()
368-
class BookStore {
369-
search(query: string) { /* ... */ }
370-
}
371-
372-
bootstrapApplication(AppRoot, {
373-
providers: [
374-
provideExperimentalWebMcpTools([{
375-
name: 'searchBooks',
376-
description: 'Searches the book catalog.',
377-
inputSchema: {
378-
type: 'object',
379-
properties: {
380-
query: { type: 'string', description: 'Search keywords.' }
381-
},
382-
required: ['query'],
383-
additionalProperties: false,
384-
},
385-
execute: ({ query }) => {
386-
const store = inject(BookStore);
387-
return { content: [{ type: 'text', text: store.search(query) }] };
388-
},
389-
}]),
390-
],
391-
});
392-
```
393-
394-
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
397-
398-
Besonders charmant ist die Brücke zwischen Signal Forms und WebMCP:
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.
402-
403-
Um das Feature zu aktivieren, registrieren wir zunächst den Provider `provideExperimentalWebMcpForms()`:
404-
405-
```ts
406-
import { ApplicationConfig } from '@angular/core';
407-
import { provideExperimentalWebMcpForms } from '@angular/forms/signals';
408-
409-
export const appConfig: ApplicationConfig = {
410-
providers: [
411-
provideExperimentalWebMcpForms()
412-
]
413-
};
414-
```
415-
416-
Anschließend können wir ein Signal Form als WebMCP-Tool deklarieren, indem wir die Option `experimentalWebMcpTool` mit einem Namen und einer Beschreibung übergeben:
417-
418-
```ts
419-
import { Component, signal } from '@angular/core';
420-
import { form, required, minLength, FormField } from '@angular/forms/signals';
421-
422-
@Component({/* ... */})
423-
export class BookCreatePage {
424-
readonly #bookFormData = signal({
425-
isbn: '',
426-
title: '',
427-
subtitle: '',
428-
authors: [''],
429-
description: '',
430-
imageUrl: '',
431-
});
432-
433-
protected readonly bookForm = form(
434-
this.#bookFormData,
435-
(path) => {
436-
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-
}
452-
```
453-
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:
468-
469-
```js
470-
const result = await navigator.modelContextTesting.executeTool(
471-
'createBook',
472-
JSON.stringify({
473-
title: 'Web MCP',
474-
isbn: '9871234567890',
475-
description: 'A brand new book about Web MCP',
476-
authors: ['Claude Opus 4.6'],
477-
imageUrl: 'https://picsum.photos/200'
478-
})
479-
);
480-
console.log(JSON.parse(result));
481-
```
482-
483-
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).
352+
Wir haben dem Thema einen eigenen ausführlichen Artikel gewidmet:
353+
[**WebMCP: KI-Agenten in Angular-Apps integrieren**](/blog/2026-05-webmcp)
487354

488355

489356
## Deprecation der Webpack-basierten Builder

0 commit comments

Comments
 (0)