MCP server
Zenrows Official
io.github.ZenRows/zenrows-mcp
Checked 26 Oct 2026, 08:29 UTC · Connected to it and listed its tools
Zenrows MCP server: Fetch, Extract, Batch, and Browser Sessions for AI agents
Working at last checkOfficial: zenrows.com's GitHub account (ZenRows)About 19,025 tokens per request once connected62 tools
https://mcp.zenrows.com/mcp
At a glance
- Type
- MCP server
- Publisher
- zenrows.com (verified by the MCP Registry)
- Status
- Working at last check
- Tools
- 62
- Token cost
- About 19,025 tokens per request
- Sets up in
- Claude Code, Claude Desktop, Codex, Gemini CLI, Cursor, VS Code, Antigravity, ChatGPT, OpenAI API, Grok
- Last checked
- 26 Oct 2026, 08:29 UTC
Connect it to your agent
Opens the app, which shows the server and asks you to confirm. For other apps, copy the setup below.
Claude Code
claude mcp add --transport http zenrows-mcp https://mcp.zenrows.com/mcp
Claude Desktop
Settings → Connectors → Add custom connector, and paste the URL.
Codex (config.toml)
[mcp_servers.zenrows-mcp] url = "https://mcp.zenrows.com/mcp"
Gemini CLI
{"mcpServers":{"zenrows-mcp":{"httpUrl":"https://mcp.zenrows.com/mcp"}}}
Cursor
{"mcpServers":{"zenrows-mcp":{"url":"https://mcp.zenrows.com/mcp"}}}
VS Code
{"servers":{"zenrows-mcp":{"type":"http","url":"https://mcp.zenrows.com/mcp"}}}
Antigravity
agy mcp add zenrows-mcp https://mcp.zenrows.com/mcp
ChatGPT
Settings → Apps & Connectors → Advanced settings: turn on Developer mode, then Create a connector and paste the URL. Which plans can do this varies.
OpenAI API (Responses tools)
{"type":"mcp","server_label":"zenrows-mcp","server_url":"https://mcp.zenrows.com/mcp","require_approval":"always"}
Grok (xAI API tools)
{"type":"mcp","server_label":"zenrows-mcp","server_url":"https://mcp.zenrows.com/mcp"}
Tools
account_usage~327 tokens
Read the current plan's credit allowance and how much of it is spent. Useful before a large batch, or after a 402 / AUTH004, to see whether the account has credits left and when the allowance renews. The call is free and does not use a concurrency slot. Credit costs per request: 1 basic, 5 js_rendbatch_cancel~204 tokens
Stop a Batch job's current run for good. No task still waiting is started or billed; tasks already in flight finish (and bill). Results so far stay readable with batch_results. Tasks that never started stay pending: batch_rerun (default failed and pending) runs them later. Idempotent: a run that alrbatch_content~464 tokens
Read one Batch task's stored result, by job_id and task_id (from batch_results). A text result (HTML, Markdown, plain text, JSON) comes back inline, cut to max_chars (default 20000); a final note says when it was cut. A binary result (a PDF) is not inlined: the reply gives its result_url, presignedbatch_create~2015 tokens
Submit a Batch job: many URLs scraped asynchronously in the cloud (Zenrows Batch API). Suited to large URL lists; scrape and extract handle single pages. Not the same as browser_batch. Tasks use automatic mode (mode=auto) by default: Zenrows enables JS rendering and premium proxies only on the pagebatch_deleteDeletes data · ~168 tokens
Delete a Batch job with all its runs and results, for good. A run in flight stops picking up tasks at once, and the job frees its active-job slot. The job reads as not found right away; storage is cleaned up in the background. Idempotent. To keep the results, use batch_cancel instead.batch_list~281 tokens
List this account's Batch jobs, newest first, each with its latest run's status and stats. Filter by status (open or closed) and type (regular or scheduled). Pass next_cursor as cursor for the next page; a page can hold fewer than limit jobs while next_cursor is still set, so keep paging until it isbatch_pause~171 tokens
Pause a Batch job's current run: it picks up no new tasks until batch_resume. Tasks already in flight still finish and bill; for a hard cost stop use batch_cancel. A paused run still counts as an active job. Idempotent; a run that already ended answers with its final status and already_ended:true.batch_rerun~522 tokens
Start a new run of a Batch job whose latest run ended (completed, stopped or failed). By default it reruns only the tasks that failed or never started (status ["failed", "pending"]), and carries the others' results over: the recovery after a run that failed on credits or was cancelled. Pass status tbatch_results~530 tokens
List a Batch run's result rows, a page at a time: up to limit rows (default 100, max 1000) and next_cursor. Pass next_cursor back as cursor to continue; it is null once every row was read. Each row has task_id, external_id, url, metadata, status (successful, failed, pending, processing, expired), tbatch_resume~168 tokens
Resume a paused Batch run: it picks up its remaining tasks again, billed as they finish. Idempotent on a run that is not paused; a run that already ended answers with its final status and already_ended:true. Needs credits: BATCH_INSUFFICIENT_CREDITS or BATCH_KEY_CAP_REACHED otherwise.batch_status~226 tokens
Get a Batch job's latest run: job_id, run_id, status (pending, running, completed, stopped, failed), stats (total, completed, successful, failed) and the job. A failed run answers ok:false with error.code BATCH_INSUFFICIENT_CREDITS, BATCH_KEY_CAP_REACHED, AUTH_INVALID (subscription_inactive) or BATbatch_wait~356 tokens
Poll a Batch job until its run ends (completed, stopped or failed) or pauses, and return its status and stats like batch_status. If the wait runs out first, it returns the current state with ok:true, timed_out:true and a note: call batch_wait again. A paused run returns at once with paused:true (itbrowser_batch~1670 tokens
Execute a sequence of browser actions in a single call against an existing session. Use this when you already know the full sequence of steps — it reduces round trips and is faster than calling each tool individually. Actions run sequentially and stop at the first failure unless stop_on_error is fbrowser_check~120 tokens
Check a checkbox or radio button.browser_clear_cookies~98 tokens
Clear all cookies for the current browser session.browser_clear_local_storage~102 tokens
Delete every localStorage entry in the current page context.browser_clickBrowses the web · ~122 tokens
Click an element on the page using a CSS selector.browser_close~110 tokens
Close a browser session and free all associated resources, including the concurrency slot it holds.browser_drag~158 tokens
Drag an element from its current position to a target element.browser_evaluate~164 tokens
Execute JavaScript in the browser context and return the result. The script can change or delete the session's page state, such as cookies, storage and form data.browser_fill~153 tokens
Clear an input field and set its value, replacing what was there (browser_type appends instead).browser_focus~126 tokens
Move focus to an element, triggering focus-dependent UI changes.browser_generate_pdf~188 tokens
Render the current page as a PDF document.browser_get_accessibility_tree~184 tokens
Get the ARIA accessibility tree of the current page as readable text. Shows the page structure and the selectors needed to interact with elements, in fewer tokens than a screenshot. The tree shows all interactive elements (buttons, inputs, links) with their roles, labels, and states — everything nbrowser_get_attribute~156 tokens
Get the value of a specific attribute on an element.browser_get_cookies~94 tokens
Get all cookies for the current page.browser_get_html~128 tokens
Get the HTML source of an element or the full page.browser_get_local_storage~120 tokens
Read one localStorage value in the current page context.browser_get_text~134 tokens
Get the visible text content of an element or the entire page body.browser_get_title~92 tokens
Get the title of the current page.browser_get_url~94 tokens
Get the current URL of the browser session.browser_go_back~98 tokens
Navigate back to the previous page in the browser history.browser_go_forward~99 tokens
Navigate forward to the next page in the browser history.browser_hover~127 tokens
Move the mouse cursor over an element to trigger hover effects.browser_navigateBrowses the web · ~330 tokens
Open a Zenrows Browser Sessions session and navigate to a URL. This is the entry point for all browser automation. It creates a new session backed by Zenrows' hosted browser infrastructure and navigates to the given URL in one step. Returns a session_id that every other browser_* tool takes. The sbrowser_new_tab~142 tokens
Open a new browser tab. Returns a tab_id to use with browser_switch_tab.browser_press_key~145 tokens
Press a keyboard key. Examples: "Enter", "Tab", "Escape", "ArrowDown", "Control+a".browser_query_selector_all~132 tokens
Find all elements matching a CSS selector and return their text, HTML, and attributes.browser_reload~94 tokens
Reload the current page of a browser session.browser_screenshotBrowses the web · ~193 tokens
Take a screenshot of the current page or a specific element. Use for visual verification or when the accessibility tree is not sufficient.browser_scroll~160 tokens
Scroll the page in a given direction.browser_select_option~147 tokens
Select an option from a <select> dropdown element.browser_set_cookies~245 tokens
Set one or more cookies in the browser session. A cookie with the same name, domain and path replaces the existing one.browser_set_local_storage~153 tokens
Write one localStorage value in the current page context. An existing value under the same key is replaced.browser_switch_tab~119 tokens
Switch focus to a different browser tab.browser_type~181 tokens
Type text into an input element. Appends to existing content unless clear_first is set.browser_uncheck~127 tokens
Uncheck a checkbox, found by CSS selector, in a browser session.browser_wait~137 tokens
Wait for a fixed duration. browser_wait_for_selector waits only until an element appears.browser_wait_for_navigation~214 tokens
Wait for the page to navigate to a new URL. It waits for the next navigation event, so a navigation that already finished is not seen and the call waits until timeout_ms. Pages that update without changing URL (AJAX/SPA) fire no navigation event. Optional timeout_ms (default 30000ms).browser_wait_for_selector~188 tokens
Wait until an element matching the CSS selector is stable in the DOM. Set visible=true to also require the element to be visible (not hidden).crawl_contentBrowses the web · ~319 tokens
Read the stored page of one URL a crawl kept, in the crawl's output_format. Works only for crawls created with an output_format, and only for results whose content_status is fetched. Pass crawl_id and content_id: a content id, or content_url from a crawl_results row. Returns the page as stored — racrawl_createBrowses the web · ~1112 tokens
Start a crawl from one URL (Zenrows Crawl API). Crawl follows the links in each page's HTML up to depth hops (no depth limit when depth is omitted), keeps the URLs that match include_patterns / exclude_patterns, and stays on the start URL's registrable domain (subdomains count). Use crawl when youcrawl_downloadBrowses the web · ~407 tokens
Save every result of a crawl to one local file, as JSON lines: url, content_status and, once fetched, content (the page). Returns the file's path and line count, not the results, so a crawl of any size costs one small reply. Read the file with your own tools. The file goes to path when given (a relcrawl_get~560 tokens
Get a crawl and one page of the URLs it kept: crawl_id, status (running, completed, stopped, failed), the crawl (with coverage: pages_fetched, pages_failed, items_found), results and next_cursor. completed with stop_reason max_items / max_pages means a limit ended it; stopped with stop_reason usercrawl_list~162 tokens
List this account's crawls, newest first, with status and coverage (no results). Pass next_cursor as cursor for the next page; next_cursor is absent on the last page.crawl_resultsBrowses the web · ~340 tokens
List the URLs a crawl kept, in the order it kept them, following the API's pages up to limit. Each result has url and, when the crawl has output_format, content_status (pending, fetched, failed) and, once fetched, content_url: pass it to crawl_content as content. While the crawl runs the list is pcrawl_stopBrowses the web · ~250 tokens
Stop a running crawl. No page still waiting is fetched or billed; pages already in flight finish. The URLs kept so far stay readable with crawl_results. A stopped crawl cannot resume. Idempotent: a crawl that already ended answers with its final status. A 429, 502, 503 or 504 is retried up to 3 timcrawl_waitBrowses the web · ~279 tokens
Poll a crawl until it ends (completed, stopped, or failed) and return its status, its counts and the first 20 URLs (first_urls). For every result, call crawl_download (one file) or crawl_results (pages). A crawl that ends completed with no results and no error finished; it is not a failure (see crawextract~1130 tokens
Extract structured data from a webpage via Zenrows. Returns JSON fields (products, articles, listings) in "data" rather than a full page body. Set include_html to also get the page HTML. Modes: - auto (default): extract=auto, site-tailored Extract (currently free, billing may apply later). Worksprepare_domain~490 tokens
Prepare a domain so extract (mode=auto) works on it. Use this when extract returns error REQS007 with reason domain_not_prepared. Send the domain (the host, e.g. shop.example.com; a leading www. is dropped, and each host is prepared separately) and 1 to 5 example URLs: real pages you want extractedprepared_domain_status~210 tokens
Check a domain submitted with prepare_domain, and the account's monthly allowance. Returns status (preparing, ready or failed), state (the current step), roles (one per page kind), a failure code and detail when it failed, the allowance (used, limit, remaining) and "next": what to do now. Poll abouscrapeBrowses the web · ~1290 tokens
Scrape any webpage and return its content using Zenrows (Fetch). Returns full-page content (markdown/HTML/PDF/screenshot). For structured JSON fields (products, articles, listings), the extract tool returns parsed fields instead of a full page body. By default the request uses automatic mode (mode
Browse
Related MCP servers
- Browser Automation
Programmatic headless browser sessions: create, interact, browse, and extract - rendered in a real - Writ Cloud
Read, crawl and act on websites, signed in as the user, and turn any site into an API. - Spicrawl
Web scraping MCP server: any URL to Markdown or JSON, with JavaScript rendering and batch jobs. - Minia2a
minia2a.uk — hosted MCP over streamable HTTP: call 1,600+ x402 pay-per-call APIs, USDC on Base. - X402 Data Gateway
Paid x402 and MPP tools for agent discovery, payment safety, data, and DeFi. - Clawifi
Agent-native internet gateway: typed search, fetch, scrape, crawl, and extract via the Clawifi API. - Exa
Connect AI agents to Exa for web search, content fetching, and multi-step research. - Seqbench Workbench
Hosted DNA/RNA/protein tools: primers, oligos, PCR, cloning, CRISPR, alignment, batch & pipelines.
Badge for your README
[](https://aptlynx.net/servers/io.github.ZenRows/zenrows-mcp)
Listing text is written by the maker; AptLynx lists tools and does not vouch for them. Find another tool · Browse by topic · For agents