---
title: Browser Automation
url: https://arcana.otnelhq.com/docs/browser-automation
---

# Browser Automation



Arcana agents can drive a real Chrome browser using [agent-browser](https://agent-browser.dev) via MCP. Navigate pages, click buttons, fill forms, take screenshots, and extract data — all from natural language prompts.




## Setup




### 1. Install agent-browser



```bash
npm install -g agent-browser
agent-browser install
```




### 2. Configure the MCP server



Add the browser MCP server to your Arcana config at `~/.config/arcana/arcana.json`:



```json
{
  "mcp": {
    "browser": {
      "type": "local",
      "command": ["agent-browser", "mcp", "--tools", "core"],
      "environment": {
        "AGENT_BROWSER_CONTENT_BOUNDARIES": "1",
        "AGENT_BROWSER_MAX_OUTPUT": "50000",
        "AGENT_BROWSER_IDLE_TIMEOUT_MS": "3600000"
      }
    }
  }
}
```




### 3. Verify



```bash
arcana run "list your browser tools" 2>&1 | grep MCP
# → MCP: browser (29 tools)
```




## Usage



Once configured, the agent automatically has access to browser tools. You can use them explicitly with the browser skill or let the agent discover them naturally:




### With the browser skill loaded



```bash
arcana run --skill browser-automation "log into app.example.com and check notifications"
```




### Without the skill



The agent still sees the browser tools and can use them when appropriate:



```bash
arcana run "open github.com, find the top trending repo"
```




## Tool Profiles



Control how many browser tools are exposed to the agent. Fewer tools = faster model selection, more tools = more capability.



| Profile | Tools | Best For |
| --- | --- | --- |
| `core` | 29 | Default — navigation, screenshots, basic interaction |
| `core,network,tabs` | ~45 | Web app testing — network interception, multi-tab |
| `all` | ~100 | Power users — full browser control |



Change the `--tools` flag in your config to switch profiles:



```json
"command": ["agent-browser", "mcp", "--tools", "core,network,tabs"]
```




## Security



Browser automation runs locally and has access to your real browser sessions. Use these environment variables to restrict behavior:



| Variable | Purpose |
| --- | --- |
| `AGENT_BROWSER_ALLOWED_DOMAINS` | Restrict navigation to specific domains |
| `AGENT_BROWSER_CONFIRM_ACTIONS` | Gate dangerous actions like eval() and file downloads |
| `AGENT_BROWSER_ENCRYPTION_KEY` | Encrypt persisted browser sessions at rest |



You can also set these per-tool via arguments for fine-grained control.




## Troubleshooting



| Problem | Fix |
| --- | --- |
| `MCP: (no servers)` | Check your `arcana.json` for the `mcp.browser` section |
| `Failed to connect` | Run `agent-browser doctor` to diagnose |
| Tools not responding | Restart your Arcana session |
| Too many tools slowing things down | Use `--tools core` for a smaller toolset |




## Examples



```bash
# Form filling
arcana run "go to jira.example.com, create a bug ticket with title 'Login broken'"

# Data extraction
arcana run "open amazon.com, search for 'mechanical keyboard', extract top 5 results with prices"

# Screenshot and analysis
arcana run "take a screenshot of dashboard.example.com and summarize the key metrics"

# Multi-step workflow
arcana run --skill browser-automation "log into github.com, open my latest PR, leave a code review comment"
```
