A side-by-side look at the Agent Webbridge and Arc Control (macOS) MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Agent Webbridge for browser automation work as a local process; choose Arc Control (macOS) for browser automation as a local process. You can also run both side by side in one mcpServers block.
navigate, find_tab, evaluate.list_tabs, get_current_tab, switch_to_tab.Rows where the two servers differ are marked.
| Spec | A Agent Webbridge | |
|---|---|---|
| Category | Browser Automation | Browser Automation |
| Quality signal | 59/100 · Good | 56/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | Not declared | Not declared |
| Pricing | Not declared | Not declared |
| Required env vars | None listed | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | 12 | 1 |
| Directory activity | 1 views 0 installs 0 upvotes | 1 views 0 installs 0 upvotes |
| Tools | 15 | 38 |
| Full listing | View Agent Webbridge | View Arc Control (macOS) |
navigateOpen a URL in a new or existing tabfind_tabLocate a tab by URL / titleevaluateRun JavaScript in the page, return the resultsnapshotAccessibility tree with stable `@e` element refsclickClick an element by `@e` ref (synthetic DOM click)trusted_clickReal mouse click (CDP, `isTrusted`) for pages that ignore `clickfillSet native inputs **and** `contenteditable` rich text fieldsuploadProgrammatically assign files to `<input type="file">file_chooser_interceptSuppress native OS file picker dialogs (Finder/Explorer) during programmatic uploadscreenshotCapture full-page or element screenshot directly to disksave_as_pdfSave the page as a PDFnetworkCapture network requests (`start`, `stop`, `list`, `detail`)list_tabsEvery tab, or narrow with `scope: "own"`, `query`, `space`, `window_id`. Rows are flagged `mine` and `isActive`.get_current_tabThe tab a call with no `tab_id` would act on.switch_to_tabMake a tab active in its window. `activate` also brings Arc to the front. Waits for you to stop typing.close_tabClose one tab.close_own_tabsClose every tab this agent opened, leaving the user's alone. `include_stale` also closes tabs leaked by a dead previous run of the same label.arc_statusArc's version and whether it is the frontmost app, owned tabs, the agent window (id, placement, display, minimized), whether Accessibility is available, your current idle time, whether the agent space exists, what a call with no `tab_id` resolves to (reported separately for read-only and for changi…open_urlOpen a URL in the agent window, launching Arc if needed. Waits for you to stop typing, and reports `focusRestored` and `waitedForUserMs`. Options for `new_tab`, target `space`, `little_arc`, `activate`, `wait_until_loaded`.go_backMove a tab through its history, verified by checking the URL actually changed.reload_tabReload a tab.wait_for_loadPoll until the document is ready, optionally until the URL contains a substring. Also reads Arc's `loading` flag (see [Loading tabs](#loading-tabs-and-stop_loading)), so a hung page shows up as `ready: "loading"` instead of a stalled call.stop_loadingPress the stop button on a tab that will not finish loading, which also unblocks every page tool on it.get_page_contentVisible text, whole page or every element matching a selector, joined. Always reports `matched`, so a partial answer is never silent, and flags truncation.Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"agent-webbridge": {
"command": "npx",
"args": [
"-y",
"agent-webbridge"
]
}
}
}
{
"mcpServers": {
"arc-control-macos": {
"command": "npx",
"args": [
"-y",
"arc-control-mcp@latest"
]
}
}
}