ZenRows MCP connector
OAuth 2.1/DCR Developer ToolsAutomationConnect to ZenRows MCP. Scrape any webpage with anti-bot bypass, render JavaScript-heavy sites, and automate browsers through ZenRows' cloud...
ZenRows MCP connector
-
Install the SDK
Section titled “Install the SDK”Terminal window npm install @scalekit-sdk/nodeTerminal window pip install scalekit -
Set your credentials
Section titled “Set your credentials”Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret> -
Authorize and make your first call
Section titled “Authorize and make your first call”quickstart.ts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENV_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'zenrowsmcp'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize ZenRows MCP:', link)process.stdout.write('Press Enter after authorizing...')await new Promise(r => process.stdin.once('data', r))// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'zenrowsmcp_browser_check',toolInput: { session_id: 'YOUR_SESSION_ID', selector: 'YOUR_SELECTOR' },})console.log(result)quickstart.py import osfrom scalekit.client import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENV_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "zenrowsmcp"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize ZenRows MCP:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={"session_id":"YOUR_SESSION_ID","selector":"YOUR_SELECTOR"},tool_name="zenrowsmcp_browser_check",connection_name=connection_name,identifier=identifier,)print(result)
What you can do
Section titled “What you can do”Connect this agent connector to let your agent:
- Scrape records — Scrape any webpage and return its content using ZenRows
- Selector browser wait for — Wait until an element matching a CSS selector appears in the DOM
- Navigation browser wait for — Wait for a page navigation to complete after triggering a link or form submission
- Wait browser — Pause execution for a specified number of milliseconds
- Uncheck browser — Uncheck a checkbox identified by a CSS selector
- Type browser — Type text into the focused element character by character, simulating real keyboard input
Tool list
Section titled “Tool list”Use the exact tool names from the Tool list below when you call execute_tool. If you’re not sure which name to use, list the tools available for the current user first.
zenrowsmcp_browser_batch
#
Execute a sequence of browser actions in a single call against an existing session. Actions run sequentially and stop at the first failure unless stop_on_error is false. 3 params
Execute a sequence of browser actions in a single call against an existing session. Actions run sequentially and stop at the first failure unless stop_on_error is false.
actions array required Ordered list of actions to perform. Each action has a 'type' field plus type-specific parameters. session_id string required Session ID returned by browser_navigate. Required by all browser_* tools. stop_on_error boolean optional If true (default), stop executing actions when one fails. Set false to continue on errors. zenrowsmcp_browser_check
#
Check a checkbox or radio button by CSS selector. 2 params
Check a checkbox or radio button by CSS selector.
selector string required CSS selector identifying the target element, e.g. #submit-button or .product-card. session_id string required Session ID returned by browser_navigate. Required by all browser_* tools. zenrowsmcp_browser_clear_cookies
#
Clear all cookies for the current browser session. 1 param
Clear all cookies for the current browser session.
session_id string required Session ID returned by browser_navigate. Required by all browser_* tools. zenrowsmcp_browser_click
#
Click an element identified by a CSS selector. 2 params
Click an element identified by a CSS selector.
selector string required CSS selector identifying the target element, e.g. #submit-button or .product-card. session_id string required Session ID returned by browser_navigate. Required by all browser_* tools. zenrowsmcp_browser_close
#
Close a browser session and free its resources. Always call this when done to avoid session leaks. 1 param
Close a browser session and free its resources. Always call this when done to avoid session leaks.
session_id string required Session ID returned by browser_navigate. Required by all browser_* tools. zenrowsmcp_browser_drag
#
Drag an element from a source to a target CSS selector. 3 params
Drag an element from a source to a target CSS selector.
session_id string required Session ID returned by browser_navigate. Required by all browser_* tools. source_selector string required CSS selector for the element to drag from. target_selector string required CSS selector for the element to drop onto. zenrowsmcp_browser_evaluate
#
Execute a JavaScript expression in the page context and return its result. 2 params
Execute a JavaScript expression in the page context and return its result.
script string required JavaScript expression to evaluate in the page context. Return value is serialized to JSON. session_id string required Session ID returned by browser_navigate. Required by all browser_* tools. zenrowsmcp_browser_fill
#
Fill an input, textarea, or contenteditable element with text. 3 params
Fill an input, textarea, or contenteditable element with text.
selector string required CSS selector identifying the target element, e.g. #submit-button or .product-card. session_id string required Session ID returned by browser_navigate. Required by all browser_* tools. value string required Text value to set (fill) or option value to select. zenrowsmcp_browser_focus
#
Move keyboard focus to an element identified by a CSS selector. 2 params
Move keyboard focus to an element identified by a CSS selector.
selector string required CSS selector identifying the target element, e.g. #submit-button or .product-card. session_id string required Session ID returned by browser_navigate. Required by all browser_* tools. zenrowsmcp_browser_generate_pdf
#
Render the current page as a PDF document. 4 params
Render the current page as a PDF document.
session_id string required Session ID returned by browser_navigate. Required by all browser_* tools. landscape boolean optional Render PDF in landscape orientation (default false). print_background boolean optional Include CSS background graphics in the PDF (default false). scale number optional Page scale factor for PDF rendering, 0.1–2 (default 1). zenrowsmcp_browser_get_accessibility_tree
#
Return the accessibility tree of the current page for element discovery and screen-reader testing. 1 param
Return the accessibility tree of the current page for element discovery and screen-reader testing.
session_id string required Session ID returned by browser_navigate. Required by all browser_* tools. zenrowsmcp_browser_get_attribute
#
Get the value of a specific HTML attribute from an element matching a CSS selector. 3 params
Get the value of a specific HTML attribute from an element matching a CSS selector.
attribute string required HTML attribute name to read, e.g. href, src, data-id. selector string required CSS selector identifying the target element, e.g. #submit-button or .product-card. session_id string required Session ID returned by browser_navigate. Required by all browser_* tools. zenrowsmcp_browser_get_cookies
#
Return all cookies set in the current browser session. 1 param
Return all cookies set in the current browser session.
session_id string required Session ID returned by browser_navigate. Required by all browser_* tools. zenrowsmcp_browser_get_html
#
Return the outer HTML of an element or the full page if no selector is given. 2 params
Return the outer HTML of an element or the full page if no selector is given.
session_id string required Session ID returned by browser_navigate. Required by all browser_* tools. selector string optional CSS selector identifying the target element, e.g. #submit-button or .product-card. zenrowsmcp_browser_get_text
#
Return the visible text content of an element or the full page if no selector is given. 2 params
Return the visible text content of an element or the full page if no selector is given.
session_id string required Session ID returned by browser_navigate. Required by all browser_* tools. selector string optional CSS selector identifying the target element, e.g. #submit-button or .product-card. zenrowsmcp_browser_get_title
#
Return the current page title. 1 param
Return the current page title.
session_id string required Session ID returned by browser_navigate. Required by all browser_* tools. zenrowsmcp_browser_get_url
#
Return the current page URL. 1 param
Return the current page URL.
session_id string required Session ID returned by browser_navigate. Required by all browser_* tools. zenrowsmcp_browser_go_back
#
Navigate to the previous page in the browser history. 1 param
Navigate to the previous page in the browser history.
session_id string required Session ID returned by browser_navigate. Required by all browser_* tools. zenrowsmcp_browser_go_forward
#
Navigate to the next page in the browser history. 1 param
Navigate to the next page in the browser history.
session_id string required Session ID returned by browser_navigate. Required by all browser_* tools. zenrowsmcp_browser_hover
#
Move the mouse pointer over an element identified by a CSS selector. 2 params
Move the mouse pointer over an element identified by a CSS selector.
selector string required CSS selector identifying the target element, e.g. #submit-button or .product-card. session_id string required Session ID returned by browser_navigate. Required by all browser_* tools. zenrowsmcp_browser_local_storage
#
Read, write, or clear localStorage in the current page context. 4 params
Read, write, or clear localStorage in the current page context.
action string required Operation: get a value, set a value, or clear all session_id string required Session ID returned by browser_navigate. Required by all browser_* tools. key string optional localStorage key to read or write. value string optional Text value to set (fill) or option value to select. zenrowsmcp_browser_new_tab
#
Open a new browser tab and navigate to a URL in the current session. 2 params
Open a new browser tab and navigate to a URL in the current session.
session_id string required Session ID returned by browser_navigate. Required by all browser_* tools. url string optional Full URL to navigate to or scrape (must include scheme, e.g. https://). zenrowsmcp_browser_press_key
#
Simulate pressing a keyboard key, optionally combined with modifier keys. 2 params
Simulate pressing a keyboard key, optionally combined with modifier keys.
key string required localStorage key to read or write. session_id string required Session ID returned by browser_navigate. Required by all browser_* tools. zenrowsmcp_browser_query_selector_all
#
Return all elements matching a CSS selector as an array of handles. 2 params
Return all elements matching a CSS selector as an array of handles.
selector string required CSS selector identifying the target element, e.g. #submit-button or .product-card. session_id string required Session ID returned by browser_navigate. Required by all browser_* tools. zenrowsmcp_browser_reload
#
Reload the current page. 1 param
Reload the current page.
session_id string required Session ID returned by browser_navigate. Required by all browser_* tools. zenrowsmcp_browser_screenshot
#
Capture a screenshot of the current page or a specific element. 3 params
Capture a screenshot of the current page or a specific element.
session_id string required Session ID returned by browser_navigate. Required by all browser_* tools. full_page boolean optional Capture the full scrollable page, not just the visible viewport. selector string optional CSS selector identifying the target element, e.g. #submit-button or .product-card. zenrowsmcp_browser_scroll
#
Scroll the page in a given direction by a specified pixel distance. 3 params
Scroll the page in a given direction by a specified pixel distance.
direction string required Scroll direction session_id string required Session ID returned by browser_navigate. Required by all browser_* tools. distance integer optional Pixels to scroll (default 500). zenrowsmcp_browser_select_option
#
Select an option in a <select> element by value or label. 3 params
Select an option in a <select> element by value or label.
selector string required CSS selector identifying the target element, e.g. #submit-button or .product-card. session_id string required Session ID returned by browser_navigate. Required by all browser_* tools. value string required Text value to set (fill) or option value to select. zenrowsmcp_browser_set_cookies
#
Set one or more cookies in the current browser session. 2 params
Set one or more cookies in the current browser session.
cookies array required Array of cookie objects to set. Each object requires name and value; domain, path, expires, secure, and http_only are optional. session_id string required Session ID returned by browser_navigate. Required by all browser_* tools. zenrowsmcp_browser_switch_tab
#
Switch focus to a different tab in the current session by tab ID. 2 params
Switch focus to a different tab in the current session by tab ID.
session_id string required Session ID returned by browser_navigate. Required by all browser_* tools. tab_id string required Numeric tab ID returned by browser_new_tab. zenrowsmcp_browser_type
#
Type text into the focused element character by character, simulating real keyboard input. 4 params
Type text into the focused element character by character, simulating real keyboard input.
selector string required CSS selector identifying the target element, e.g. #submit-button or .product-card. session_id string required Session ID returned by browser_navigate. Required by all browser_* tools. text string required Text to type character by character into the focused element. clear_first boolean optional If true, clear the existing field value before typing. zenrowsmcp_browser_uncheck
#
Uncheck a checkbox identified by a CSS selector. 2 params
Uncheck a checkbox identified by a CSS selector.
selector string required CSS selector identifying the target element, e.g. #submit-button or .product-card. session_id string required Session ID returned by browser_navigate. Required by all browser_* tools. zenrowsmcp_browser_wait
#
Pause execution for a specified number of milliseconds. 2 params
Pause execution for a specified number of milliseconds.
ms integer required Milliseconds to pause execution. session_id string required Session ID returned by browser_navigate. Required by all browser_* tools. zenrowsmcp_browser_wait_for_selector
#
Wait until an element matching a CSS selector appears in the DOM. 3 params
Wait until an element matching a CSS selector appears in the DOM.
selector string required CSS selector identifying the target element, e.g. #submit-button or .product-card. session_id string required Session ID returned by browser_navigate. Required by all browser_* tools. visible boolean optional If true, wait until the element is visible in the viewport; if false, wait until present in DOM. zenrowsmcp_scrape
#
Scrape any webpage and return its content using ZenRows. Returns clean markdown by default; supports JavaScript rendering, premium proxies, CSS extraction, and structured output. 14 params
Scrape any webpage and return its content using ZenRows. Returns clean markdown by default; supports JavaScript rendering, premium proxies, CSS extraction, and structured output.
url string required Full URL to navigate to or scrape (must include scheme, e.g. https://). autoparse boolean optional Automatically extract structured data from the page into JSON. Best for product pages, articles, and listings. css_extractor string optional CSS selector map for targeted extraction, e.g. {"title":"h1","price":".price-tag"}. Returns JSON instead of full page content. js_instructions string optional JSON array of browser interactions before scraping, e.g. [{"click":"#load-more"},{"wait":1000}]. Requires js_render=true. js_render boolean optional Enable headless JavaScript rendering. Required for SPAs (React, Vue, Angular) and dynamically loaded content. outputs string optional Comma-separated data types to extract as structured JSON: emails, headings, links, menus, images, videos, audios. Use * for all. premium_proxy boolean optional Use premium residential proxies to bypass heavy anti-bot protection. Higher credit cost. proxy_country string optional ISO 3166-1 alpha-2 country code for geo-targeted proxy, e.g. US, GB, DE. response_type string optional Output format. 'markdown' (default) preserves structure and is ideal for LLMs. 'plaintext' strips all formatting for pure text extraction. 'pdf' returns a PDF of the page. 'html' returns the raw HTML source (omits the response_type param; ZenRows default). Ignored when autoparse, css_extractor, outputs, or screenshot params are set. screenshot boolean optional Capture an above-the-fold screenshot instead of text content. screenshot_fullpage boolean optional Capture a full-page screenshot including content below the fold. screenshot_selector string optional Capture a screenshot of a specific element by CSS selector instead of the full page. wait integer optional Milliseconds to wait after page load before capturing. Max 30000. Requires js_render=true. wait_for string optional CSS selector to wait for before capturing. Requires js_render=true.