Skip to main content
Glama
andresolbach

nodriver-mcp-server

Navigate page

navigate_page

Load a URL, go back, forward, or reload the current page, with optional device emulation applied before the request for accurate mobile behavior.

Instructions

Navigate the selected page — load a URL, or go back, forward or reload.

Navigating rotates the collected logs: the previous page's console and network entries move into the preserved history (the last 3 navigations are kept), still reachable via include_preserved_* on the list tools.

Passing device applies the emulation before the request is sent, so the server sees mobile signals on the very first byte — calling emulate_device afterwards is too late for that first request.

Returns the resulting URL together with all open pages. This reuses the current tab; use new_page to open an additional one.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlNoTarget URL — required when type="url", ignored otherwise. Include the scheme: "https://example.com", not "example.com".
typeNoThe kind of navigation: "url" loads `url`, "back" and "forward" move through session history, "reload" reloads the current page.url
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.
timeoutNoMaximum wait in milliseconds. 0 uses the built-in default.
init_scriptNoJavaScript executed in every new document before any of the page's own scripts, for this navigation. Use it to stub out APIs or plant values a page reads at startup. Plain statements, not a function expression.
ignore_cacheNoBypass the HTTP cache (a hard reload). Only applies to type="reload".
handle_before_unloadNoHow to answer a beforeunload confirmation ("Leave site?") raised by the page being left. "accept" leaves, "dismiss" stays — in which case the navigation does not happen.accept

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
Behavior5/5

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

Beyond annotations, the description discloses that navigating rotates collected logs, preserving the last 3 navigations and making them reachable via include_preserved_* on list tools. It also explains the timing of device emulation and that the tool reuses the current tab. These are important behavioral traits not evident from 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 concise (around 120 words) and well-structured: primary action first, side effects in the second paragraph, and parameter timing combined with return value in the third. Every sentence adds value with no redundancy.

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 7 parameters, 2 enums, and a complex navigation side-effect (log rotation), the description covers the essential behavioral context, parameter timing, and return value. It is sufficient for an agent to select and invoke the tool correctly without needing additional documentation.

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?

The schema already provides 100% parameter coverage with detailed descriptions. The tool description enhances the meaning of the device parameter by explaining why it matters that emulation occurs before the request is sent, which goes beyond the schema's parameter-level detail.

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 opens with a specific verb and resource: "Navigate the selected page — load a URL, or go back, forward or reload." It clearly enumerates the tool's actions and distinguishes it from the sibling tool new_page by stating "use new_page to open an additional one."

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 provides explicit guidance on when to use the device parameter versus emulate_device, noting that "calling emulate_device afterwards is too late for that first request." It also states when to prefer new_page over reusing the current tab, offering a clear alternative.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/andresolbach/nodriver-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server