使用说明
Arc的剧作家风格语义浏览器自动化
安装
克劳德桌面版
- 下载最新
.mcpb文件来自 发布 - 打开克劳德桌面
- 首选 设置→ 扩展
- 拖放 这
.mcpb文件放到窗口上
克劳德代码
claude mcp add --scope user --transport stdio arc nix run github:andrewgazelka/arc-mcp
或者手动添加到MCP设置中:
{
"mcpServers": {
"arc": {
"command": "nix",
"args": ["run", "github:andrewgazelka/arc-mcp"]
}
}
}
用例
航班搜索 --比较各航空公司的价格,查看空房情况,预订机票
购物 --搜索产品、阅读评论、添加购物车、结账
食品杂货 --浏览商店目录、构建购物车、安排配送
研究 --打开多个来源,提取数据,综合信息
特性
Node.js REPL
在完全访问浏览器API的情况下执行自动化脚本-无预定义的工具约束。
await browser.click({ role: { role: 'button', name: 'Search' } });
await browser.fill({ label: 'Email' }, 'user@example.com');
const tabs = await browser.listTabs();
return tabs.length;
语义定位器
按照用户看到的方式查找元素——按角色、标签、文本或占位符。不再有脆弱的CSS选择器。
await browser.click({ role: { role: 'button', name: 'Search' } });
await browser.fill({ label: 'Email' }, 'user@example.com');
await browser.type({ placeholder: 'Search...' }, 'London');
智能DOM树
获取仅包含交互元素的页面的结构化语义表示。
const structure = await browser.getPageStructure(10);
可用功能
这 browser 对象提供:
语义动作:
click(locator, options?)--按角色、标签、文本、占位符或CSS单击元素fill(locator, value, options?)--快速填充(替换整个值)type(locator, text, options?)--逐个字符键入(触发自动补全)selectOption(locator, option, options?)--选择下拉选项
导航:
openUrl(url, newTab?)--在新选项卡或当前选项卡中打开URLgetCurrentTab()--获取活动选项卡信息(标题、URL)listTabs()--列出所有打开的选项卡switchToTab(tabId)--按索引切换到选项卡closeTab(tabId)--按索引关闭选项卡reloadTab(tabId?)--重新加载选项卡goBack(tabId?)--返回导航goForward(tabId?)--向前导航
页面分析:
getPageStructure(maxDepth?, tabId?)--获取语义DOM树
低的:
executeJavaScript(code, tabId?)--运行任意JavaScript
工作流示例
// 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' } });
建筑
这是一个包含三个包的monorepo:
- @arc mcp/applescript --Arc的低级AppleScript桥
- @arc mcp/浏览器 -带有语义定位器的高级Node.js API
- arc-mcp服务器 --MCP服务器暴露REPL
看 建筑.md 详细设计。
需求
- macOS
- Arc浏览器
发展
npm install
npm run build # Build all packages
npm run typecheck # Type check all packages
npm run pack # Create .mcpb bundle
包装使用
每个包都可以独立使用:
# Use browser API in your own scripts
npm install @arc-mcp/browser
# Use AppleScript bridge directly
npm install @arc-mcp/applescript
不隶属于浏览器公司。Arc是浏览器公司的商标。
麻省理工学院 · 安德鲁·加泽尔卡