Skip to main content

Storage & Authentication

Manage cookies, localStorage, sessionStorage, and save/restore full browser state for authentication persistence. Requires the storage capability.

{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest", "--caps=storage"]
}
}
}

Storage state

Save and restore the full browser state (cookies + localStorage) in a single file. This is the primary way to persist authentication across sessions.

browser_storage_state

Save current state to a JSON file.

→ browser_storage_state
State saved to: auth-state.json

browser_set_storage_state

Restore a previously saved state.

ParameterTypeRequiredDescription
pathstringyesPath to state JSON file
→ browser_set_storage_state { path: "./auth-state.json" }
→ browser_navigate { url: "https://app.example.com/dashboard" }
→ browser_snapshot
// Already logged in
- heading "Dashboard" [level=1]

Workflow: save login, skip it next time

// Login once
→ browser_navigate { url: "https://app.example.com/login" }
→ browser_type { ref: "e3", text: "alice@example.com" }
→ browser_type { ref: "e5", text: "s3cret!" }
→ browser_click { ref: "e7" }
→ browser_snapshot
- heading "Dashboard" [level=1]

// Save
→ browser_storage_state
State saved to: auth-state.json

// Next session: restore instead of logging in
→ browser_set_storage_state { path: "./auth-state.json" }
→ browser_navigate { url: "https://app.example.com/dashboard" }

Or load state automatically on server startup:

["@playwright/mcp@latest", "--caps=storage", "--isolated", "--storage-state=./auth-state.json"]

Cookies

ParameterTypeRequiredDescription
domainstringnoFilter by domain
pathstringnoFilter by path
→ browser_cookie_list

Name Value Domain HttpOnly Secure Expires
session_id abc123 .example.com true true 2024-12-31
theme dark .example.com false false Session
_ga GA1.2... .example.com false false 2026-01-01
ParameterTypeRequiredDescription
namestringyesCookie name
ParameterTypeRequiredDescription
namestringyesCookie name
valuestringyesCookie value
domainstringnoCookie domain
pathstringnoCookie path (default: /)
expiresnumbernoExpiration as Unix timestamp
httpOnlybooleannoHTTP-only flag
securebooleannoSecure flag
sameSitestringnoStrict, Lax, or None

Delete a specific cookie by name, or clear all cookies.

Workflow: test logout by clearing cookies

→ browser_cookie_clear
→ browser_reload
→ browser_snapshot
- heading "Sign in" [level=1]
- textbox "Email" [ref=e3]

localStorage

browser_localstorage_list / get / set / delete / clear

Manage localStorage key-value pairs for the current origin.

ToolParameters
browser_localstorage_list(none)
browser_localstorage_getkey (string)
browser_localstorage_setkey (string), value (string)
browser_localstorage_deletekey (string)
browser_localstorage_clear(none)
→ browser_localstorage_list
Key Value
user_preferences {"theme":"dark","lang":"en"}
onboarding_done true

→ browser_localstorage_set { key: "onboarding_done", value: "false" }
→ browser_reload
→ browser_snapshot
// Onboarding wizard appears
- heading "Welcome! Let's get started" [level=1]

sessionStorage

Same interface as localStorage but session-scoped — data is cleared when the tab closes.

ToolParameters
browser_sessionstorage_list(none)
browser_sessionstorage_getkey (string)
browser_sessionstorage_setkey (string), value (string)
browser_sessionstorage_deletekey (string)
browser_sessionstorage_clear(none)