Skip to main content
Glama
andresolbach

nodriver-mcp-server

Open new page

new_page

Open a new tab and load a URL, applying device emulation before the first request or opening in the background. Use an isolated context to keep separate cookies and logins.

Instructions

Open a new browser tab and load a URL.

Chrome always starts with one tab, so the first call here reuses that empty startup tab rather than leaving a stray blank page behind for the rest of the session. A blank tab sitting among others is left alone, and an isolated context always gets a target of its own.

Unless background is set, the new page becomes the selected page for every subsequent tool call.

Passing device applies emulation before the first real request, so mobile signals are present from the very first byte — which calling emulate_device afterwards cannot achieve.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlNoURL to load in the new tab, including the scheme. Defaults to "about:blank" for an empty tab.about:blank
deviceNoDevice to emulate — sets user agent, UA client hints, viewport, device pixel ratio and touch together. Presets: "pixel_7" (aliases: pixel7, android, android_phone), "pixel_7_landscape" (pixel7_landscape, android_landscape), "ipad_air" (ipadair, ipad, tablet). Case, spaces and -/_ are normalised. Empty string leaves emulation unchanged.
browserNoWhich browser to act on. Each name is an independent Chrome, created on first use. Omit for the shared default; parallel agents each need their own name.default
timeoutNoMaximum wait in milliseconds. 0 uses the built-in default.
backgroundNoOpen the tab without focusing it, leaving the current page selected. Default false, which focuses the new page and makes it the target of all following tool calls.
isolated_contextNoOpen the page in a named isolated browser context — its own cookie jar and storage, comparable to a separate incognito window. Pages given the same name share that context; different names are fully isolated from each other. Use it to hold several logins to one site at once. Empty string uses the normal shared context.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv2.5.0
    • addedInput schema / properties / browser
      Added value: +{
      +  "default": "default",
      +  "description": "Which browser to act on. Each name is an independent Chrome, created on first use. Omit for the shared default; parallel agents each need their own name.",
      +  "type": "string"
      +}
  2. First observedv1.7.2

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already mark this as a mutating (readOnlyHint=false) and world-opening (openWorldHint=true) action. The description goes well beyond that by disclosing tab-reuse behavior, the fact that a blank tab is left alone, isolated contexts getting their own target, the selection side-effect unless background is set, and the timing of device emulation. These are concrete behavioral traits an agent needs to anticipate side effects correctly, with no contradiction to the annotations.

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

Conciseness5/5

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

The description is a single well-structured paragraph, with the primary purpose in the first sentence and each subsequent sentence adding distinct value (tab reuse, selection behavior, device emulation timing). No filler or redundancy; every clause contributes to understanding when and how to use the tool.

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?

Given the tool's complexity (six parameters, side effects on selection, isolation, and emulation timing) and the presence of an output schema, the description covers all essential behavioral nuances. It explains the startup-tab handling, background behavior, isolated-context targeting, and device emulation advantage. The only parameters not mentioned (timeout, browser) are self-explanatory and fully documented in the schema, so nothing critical is 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 100% for all six parameters, so the baseline is 3. The description adds meaningful context beyond the schema: it explains that passing device applies emulation before the first real request (a timing nuance not in the schema), that background controls selection behavior for subsequent calls, and that isolated_context always gets its own target. These enrich the parameter semantics without restating the schema, earning a 4.

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?

The description states the core action clearly: 'Open a new browser tab and load a URL.' It distinguishes itself from sibling tools like navigate_page (which acts on an existing page) and select_page (which selects a page) by focusing on creating a new tab. It also explains the startup-tab reuse behavior, making the tool's purpose precise and unambiguous.

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

Usage Guidelines5/5

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

The description gives explicit guidance on when to use this tool: it is the way to open a new tab, with specific notes on the first call reusing the startup tab and the background parameter affecting selection. It also contrasts with emulate_device, stating that passing device here gives emulation from the first byte, which calling emulate_device afterwards cannot achieve — a clear when-not condition. This helps an agent choose between opening a page and emulating a device.

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