
Wenn Ihr Produkt auf Next.js oder React läuft, passt WebMCP sehr gut: Ein Tool ist eine kleine Funktion, und die eigentliche Arbeit erledigen bereits Ihre API-Routen. Dieser Leitfaden zeigt ein sauberes Muster. Ist das Thema neu für Sie? Lesen Sie zuerst, was WebMCP ist.
Tools in einer Client Component registrieren
document.modelContext gibt es nur im Browser, deshalb gehört die Registrierung in useEffect. Rendern Sie nichts und übergeben Sie ein AbortSignal, damit die Tools verschwinden, wenn der Besucher die Seite verlässt:
'use client';
import { useEffect } from 'react';
export default function SearchTool() {
useEffect(() => {
const mc = document.modelContext || navigator.modelContext;
if (!mc?.registerTool) return undefined; // browsers without WebMCP skip this
const controller = new AbortController();
mc.registerTool({
name: 'search_products',
description: 'Search the catalog. Returns up to 5 products with price and link.',
inputSchema: {
type: 'object',
properties: { query: { type: 'string' } },
required: ['query'],
},
annotations: { readOnlyHint: true },
execute: async ({ query }, { signal }) => {
const res = await fetch('/api/search?q=' + encodeURIComponent(query), { signal });
return JSON.stringify(await res.json());
},
}, { signal: controller.signal });
return () => controller.abort();
}, []);
return null;
}Fügen Sie <SearchTool /> in das Layout oder die Seite ein, wo das Tool sinnvoll ist. Der Strict Mode von React führt Effects in der Entwicklung zweimal aus; die Aufräumfunktion oben fängt das ab.
Die Logik in einer API-Route halten
Das Tool ist nur eine dünne Hülle. Prüfungen, Limits und Berechtigungen gehören auf den Server, wo ein Besucher sie nicht ändern kann:
// app/api/search/route.js
import { NextResponse } from 'next/server';
export async function GET(request) {
const q = (request.nextUrl.searchParams.get('q') || '').slice(0, 80);
if (!q) return NextResponse.json({ error: 'missing_query' }, { status: 400 });
const items = await searchCatalog(q, { limit: 5 }); // your own function
return NextResponse.json(items.map(({ name, price, url }) => ({ name, price, url })));
}Formulare als Tools
Für ein einfaches Formular ergänzen Sie toolname und tooldescription im Element <form>. React gibt diese unbekannten, kleingeschriebenen Attribute an die Seite weiter. Der Browser füllt das Formular aus, und den Button klickt standardmäßig weiterhin der Besucher.
Sicherheitsregeln
- Starten Sie mit reinem Lesezugriff. Zuerst Suche und Details; kennzeichnen Sie diese mit
readOnlyHint. - Fragen Sie vor dem Handeln. Kennzeichnen Sie Warenkorb-, Buchungs- und Formularaktionen mit
consequentialHint, damit der Besucher bestätigt. - Prüfen Sie auf dem Server. Der Browser ist keine Sicherheitsgrenze. Prüfen Sie deshalb jede Eingabe und jede Berechtigung in Ihrem Backend.
- Geben Sie wenig zurück. Senden Sie nur, was ein Kunde sehen darf, niemals Admin-Daten oder Datensätze anderer Kunden.
Testen
- Nutzen Sie ein aktuelles Chrome mit aktiviertem WebMCP, über den Origin Trial oder das Test-Flag.
- Rufen Sie jedes Tool mit gültigen und ungültigen Eingaben auf.
- Prüfen Sie, dass normale Besucher keine Änderung bemerken.
- Prüfen Sie genau die Seite, auf der Ihre Tools liegen, mit dem kostenlosen WebMCP-Checker.
Sollen wir das für Sie übernehmen?
Wir bringen WebMCP in Next.js- und React-Produkte – vom kostenlosen Readiness-Check bis zu getesteten Tools. Sehen Sie sich unsere WebMCP-Integrationsservices und unsere Next.js-Entwicklung an.
Häufig gestellte Fragen
Kann ich WebMCP-Tools in einer React Server Component registrieren?
Nein. WebMCP läuft im Browser, deshalb müssen Tools in einer Client Component registriert werden. Eine Server Component kann dieser Client Component Daten als Props übergeben.
Funktionieren WebMCP-Tools mit Server-Side Rendering?
Ja. Die Seite wird wie gewohnt auf dem Server gerendert, und die Tools werden nach der Hydration registriert. Prüfen Sie vor der Nutzung, ob document.modelContext vorhanden ist.
Warum werden meine Tools in der Entwicklung doppelt registriert?
Der Strict Mode von React führt Effects in der Entwicklung zweimal aus. Wenn Sie ein AbortSignal übergeben und es in der Aufräumfunktion des Effects abbrechen, wird die erste Registrierung entfernt.
Gibt es einen TypeScript-Typ für WebMCP?
Ja. Die Dokumentation von Chrome verweist auf das npm-Paket webmcp-types mit Typen für die imperative API.
So können wir helfen
- WebMCP-IntegrationsservicesWebMCP development for any stack, from WordPress and Shopify to Next.js, Laravel and Django: search, FAQs and forms offered as secure tools for AI browser agents, with a free audit.
- Next.js-EntwicklungProduktive Next.js-14/15-Anwendungen mit App Router, Server Components, Edge-Deployment und TypeScript-first-Lieferung auf Vercel oder AWS.
- Individuelle WebanwendungsentwicklungIndividuelle Full-Stack-Webanwendungsentwicklung für SaaS, interne Tools, Dashboards und Unternehmensportale mit React, Next.js, Node, Laravel und Django.
Sprechen Sie mit einem Entwickler über Ihr Projekt
Erzählen Sie uns, was Sie entwickeln. Wir antworten innerhalb eines Werktags mit einer ehrlichen Einschätzung zu Umfang, Vorgehen und Aufwand.
Kostenloses Strategiegespräch buchenVerfasst vom Engineering-Team von UnlockLive IT. UnlockLive IT Limited arbeitet mit Kunden über den Hauptsitz in Los Angeles und das Büro in Toronto und liefert die Entwicklung aus dem Delivery-Center in Dhaka. Über uns