Канфігурацыя¶
Выкарыстоўвайце зменныя PLAYWRIGHT_MCP_* з верхняга патоку для паводзін MCP Playwright. Выкарыстоўвайце CLOAK_PLAYWRIGHT_MCP_* толькі для спецыфічнага паводзін маста Cloak.
Старыя зменныя CLOAKBROWSER_MCP_* не падтрымліваюцца. Згенераваны Даведнік па CLI з'яўляецца афіцыйным спісам сцягоў CLI маста і адпаведных ім зменных асяроддзя.
Параметры маста¶
| Variable | Default | Description |
|---|---|---|
CLOAK_PLAYWRIGHT_MCP_TRANSPORT | stdio | Bridge transport: stdio or streamable-http. |
CLOAK_PLAYWRIGHT_MCP_HTTP_PROTOCOL | http | Streamable HTTP listener protocol: http or https. |
CLOAK_PLAYWRIGHT_MCP_HTTP_HOST | 127.0.0.1 | Streamable HTTP bind host. |
CLOAK_PLAYWRIGHT_MCP_HTTP_PORT | 3000 | Streamable HTTP bind port. Use 0 for an ephemeral port in tests. |
CLOAK_PLAYWRIGHT_MCP_HTTP_ENDPOINT | /mcp | Streamable HTTP endpoint path. /healthz and /readyz are reserved for probes. |
CLOAK_PLAYWRIGHT_MCP_HTTP_AUTH_TOKEN | unset | Optional Bearer token required on Streamable HTTP requests. |
CLOAK_PLAYWRIGHT_MCP_HTTP_SESSION_BACKEND | memory | Session metadata backend. Only memory is implemented in this release. |
CLOAK_PLAYWRIGHT_MCP_HTTP_SESSION_IDLE_TTL_MS | 3600000 | Idle TTL for Streamable HTTP sessions. Expired sessions dispose their bridge and upstream child process. |
CLOAK_PLAYWRIGHT_MCP_HTTP_SESSION_MAX | 32 | Maximum active Streamable HTTP sessions in one process. |
CLOAK_PLAYWRIGHT_MCP_HTTPS_CERT | unset | TLS certificate PEM path for HTTPS Streamable HTTP. |
CLOAK_PLAYWRIGHT_MCP_HTTPS_KEY | unset | TLS private key PEM path for HTTPS Streamable HTTP. |
CLOAK_PLAYWRIGHT_MCP_HTTPS_PFX | unset | TLS PFX/PKCS12 path for HTTPS Streamable HTTP. |
CLOAK_PLAYWRIGHT_MCP_HTTPS_PASSPHRASE | unset | Passphrase for an encrypted HTTPS key or PFX. |
CLOAK_PLAYWRIGHT_MCP_LOG_LEVEL | info | Streamable HTTP operational log level: trace, debug, info, warn, error, fatal, or silent. |
PLAYWRIGHT_MCP_PROXY_SERVER | unset | Upstream Playwright MCP proxy server. Used as the GeoIP source when matching is enabled. |
PLAYWRIGHT_MCP_PROXY_BYPASS | unset | Upstream proxy bypass list for hosts that should not use PLAYWRIGHT_MCP_PROXY_SERVER. |
CLOAK_PLAYWRIGHT_MCP_GEOIP_PROXY_MATCH | false | Resolves PLAYWRIGHT_MCP_PROXY_SERVER GeoIP and matches CloakBrowser timezone and locale fingerprint flags to that proxy location. |
CLOAK_PLAYWRIGHT_MCP_HUMANIZE | false | Enables CloakBrowser human-like mouse, keyboard, and scroll behavior. |
CLOAK_PLAYWRIGHT_MCP_HUMAN_PRESET | default | CloakBrowser human behavior preset: default or careful. Used only when humanize is enabled. |
PLAYWRIGHT_MCP_BROWSER_ENGINE | cloak | cloak uses the CloakBrowser binary. playwright skips Cloak-specific executable replacement. |
PLAYWRIGHT_MCP_HEADLESS | true | Runs Chromium in headless mode. |
PLAYWRIGHT_MCP_OUTPUT_DIR | .playwright-mcp | Artifact directory for npm. Docker sets /data. |
PLAYWRIGHT_MCP_OUTPUT_MODE | stdout | Upstream output mode, either stdout or file. |
PLAYWRIGHT_MCP_TIMEOUT_ACTION | 5000 | Default action timeout in milliseconds. |
PLAYWRIGHT_MCP_TIMEOUT_NAVIGATION | 60000 | Default navigation timeout in milliseconds. |
PLAYWRIGHT_MCP_VIEWPORT_SIZE | upstream default | Browser viewport in WIDTHxHEIGHT format. |
PLAYWRIGHT_MCP_USER_DATA_DIR | unset | Каталог пастаяннага профілю Chromium. Мост пераўтварае яго ў абсалютны шлях, стварае пры адсутнасці, правярае доступ на запіс і запісвае ў згенераванае browser.userDataDir. |
CLOAK_PLAYWRIGHT_MCP_CONTEXT_OPTIONS | unset | JSON-аб'ект з праверанымі параметрамі кантэксту. Падтрыманыя палі пералічаны ніжэй. |
CLOAK_PLAYWRIGHT_MCP_EXTENSION_PATHS | unset | JSON-масіў або спіс праз коску з існуючымі каталогамі пашырэнняў Chrome. Патрабуе PLAYWRIGHT_MCP_USER_DATA_DIR. Выкарыстоўвайце JSON-масівы для шляхоў Windows або шляхоў з коскамі. |
CLOAK_PLAYWRIGHT_MCP_CONSOLE_FALLBACK | true | Enables the console message compatibility patch. |
CLOAK_PLAYWRIGHT_MCP_STEALTH_ARGS | true | Adds CloakBrowser default stealth launch arguments. |
CLOAK_PLAYWRIGHT_MCP_EXTRA_ARGS | unset | Comma-separated or JSON array of extra Chromium arguments. |
CLOAK_PLAYWRIGHT_MCP_NO_SANDBOX | true | Adds --no-sandbox and disables Chromium sandboxing. |
Супастаўленне GeoIP-праксі¶
Усталюйце CLOAK_PLAYWRIGHT_MCP_GEOIP_PROXY_MATCH=true з PLAYWRIGHT_MCP_PROXY_SERVER каб атрымаць флагi адбітку пальцаў CloakBrowser для часавага пояса, мовы і лакалі з месцазнаходжання праксі. Мост захоўвае маршрутызацыю праксі, дэлегаваную верхняму Playwright MCP і ўстаўляе толькі разблакіраваныя --fingerprint-timezone, --lang, і --fingerprint-locale сцягі запуску.
Глядзіце GeoIP Proxy Matching для прыкладаў наладкі, працоўнага часу Метаданыя струменевага HTTP-праксі, выпадкі выкарыстання, правілы прыярытэту і абмежаванні.
Ачалавечанае паводзіны ўводу¶
Усталюйце CLOAK_PLAYWRIGHT_MCP_HUMANIZE=true каб уключыць для ўзаемадзеяння з старонкай у CloakBrowser пласт мышы, клавіятуры і пракруткі, падобны да чалавечага. Масток прымяняе гэта праз хук ініцыялізацыі старонкі Playwright MCP, таму схемы інструментаў браўзера зыходнага кода застаюцца без змен.
Глядзіце Humanized Input Behavior для прыкладаў наладкі, метаданых HTTP Streamable у часе выканання, выпадкаў выкарыстання і абмежаванняў.
Пашырэнні Chrome¶
Пашырэнні Chrome загружаюцца пры запуску браўзера, таму наладзьце іх да запуску моста або да стварэння сеанса Streamable HTTP. Пашырэнні павінны быць распакаванымі каталогамі і патрабуюць пастаяннага профілю:
PLAYWRIGHT_MCP_USER_DATA_DIR="$PWD/.profiles/default" \
CLOAK_PLAYWRIGHT_MCP_EXTENSION_PATHS='["/absolute/path/to/my-extension"]' \
npx -y cloakbrowser-mcp@latest
Для Streamable HTTP перадайце каталогі профілю і пашырэння ў метаданых initialize:
{
"params": {
"_meta": {
"io.github.swimmwatch/cloakbrowser-mcp": {
"userDataDir": "/absolute/path/to/profile",
"extensionPaths": ["/absolute/path/to/my-extension"]
}
}
}
}
Перазапусціце мост або стварыце новы HTTP-сеанс пасля змены файлаў пашырэнняў або шляхоў пашырэнняў. Выкарыстоўвайце JSON-масіў для CLOAK_PLAYWRIGHT_MCP_EXTENSION_PATHS, калі шляхі змяшчаюць коскі, пры перадачы некалькіх пашырэнняў або пры выкарыстанні шляхоў Windows з літарамі дыскаў.
Метаданыя выканання HTTP для струменевага перадавання
Стрымеблыя HTTP-кліенты могуць выбраць пэўныя опцыі выканання для кожнай MCP-сесіі, дадаючы метаданыя, спецыфічныя для брыджа, у запыт initialize:
{
"params": {
"_meta": {
"io.github.swimmwatch/cloakbrowser-mcp": {
"proxyServer": "http://user:pass@proxy.example:8080",
"proxyBypass": ".internal,localhost",
"geoipProxyMatch": true,
"headless": false,
"humanize": true,
"humanPreset": "careful",
"userDataDir": "/absolute/path/to/profile",
"contextOptions": {
"viewport": { "width": 1280, "height": 720 },
"locale": "en-US",
"timezoneId": "America/New_York"
},
"extensionPaths": ["/absolute/path/to/extension"]
}
}
}
}
proxyServer перавышае PLAYWRIGHT_MCP_PROXY_SERVER для гэтай HTTP-сесіі. proxyBypass перавышае PLAYWRIGHT_MCP_PROXY_BYPASS толькі калі proxyServer прысутнічае. geoipProxyMatch можа ўключыць або выключыць супастаўленне GeoIP для гэтай сесіі без перазапуску сервера MCP. Існуючыя сесіі захоўваюць свой пачатковы праксі; стварыце новую HTTP-сесію, каб змяніць месцазнаходжанне.
humanize дазваляе ўключыць або выключыць адаптаванае для чалавека ўвядзенне для гэтай сесіі, не змяняючы іншыя сесіі. humanPreset можа выбраць default або careful для гэтай сесіі, але сама па сабе не ўключае гуманізаваную паводзіны. Існуючыя сесіі захоўваюць паводзіны, зафіксаваныя падчас initialize.
headless можа ўключыць або выключыць рэжым бяздысплейнага браўзера для гэтай сесіі. Усталяванне headless на false патрабуе прыдатнага асяроддзя адлюстравання, асабліва ў разгортваннях Docker або сервераў Linux.
userDataDir уключае пастаянны профіль Chromium для гэтай сесіі і перавызначае PLAYWRIGHT_MCP_USER_DATA_DIR. Мост пераўтварае каталог у абсалютны шлях у фармаце бягучай платформы, стварае яго пры адсутнасці, правярае доступ на запіс і запісвае ў згенераванае browser.userDataDir. Пастаянны профіль адключае стандартны ізаляваны профіль Streamable HTTP для гэтай сесіі. Мост адхіляе дубліраваныя актыўныя каталогі профілю ўнутры аднаго працэсу; канфлікты профіляў паміж працэсамі застаюцца памылкамі Chromium/Playwright.
contextOptions правяраюцца і павярхоўна аб'ядноўваюцца з CLOAK_PLAYWRIGHT_MCP_CONTEXT_OPTIONS; укладзеныя аб'екты замяняюцца цалкам. Падтрыманыя палі: userAgent, viewport, locale, timezoneId, colorScheme, permissions, geolocation, extraHTTPHeaders, httpCredentials, ignoreHTTPSErrors, offline, deviceScaleFactor, isMobile і hasTouch. Адвольная перадача BrowserContextOptions у гэтым рэлізе не падтрымліваецца.
extensionPaths павінны паказваць на існуючыя каталогі і патрабуюць пастаянны userDataDir. Мост пераўтварае шляхі пашырэнняў у абсалютныя шляхі бягучай платформы, перадае іх у CloakBrowser і запісвае згенераваныя аргументы Chromium --load-extension і --disable-extensions-except у згенераваную канфігурацыю Playwright MCP.
Пацверджаныя крэдэнцыялы HTTP-праксі-сервера можна ўбудаваць у proxyServer, напрыклад http://user:pass@proxy.example:8080. Працэнтны код для сімвалаў пароля, якія маюць URL-значэнне, такіх як @, :, /, ?, #, і %.
Для шматлакацыйных шаблонаў QA гл. GeoIP Proxy Matching. Для патэрнаў рэалізму ўзаемадзеяння гл. Humanized Input Behavior.
Вышэйплыўныя варыянты¶
Масток перадае налады PLAYWRIGHT_MCP_* вышэйпатокаваму Playwright MCP. Гэта ўключае ў сябе вышэйпатокавыя опцыі, такія як:
PLAYWRIGHT_MCP_ALLOWED_ORIGINSPLAYWRIGHT_MCP_BLOCKED_ORIGINSPLAYWRIGHT_MCP_ALLOW_UNRESTRICTED_FILE_ACCESSPLAYWRIGHT_MCP_CAPSPLAYWRIGHT_MCP_CONSOLE_LEVELPLAYWRIGHT_MCP_IMAGE_RESPONSESPLAYWRIGHT_MCP_SNAPSHOT_MODEPLAYWRIGHT_MCP_STORAGE_STATE
Звярніцеся да дакументацыі арыгінальнага MCP Playwright, каб атрымаць поўны спіс опцый.
Запіс логаў¶
У рэжыме HTTP Streamable у stdout запісваюцца зразумелыя для чалавека логі запуску і запытаў. Рэжым Stdio не выводзіць звычайныя аперацыйныя логі, таму stdout MCP JSON-RPC застаецца «чыстым» з пункту гледжання пратакола. Смяротныя памылкі пры запуску CLI ўсё яшчэ запісваюцца ў stderr.
HTTPS¶
Streamable HTTP па змаўчанні выкарыстоўвае лакальны HTTP. Выберыце прамы TLS з дапамогай --http-protocol https або CLOAK_PLAYWRIGHT_MCP_HTTP_PROTOCOL=https, затым прадастаўце альбо пару сертыфіката/ключа, альбо файл PFX:
cloakbrowser-mcp --transport streamable-http \
--http-protocol https \
--https-cert ./cert.pem \
--https-key ./key.pem
Для знешняга доступу або доступу не праз петлю (non-loopback), выкарыстоўвайце HTTPS разам з --http-auth-token, або завяршайце TLS на надзейным зваротным праксі-серверы, які таксама забяспечвае аўтэнтыфікацыю і кантроль доступу да сеткі.
Струменевыя HTTP-сесіі¶
Кожная сеансавая сесія Streamable HTTP MCP мае свой уласны выканальны асяроддзе моста і дадатковы дзіцячы працэс Playwright MCP. HTTP-сеансы запускаюць дадатковы працэс Playwright MCP з ізаляваным профілем браўзера, каб карыстальнікі, якія працуюць адначасова, не канкурыравалі за адзін і той жа пастаянны профіль Chromium. Убудаваны бэкэнд сеансаў memory захоўвае толькі метаданыя, такія як ідэнтыфікатар сеанса, часовыя штампы, тэрмін прыдатнасці і статус. Стан браўзера застаецца ў жывым вышэйстаячым даччыстым працэсе, і артыфакты па-ранейшаму кіруюцца PLAYWRIGHT_MCP_OUTPUT_DIR.
Для гарызантальнага маштабавання запускайце некалькі серверных рэплік за праграмным балансавальнікам з прывязанымі сеансамі, ключамі якіх з'яўляецца загаловак mcp-session-id. Будучыя бэкенды Redis, Postgres або SQLite могуць каардынаваць метаданыя і замкі, але яны не могуць аднавіць сесію браўзера ў рэальным часе пасля спынення працэсу, які ёй валодае.
Стрымінгавыя HTTP-запыты
Калі брыдж працуе з --transport streamable-http, ён адкрывае фіксаваныя кропкі ўводу на тым жа хосце і порце, што і кропка ўводу MCP:
GET /healthz вяртае метаданыя аб стане працэсу: status, version, transport, і uptimeMs. - GET /readyz вяртае метаданыя гатоўнасці і ёмістасць сеансу: sessions.active, sessions.pending, sessions.max, і sessions.available.
Гатоўнасць вяртае HTTP 200, пакуль даступная ёмістасць сеансу, і HTTP 503 калі active + pending >= max. Калі --http-auth-token або CLOAK_PLAYWRIGHT_MCP_HTTP_AUTH_TOKEN наладжаны, абодва проба патрабуюць аднолькавага Authorization: Bearer ... загалоўка, як і ў запытах MCP. Без аўтэнтыфікацыйнага токена пробы адкрыты на наладжаным HTTP-адрасе злучэння.
Дадатковыя практычныя сцэнарыі¶
Каб выбраць паміж upstream Playwright MCP і гэтым пакетам, глядзіце параўнанне. Для хуткіх задач выкарыстоўвайце рэцэпты: пастаянны профіль, пашырэнні, reverse proxy, рэгіянальнае QA, Claude Desktop, Codex CLI і smoke-тэст CI.