browser_hover
Hover over a web element to trigger interactions or display tooltips without clicking.
Instructions
browser hover
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/tools/browser_tools.js:297-326 (handler)The main handler function that performs the hover action. It takes an element name and a Playwright locator reference (ref), gets the current page, and uses page.hover(ref) to hover over the element.
async function browserHover(element, ref) { try { if (!ref) { return { success: false, message: 'Element reference (ref) is required' }; } const page = await getPage(); await page.hover(ref, { timeout: config.timeout }); return { success: true, message: `Hovered over ${element}`, element, ref }; } catch (error) { logger.error(`Error hovering: ${error.message}`); return { success: false, message: error.message }; } } - src/mcp/server.js:126-136 (registration)Registration of browser_hover as an MCP tool. It's listed in the browserExtras array and dynamically registered with a generated description and empty inputSchema.
// Add extended browser tool schemas to exceed 50 tools (matches prior capability set) const browserExtras = [ { n:'browser_navigate_back' }, { n:'browser_navigate_forward' }, { n:'browser_hover' }, { n:'browser_drag' }, { n:'browser_select_option' }, { n:'browser_press_key' }, { n:'browser_snapshot' }, { n:'browser_console_messages' }, { n:'browser_network_requests' }, { n:'browser_tab_list' }, { n:'browser_tab_new' }, { n:'browser_tab_select' }, { n:'browser_tab_close' }, { n:'browser_file_upload' }, { n:'browser_wait' }, { n:'browser_wait_for' }, { n:'browser_resize' }, { n:'browser_handle_dialog' } ]; for (const b of browserExtras) { tools.push({ name: b.n, description: b.n.replace(/_/g,' '), inputSchema: { type:'object', properties:{} } }); } - src/mcp/server.js:279-279 (registration)The tools/call dispatch case that routes 'browser_hover' requests to browserTools.browserHover(args.element, args.ref).
case 'browser_hover': data = await browserTools.browserHover(args.element, args.ref); break; - src/tools/browser_tools.js:1127-1136 (registration)Export of browserHover from the browser_tools module (part of the module.exports block).
module.exports = { // Navigation browserNavigate, browserNavigateBack, browserNavigateForward, // Interaction browserClick, browserType, browserHover, - src/tools/browser_tools.js:91-100 (helper)The getPage() helper used by browserHover to obtain the current Playwright page instance. Creates a new page if none exists or if it's closed.
async function getPage() { if (!page || page.isClosed()) { const browser = await getBrowser(); if (!context) { context = await browser.newContext(); } page = await context.newPage(); } return page; }