GeoIP 代理匹配¶
GeoIP 代理匹配功能可确保浏览器指纹设置与上游 Playwright MCP 所使用的代理位置保持一致。当区域质量保证(QA)工作需要 依赖一致的代理、时区、语言和区域设置配置文件时,此功能非常有用。
该桥接器本身不会创建或路由代理流量。代理路由仍 由上游 Playwright MCP 通过 PLAYWRIGHT_MCP_PROXY_SERVER 负责。 当 启用匹配功能时,CloakBrowser MCP 会解析配置的代理位置,并 根据时区、浏览器语言和 指纹区域设置相应的 CloakBrowser 启动标志。
有哪些变化¶
当 CLOAK_PLAYWRIGHT_MCP_GEOIP_PROXY_MATCH=true 时,网关可以为 CloakBrowser 添加以下 启动参数:
--fingerprint-timezone--lang--fingerprint-locale
这有助于使浏览器配置文件在内部与代理区域保持一致。 上游的 Playwright MCP 工具模式和浏览器工具仍会 原样转发。
全局设置¶
对于 stdio 客户端,以及作为 可流式传输的 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
通过在 PLAYWRIGHT_MCP_PROXY_SERVER 中嵌入凭据,支持经过身份验证的 HTTP 代理。 请对凭据中的特殊字符进行百分比编码, 例如,对于 p@ssword,请使用 p%40ssword 表示 p@ssword。
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
对于 Docker 中的 Streamable HTTP,请照常发布 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 在该 HTTP 会话中覆盖了 PLAYWRIGHT_MCP_PROXY_SERVER。 proxyBypass 仅在存在 proxyServer 时,才会覆盖 PLAYWRIGHT_MCP_PROXY_BYPASS,但仅当 proxyServer 存在时 才成立。如果 proxyServer 存在,而 proxyBypass 被省略,则该会话的继承 代理绕过配置将被清除。
geoipProxyMatch 将覆盖该 HTTP 会话的进程级 GeoIP 设置。请使用 true 可启用该会话的匹配功能,或使用 false 禁用该功能, 即使服务器启动时已启用匹配功能也是如此。
现有的 HTTP 会话是不可变的。请创建另一个 Streamable HTTP 会话,以 切换到其他代理或位置。
如果 proxyServer 包含凭据,请将其以 URL 编码形式保存,并通过 密钥或客户端运行时配置传递该值,而不是将其写入 项目文件中。
用例¶
- 本地化电商 QA
测试结账、税费、配送提示、货币和区域目录规则,并让浏览器时区与区域设置 和代理位置保持一致。
- 区域落地页
验证依赖访客区域的语言、同意提示、活动和内容变体。
- 客户支持复现
在不为每个代理位置重启整个 MCP 服务器的情况下,复现来自客户区域的问题报告。
- 时区敏感流程
验证日期选择器、预订窗口、提醒和排期页面,确保时区与区域设置 与网络区域匹配。
- 并行区域会话
使用不同代理运行独立的 Streamable HTTP 会话,让代理可以在一个服务器进程中 比较多个区域。
优先级与限制¶
| 范围 | 行为 |
|---|---|
| Stdio | 仅使用进程级环境变量和 CLI 标志。 |
| Streamable HTTP 默认值 | 未提供 runtime 元数据时,使用进程级环境变量和 CLI 标志。 |
| Streamable HTTP 元数据 | initialize.params._meta["io.github.swimmwatch/cloakbrowser-mcp"] 可为单个会话覆盖代理和 GeoIP 匹配。 |
| 现有会话 | 保留 initialize 期间捕获的代理和 GeoIP 设置。 |
| 代理路由 | 继续委托给 upstream Playwright MCP。 |
| Browser geolocation API | 此功能不会配置它;只会对齐 CloakBrowser 的时区、语言和 locale fingerprint flags。 |
GeoIP 位置数据仅为近似值,具体取决于代理 IP 地址以及 CloakBrowser 的 GeoIP 数据库。CloakBrowser 会在首次 使用时根据需要下载并缓存该离线数据库。
请将此功能用于正当的质量保证、本地化和环境一致性 测试。不应将其视为绕过访问控制或区域 策略检查的手段。
相关配置¶
- 配置 列出了所有桥接和上游环境变量。
- Docker 说明了容器运行时的默认设置以及 Streamable HTTP 发布。
- 工具 解释了为何上游的 Playwright MCP 浏览器工具会被原样转发。
更多实用路径¶
要在 upstream Playwright MCP 和本包之间选择,请查看对比。快速任务请使用操作示例:持久配置文件、扩展、reverse proxy、区域 QA、Claude Desktop、Codex CLI 和 CI 冒烟测试。