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.
| tool | does |
|---|---|
browser_navigate | goto |
browser_snapshot | ax: 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_upload | the element ops, by ref, selector or text |
browser_mouse | mouse: 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_dialog | as the CLI |
browser_console_messages, browser_network_requests | console, network |
browser_resize | set viewport |
browser_handoff | show / hide: the browser on the person’s screen with the same tabs and sign-ins (a login, 2FA, a CAPTCHA), and back |
browser_run | several 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_close | close the browser; the next call starts a fresh one |
browser_webmcp_list, browser_webmcp_call | a 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.