Skip to main content
Glama

browser_navigate

Navigate browser tabs to URLs using Chrome DevTools Protocol for reliable automation, with options to verify page readiness and track navigation state changes.

Instructions

Navigate a browser tab to a URL via CDP Page.navigate — more reliable than clicking the address bar (no need to find UI elements). Verify readiness with browser_eval("document.readyState") after calling. Pass lensId (from perception_register) to verify tab identity before navigating and receive post.perception state feedback without a screenshot. Caveats: Does not block until page load completes — follow with wait_until(element_matches) or repeated browser_eval polling for slow pages.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlYesURL to navigate to
narrateNoNarration level. rich includes UIA or browser state diff when supported.minimal
tabIdNoTab ID from browser_connect. Omit to use the first page tab.
portNoChrome/Edge CDP remote debugging port.
waitForLoadNoWhen true (default), wait for document.readyState === 'complete' before returning. Use waitForLoad:false for the legacy behavior (return immediately after Page.navigate). Accepts the strings "true"/"false".
loadTimeoutMsNoMax milliseconds to wait for page load when waitForLoad=true (default 15000). On timeout, returns ok:true with readyState set to current state and hints.warnings=['NavigateTimeout'].
lensIdNoOptional perception lens ID. Guards (target.identityStable) are evaluated before navigating, and a perception envelope is attached to post.perception on success.
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure and does so effectively. It explains the non-blocking nature ('Does not block until page load completes'), provides verification guidance, mentions identity verification requirements, describes timeout behavior, and explains post-operation feedback mechanisms. The only minor gap is it doesn't explicitly mention error conditions or what happens with invalid URLs.

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 efficiently structured with zero wasted sentences. It front-loads the core purpose, then provides implementation guidance, verification steps, prerequisites, and caveats in a logical flow. Every sentence adds essential information for correct tool usage.

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

Completeness4/5

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

For a complex 7-parameter tool with no annotations and no output schema, the description does an excellent job covering most essential context. It explains the tool's behavior, verification requirements, timing considerations, and integration with other tools. The only minor gap is the lack of explicit information about return values or error responses, which would be helpful given the absence of an output schema.

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?

With 100% schema description coverage, the baseline would be 3, but the description adds valuable context beyond the schema. It explains the purpose of lensId ('to verify tab identity before navigating and receive post.perception state feedback'), provides practical guidance on tabId ('Omit to use the first page tab'), and clarifies the relationship between waitForLoad and verification steps. However, it doesn't provide additional context for parameters like narrate or port beyond what's in 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?

The description clearly states the specific action ('Navigate a browser tab to a URL via CDP Page.navigate') and distinguishes it from alternatives by explaining it's 'more reliable than clicking the address bar (no need to find UI elements)'. It precisely identifies both the verb (navigate) and resource (browser tab/URL).

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 this tool versus alternatives ('more reliable than clicking the address bar'), when to follow up with other tools ('follow with wait_until(element_matches) or repeated browser_eval polling'), and includes specific prerequisites ('Pass lensId (from perception_register)'). It also mentions verification steps ('Verify readiness with browser_eval') and caveats about blocking behavior.

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/Harusame64/desktop-touch-mcp'

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