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

WebMCP в TrickyBird

WebMCP — черновик W3C Web Machine Learning Community Group. Он позволяет странице зарегистрировать именованные действия в document.modelContext, и тогда агент в браузере вызывает функцию, а не пробирается по DOM наугад.

За прокси каждый фрейм отданной страницы оказывается на том же адресе, что и сама страница, поэтому настройка self, которая у WebMCP стоит по умолчанию, позволила бы фрейму открытого вами сайта зарегистрировать инструменты на той странице, которую читает агент.

Обновлено

Инструменты

TrickyBird регистрирует эти инструменты на своих страницах: на каждой странице свой набор и только пока вы на ней. В таблице видно, где искать каждый. Столбец «Описание» — та самая строка, которую браузер передаёт агенту: она читается из модулей, где инструменты регистрируются, а не набрана здесь заново. Поэтому в таблице не может оказаться инструмента, которого этот сайт не регистрирует.

Браузер в приложении ChatGPT для компьютера с 27 августа 2026 года читает инструменты, которые регистрирует сайт, на тарифах Work и Codex.

Это не удалённый MCP-сервер

Никакого MCP-эндпоинта, к которому можно обратиться, нет, и устанавливать тоже нечего. document.modelContext живёт внутри вкладки браузера, поэтому эти инструменты существуют, только пока одна из этих страниц открыта в вашей.

Навигация

open_site
Регистрируется на
/
Входные данные
url
Результат
ok, invalid_url, busy, cancelled, failed

Open a website through TrickyBird in this tab. The proxied page loads in place of this one. Returns ok (launch started), invalid_url (not a web address), busy (already launching), cancelled (call cancelled), failed (launch incomplete).

cancel_launch
Регистрируется на
/, /unblock/<slug>
Входные данные
Нет
Результат
cancelled, nothing_to_cancel

Stop an open_site or open_this_site launch on this page, before it navigates. Returns cancelled when a launch was in progress, or nothing_to_cancel when none was or a check is waiting on the person at the screen. Opens nothing, starts no session, navigates nowhere.

open_this_site
Регистрируется на
/unblock/<slug>
Входные данные
Нет
Результат
ok, busy, cancelled, failed

Open the site this page is about through TrickyBird in this tab. The proxied page loads in place of this one. It takes no input; open_site is the tool that takes an address. Returns ok (launch started), busy (already launching), cancelled (call cancelled), failed (launch incomplete).

Найти сайт

list_checked_sites
Регистрируется на
/, /unblock, /status
Входные данные
Нет
Результат
Нет

List the sites TrickyBird publishes checked pages for. Read-only, opens nothing. A site not listed has no such page, which does not mean it is blocked or unchecked, and open_site is not limited to the list.

get_site_status
Регистрируется на
/, /unblock, /status
Входные данные
domain
Результат
renders, unknown_site

Return what TrickyBird publishes for one checked site: status, category, page address and the date a person last checked it. A domain outside this schema returns unknown_site. Read-only, opens nothing. open_site is not limited to these domains.

Прочитать страницу

get_faq
Регистрируется на
/faq
Входные данные
Нет
Результат
Нет

Return the questions and answers TrickyBird publishes on its FAQ page, in the page's order. Read-only, opens nothing.

get_security_overview
Регистрируется на
/security
Входные данные
Нет
Результат
Нет

Return the sections TrickyBird publishes on its security page, in the page's order. Read-only, opens nothing.

get_comparison
Регистрируется на
/compare
Входные данные
Нет
Результат
Нет

Return the comparison TrickyBird publishes between a web proxy and a VPN: the rows in the page's order, with the answer and the balance note the page prints beside them. Read-only, opens nothing.

get_article
Регистрируется на
/learn/<slug>
Входные данные
Нет
Результат
Нет

Return the explainer this page is about, in the page's order: title, the answer it leads with, opening, sections and the questions it answers. Read-only, opens nothing.

get_site_guide
Регистрируется на
/unblock/<slug>
Входные данные
Нет
Результат
Нет

Return what TrickyBird publishes for the site this page is about: name, domain, category, status, the date a person last checked it and this page's own address, then any note on what to expect from it, the opening paragraphs, sections and the questions it answers. It is the one tool for what this page publishes about the site; open_this_site is the tool that opens it. Read-only, opens nothing.

list_articles
Регистрируется на
/learn
Входные данные
Нет
Результат
Нет

List the explainers TrickyBird publishes, in the order this page lists them, each with its title, the answer it leads with and the address of its own page. Read-only, opens nothing.

get_leak_test
Регистрируется на
/proof
Входные данные
Нет
Результат
Нет

Return the leak test TrickyBird publishes on its proof page, in the page's order: the steps a person can run in their own tab, the page's own note on the test, and the questions it answers. Read-only, opens nothing.

Рекомендованные сценарии

Проверить сайт, потом открыть

  1. Вызовите list_checked_sites для сайтов, по которым TrickyBird публикует страницу проверки, или get_site_status для одного домена.
  2. Вызовите open_site с нужным адресом; open_site не ограничен списком.

Открыть сайт, потом остановить

  1. Вызовите open_site с адресом. Он отвечает ok, как только запуск начался.
  2. Вызовите cancel_launch, пока этот запуск ещё идёт: он отвечает cancelled, если запуск шёл, и nothing_to_cancel, если его не было или проверка ждёт человека за экраном.

Прочитать, что публикует страница

  1. Вызовите get_faq на странице вопросов и ответов, get_security_overview на странице безопасности или get_comparison на странице сравнения.
  2. Вызовите get_article на пояснительной статье или get_site_guide на странице сайта.
  3. Каждый возвращает то, что публикует его собственная страница, в порядке этой страницы.

Как это попробовать

Прежде чем начать

Сегодня WebMCP есть только в Chromium: в Firefox и Safari нет document.modelContext. Chrome с 149 по 156 участвует в origin trial WebMCP, а наш адрес несёт нужный токен, так что на такой версии включать ничего не придётся.

Chrome вне origin trial запускается с ключом --enable-features=WebMCP. Остальные браузеры на базе Chromium сами решают, включён ли у них WebMCP.

В консоли

Откройте нашу главную страницу в новой вкладке, затем её консоль. Шаги ниже мы выполняли в Chrome 152.

  1. Вызовите getTools(), чтобы увидеть, что зарегистрировала эта страница.

    const tools = await document.modelContext.getTools()

    Вы получаете инструменты, зарегистрированные на той странице, где вы находитесь: у каждого имя и описание из таблицы и своя схема входных данных.

  2. Вызовите executeTool(), передав один из только что полученных инструментов и его входные данные строкой JSON.

    await document.modelContext.executeTool(tools.find(t => t.name === 'get_site_status'), JSON.stringify({ domain: 'youtube.com' }))

    Вы получаете

    '{"content":[{"type":"text","text":"..."}]}'

    Строка JSON. Разберите её: content[0].text несёт собственный ответ инструмента, а при отказе isError равен true.

Чего он не делает

Ни один из этих инструментов не регистрируется на сайтах, которые вы открываете через TrickyBird: шлюз запрещает WebMCP в каждом документе, который отдаёт, и страница, открытая через прокси, не может зарегистрировать ни одного инструмента.

Причина — в первом абзаце: на нашем собственном адресе страница, отданная через прокси, для браузера не третья сторона, которую он мог бы держать отдельно, поэтому отказ должен исходить от нас.

До чего эти инструменты дотягиваются

  • Ничто из того, что возвращают эти инструменты, не приходит с сайта, открытого вами через TrickyBird, и не несёт ничего о вашей сессии. Те, что работают только на чтение, возвращают то, что TrickyBird и так публикует на странице, где каждый из них зарегистрирован.
  • get_comparison передаёт сравнение, которое TrickyBird публикует между веб-прокси и VPN, вместе с уравновешивающей заметкой, которую страница печатает рядом. Никакого другого продукта он не называет.
  • Что-то меняют только open_site, open_this_site и cancel_launch. Остальные работают только на чтение, и каждый говорит об этом в своём описании.