Connect AI agents (MCP)
Let Claude Code, Claude Desktop, Cursor, VS Code, Windsurf, Codex or any MCP client drive real Halo tabs.
How it works
Halo runs an MCP server inside the app. AI clients connect to it and act on your web tabs: they can open pages, click, type, read text, take full-page screenshots and crawl sites, using your real browser and the sites you are signed in to.
- The server listens on
127.0.0.1only, on port 9230, and every request needs a 32-byte bearer token stored in your Halo profile. - Tools act only on web tabs. Halo's own window, which holds your unlocked vault, is not reachable.
- Halo must be open for agents to use it. The stdio bridge starts Halo if it is not running.
Connect in one click
Open Settings, Agents (or the Connect your AI agents step of setup) and choose Connect next to your client. Halo backs up the client's config file (as .halo-backup) and adds or replaces only its own halo entry.

Claude Code
Halo runs claude mcp add for you with user scope, so Halo is available in all your projects. Run /mcp in Claude Code to check it.
claude mcp add --transport http --scope user halo http://127.0.0.1:9230/mcp --header "Authorization: Bearer YOUR_TOKEN"Claude Desktop
Halo adds a halo entry to claude_desktop_config.json that launches Halo's stdio bridge. Quit and reopen Claude Desktop to load it.
Cursor
Halo adds the server to ~/.cursor/mcp.json. It appears under Cursor's Settings, MCP.
VS Code
Halo adds the server to your user mcp.json. Start it from the MCP: List Servers command.
Windsurf
Halo adds the server to ~/.codeium/windsurf/mcp_config.json. Refresh Windsurf's MCP servers to load it.
Codex
Halo adds an [mcp_servers.halo] section to ~/.codex/config.toml that launches Halo's stdio bridge.
Connect any other MCP client
Expand Other MCP clients in Settings, Agents. It has three copy buttons:
- Copy URL:
http://127.0.0.1:9230/mcp(Streamable HTTP). - Copy header:
Authorization: Bearerfollowed by your token. Treat it like a password. - Copy stdio command: the command that starts Halo's built-in stdio bridge.
HTTP clients
Point the client at the URL and send the header with every request, for example:
{
"mcpServers": {
"halo": {
"url": "http://127.0.0.1:9230/mcp",
"headers": { "Authorization": "Bearer YOUR_TOKEN" }
}
}
}
Clients that launch a command (stdio)
Run the Halo app binary with --mcp-stdio. It relays the client's JSON-RPC to the running Halo, reads the token itself and needs nothing else installed, not even Node.js. On a Mac the command is:
"/Applications/Halo by Synquic.app/Contents/MacOS/Halo by Synquic" --mcp-stdio
On Windows, use the path to Halo by Synquic.exe in the folder you installed Halo into, followed by --mcp-stdio. The Copy stdio command button gives you the exact path for your computer.
Tools
| Tool | What it does |
|---|---|
browser_navigate | Open a URL in the active tab or a new tab. |
browser_back, browser_forward, browser_reload | Move through the tab's history or reload it. |
browser_tabs | List, open, select or close tabs. |
browser_snapshot | Read the page: URL, title, interactive elements with refs, and text. |
browser_click | Click by ref, CSS selector or visible text. |
browser_type | Type into a field, optionally pressing Enter. |
browser_press_key | Press a key such as Enter, Tab or Escape. |
browser_scroll | Scroll up, down, to the top or bottom. |
browser_screenshot | Capture the tab, or the whole scrollable page. |
browser_get_text | Get the page as Markdown or plain text. |
browser_get_links | List the absolute links on the page. |
browser_evaluate | Run JavaScript in the page and return the result. |
browser_wait_for | Wait for text or a selector to appear or disappear. |
browser_list_logins | List saved usernames for the tab's site, without passwords. |
browser_fill_login | Ask you to approve a sign-in; Halo fills it and returns only filled or denied. |
browser_crawl | Crawl a site breadth-first in a hidden window that shares your logins, obeying robots.txt by default. |
browser_auto_capture | Turn automatic screenshots of every page load on or off. |
Passwords and sign-ins
Agents never receive your passwords. Autofill is paused on a tab an agent controls. When an agent calls browser_fill_login, Halo asks you to approve; if you allow it, Halo fills the username and password into the page itself. The agent gets back only filled or denied (also after 60 seconds without an answer), and cannot read the page straight after a fill.
Screenshots and auto-capture
Screenshots taken by agents are also saved to Pictures, Halo Captures. Turn on Auto-capture a screenshot of every page in Settings, Agents, or from the Agents menu, to keep a visual record of what an agent visited.