Canlah Skills Radar
Hephaestus · 页面优化工程师

BrowserGenie

browsergenie/mcp
✓ I/O · 112认领这个员工

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_url

Load 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.

Input(真实 schema)
urlstringrequired
Full URL including http:// or https:// (e.g., "https://google.com")
tabIdnumber
Target tab ID (defaults to currently active tab)
apiKeystring
API key for authentication if enabled
示例调用
{
  "tool": "navigate_to_url",
  "arguments": {
    "url": "…"
  }
}
navigate_back

Go back to the previous page in browser history. Use this instead of navigating to the previous URL directly when possible.

Input(真实 schema)
tabIdnumber
Target tab ID (defaults to currently active tab)
apiKeystring
API key for authentication if enabled
示例调用
{
  "tool": "navigate_back",
  "arguments": {
    "tabId": 0,
    "apiKey": "…"
  }
}
navigate_forward

Go forward to the next page in browser history. Only works if you previously navigated back.

Input(真实 schema)
tabIdnumber
Target tab ID (defaults to currently active tab)
apiKeystring
API key for authentication if enabled
示例调用
{
  "tool": "navigate_forward",
  "arguments": {
    "tabId": 0,
    "apiKey": "…"
  }
}
navigate_reload

Refresh the current page. Use this if the page seems stuck, outdated, or needs fresh data.

Input(真实 schema)
ignoreCacheboolean
Set to true to force reload from server (skips browser cache)
tabIdnumber
Target tab ID (defaults to currently active tab)
apiKeystring
API key for authentication if enabled
示例调用
{
  "tool": "navigate_reload",
  "arguments": {
    "ignoreCache": true,
    "tabId": 0,
    "apiKey": "…"
  }
}
list_tabs

Get 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.

Input(真实 schema)
apiKeystring
API key for authentication if enabled
示例调用
{
  "tool": "list_tabs",
  "arguments": {
    "apiKey": "…"
  }
}
select_tab

Switch 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.

Input(真实 schema)
tabIdnumberrequired
ID of the tab to activate (get this from list_tabs)
apiKeystring
API key for authentication if enabled
示例调用
{
  "tool": "select_tab",
  "arguments": {
    "tabId": 0
  }
}
new_tab

Open 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.

Input(真实 schema)
urlstring
Optional URL to load in the new tab (e.g., "https://google.com")
apiKeystring
API key for authentication if enabled
示例调用
{
  "tool": "new_tab",
  "arguments": {
    "url": "…",
    "apiKey": "…"
  }
}
close_tab

Close a specific browser tab. Use this to clean up tabs you no longer need. Be careful - closed tabs cannot be recovered through this tool!

Input(真实 schema)
tabIdnumberrequired
ID of the tab to close (get this from list_tabs)
apiKeystring
API key for authentication if enabled
示例调用
{
  "tool": "close_tab",
  "arguments": {
    "tabId": 0
  }
}
get_tab_state

Capture URL, title, and a DOM hash for quick tab state comparison. Useful for verifying cross-tab state sync.

Input(真实 schema)
tabIdnumber
Target tab ID (defaults to currently active tab)
apiKeystring
API key for authentication if enabled
示例调用
{
  "tool": "get_tab_state",
  "arguments": {
    "tabId": 0,
    "apiKey": "…"
  }
}
assert_tabs_match

Verify two tabs have the same state (URL, title, DOM hash). Useful for cross-tab state sync testing.

Input(真实 schema)
tabIdAnumberrequired
First tab ID
tabIdBnumberrequired
Second tab ID
apiKeystring
API key for authentication if enabled
示例调用
{
  "tool": "assert_tabs_match",
  "arguments": {
    "tabIdA": 0,
    "tabIdB": 0
  }
}
test_storage_sync

Test cross-tab localStorage synchronization. Sets a value in tab A and checks if it appears in tab B.

Input(真实 schema)
tabIdAnumberrequired
Tab ID to set localStorage value in
tabIdBnumberrequired
Tab ID to verify localStorage value in
keystringrequired
localStorage key to test
valuestringrequired
Value to set and expect
apiKeystring
API key for authentication if enabled
示例调用
{
  "tool": "test_storage_sync",
  "arguments": {
    "tabIdA": 0,
    "tabIdB": 0,
    "key": "…",
    "value": "…"
  }
}
press_key

Press 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.

Input(真实 schema)
keystringrequired
Key name: "Enter", "Tab", "Escape", "Backspace", "ArrowUp/Down/Left/Right", "a", "F1-F12"
modifiersarray
Modifier keys to hold. Use "CmdOrCtrl" (alias: "Accel") for shortcuts that should use ⌘ on macOS and Ctrl on Windows/Linux (e.g. select-all, copy, paste). Use "Control" / "Meta" explicitly if you need a specific key.
selectorstring
CSS/XPath selector to focus before pressing key - use this to avoid needing to click first
selectorTypestring
Selector type: "css" (default) or "xpath"
tabIdnumber
Target tab ID (defaults to active tab)
apiKeystring
API key for authentication if enabled
示例调用
{
  "tool": "press_key",
  "arguments": {
    "key": "…"
  }
}
type_text

Type 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.

Input(真实 schema)
textstringrequired
Plain text to type (no special keys - use press_key for those)
delaynumber
Delay between keystrokes in ms (default: 50). Increase for slower inputs if needed.
tabIdnumber
Target tab ID (defaults to active tab)
apiKeystring
API key for authentication if enabled
示例调用
{
  "tool": "type_text",
  "arguments": {
    "text": "…"
  }
}
screenshot_viewport

Take 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.

Input(真实 schema)
formatstring
Image format: png (default, lossless) or jpeg (smaller file size)
qualitynumber
JPEG quality 0-100 (higher = better quality, larger file)
methodstring
Capture backend. "auto" (default) tries CDP first for accurate modal/stacking rendering, then tabs API as fallback. "cdp" forces CDP, "tabs" forces captureVisibleTab.
saveTostring
File path to save the screenshot on disk (e.g. "/tmp/shot.png" or "~/Desktop/before.png"). Directory is created automatically. Extension is added if omitted. When set, the image is saved AND returned inline.
tabIdnumber
Target tab ID (defaults to currently active tab)
apiKeystring
API key for authentication if enabled
示例调用
{
  "tool": "screenshot_viewport",
  "arguments": {
    "format": "png",
    "quality": 0,
    "method": "auto"
  }
}
screenshot_full_page

Take 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.

Input(真实 schema)
formatstring
Image format: png (default, lossless) or jpeg (smaller file size)
qualitynumber
JPEG quality 0-100 (higher = better quality, larger file)
saveTostring
File path to save the screenshot on disk. Directory is created automatically. Extension is added if omitted.
tabIdnumber
Target tab ID (defaults to currently active tab)
apiKeystring
API key for authentication if enabled
示例调用
{
  "tool": "screenshot_full_page",
  "arguments": {
    "format": "png",
    "quality": 0,
    "saveTo": "…"
  }
}
screenshot_element

Take 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.

Input(真实 schema)
selectorstringrequired
CSS selector or XPath for the element to screenshot
selectorTypestring
Selector type
formatstring
Image format: png (default) or jpeg
qualitynumber
JPEG quality 0-100
saveTostring
File path to save the screenshot on disk. Directory is created automatically. Extension is added if omitted.
tabIdnumber
Target tab ID (defaults to currently active tab)
apiKeystring
API key for authentication if enabled
示例调用
{
  "tool": "screenshot_element",
  "arguments": {
    "selector": "…"
  }
}
click_element

Click 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.

Input(真实 schema)
targetobjectrequired
Target to click - prefer CSS selectors when possible
buttonstring
Mouse button: left (default), right (context menu), or middle
doubleClickboolean
Set to true to simulate a double-click. The tool sends a full click (press + release) twice in rapid succession (~40-100ms apart) at the same position. This triggers both individual click events AND the dblclick event. Use this for opening
methodstring
Click technique: "auto" (default) always uses CDP real-mouse simulation (Bézier-curve movement, press/release) like a real user. For hidden elements (e.g. Ant Design opacity:0 checkboxes), it automatically finds the visible overlay and CDP-
tabIdnumber
Target tab ID (defaults to active tab)
apiKeystring
API key for authentication if enabled
示例调用
{
  "tool": "click_element",
  "arguments": {
    "target": {}
  }
}
input_and_type

One-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.

Input(真实 schema)
selectorstringrequired
CSS selector or XPath to the input/textarea element
selectorTypestring
Selector type: "css" (default) or "xpath"
textstringrequired
Text to type into the input field
clearFirstboolean
Clear existing text before typing (default: true). Set to false to append.
submitboolean
Press Enter automatically after typing to submit forms
nthnumber
When the selector matches multiple elements, target the Nth one (0-indexed). Default: 0.
tabIdnumber
Target tab ID (defaults to active tab)
apiKeystring
API key for authentication if enabled
示例调用
{
  "tool": "input_and_type",
  "arguments": {
    "selector": "…",
    "text": "…"
  }
}
select_from_autocomplete

Type 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).

Input(真实 schema)
selectorstringrequired
CSS selector or XPath for the autocomplete input
selectorTypestring
Selector type (default: "css")
textstringrequired
Text to type to trigger the dropdown (typically a prefix of the option you want)
optionTextstring
Visible substring of the dropdown item to click. Case-insensitive. Defaults to `text` when omitted.
optionSelectorstring
CSS selector for dropdown option nodes. Defaults to a union that matches Ant Design, MUI, Headless UI, and generic role=option.
nthnumber
When multiple options match, pick the Nth (0-indexed).
waitMsnumber
How long to wait for the dropdown to render (default 1200ms).
clearFirstboolean
Clear existing value before typing (default: true).
tabIdnumber
Target tab ID (defaults to active tab)
apiKeystring
API key for authentication if enabled
示例调用
{
  "tool": "select_from_autocomplete",
  "arguments": {
    "selector": "…",
    "text": "…"
  }
}
drag_and_drop

Drag 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.

Input(真实 schema)
fromobjectrequired
Source element/position to start dragging from
toobjectrequired
Target element/position to drop onto
tabIdnumber
Target tab ID (defaults to active tab)
apiKeystring
API key for authentication if enabled
示例调用
{
  "tool": "drag_and_drop",
  "arguments": {
    "from": {},
    "to": {}
  }
}

共 112 个工具,此处展示前 20 个。

综合分

Canlah Score26
归属岗位Hephaestus · 页面优化工程师
岗位分值×1.10
★ Stars2
↓ 下载量476
工具数(实测)112
npm 包browser-genie-mcp-server
✓ 已连通:字段来自真实的 tools/list(工具清单)。工具本身尚未真实调用。

效果测评卡

进行中 · 待运行
任务成功率
输出质量 (LLM 评审)
延迟
成本 / token
稳定性

真实 I/O 已解决「输入输出是什么」;下一步接 agent 真跑,量化「效果好不好」。

取用 / 安装

npx -y browser-genie-mcp-server
同岗位其他 skill
Claude Mobile
alexgladkov/claude-in-mobile
✓ I/O · 14

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.

Hephaestus3095.9k
55
iPhone Control
blitzdotdev/iphone-mcp
✓ I/O · 10

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.

Hephaestus83216
38
WeChat Mini-Program Agent
chaixueyuan/weapp-agent-mcp
✓ I/O · 44

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.

Hephaestus72.2k
35