Перайсці да зместа

Архітэктура

Час выканання

cloakbrowser-mcp — гэта знешні сервер MCP, які можа прапаноўваць stdio або Streamable HTTP. Пры запуску ён:

  1. разгадвае або ўсталёўвае бінарны файл CloakBrowser Chromium;
  2. стварае часовы канфігурацыйны файл MCP для Playwright;
  3. запускае upstream @playwright/mcp у якасці даччынага працэсу праз stdio;
  4. падключаецца да гэтага даччынага працэсу з дапамогай кліенцкага транспарту MCP SDK;
  5. праз абраны транспарт адкрывае знешні сервер MCP для кліента MCP карыстальніка;
  6. перасылае спіс інструментаў і выклікі інструментаў upstream без змен;
  7. дадае cloakbrowser_binary_info і cloakbrowser_bridge_info.

Чаму менавіта гэты дызайн

Надрупай-праект Playwright MCP ужо валодае кантрактамі на інструменты браўзера і хутка развіваецца. Мадэль маста падтрымлівае гэты праект невялікім і дазваляе пазбегнуць капіравання логікі аўтаматызацыі браўзера.

Докер

Абраз Docker выкарыстоўвае замацаваны афіцыйны абраз Playwright MCP у якасці базавага абраза. Мост усталёўваецца пад /opt/cloakbrowser-mcp, у той час як верхні паток Playwright MCP застаецца даступным па адрасе /app/cli.js.

Канфігурацыя

Брыдж запісвае часовую JSON-канфігурацыю з опцыямі запуску CloakBrowser. Асяроддзе PLAYWRIGHT_MCP_* upstream-а ўсё яшчэ перадаецца ў upstream Playwright MCP.

Транспарт

Стандартным транспартам з'яўляецца stdio. Падтрымка струменевага HTTP уключаецца яўна з дапамогай --transport streamable-http або CLOAK_PLAYWRIGHT_MCP_TRANSPORT=streamable-http.

Для stdio адзін знешні сервер валодае адным вытворным працэсам Playwright MCP і захоўвае стандартнае паводзінства профілю Playwright MCP. Для Streamable HTTP кожнае сеансавае MCP мае свой уласны знешні сервер, даччыны працэс upstream, згенераваную канфігурацыю і транспартны стан у памяці. HTTP-сеансы запускаюць upstream Playwright MCP з ізаляванымі профілямі браўзера, каб карыстальнікі не падзялялі і не змагаліся за адзін і той жа пастаянны профіль Chromium.

Бэкэнд сеансу захоўвае толькі метаданыя. Убудаваны бэкэнд — memory; будучыя адаптары Redis, Postgres або SQLite змогуць каардынаваць метаданыя і замкі, але яны не змогуць аднавіць працу браўзера ў вытворчым рэжыме пасля спынення працэса сервера, які ён належыць. Для гарызантальнага маштабавання варта выкарыстоўваць «прывязаныя сесіі» (sticky sessions), ключамі якіх з'яўляюцца mcp-session-id.

Мост выкарыстоўвае MCP SDK StreamableHTTPServerTransport для Streamable HTTP. Ён не выкарыстоўвае састарэлы MCP SSEServerTransport або састарэлы /sse эндпойнт.