Збіг проксі-серверів за GeoIP¶
Функція узгодження проксі-серверів за GeoIP забезпечує відповідність налаштувань «відбитка» браузера місцю розташування проксі-сервера, який використовує верхній рівень Playwright MCP. Це корисно, коли регіональний контроль якості залежить від стабільних налаштувань проксі-сервера, часового поясу, мови та профілю локалізації.
Міст сам не створює та не маршрутизує проксі-трафік. Він передає PLAYWRIGHT_MCP_PROXY_SERVER до підготовки запуску CloakBrowser. Коли зіставлення ввімкнено, CloakBrowser визначає місце виходу налаштованого проксі та додає відповідні прапорці запуску для часового поясу, мови браузера, локалі відбитка й IP-адреси WebRTC.
Що зміниться¶
Коли CLOAK_PLAYWRIGHT_MCP_GEOIP_PROXY_MATCH=true, міст може додати такі параметри запуску для CloakBrowser:
--fingerprint-timezone--lang--fingerprint-locale--fingerprint-webrtc-ip
Це сприяє тому, щоб профіль браузера виглядав внутрішньо узгодженим із регіоном проксі-сервера. Схеми інструменту Playwright MCP та інструменти браузера, що надходять з вищих рівнів, як і раніше, передаються без змін.
Загальні налаштування¶
Використовуйте змінні середовища на рівні процесу для клієнтів stdio та як значення за замовчуванням для сесій Streamable HTTP:
PLAYWRIGHT_MCP_PROXY_SERVER="http://user:pass@proxy.example:8080" \
CLOAK_PLAYWRIGHT_MCP_GEOIP_PROXY_MATCH=true \
npx -y cloakbrowser-mcp@latest
Додайте список обходу, якщо деякі хости повинні оминати проксі-сервер:
PLAYWRIGHT_MCP_PROXY_SERVER="http://user:pass@proxy.example:8080" \
PLAYWRIGHT_MCP_PROXY_BYPASS=".internal,localhost" \
CLOAK_PLAYWRIGHT_MCP_GEOIP_PROXY_MATCH=true \
npx -y cloakbrowser-mcp@latest
Підтримка проксі-серверів HTTP з автентифікацією здійснюється шляхом вбудовування облікових даних у PLAYWRIGHT_MCP_PROXY_SERVER. Спеціальні символи в облікових даних слід кодувати у форматі «процент», наприклад, використовуйте p%40ssword замість p@ssword.
Підтримувані бінарні файли CloakBrowser використовують вбудовану автентифікацію в URL і повідомляють справжню IP-адресу виходу проксі, навіть якщо проксі вимагає суворого автентифікованого запиту CONNECT. Старіші бінарні файли зберігають об'єкт проксі Playwright як резервний варіант сумісності.
Налаштування Docker¶
Передайте ті самі змінні до контейнера. За можливості зберігайте облікові дані проксі-сервера у вашому менеджері секретів або у середовищі клієнта MCP.
docker run --rm --init -i \
-e PLAYWRIGHT_MCP_PROXY_SERVER="http://user:pass@proxy.example:8080" \
-e CLOAK_PLAYWRIGHT_MCP_GEOIP_PROXY_MATCH=true \
-v "$PWD/artifacts:/data" \
swimmwatch/cloakbrowser-mcp:latest
Для Streamable HTTP у Docker опублікуйте HTTP-порт як зазвичай і залиште змінні проксі як стандартні параметри середовища контейнера:
docker run --rm --init -p 127.0.0.1:3000:3000 \
-e PLAYWRIGHT_MCP_PROXY_SERVER="http://user:pass@proxy.example:8080" \
-e CLOAK_PLAYWRIGHT_MCP_GEOIP_PROXY_MATCH=true \
-v "$PWD/artifacts:/data" \
swimmwatch/cloakbrowser-mcp:latest \
--transport streamable-http --http-host 0.0.0.0 --http-port 3000
HTTP-проксі з можливістю потокової передачі даних для окремих сеансів¶
HTTP-клієнти з підтримкою потокового передавання можуть обирати проксі-сервер під час ініціалізації сеансу MCP. Це дозволяє одному довготривалому серверу MCP обробляти різні регіональні сценарії без необхідності його перезапуску.
Надіслати метадані мосту у запиті initialize:
{
"params": {
"_meta": {
"io.github.swimmwatch/cloakbrowser-mcp": {
"proxyServer": "http://user:pass@proxy.example:8080",
"proxyBypass": ".internal,localhost",
"geoipProxyMatch": true
}
}
}
}
proxyServer замінює PLAYWRIGHT_MCP_PROXY_SERVER для цієї сесії HTTP. proxyBypass замінює PLAYWRIGHT_MCP_PROXY_BYPASS лише тоді, коли proxyServer присутній. Якщо proxyServer присутній, а proxyBypass пропущено, успадкована конфігурація обходу проксі-сервера для цієї сесії скидається.
geoipProxyMatch замінює налаштування GeoIP на рівні процесу для цього HTTP- сеансу. Використовуйте true, щоб увімкнути зіставлення для сеансу, або false, щоб вимкнути його, навіть якщо сервер було запущено з увімкненим зіставленням.
Існуючі сесії HTTP є незмінними. Створіть ще одну сесію HTTP типу Streamable, щоб перейти на інший проксі-сервер або інше місце розташування.
Якщо proxyServer містить облікові дані, слід зберегти їх у форматі URL-кодування та передавати значення через секрети або конфігурацію середовища виконання клієнта, а не вносити його до файлів проєкту.
Приклади використання¶
- QA локалізованої комерції
Перевіряйте оформлення замовлення, податки, повідомлення про доставку, валюту та регіональні правила каталогу з часовим поясом і локаллю браузера, узгодженими з розташуванням проксі.
- Регіональні лендинги
Перевіряйте мову, згоди, кампанії та варіанти контенту, які залежать від регіону відвідувача.
- Відтворення звернень підтримки
Відтворюйте звіт із регіону клієнта без перезапуску всього MCP-сервера для кожного розташування проксі.
- Сценарії, чутливі до часового поясу
Перевіряйте вибір дат, вікна бронювання, нагадування та сторінки планування, де часовий пояс і локаль мають відповідати мережевому регіону.
- Паралельні регіональні сеанси
Запускайте окремі сеанси Streamable HTTP з різними проксі, щоб агент міг порівнювати кілька регіонів в одному серверному процесі.
Пріоритет та обмеження¶
| Область | Поведінка |
|---|---|
| Stdio | Використовує лише змінні середовища та прапорці CLI рівня процесу. |
| Типове значення Streamable HTTP | Використовує змінні середовища та прапорці CLI рівня процесу, якщо метадані runtime не передано. |
| Метадані Streamable HTTP | initialize.params._meta["io.github.swimmwatch/cloakbrowser-mcp"] може перевизначити проксі й зіставлення GeoIP для одного сеансу. |
| Існуючі сеанси | Зберігають проксі та налаштування GeoIP, зафіксовані під час initialize. |
| Автентифікований HTTP-проксі | Використовує вбудовану автентифікацію CloakBrowser в URL для підтримуваних бінарних файлів і об'єкт проксі Playwright для старіших бінарних файлів. |
| Необроблені прапорці часового поясу/локалі | Явні значення --fingerprint-timezone, --lang і --fingerprint-locale у CLOAK_PLAYWRIGHT_MCP_EXTRA_ARGS мають пріоритет над значеннями GeoIP і не дублюються. |
| Browser geolocation API | Не налаштовується цією функцією; вона лише узгоджує значення відбитка часового поясу, мови, локалі та IP-адреси WebRTC CloakBrowser. |
Дані про місцезнаходження за GeoIP є приблизними і залежать від IP-адреси проксі-сервера та бази даних GeoIP програми CloakBrowser. CloakBrowser завантажує та зберігає цю офлайн-базу даних у кеші під час першого використання, коли це необхідно.
Наприклад, наведена нижче конфігурація зберігає явні часовий пояс і локаль, але продовжує використовувати зіставлення GeoIP для визначення IP-адреси виходу проксі:
PLAYWRIGHT_MCP_PROXY_SERVER="http://user:pass@proxy.example:8080" \
CLOAK_PLAYWRIGHT_MCP_GEOIP_PROXY_MATCH=true \
CLOAK_PLAYWRIGHT_MCP_EXTRA_ARGS='["--fingerprint-timezone=America/New_York","--lang=en-US","--fingerprint-locale=en-US"]' \
npx -y cloakbrowser-mcp@latest
Використовуйте цю функцію для проведення законних тестувань з контролю якості, локалізації та перевірки узгодженості середовищ. Її не слід розглядати як спосіб обійти засоби контролю доступу або перевірки дотримання регіональних політик.
Пов’язані налаштування¶
- Конфігурація містить перелік усіх змінних середовища для мостів та вищих рівнів.
- Docker пояснює стандартні налаштування середовища виконання контейнерів та публікацію Streamable HTTP.
- Інструменти пояснює, чому інструменти браузера Playwright MCP, що знаходяться вище за течією, пересилаються без змін.
Додаткові практичні сценарії¶
Щоб обрати між upstream Playwright MCP і цим пакетом, перегляньте порівняння. Для швидких задач використовуйте рецепти: постійний профіль, розширення, reverse proxy, регіональне QA, Claude Desktop, Codex CLI і smoke-тест CI.