Publié le 18 mai 2026
| Présentateur | Web | Extensions | État de Chrome | Intention |
|---|---|---|---|---|
| GitHub | Afficher | Intention de tester |
Vous pouvez utiliser l'API impérative WebMCP pour définir de nombreux types d'outils avec JavaScript standard. Vos outils peuvent exécuter différentes fonctions, telles que la saisie de formulaires, la navigation sur le site et la gestion de l'état.
Avant d'utiliser cette API, consultez des exemples de cas d'utilisation.
Fournir le contexte du modèle
Utilisez l'interface modelContext pour enregistrer des outils. L'enregistrement d'un outil nécessite un nom, une description et un schéma d'entrée avec les propriétés pertinentes.
Utilisez registertool pour ajouter un seul outil au contexte du modèle.
WebMCPza Maker
navigator.modelContext.registerTool({
name: 'toggle_layer',
description: 'Control pizza layers (sauce, cheese). Use "add", "remove", or "toggle".',
inputSchema: {
type: 'object',
properties: {
layer: { type: 'string', enum: ['sauce-layer', 'cheese-layer'] },
action: { type: 'string', enum: ['add', 'remove', 'toggle'] },
},
required: ['layer'],
},
execute: ({ layer, action }) => {
toggleLayer(layer, action);
return `Performed ${action || 'toggle'} on layer: ${layer}`;
},
});
Obtenir l'état de la commande
navigator.modelContext.registerTool({
name: 'get_order_status',
description: 'Search orders in a given timeframe. Returns order number, shipping status and location',
inputSchema: {
"type": "object",
"properties": {
"timeframe": { "type": "string", "oneOf": [
{ "type": "string", "const": "today", "title": "Today" },
{ "type": "string", "const": "yesterday", "title": "Yesterday" },
{ "type": "string", "const": "last_7_days", "title": "Last 7 Days" },
{ "type": "string", "const": "last_30_days", "title": "Last 30 Days" },
{ "type": "string", "const": "last_6_months", "title": "Last 6 Months" }],
"enum": [ "today", "yesterday", "last_7_days", "last_30_days", "last_6_months" ],
"description": "Timeframe for the order lookup." }
},
"required": [ "timeframe" ]
},
execute: ({ timeframe }) => {
// Add your API or database logic here to fetch and return the order data as a string.
},
});
Vous pouvez supprimer un outil avec AbortSignal, lorsqu'il est transmis en tant que paramètre facultatif.
const addTodoTool = {
name: "addTodo",
description: "Add a new item to the todo list",
inputSchema: {
type: "object",
properties: { text: { type: "string" } },
},
execute: ({ text }) => {
// You should handle the persistence logic here (omitted for demo)
return `Added todo: ${text}`;
},
annotations: {
readOnlyHint: false,
untrustedContentHint: true
},
};
const controller = new AbortController();
navigator.modelContext.registerTool(addTodoTool, { signal: controller.signal });
// Unregister the tool later...
controller.abort();
Interagir et envoyer des commentaires
WebMCP fait l'objet de discussions actives et peut être modifié à l'avenir. Si vous essayez cette API et que vous avez des commentaires, n'hésitez pas à nous en faire part.
- Lisez l'explication WebMCP, posez des questions et participez à la discussion.
- Consultez les bonnes pratiques WebMCP.
- Consultez l'implémentation pour Chrome sur l'état de Chrome.
- Rejoignez le programme d'aperçu anticipé pour découvrir les nouvelles API et accéder à notre liste de diffusion.
- Si vous avez des commentaires sur l'implémentation de Chrome, signalez un bug Chromium.