session_start
Launch an isolated browser session for automation, with optional persistent profiles, proxies, headless mode, and cookie injection. Ensures proxy-aligned identity and blocks WebRTC leaks.
Instructions
Launch a new, isolated browser. By default it is ephemeral (no saved state) and headful. Pass profile= to launch a persistent managed profile whose cookies/storage survive across runs. Optional: headless, proxy, proxy_ref, start_url, cookie_file (one-shot cookie injection). engine selects the browser engine: 'cdp' (default) uses the system Chrome with Mithwire CDP/JS patches; 'stealth' uses a CloakBrowser binary with C++ source-level fingerprint patches for zero-lie stealth (requires pip install mithwire-mcp[stealth]). On unsupported platforms, 'stealth' falls back to 'cdp' with a warning. proxy accepts 'http://host:port', 'http://user:pass@host:port', the provider 'scheme:host:port:user:pass' form, or socks5://host:port (authenticated SOCKS not wired yet; use the HTTP endpoint). It can ALSO be a dict {server, username?, password?, rotation_url?} where rotation_url is an optional provider endpoint that rotates the upstream exit IP when hit. proxy_ref is the alternate form: a name pointing at an entry in the proxy registry (see session_proxy_set). The two are mutually exclusive per session — a literal proxy spec wins over a registry reference. When a proxy is set, the session is REFUSED if the proxy fails a pre-launch reachability + credentials probe (no half-launched browser, no fallback to the host's direct connection). On success, the browser identity defaults to the proxy egress (timezone, locale/languages, Accept-Language, geolocation) so the two never disagree; any field set in fingerprint={...} or in the profile's launch_options wins over the proxy default. Pass fingerprint={...} to override any identity field explicitly (timezone_id, languages, latitude/longitude, user_agent, platform, hardware_concurrency, device_memory, screen, webgl_vendor/webgl_renderer); see session_set_fingerprint. webrtc_leak_protection controls the WebRTC IP-leak guard: 'auto' (default; filters public ICE candidates when proxied so the real IP can't leak via STUN), 'filter' (always filter), 'disable' (remove RTCPeerConnection), or 'off'. skip_probe (default false): skip the pre-launch proxy health check entirely. Useful when the proxy has already been verified externally or when the proxy does not support the HTTPS CONNECT tunnel used by the default probe. Identity defaults (timezone, locale) will be derived via an in-browser lookup after launch. probe_timeout (seconds): override the default 8-second proxy probe timeout. Raise for slow residential/mobile proxies; the probe includes an automatic plain-HTTP fallback for proxies that fail the primary HTTPS/CONNECT path.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| proxy | No | ||
| engine | No | ||
| profile | No | ||
| sandbox | No | ||
| headless | No | ||
| proxy_ref | No | ||
| start_url | No | ||
| session_id | No | ||
| skip_probe | No | ||
| cookie_file | No | ||
| fingerprint | No | ||
| browser_args | No | ||
| probe_timeout | No | ||
| cookie_fallback_domain | No | ||
| webrtc_leak_protection | No | ||
| browser_executable_path | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||