Dipublikasikan: 18 Mei 2026
| Penjelasan | Web | Ekstensi | Status Chrome | Intent |
|---|---|---|---|---|
| GitHub | View | Intent to Experiment |
Anda dapat menggunakan WebMCP Imperative API untuk menentukan banyak jenis alat dengan JavaScript standar. Alat Anda dapat menjalankan berbagai fungsi, seperti input formulir, navigasi situs, dan pengelolaan status.
Sebelum menggunakan API ini, baca tentang contoh kasus penggunaan.
Memberikan konteks model
Gunakan antarmuka modelContext untuk mendaftarkan alat. Pendaftaran alat memerlukan nama, deskripsi, dan skema input dengan properti yang relevan,
Gunakan registertool untuk menambahkan satu alat ke konteks model.
Pembuat WebMCPza
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}`;
},
});
Mendapatkan status pesanan
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.
},
});
Anda dapat menghapus alat dengan AbortSignal, jika diteruskan sebagai parameter opsional.
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();
Berinteraksi dan berbagi masukan
WebMCP sedang dalam diskusi aktif dan dapat berubah di masa mendatang. Jika Anda mencoba API ini dan memiliki masukan, kami ingin mendengarnya.
- Baca penjelasan WebMCP, ajukan pertanyaan, dan berpartisipasilah dalam diskusi.
- Baca praktik terbaik WebMCP.
- Tinjau penerapan untuk Chrome di Status Chrome.
- Bergabunglah ke program pratinjau awal untuk melihat API baru dan mendapatkan akses ke milis kami.
- Jika Anda memiliki masukan tentang penerapan Chrome, laporkan bug Chromium.