arc-mcp
Provides browser automation for Arc, enabling AI agents to control the Arc browser programmatically via semantic locators, perform actions like clicking, filling forms, navigating, and extracting page structure.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@arc-mcpsearch for flights from San Francisco to London"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Playwright-style semantic browser automation for Arc
Installation
Claude Desktop
Download the latest
.mcpbfile from releasesOpen Claude Desktop
Go to Settings → Extensions
Drag and drop the
.mcpbfile onto the window
Claude Code
claude mcp add --scope user --transport stdio arc nix run github:andrewgazelka/arc-mcpOr manually add to your MCP settings:
{
"mcpServers": {
"arc": {
"command": "nix",
"args": ["run", "github:andrewgazelka/arc-mcp"]
}
}
}Related MCP server: chrometools-mcp
Use Cases
Flight Search — Compare prices across airlines, check availability, book tickets
Shopping — Search products, read reviews, add to cart, checkout
Groceries — Navigate store catalog, build cart, schedule delivery
Research — Open multiple sources, extract data, synthesize information
Features
Node.js REPL
Execute automation scripts with full access to the browser API — no predefined tool constraints.
await browser.click({ role: { role: 'button', name: 'Search' } });
await browser.fill({ label: 'Email' }, 'user@example.com');
const tabs = await browser.listTabs();
return tabs.length;Semantic Locators
Find elements the way users see them — by role, label, text, or placeholder. No more fragile CSS selectors.
await browser.click({ role: { role: 'button', name: 'Search' } });
await browser.fill({ label: 'Email' }, 'user@example.com');
await browser.type({ placeholder: 'Search...' }, 'London');Smart DOM Tree
Get a structured, semantic representation of the page with only interactive elements.
const structure = await browser.getPageStructure(10);Available Functions
The browser object provides:
Semantic Actions:
click(locator, options?)— Click element by role, label, text, placeholder, or CSSfill(locator, value, options?)— Fast fill (replaces entire value)type(locator, text, options?)— Type character-by-character (triggers autocomplete)selectOption(locator, option, options?)— Select dropdown option
Navigation:
openUrl(url, newTab?)— Open URL in new or current tabgetCurrentTab()— Get active tab info (title, URL)listTabs()— List all open tabsswitchToTab(tabId)— Switch to tab by indexcloseTab(tabId)— Close tab by indexreloadTab(tabId?)— Reload tabgoBack(tabId?)— Navigate backgoForward(tabId?)— Navigate forward
Page Analysis:
getPageStructure(maxDepth?, tabId?)— Get semantic DOM tree
Low-Level:
executeJavaScript(code, tabId?)— Run arbitrary JavaScript
Example Workflow
// Open Google Flights
await browser.openUrl('https://www.google.com/travel/flights');
// Fill origin
await browser.fill({ label: 'Where from?' }, 'San Francisco');
// Type destination (triggers autocomplete)
await browser.type({ placeholder: 'Where to?' }, 'London');
// Click search
await browser.click({ role: { role: 'button', name: 'Search' } });Architecture
This is a monorepo with three packages:
@arc-mcp/applescript — Low-level AppleScript bridge for Arc
@arc-mcp/browser — High-level Node.js API with semantic locators
arc-mcp-server — MCP server exposing REPL
See ARCHITECTURE.md for detailed design.
Requirements
macOS
Arc browser
Development
npm install
npm run build # Build all packages
npm run typecheck # Type check all packages
npm run pack # Create .mcpb bundlePackage Usage
Each package can be used independently:
# Use browser API in your own scripts
npm install @arc-mcp/browser
# Use AppleScript bridge directly
npm install @arc-mcp/applescriptNot affiliated with The Browser Company. Arc is a trademark of The Browser Company.
MIT · Andrew Gazelka
This server cannot be deployed
Maintenance
Related MCP Connectors
AI-powered browser automation — navigate, click, fill forms, and extract data from any website.
AI-powered web automation. Navigate websites using AI agents for one page or a thousand
AI-powered web automation. Navigate websites using AI agents for one page or a thousand
Web search, browser automation, scraping, crawling and CAPTCHA solving for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceTransforms Chrome browser into an AI-controlled automation tool that allows AI assistants like Claude to access browser functionality, enabling complex automation, content analysis, and semantic search while preserving your existing browser environment.MIT
- AlicenseBqualityDmaintenanceEnables AI-powered Chrome automation through natural language, providing 56+ specialized tools for browser interaction, page analysis, scenario recording, and visual testing.5924 npm9ISC
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to perform intelligent browser automation with session-based context analysis, including navigation, form filling, and content extraction through natural language.MIT
- AlicenseBqualityDmaintenanceEnables visual browser automation through natural language descriptions, allowing AI to click, type, and navigate web pages by seeing the page.18MIT