MCP reference
MCP reference
Complete reference for every MCP tool browserlane exposes to agents.
Every MCP tool browserlane exposes to agents over stdio JSON-RPC — generated from bl v0.1.1. 85 tools total. Start the server with bl mcp.
See the CLI ↔ MCP mapping for how the tools relate to the bl CLI (the two surfaces are not 1:1).
| Tool | Description |
|---|
browser_back | Navigate back in browser history (like clicking the back button) |
browser_forward | Navigate forward in browser history (like clicking the forward button) |
browser_navigate | Navigate to a URL in the browser |
browser_reload | Reload the current page. Waits for the page to fully load. |
browser_wait | Wait for an element to reach a specified state (attached, visible, or hidden) |
browser_wait_for_fn | Wait until a JavaScript expression returns a truthy value |
browser_wait_for_load | Wait until the page reaches the "complete" ready state (all resources loaded) |
browser_wait_for_text | Wait until specific text appears on the page |
browser_wait_for_url | Wait until the page URL contains a given substring |
| Tool | Description |
|---|
browser_check | Check a checkbox or radio button. Idempotent — does nothing if already checked. |
browser_click | Click an element by CSS selector. Waits for element to be visible, stable, and enabled. |
browser_dblclick | Double-click an element by CSS selector or @ref |
browser_drag | Drag from one element to another |
browser_fill | Clear an input field and type new text. Waits for element to be editable, clears existing value, then types. Use this instead of browser_type when you want to replace the field contents. |
browser_focus | Focus an element by CSS selector or @ref |
browser_hover | Hover over an element by CSS selector |
browser_keys | Press a key or key combination (e.g., "Enter", "Control+a", "Shift+Tab") |
browser_mouse_click | Click at coordinates or at the current mouse position. If x and y are provided, moves the mouse there first. |
browser_mouse_down | Press a mouse button down at the current position |
browser_mouse_move | Move the mouse to specific coordinates |
browser_mouse_up | Release a mouse button at the current position |
browser_press | Press a key or key combination on a specific element or the focused element. If selector is given, clicks the element first to focus it, then presses the key. |
browser_scroll | Scroll the page or a specific element |
browser_scroll_into_view | Scroll an element into view, centering it on screen |
browser_select | Select an option in a <select> element by value |
browser_type | Type text into an element by CSS selector. Waits for element to be visible, stable, enabled, and editable. |
browser_uncheck | Uncheck a checkbox. Idempotent — does nothing if already unchecked. |
browser_upload | Set files on an input[type=file] element |
| Tool | Description |
|---|
browser_a11y_tree | Get the accessibility tree of the current page. Returns a tree of ARIA roles, names, and states — useful for understanding page structure without visual rendering. |
browser_count | Count the number of elements matching a CSS selector |
browser_find | Find an element and return its info (tag, text, bounding box). Use a CSS selector or a semantic locator (role, text, label, placeholder, testid, xpath, alt, title). Combine role with text or other locators to narrow results. |
browser_find_all | Find all elements matching a CSS selector and return their info (tag, text, bounding box) |
browser_frame | Find a frame by name (exact match) or URL (substring match) |
browser_frames | List all child frames (iframes) on the current page |
browser_get_attribute | Get the value of an HTML attribute on an element |
browser_get_html | Get the HTML content of the page or a specific element |
browser_get_text | Get the text content of the page or a specific element |
browser_get_title | Get the current page title |
browser_get_url | Get the current page URL |
browser_get_value | Get the current value of an input, textarea, or select element |
browser_is_checked | Check if a checkbox or radio button is checked. Returns true/false. |
browser_is_enabled | Check if an element is enabled (not disabled). Returns true/false. |
browser_is_visible | Check if an element is visible on the page. Returns true/false without throwing errors. |
browser_list_pages | List all open browser pages with their URLs |
browser_map | Map interactive page elements with @refs for targeting. Returns a list of interactive elements (buttons, links, inputs, etc.) each with a short @ref like @e1, @e2. Use these refs as selectors in other commands (click, fill, etc.). |
| Tool | Description |
|---|
browser_highlight | Highlight an element with a red outline for 3 seconds. Useful for visual debugging. |
browser_pdf | Save the current page as a PDF file |
browser_record_start | Start a browser recording (screenshots and/or HTML snapshots). Output is Playwright trace viewer compatible. |
browser_record_start_chunk | Start a new chunk within the current recording (for splitting long recordings) |
browser_record_start_group | Start a named group in the recording (groups nest actions in the trace viewer) |
browser_record_stop | Stop recording and save to a Playwright-compatible trace ZIP file |
browser_record_stop_chunk | Package the current recording chunk into a ZIP file (recording remains active) |
browser_record_stop_group | End the current recording group |
browser_screenshot | Capture a screenshot of the current page |
| Tool | Description |
|---|
browser_delete_cookies | Delete cookies. If name is given, deletes that cookie. Otherwise deletes all cookies. |
browser_dialog_accept | Accept a dialog (alert, confirm, prompt). Optionally provide text for prompt dialogs. |
browser_dialog_dismiss | Dismiss a dialog (cancel/close) |
browser_diff_map | Compare current page state vs last map. Shows additions (+) and removals (-) since the last browser_map call. |
browser_download_set_dir | Set the download directory for the browser |
browser_emulate_media | Override CSS media features (color scheme, reduced motion, etc.) |
browser_get_cookies | List all cookies for the current page |
browser_get_viewport | Get the current viewport dimensions |
browser_get_window | Get the OS browser window dimensions and state |
browser_restore_storage | Restore cookies and storage from a JSON state file |
browser_set_content | Replace the page HTML content |
browser_set_cookie | Set a cookie |
browser_set_geolocation | Override the browser geolocation |
browser_set_viewport | Set the browser viewport size |
browser_set_window | Set the OS browser window size, position, or state |
browser_storage_state | Export cookies, localStorage, and sessionStorage as JSON |
| Tool | Description |
|---|
browser_evaluate | Execute JavaScript in the browser to extract data, query the DOM, or inspect page state. Returns the evaluated result. Use this to get text content, attributes, element data, or any information from the page. |
browser_sleep | Pause execution for a specified number of milliseconds. Use sparingly — prefer browser_wait or browser_wait_for_url when possible. |
| Tool | Description |
|---|
browser_close_page | Close a browser page by index (default: current page) |
browser_new_page | Open a new browser page, optionally navigating to a URL |
browser_start | Start a browser session |
browser_stop | Stop the browser session |
browser_switch_page | Switch to a browser page by index or URL substring |
| Tool | Description |
|---|
page_clock_fast_forward | Jump the fake clock forward by N milliseconds, firing each due timer at most once |
page_clock_install | Install a fake clock on the page, overriding Date, setTimeout, setInterval, requestAnimationFrame, and performance.now |
page_clock_pause_at | Jump the fake clock to a specific time and pause — no timers fire until resumed or advanced |
page_clock_resume | Resume real-time progression from the current fake clock time |
page_clock_run_for | Advance the fake clock by N milliseconds, firing all time-related callbacks systematically |
page_clock_set_fixed_time | Freeze Date.now() at a specific value permanently. Timers still run. |
page_clock_set_system_time | Set Date.now() to a specific value without triggering any timers |
page_clock_set_timezone | Override the browser timezone. Pass an IANA timezone ID (e.g. 'America/New_York'), or empty string to reset to system default |