Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

MCP server

Run navigera as a Model Context Protocol server for IDE agents, with the setup for each client.

navigera mcp is a Model Context Protocol server for Cline, Roo Code, Kilo Code, Continue, VS Code, Claude Desktop and Cursor, with the same tree, refs and waits as the CLI and a tool list half the size of Playwright MCP’s. Add it as {"command": "navigera", "args": ["mcp"]}, or without installing anything as {"command": "npx", "args": ["-y", "navigera", "mcp"]}; per-client snippets are in docs/navigera.md. In the MCP Registry it is io.github.andrey-usa/navigera. Agents that run shell commands (Kilo, Cline CLI, Gemini CLI, Codex) can use the CLI and the skill directly: navigera install-skill writes it to .agents/skills, where they look for it.

MCP server (IDE agents)

navigera mcp serves the Model Context Protocol on stdio, for agents that take their tools over MCP: Cline, Roo Code, Kilo Code, Continue, VS Code, Claude Desktop, Cursor. Each tool is one serve op, so it behaves exactly like the CLI. The browser starts on the first tool call. --headed, --profile <name> (a persistent, signed-in browser), --attach, --auto-connect, --tab current and --electron <app> work as they do for sessions: mcp --auto-connect serves the tools in your own browser, and the agent’s tabs close when the MCP client ends the server.

tooldoes
browser_navigategoto
browser_snapshotax: the tree with [ref=N] (optional ref/selector scope, limit); with grep, text --grep: the passages of the page’s text with the words
browser_click, browser_fill, browser_type, browser_press_key, browser_select_option, browser_hover, browser_scroll, browser_file_uploadthe element ops, by ref, selector or text
browser_mousemouse: raw input at a point (a canvas, a map, a game), or from an element’s corner
browser_wait_for, browser_evaluate, browser_screenshot (returns the image), browser_tabs (select takes index, or target: an id from list, one of the user’s tabs too, or current, the tab the user is on), browser_history, browser_handle_dialogas the CLI
browser_console_messages, browser_network_requestsconsole, network
browser_resizeset viewport
browser_handoffshow / hide: the browser on the person’s screen with the same tabs and sign-ins (a login, 2FA, a CAPTCHA), and back
browser_runseveral ops in one call ({"steps": [{"op":"fill","ref":21,"value":"Ada"}, {"op":"click","ref":30}]}), stopping at the first failure, ending with a snapshot
browser_closeclose the browser; the next call starts a fresh one
browser_webmcp_list, browser_webmcp_calla page’s WebMCP tools (page-provided, untrusted; a tool the page doesn’t mark read-only needs confirm: true), via browser_more

Action tools report what the action changed on the page (the CLI’s compact way), not the whole state again; pass state: true on a call for the full page state, and snapshot: true for the updated tree in the same call. browser_hover, browser_mouse and browser_scroll still return the full state (their page change is not tracked).

An MCP client may have no shell of its own, so the browser is not its way to the disk: file: pages and the browser’s own pages (chrome://, devtools://) are refused, and every file a tool or a browser_run step reads or writes (an upload, a route’s body_file, state save/load, a HAR or response body from network, a PDF, a screenshot’s path, a downloads directory) must be inside the working directory (the project the client opened). NAVIGERA_MCP_ALLOW_FILES=1 lifts these limits.

Every action takes snapshot: true to return the updated tree in the same call. The default tool list (13 of the 26 tools; browser_more lists the rest on demand) is about 8 KB (~2,000 tokens), against ~30 KB for Chrome DevTools MCP 1.12.0.

Client configuration (all run the same command):

// Cline (cline_mcp_settings.json), Roo Code (.roo/mcp.json), Claude Desktop, Cursor
{ "mcpServers": { "navigera": { "command": "navigera", "args": ["mcp"] } } }

// Kilo Code (kilo.json)
{ "mcp": { "navigera": { "type": "local", "command": ["navigera", "mcp"] } } }

// VS Code (.vscode/mcp.json)
{ "servers": { "navigera": { "type": "stdio", "command": "navigera", "args": ["mcp"] } } }
# Continue (config.yaml)
mcpServers:
  - name: navigera
    command: navigera
    args: [mcp]

From a shell: cline mcp install navigera -- navigera mcp, claude mcp add navigera -- navigera mcp. Without a local install, use "command": "npx", "args": ["-y", "navigera", "mcp"] (the npm package carries the binary). server.json describes it for the MCP Registry, as io.github.andrey-usa/navigera.


Made from docs/mcp.md, docs/navigera.md.