Assistant Navigation
Assistant Navigation
Let AI agents use your real, logged-in Chrome. No debugger banner, no tab to keep open.
Part of Assistant, the AI assistant by Ciro Cesar Maciel that works in your tools: it is how Assistant's agents use your browser. It is also free and open source, for any agent: Claude Code, Cursor or your own app.
Your agent needs a dashboard, an inbox or an account that only opens logged in as you. Assistant Navigation gives it your own Chrome: it reads pages, clicks, types and takes pictures in a tab group of its own (named Assistant), in the window you are using. It works from anywhere: Claude Code on your laptop, or an agent running in the cloud.
Why another browser tool
Most tools drive Chrome through its debugger (the Chrome DevTools Protocol). That is powerful, but Chrome shows "… started debugging this browser" on top of every window while it is on, and many tools need a tab or a window held open, or a new id to paste every time.
Assistant Navigation uses only plain extension APIs (tabs, scripting, captureVisibleTab, userScripts), so:
no banner, ever;
no tab to keep open: the extension's service worker holds the connection, and turns itself back on with Chrome;
one connection code, made once: paste it into your agent's settings and forget it;
your window, your tabs: the agents' tabs open in the background, in their own tab group, never in another window.
Related MCP server: tobkiri-tabs
Install the extension
Download
assistant-navigation-extension.zipfrom the latest release and unzip it into a folder you will keep.Open
chrome://extensions, turn on Developer mode, click Load unpacked and pick that folder.Assistant Navigation opens its page with your connection code. Copy it.
Optional: in the extension's Details, turn on Allow user scripts so agents can run code in pages (
browser_script).
The Chrome Web Store listing is on the way.
Connect your agent
Claude Code
claude mcp add assistant-navigation --scope user --env ASSISTANT_NAVIGATION_CODE="<your connection code>" -- npx -y github:ciro-maciel/assistant-navigationCursor, Claude Desktop and other MCP clients
{
"mcpServers": {
"assistant-navigation": {
"command": "npx",
"args": ["-y", "github:ciro-maciel/assistant-navigation"],
"env": { "ASSISTANT_NAVIGATION_CODE": "<your connection code>" }
}
}
}Instead of the environment variable, you can save { "code": "<your connection code>" } in ~/.config/assistant-navigation/config.json. The server needs Node 22+ (or Bun) and has no dependencies.
Your own app
import { call } from 'assistant-navigation/client'
import { functionTools, toolOf } from 'assistant-navigation/tools'
const tools = functionTools() // OpenAI-style tool definitions for your model
const result = await call(code, toolOf('browser_read').method, { tabId: 123 })npm install github:ciro-maciel/assistant-navigation. Each tool has a risk: read only looks or moves around, act changes something; if your app asks a person before acting, weigh the act ones.
The tools
Tool | What it does | Risk |
| Lists your open tabs | read |
| Opens a tab in your window, in the agents' group, and waits for it | act |
| Goes to an address, or back | act, read |
| The page's text and its elements, numbered, including iframes and shadow DOM | read |
| Acts on a numbered element | act |
| Hovers an element, CSS | read |
| Down, up, top, bottom | read |
| A picture of a tab; you are taken back to the tab you were on | read |
| Runs JavaScript in the page and returns the result | act |
| Closes a tab | read |
How it works
your agent ──(MCP or assistant-navigation/client)──▶ tunnel server ◀──(WebSocket, held by the service worker)── Assistant Navigation in your Chrome
wss://…/tunnel/<id>/extension wss://…/tunnel/<id>/upstreamThe extension makes a random 128-bit id once and keeps one WebSocket open to the tunnel server. Your connection code is that id's address on the server; each request your agent sends travels through the tunnel to the extension, which answers it with extension APIs. The public server, wss://navigation.myagents.click, is free; it relays messages and stores nothing.
Run your own tunnel server
It is one Cloudflare Worker with a Durable Object, on the free plan:
git clone https://github.com/ciro-maciel/assistant-navigation && cd assistant-navigation
bunx wrangler deploy --config tunnel/wrangler.tomlThen, in the extension's popup, open Advanced and set the server to wss://<your worker's host>. Your connection code changes with it.
Security
The connection code is a key to your browser, logged in as you: whoever holds it can read and act in your tabs. Keep it like a password. If it leaks, open the popup and click Make a new code: the old one stops working at once. Turn off in the popup, or the icon's badge OFF, cuts every agent off.
Agents are told never to type passwords or card numbers, but that is an instruction, not a wall: give the code only to agents and apps you trust. What is defended and what is not, line by line: THREAT_MODEL.md. See SECURITY.md to report a vulnerability.
Limits
Chrome only photographs the tab on view: a screenshot shows the agent's tab for an instant.
Clicks and typing are synthetic events; a few heavily protected pages ignore them.
No console or network inspection: that needs the debugger, which is what Assistant Navigation avoids.
The whole list, from the tasks it has run, including what needs you (a CAPTCHA, a 2FA code): WHAT-WORKS.md.
Learned from
Coral: publishing what is defended and what is not (THREAT_MODEL.md).
browser-mcp: publishing what works and what does not (WHAT-WORKS.md).
Assistant
Assistant Navigation is the browser part of Assistant: agents that work in your tools, with your connections, files and approvals in one place. In Assistant, paste your connection code once in Settings › My Chrome and every agent of your account can use your browser.
More from Ciro Cesar Maciel
Free, open-source Mac apps and tools at ciromaciel.click.
Curated lists. Nineteen awesome lists in Brazilian Portuguese, translated into 14 languages: AI at work by profession, Pix, NF-e, payments, Open Finance, WhatsApp, Brazilian APIs, MCP servers, Claude Code and more. Every link was opened before it went in.
Support. Everything here is free and stays free. If it saved you time, buy me a coffee: you choose the amount, by Pix or card.
License
MIT. The tunnel server is ported from Playwriter (MIT); see NOTICE.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
Let AI agents use your real, signed-in Chrome: tabs, clicks, forms, screenshots and video.
Connect AI agents to your own Chrome with scoped access, approvals, and verified task results.
Control a real browser from AI agents: navigate, click, type, screenshot, read the page.
Give AI agents a real cloud Chrome: open sessions, navigate, read pages, click, type and screenshot.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to control and automate your Chrome browser directly, leveraging existing login states and configurations for tasks like content analysis, semantic search across tabs, screenshots, network monitoring, and interactive operations.12MIT
- AlicenseNot gradedqualityNot gradedmaintenanceEnables AI agents to create, read, and operate granted background tabs in Chrome via a local stdio MCP server, preserving the human's front tab. Supports tab groups, navigation, clicking/typing, screenshots, and human-priority permissions.MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to control Chrome, Edge, Brave and other Chromium browsers through an extension and native messaging host, exposing a Claude-in-Chrome-compatible tool set for real clicks, typing, screenshots, accessibility-tree reading, page text, form filling, JavaScript execution, console and network inspection, file uploads and GIF recording. Agent sessions run in isolated tab groups with per-site permission prompts, activity logging and a global stop control.Apache 2.0
- AlicenseNot gradedqualityAmaintenanceLets AI agents control the real, already-logged-in Chrome browser: reading pages, clicking, typing, navigating tabs, taking screenshots, and inspecting cookies, network traffic, console output, and storage. It connects as a local extension over Native Messaging, so no remote-debugging port or headless profile is needed.1 npmISC