Skip to main content

What Is the ZenRows MCP?

The ZenRows MCP (Model Context Protocol) server connects ZenRows’ web scraping capabilities directly to MCP-compatible AI tools like Claude, Cursor, or VS Code Copilot. Once configured, your AI assistant can fetch real-time content from any webpage on your behalf. It connects to the ZenRows Universal Scraper API, which handles JavaScript rendering, residential proxies, and anti-bot bypass automatically.

What you can do

  • Scrape any webpage by describing the task in plain English
  • Extract structured data from e-commerce sites, news pages, or search results
  • Take screenshots of any page for visual inspection
  • Access geo-restricted or bot-protected pages using Premium Proxies

Before You Start

You need:

ZenRows Account

A ZenRows account

ZenRows API Key

Your ZenRows API key

Supported integrations

ToolType
Claude DesktopAI assistant
Claude CodeAI coding assistant
CursorAI code editor
WindsurfAI code editor
VS CodeAI code editor
ZedAI code editor
JetBrains IDEsAI code editor

How it works

All integrations use the same MCP server package (@zenrows/mcp) and the same configuration pattern. Each tool has a configuration file where you register MCP servers. Adding ZenRows tells your AI assistant to use the scrape tool whenever a web scraping task is needed. Once configured, ask your assistant to scrape a page and it handles the request automatically:
Scrape https://scrapingcourse.com/ecommerce/ and list the names and prices of the products.

The scrape Tool

Once installed, the ZenRows MCP exposes one tool to your AI assistant: scrape. The scrape tool fetches a webpage and returns its content in the format you specify: clean Markdown (default), plain text, raw HTML, a screenshot, or structured JSON.

Troubleshooting

Common issues and solutions

IssueCauseSolution
Page content is missing or blankPage uses JavaScript to load content dynamicallyEnable js_render: true
403 error or bot detection pageTarget site blocks datacenter IPsEnable premium_proxy: true
Content is geo-restrictedSite serves different content by regionEnable premium_proxy: true and set proxy_country to the target country code (e.g. US)
Content loads after a delayPage renders elements asynchronouslyUse wait_for with a CSS selector, or wait with a millisecond value. Both require js_render: true
Content only appears after a click or form inputPage requires user interaction before loading dataUse js_instructions to define browser actions (clicks, inputs) before scraping. Requires js_render: true
Response contains full page instead of specific fieldsNo extraction parameters setUse css_extractor with a JSON selector map, autoparse for structured pages, or outputs for specific data types
Screenshot appears blankPage loads content dynamicallyEnable js_render: true alongside the screenshot parameter
The scrape tool is unavailable in your AI assistantConfiguration not loaded yetRestart your AI tool after saving the configuration file. For Claude Desktop, fully quit and reopen the application
API key is not recognizedKey not replaced in configurationConfirm YOUR_ZENROWS_API_KEY has been replaced with your actual key from the ZenRows dashboard. The value must have no extra spaces or surrounding quotation marks

Example Prompts

Once you configure the ZenRows MCP, describe the task to your AI assistant and it handles the scraping automatically.
Fetch https://www.scrapingcourse.com/javascript-rendering/. It uses React, so enable JavaScript rendering.
Get the top 5 products from https://www.scrapingcourse.com/ecommerce/ and extract just the names and prices.
Take a full-page screenshot of https://news.ycombinator.com.
Scrape https://www.scrapingcourse.com/antibot-bypass — it's blocking requests. Use Premium Proxies.

Contributing

The ZenRows MCP server is open source. If you want to modify the server, fix a bug, or suggest an improvement, clone the repository and run it locally:
git clone https://github.com/ZenRows/zenrows-mcp
cd zenrows-mcp
npm install
cp .env.example .env   # Add your API key
npm run dev            # Run with .env loaded (requires Node.js 20.6+)
npm run build          # Compile to dist/
npm run inspect        # Open the MCP inspector UI
Pull requests and issues are welcome on the GitHub repository.