Profile & State
Playwright MCP manages browser state through profiles. By default, login state and cookies persist between sessions automatically.
Profile modes
Persistent (default)
Login state, cookies, and local storage are preserved between sessions. The profile directory name includes the browser channel and a hash of the client's workspace directory, so different projects get separate profiles automatically.
| Platform | Default location |
|---|---|
| macOS | ~/Library/Caches/ms-playwright-mcp/mcp-{channel}-{workspace-hash} |
| Linux | ~/.cache/ms-playwright-mcp/mcp-{channel}-{workspace-hash} |
| Windows | %LOCALAPPDATA%\ms-playwright-mcp\mcp-{channel}-{workspace-hash} |
Override the profile location:
["@playwright/mcp@latest", "--user-data-dir=/path/to/profile"]
A profile can only be used by one browser at a time. If it is already locked, the server fails to start.
The Playwright CLI defaults to in-memory state instead (cookies persist between commands but are lost when the browser closes). Use --persistent there to enable disk persistence. See Sessions & Dashboard for CLI-specific session management.
Isolated
Each session starts fresh with no saved state, and nothing is written to disk. Pass --isolated to enable:
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest", "--isolated"]
}
}
}
--isolated cannot be combined with --user-data-dir. Load initial state into an isolated session with --storage-state:
["@playwright/mcp@latest", "--isolated", "--storage-state=./auth-state.json"]
Browser extension
Connect to your existing browser tabs instead of launching a new browser. See Browser Extension.
Saving and restoring state
Save authenticated state for reuse across sessions with the storage capability:
// Login, then save
→ browser_storage_state { filename: "auth-state.json" }
- [Storage state](auth-state.json)
// Later: restore
→ browser_set_storage_state { filename: "auth-state.json" }
Or load state automatically on server startup with --storage-state. See Storage & Authentication for the full workflow.