browser_select_option
Select an option from a dropdown menu in the browser. Use this tool to automate form filling and filter selections during web interactions.
Instructions
browser select option
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/tools/browser_tools.js:367-397 (handler)The actual implementation of browserSelectOption. Uses Playwright's page.selectOption() to select option(s) in a dropdown by element reference and values array.
async function browserSelectOption(element, ref, values) { try { if (!ref || !values || !Array.isArray(values)) { return { success: false, message: 'Element reference (ref) and values array are required' }; } const page = await getPage(); await page.selectOption(ref, values, { timeout: config.timeout }); return { success: true, message: `Selected ${values.length} option(s) in ${element}`, element, ref, values }; } catch (error) { logger.error(`Error selecting option: ${error.message}`); return { success: false, message: error.message }; } } - src/mcp/server.js:127-135 (registration)Registration of the browser_select_option tool in the MCP server's tool list, with a dynamically generated description.
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:281-282 (handler)Dispatch call in the MCP server that routes the 'browser_select_option' case to browserTools.browserSelectOption() with args.element, args.ref, and args.values.
case 'browser_select_option': data = await browserTools.browserSelectOption(args.element, args.ref, args.values); break; case 'browser_press_key': data = await browserTools.browserPressKey(args.key); break; - src/tools/browser_tools.js:91-100 (helper)Helper function getPage() used by browserSelectOption to get or create the current Playwright page instance.
async function getPage() { if (!page || page.isClosed()) { const browser = await getBrowser(); if (!context) { context = await browser.newContext(); } page = await context.newPage(); } return page; }