Перейти к основному содержимому

WebMCP

WebMCP предоставляет доступ к инструментам, которые фрейм регистрирует через экспериментальный браузерный API WebMCP — navigator.modelContext. Он позволяет получать список инструментов и вызывать их.

Доступ к экземплярам осуществляется через Frame.webmcp(). Page.webmcp() возвращает экземпляр для главного фрейма.

примечание

WebMCP — экспериментальная возможность браузера. В Chromium она включается с помощью аргумента запуска --enable-features=WebMCP, а в Firefox — с помощью настроек dom.modelcontext.enabled и dom.modelcontext.testing.enabled. В WebKit она не реализована.

Названия инструментов, описания, схемы входных данных и результаты предоставляются страницей, поэтому рассматривайте их как недоверенные входные данные.


Методы​

callTool​

Добавлено в: v1.64 webMCP.callTool

Вызывает инструмент, зарегистрированный фреймом, и возвращает его результат. Результатом является значение, которым завершилась функция execute инструмента, обычно это объект с массивом content. Результат с isError: true возвращается без изменений. Метод выбрасывает исключение, если инструмент не зарегистрирован или его функция execute выбрасывает исключение.

Использование

WebMCP.callTool(name);
WebMCP.callTool(name, input, options);

Аргументы

  • name String#

    Название инструмента, возвращаемое методом WebMCP.tools().

  • input Object (необязательно)#

    Входные данные для инструмента, соответствующие его inputSchema. По умолчанию используется пустой объект.

  • options WebMCP.CallToolOptions (необязательно)

    • setTimeout double (необязательно)#

      Максимальное время ожидания в миллисекундах. По умолчанию — 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить с помощью методов BrowserContext.setDefaultTimeout() или Page.setDefaultTimeout().

Возвращает


tools​

Добавлено в: v1.64 webMCP.tools

Возвращает инструменты, зарегистрированные фреймом на данный момент. Выбрасывает исключение, если браузер был запущен без поддержки WebMCP. Параметры запуска, включающие эту поддержку, приведены в примечании выше.

Page.webmcp() охватывает только главный фрейм; дочерние фреймы предоставляют список своих инструментов через собственный Frame.webmcp().

Использование

WebMCP.tools();
WebMCP.tools(options);

Аргументы

  • options WebMCP.ToolsOptions (необязательно)
    • setTimeout double (необязательно)#

      Максимальное время ожидания в миллисекундах. По умолчанию — 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить с помощью методов BrowserContext.setDefaultTimeout() или Page.setDefaultTimeout().

Возвращает

  • List<Tools>#
    • name String

      Название инструмента, уникальное в пределах фрейма.

    • description String

      Описание инструмента.

    • inputSchema Object (необязательно)

      JSON Schema входных данных инструмента, если страница её предоставляет.

    • annotations Annotations (необязательно)

      • readOnly boolean (необязательно)

        Инструмент не изменяет никакое состояние.

      • untrustedContent boolean (необязательно)

        Выходные данные инструмента могут содержать сторонний контент.

      • consequential boolean (необязательно)

        Инструмент выполняет действие, имеющее существенные последствия, например оформление заказа.

      Подсказки об инструменте, предоставляемые страницей.