Skip to main content
Glama

Create browser session

session_create

Opens an isolated browser session with its own cookies, storage, and tabs; configure headed mode, saved profiles, device emulation, resource blocking, or clone a login for parallel workers.

Instructions

Open a new isolated browser session (own cookies, storage and tabs) with options. Optional: any browser_* call with a new session id creates a default session automatically. Use it for a visible window (headed), a saved login (profile), device emulation, faster scraping (blockResources), or a logged-in worker copied from another session (cloneFrom).

Input Schema

NameRequiredDescriptionDefault
deviceNoPlaywright device to emulate, for example "iPhone 15" or "Pixel 7".
headedNoShow a visible browser window, for watching or logging in by hand. Default is the server setting (headless).
localeNoFor example "en-ZA".
profileNoPersistent profile name. Cookies and logins are saved to disk and survive restarts. One session per profile at a time.
sessionYesNew session id, for example "crm" or "worker-1".
viewportNo
cloneFromNoCopy cookies and local storage from this open session, so a new worker starts logged in.
userAgentNo
timezoneIdNoFor example "Africa/Johannesburg".
blockResourcesNoSkip loading these resource types to speed up scraping, for example ["image", "media", "font"].

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false and openWorldHint=false, so the safety profile is covered. The description adds real behavioral context beyond that: each session has isolated cookies/storage/tabs, and a session materializes implicitly on first browser_* call with an unknown id. It does not say what happens when the requested session id already exists or how many concurrent sessions are allowed, which matters given idempotentHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the core action before the caveat and the use-case list. The parenthetical isolation detail and per-option phrases all earn their place; only the use-case sentence is slightly dense with five items packed together.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter creator with no output schema, the description covers purpose, isolation semantics, the implicit-creation behavior, and the intent of the distinguishing options, while the rich schema handles formats and bounds and the annotations handle safety. Nothing an agent needs in order to call it correctly is clearly missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 80%, so a baseline of 3 is already earned by the schema. The description goes past it by giving the intent behind the notable options — headed for watching/logging in by hand, profile for logins that survive restarts, cloneFrom for starting a worker already logged in — though viewport, userAgent and timezoneId are left entirely to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — 'Open a new isolated browser session' — and immediately defines what isolation means (own cookies, storage and tabs). Against siblings like session_list and session_close, an agent can tell this is the creator without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Enumerates concrete selection reasons (headed window, saved profile, device emulation, blockResources, cloneFrom) and adds an important 'when not needed' note that any browser_* call with a new session id auto-creates a default session. It stops short of naming the complementary siblings (session_close, session_list) or stating cleanup expectations, so it is clear context rather than full routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.