API دستوری

الکساندرا کلپر
Alexandra Klepper

منتشر شده: ۱۸ مه ۲۰۲۶

توضیح دهنده وب افزونه‌ها وضعیت کروم قصد
گیت‌هاب نسخه آزمایشی توسعه‌دهنده نسخه آزمایشی توسعه‌دهنده نسخه آزمایشی توسعه‌دهنده نسخه آزمایشی توسعه‌دهنده مشاهده قصد آزمایش

شما می‌توانید از WebMCP Imperative API برای تعریف انواع مختلفی از ابزارها با جاوا اسکریپت استاندارد استفاده کنید. ابزارهای شما می‌توانند عملکردهای مختلفی مانند ورودی فرم، پیمایش سایت و مدیریت وضعیت را اجرا کنند.

قبل از استفاده از این API، موارد استفاده از آن را مطالعه کنید.

زمینه مدل را فراهم کنید

از رابط modelContext برای ثبت ابزارها استفاده کنید. ثبت ابزار نیاز به نام، توضیحات و طرح ورودی با ویژگی‌های مربوطه دارد.

registertool برای اضافه کردن یک ابزار واحد به متن مدل استفاده کنید.

سازنده 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}`;
  },
});

دریافت وضعیت سفارش

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" ]
  }
});

شما می‌توانید یک ابزار را با استفاده از AbortSignal ، زمانی که به عنوان یک پارامتر اختیاری ارسال می‌شود، حذف کنید.

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();

مشارکت کنید و بازخورد خود را به اشتراک بگذارید

WebMCP در حال حاضر در دست بررسی است و ممکن است در آینده تغییر کند. اگر این API را امتحان کردید و بازخوردی داشتید، خوشحال می‌شویم آن را بشنویم.