You signed in with another tab or window.Reload to refresh your session.You signed out in another tab or window.Reload to refresh your session.You switched accounts on another tab or window.Reload to refresh your session.Dismiss alert
'Launch a new browser tab with Chrome/Chromium and navigate to a URL. Opens a Puppeteer-controlled page instance that can be automated with other browser commands. Supports both headless (no UI) and headed (visible browser) modes for testing, scraping, and automation tasks.',
17
17
{
18
-
url:z.string().describe('URL to navigate to'),
19
-
headless:z.boolean().optional().describe('Whether to run in headless mode')
18
+
url:z.string().describe('URL to navigate to (e.g., https://example.com)'),
19
+
headless:z.boolean().optional().describe('Whether to run in headless mode (default: false). Set to true for server environments.')
server.tool('browser_list_tabs','List all open browser tabs',{},async()=>{
37
+
server.tool('browser_list_tabs','List allcurrentlyopen browser tabs managed by Puppeteer. Returns an array of tab objects with their IDs and metadata. Useful for managing multiple pages, checking what tabs are active, and selecting which tab to interact with.',{},async()=>{
'Navigatean existing browsertab to adifferent URL. Waits for the page to load completely before returning. Useful for moving between pages in a multi-step automation workflow or testing navigation flows.',
52
52
{
53
-
tabId:z.string().describe('Tab ID to navigate'),
54
-
url:z.string().describe('URL to navigate to')
53
+
tabId:z.string().describe('Tab ID to navigate (obtained from browser_open_tab or browser_list_tabs)'),
54
+
url:z.string().describe('URL to navigate to (e.g., https://example.com/page)')
'Capture a screenshot of abrowsertab as a PNG image. Can capture either the visible viewport or the entire scrollable page. Returns base64-encoded image data. Perfect for visual testing, documentation, monitoring, or debugging web pages.',
72
72
{
73
73
tabId:z.string().describe('Tab ID to screenshot'),
74
-
fullPage:z.boolean().optional().describe('Whether to capturefullpage')
74
+
fullPage:z.boolean().optional().describe('Whether to capturethe entire scrollablepage (true) or just the visible viewport (false, default)')
'Click an elementon aweb page using a CSS selector. Simulates a real mouse click on buttons, links, or any clickable element. Optionally waits for page navigation to complete after clicking, useful for links and form submissions.',
92
92
{
93
93
tabId:z.string().describe('Tab ID'),
94
-
selector:z.string().describe('CSS selector'),
95
-
waitForNavigation:z.boolean().optional().describe('Wait for navigationafter click')
94
+
selector:z.string().describe('CSS selector to target the element (e.g., "#submit-button", ".menu-item", "button[type=submit]")'),
95
+
waitForNavigation:z.boolean().optional().describe('Wait for navigation/page loadafter click (default: false). Set to true for links and form submissions.')
'Move the mouse cursorover an elementto trigger hover effects. Useful for testing dropdown menus, tooltips, or any hover-triggered UI elements. Simulates the mouseover event just like a real user hovering with their mouse.',
113
113
{
114
114
tabId:z.string().describe('Tab ID'),
115
-
selector:z.string().describe('CSS selector')
115
+
selector:z.string().describe('CSS selector of the element to hover over (e.g., ".dropdown-trigger", "#menu-item")')
'Type text into an inputfieldor textarea on a web page. Clears existing content and fills the field with the specified value. Works with text inputs, password fields, search boxes, textareas, and other text entry elements. Essential for form automation and testing.',
133
133
{
134
134
tabId:z.string().describe('Tab ID'),
135
-
selector:z.string().describe('CSS selector'),
136
-
value:z.string().describe('Valuetofill')
135
+
selector:z.string().describe('CSS selector of the input field (e.g., "input[name=username]", "#email", "textarea.description")'),
136
+
value:z.string().describe('Text valuetotype into the field')
'Select an optionfrom a dropdown menu (<select> element). Chooses an option by its value attribute. Triggers change events as if a user selected the option manually. Perfect for automated form filling and testing select dropdowns.',
'ExecutecustomJavaScriptcodeinthe context of a web page and return the result. Runs in the page\'s JavaScript environment with access to the DOM, window object, and page variables. Use for extracting data, manipulating page content, or calling page functions. Returns serializable values (strings, numbers, objects, arrays).',
175
175
{
176
176
tabId:z.string().describe('Tab ID'),
177
-
script:z.string().describe('JavaScript code to execute')
'Closeand cleanupa browser tab. Closes the Puppeteer page instance and releases associated resources. Use when finished with a tab to free up memory and browser resources.',
195
195
{
196
-
tabId:z.string().describe('Tab ID to close')
196
+
tabId:z.string().describe('Tab ID to close (obtained from browser_open_tab or browser_list_tabs)')
'Activate and bring a browsertab to theforeground. Makes the specified tab the active tab in the browser window, similar to clicking on a browser tab. Useful when working with multiple tabs in headed mode.',
214
214
{
215
-
tabId:z.string().describe('Tab ID')
215
+
tabId:z.string().describe('Tab ID to bring to front')
'Set keyboard focusona specificelementon the page. Triggers focus events and prepares the element to receive keyboard input. Commonly used before typing into fields, testing keyboard navigation, or triggering focus-dependent behaviors.',
233
233
{
234
234
tabId:z.string().describe('Tab ID'),
235
-
selector:z.string().describe('CSS selector of element to focus')
235
+
selector:z.string().describe('CSS selector oftheelement to focus (e.g., "input[name=search]", "#comment-box")')
'Navigatebackward inthebrowser history, equivalent to clicking the back button. Goes to the previous page in the tab\'s navigation history. Useful for testing navigation flows or returning to previous pages in multi-step processes.',
'Navigate forward inthebrowser history, equivalent to clicking the forward button. Goes to the next page in the tab\'s navigation history after going back. Only works if you\'ve previously navigated backward.',
'Reloadthe current page ina tab, equivalent to pressing F5 or clicking the refresh button. Refreshes all page content and re-executes scripts. Optionally specify when to consider the reload complete (e.g., wait for network to be idle or just the load event).',
291
291
{
292
292
tabId:z.string().describe('Tab ID'),
293
-
waitUntil:z.string().optional().describe('When to consider navigation complete (networkidle2, load, etc.)')
293
+
waitUntil:z.string().optional().describe('When to consider navigation complete: "load" (default), "domcontentloaded", "networkidle0" (no network connections for 500ms), or "networkidle2" (max 2 network connections for 500ms)')
'Wait foran element matching a CSSselector to appear inthe DOM. Pauses execution until the element is found or timeout is reached. Optionally wait for the element to be visible (not just present in DOM). Essential for handling dynamic content, SPAs, and elements loaded via JavaScript.',
311
311
{
312
312
tabId:z.string().describe('Tab ID'),
313
-
selector:z.string().describe('CSS selector to wait for'),
'Wait for acustom JavaScriptfunction to returnatruthy value. Repeatedly evaluates the provided function in the page context until it returns true or timeout is reached. More flexible than wait_for_selector - use for waiting on custom conditions like variable values, element counts, or complex page states.',
336
336
{
337
337
tabId:z.string().describe('Tab ID'),
338
-
functionScript:z.string().describe('JavaScript function towait for'),
'Wait fora pagenavigationeventto complete. Waits for the page to finish loading after actions that trigger navigation (like clicking links or submitting forms). Specify different completion criteria based on your needs - wait for initial load or for network to become idle.',
'Get the current URL of abrowsertab. Returns the complete URL currently loaded in the tab, including any changes from navigation, redirects, or hash/query parameter updates. Useful for verifying navigation, checking redirects, or tracking page state.',