Архітэктура¶
Час выканання¶
cloakbrowser-mcp — гэта знешні сервер MCP, які можа прапаноўваць stdio або Streamable HTTP. Пры запуску ён:
- разгадвае або ўсталёўвае бінарны файл CloakBrowser Chromium;
- стварае часовы канфігурацыйны файл MCP для Playwright;
- запускае upstream
@playwright/mcpу якасці даччынага працэсу праз stdio; - падключаецца да гэтага даччынага працэсу з дапамогай кліенцкага транспарту MCP SDK;
- праз абраны транспарт адкрывае знешні сервер MCP для кліента MCP карыстальніка;
- перасылае спіс інструментаў і выклікі інструментаў upstream без змен;
- дадае
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 эндпойнт.