Tool Navigate
Category: Browser Automation Β· Tier: All
Navigate to a URL and take a screenshot. Pass _browserToken from a previous call to reuse the same browser. To test a phone or tablet layout, pass device and/or viewport on the navigate that starts the session; the response reports the device and viewport used.
When to Use
Browser automation tools map to human motor interaction research. Click accuracy, form filling speed, and scroll behavior follow HCI models.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| url | string | Yes | The URL to navigate to |
| waitAfterLoad | number | No | Extra ms to wait after page load. Use for i18n or deferred rendering (3000-5000). |
| waitForSelector | string | No | CSS selector to wait for after load. Example: [data-translated]. Times out after 10s. |
| device | string | No | Device to emulate for this session: mobile, tablet, desktop, or a preset from list_devices such as iPhone 15 or Pixel 8 (user agent, touch, pixel ratio and size). Names match in any case. |
| viewport | string | No | Page size for this session: WIDTHxHEIGHT (e.g. 1280x720) or a size name (mobile, tablet, desktop, desktop-sm, ...). With device, it sets the size and the device keeps its emulation. |
| _browserToken | string | No | Session token from a previous call, to keep cookies and the page |
Example
Navigate to our staging site to check the new deployment
Navigate to the French version and wait for translation to finish
β url: "https://example.com/fr", waitAfterLoad: 4000
Navigate and wait for dynamic content
β url: "https://example.com", waitForSelector: "#app:not(:empty)"
Open the pricing page as an iPhone 15
β url: "https://example.com/pricing",
device: "iPhone 15"
Device and viewport
device and viewport apply when navigate starts a session, that is, when you pass no _browserToken. A session keeps the device it started with.
- With a
_browserTokenon the hosted server, navigate refuses rather than relaunch a session that may hold a login. The response is an error,device_needs_new_session. Call navigate without the token to start an emulated session. - On the local
npx cbrowser mcp-serverthere is one shared browser, so navigate relaunches it with the new device. - An unknown device name is an error,
unknown_device, with the closest presets insuggestions. - A malformed viewport is an error,
invalid_viewport.
With device or viewport set, the response also carries device (the preset in use, or null when there is none) and viewport (the page's width and height). Abridged:
{
"success": true,
"url":
"https://example.com/pricing",
"title": "Pricing",
"device": "iphone-15",
"viewport": {
"width": 393,
"height": 852
},
"_browserToken": "..."
}
Tips
- Pass
_browserTokenfrom a previous tool call to maintain the same browser session - The tool returns a
_browserTokenin its response β pass it to subsequent calls - Without
_browserToken, each call gets a fresh browser (blank page) - Use
waitAfterLoadfor client-side translation (Google Translate, Tolgee, i18next) - Use
waitForSelectorfor SPAs that render after JS hydration - Without
deviceorviewport, pages render at 1920x1080
Research
- Grossman & Balakrishnan (2005) β Probabilistic pointing models for click targets
- Fitts' Law β Movement time = a + b Γ logβ(D/W + 1)
Related
- Tools Overview β All 131 tools by category