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

WebMCP

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

Экземпляры доступны через Frame.Webmcp. Page.Webmcp — это экземпляр для главного фрейма.

примечание

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

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


Методы​

CallToolAsync​

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

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

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

await WebMCP.CallToolAsync(name, input, options);

Аргументы

  • name string#

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

  • input [object]? (необязательно)#

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

  • options WebMCPCallToolOptions? (необязательно)

    • Timeout [float]? (необязательно)#

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

Возвращаемое значение

  • [object]#

ToolsAsync​

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

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

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

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

await WebMCP.ToolsAsync(options);

Аргументы

  • options WebMCPToolsOptions? (необязательно)
    • Timeout [float]? (необязательно)#

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

Возвращаемое значение

  • IReadOnlyList<Tools>#
    • name string

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

    • description string

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

    • inputSchema [object]? (необязательно)

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

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

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

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

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

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

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

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

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