BrowserGenie
MCP server for Chrome browser automation via a companion Chrome extension. Provides 50+ tools covering navigation, element clicking, text input, screenshot capture, touch gesture simulation, macro recording and replay, DevTools inspection, and accessibility auditing. Communicates with the extension via a local WebSocket bridge at localhost:7890. Written in TypeScript, Apache 2.0 licensed.
真实 I/O · 已连通 ✓
启动 server · tools/list · 112 个工具 · browser-genie下面每个工具的字段、类型、必填项,都是我们真的把 server 启动、tools/list 拉回来的原始 JSON Schema —— 真实的工具契约。注意:下方「示例调用」是按 schema 自动生成的演示,不是真实调用的返回。
navigate_to_urlLoad a web page in the browser. Use this whenever you need to go to a specific website or web address. Automatically waits for page to load.
urlstringrequiredtabIdnumberapiKeystring{
"tool": "navigate_to_url",
"arguments": {
"url": "…"
}
}navigate_backGo back to the previous page in browser history. Use this instead of navigating to the previous URL directly when possible.
tabIdnumberapiKeystring{
"tool": "navigate_back",
"arguments": {
"tabId": 0,
"apiKey": "…"
}
}navigate_forwardGo forward to the next page in browser history. Only works if you previously navigated back.
tabIdnumberapiKeystring{
"tool": "navigate_forward",
"arguments": {
"tabId": 0,
"apiKey": "…"
}
}navigate_reloadRefresh the current page. Use this if the page seems stuck, outdated, or needs fresh data.
ignoreCachebooleantabIdnumberapiKeystring{
"tool": "navigate_reload",
"arguments": {
"ignoreCache": true,
"tabId": 0,
"apiKey": "…"
}
}list_tabsGet a list of ALL open browser tabs. Use this to find tab IDs, see what pages are open, or locate a specific website you need to interact with. Returns tab ID, URL, title, and active status.
apiKeystring{
"tool": "list_tabs",
"arguments": {
"apiKey": "…"
}
}select_tabSwitch to a specific tab. Use this when you need to interact with a different open tab. Makes the tab active and brings its window to front.
tabIdnumberrequiredapiKeystring{
"tool": "select_tab",
"arguments": {
"tabId": 0
}
}new_tabOpen a brand new browser tab. You can optionally provide a URL to navigate to immediately. Returns the new tab ID so you can interact with it.
urlstringapiKeystring{
"tool": "new_tab",
"arguments": {
"url": "…",
"apiKey": "…"
}
}close_tabClose a specific browser tab. Use this to clean up tabs you no longer need. Be careful - closed tabs cannot be recovered through this tool!
tabIdnumberrequiredapiKeystring{
"tool": "close_tab",
"arguments": {
"tabId": 0
}
}get_tab_stateCapture URL, title, and a DOM hash for quick tab state comparison. Useful for verifying cross-tab state sync.
tabIdnumberapiKeystring{
"tool": "get_tab_state",
"arguments": {
"tabId": 0,
"apiKey": "…"
}
}assert_tabs_matchVerify two tabs have the same state (URL, title, DOM hash). Useful for cross-tab state sync testing.
tabIdAnumberrequiredtabIdBnumberrequiredapiKeystring{
"tool": "assert_tabs_match",
"arguments": {
"tabIdA": 0,
"tabIdB": 0
}
}test_storage_syncTest cross-tab localStorage synchronization. Sets a value in tab A and checks if it appears in tab B.
tabIdAnumberrequiredtabIdBnumberrequiredkeystringrequiredvaluestringrequiredapiKeystring{
"tool": "test_storage_sync",
"arguments": {
"tabIdA": 0,
"tabIdB": 0,
"key": "…",
"value": "…"
}
}press_keyPress a single keyboard key with optional modifiers. Use this for special keys: Enter, Tab, Escape, arrows, function keys, or keyboard shortcuts. Does NOT type text - use type_text for that.
keystringrequiredmodifiersarrayselectorstringselectorTypestringtabIdnumberapiKeystring{
"tool": "press_key",
"arguments": {
"key": "…"
}
}type_textType regular text into the currently focused input field. Use this for typing usernames, passwords, search queries, form data, etc. Each character is typed individually like a real user.
textstringrequireddelaynumbertabIdnumberapiKeystring{
"tool": "type_text",
"arguments": {
"text": "…"
}
}screenshot_viewportTake a screenshot of what's currently visible in the browser window. Uses CDP Page.captureScreenshot by default so modals and high-z-index overlays stack correctly — prior versions rendered the underlying drawer and hid modals. Falls back to chrome.tabs.captureVisibleTab when CDP is unavailable. Use `saveTo` to write the image to a file on disk instead of (or in addition to) returning it inline.
formatstringqualitynumbermethodstringsaveTostringtabIdnumberapiKeystring{
"tool": "screenshot_viewport",
"arguments": {
"format": "png",
"quality": 0,
"method": "auto"
}
}screenshot_full_pageTake a screenshot of the ENTIRE page, including content you need to scroll down to see. Automatically scrolls and stitches images together. The original scroll position is restored after capture so the page state is unchanged. Use this when you need to see everything on the page. Use `saveTo` to write the image to a file on disk.
formatstringqualitynumbersaveTostringtabIdnumberapiKeystring{
"tool": "screenshot_full_page",
"arguments": {
"format": "png",
"quality": 0,
"saveTo": "…"
}
}screenshot_elementTake a screenshot of a specific element only. Provide a CSS selector or XPath to capture just that element. Use `saveTo` to write the image to a file on disk.
selectorstringrequiredselectorTypestringformatstringqualitynumbersaveTostringtabIdnumberapiKeystring{
"tool": "screenshot_element",
"arguments": {
"selector": "…"
}
}click_elementClick on any element on the page. Use this for buttons, links, checkboxes, dropdowns, or any interactive element. Simulates real human mouse behavior with Bézier curve movement, randomized delays, and natural press/release timing.
targetobjectrequiredbuttonstringdoubleClickbooleanmethodstringtabIdnumberapiKeystring{
"tool": "click_element",
"arguments": {
"target": {}
}
}input_and_typeOne-stop tool for filling text-based form fields. Automatically clicks the input, clears existing text, types your text, and optionally submits with Enter. Use this for search boxes, login forms, registration fields, etc. IMPORTANT: This tool only works for text inputs, textareas, and contenteditable elements. It will NOT work for file uploads — use set_input_files for those.
selectorstringrequiredselectorTypestringtextstringrequiredclearFirstbooleansubmitbooleannthnumbertabIdnumberapiKeystring{
"tool": "input_and_type",
"arguments": {
"selector": "…",
"text": "…"
}
}select_from_autocompleteType into a server-side autocomplete / combobox (Ant Design AutoComplete, MUI Autocomplete, Headless UI Combobox, etc.) and click the matching dropdown option. Use this instead of `input_and_type` + Enter when the component only accepts values selected from its dropdown (pressing Enter on free-text either submits the wrong filter or clears the field).
selectorstringrequiredselectorTypestringtextstringrequiredoptionTextstringoptionSelectorstringnthnumberwaitMsnumberclearFirstbooleantabIdnumberapiKeystring{
"tool": "select_from_autocomplete",
"arguments": {
"selector": "…",
"text": "…"
}
}drag_and_dropDrag an element from one location to another. Use this for sliders, sortable lists, file upload drop zones, or any drag-interactive elements. Simulates realistic human drag speed.
fromobjectrequiredtoobjectrequiredtabIdnumberapiKeystring{
"tool": "drag_and_drop",
"arguments": {
"from": {},
"to": {}
}
}共 112 个工具,此处展示前 20 个。
综合分
效果测评卡
进行中 · 待运行真实 I/O 已解决「输入输出是什么」;下一步接 agent 真跑,量化「效果好不好」。
Enables automation of Android devices and iOS simulators through a unified API. Supports device listing, screenshots with automatic compression for LLM processing, tap and swipe gestures by coordinates or element text, text input, app launching and installation, UI hierarchy inspection, device logs retrieval, and shell command execution. Provides cross-platform device control for mobile testing and debugging workflows.
Provides direct control over iOS simulators and physical iPhones through a unified interface that combines Facebook's idb for simulators and WebDriverAgent for physical devices. Features automated device discovery, real-time screen streaming via WebSocket for physical devices, and comprehensive interaction tools including tap, swipe, text input, button presses, screenshot capture, app launching, and UI element scanning. Supports both global and project-scoped setup with auto-configuration for Claude Code, Cursor, Codex, and OpenCode.
WeChat Mini-Program Agent enables AI-driven automation and testing of WeChat Mini Programs through a wrapper around miniprogram-automator's WebSocket interface to WeChat DevTools. Supported operations include page navigation, screenshot capture, UI element interaction, DOM inspection, and scenario testing. A serial execution model ensures predictable test flows for agent-first development workflows.