PluginBench
MCP Server
Active
MIT

io.github.ZenRows/zenrows-mcp MCP Server

io.github.ZenRows/zenrows-mcp

AI-powered web scraping and browser automation for accessing protected sites at scale.

What is the io.github.ZenRows/zenrows-mcp MCP server?

The Zenrows MCP server is a Model Context Protocol integration that gives AI assistants reliable, real-time access to live web content, including sites protected by anti-bot measures. It provides web scraping, data extraction, batch processing, and full browser automation capabilities through a single managed infrastructure, eliminating the need for manual proxy rotation, anti-bot handling, or session management.

Zenrows MCP connects your AI assistant to the live web with built-in anti-bot handling and browser automation. Instead of writing scraping code, you describe what you need in plain English and the AI picks the right tool. It handles proxy rotation, headless browser orchestration, and session management on Zenrows' infrastructure, making it easy to reliably access protected websites at scale.

How to install io.github.ZenRows/zenrows-mcp

Copy-paste configuration for popular MCP clients.

transport: stdio
Config generated by PluginBench — verify against the source before use.
Environment / auth
  • ZENROWS_API_KEY
    secret

    Optional Zenrows API key (https://app.zenrows.com/account/settings). If unset, stdio auto-provisions a Free account unless ZENROWS_AUTO_SIGNUP=false.

  • Authorization
    secret

    Bearer <ZENROWS_API_KEY>, or use OAuth in clients that support it. Remote MCP does not auto-create accounts.

~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "zenrows-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@zenrows/mcp"
      ],
      "env": {
        "ZENROWS_API_KEY": "<YOUR_ZENROWS_API_KEY>",
        "Authorization": "<YOUR_AUTHORIZATION>"
      }
    }
  }
}

Tools & capabilities

Tools this server exposes to the agent.

  • scrape — Fetch full-page content and convert to Markdown, plain text, HTML, PDF, or screenshot with helper outputs.
  • extract — Parse structured JSON from web pages using auto-detection, autoparse, or CSS selectors; extract=auto is in open beta.
  • batch_create / batch_status / batch_results / batch_cancel / batch_wait — Cloud Batch API for fan-out async processing via async.api.zenrows.com (beta feature).
  • browser_* — 30+ tools for full browser automation including navigation, clicks, forms, JavaScript execution, cookies, tabs, and session management.

Use cases

  • Scrape news sites, e-commerce platforms, and other protected websites to feed AI analysis and summarization.
  • Extract structured data (prices, product details, listings) from JavaScript-heavy or anti-bot-protected pages.
  • Automate multi-step browser workflows like form filling, login, and navigation for data collection or testing.
  • Batch process hundreds of URLs asynchronously to gather web data at scale without managing infrastructure.
  • Monitor live web content and feed real-time data into AI agents for decision-making and reporting.

io.github.ZenRows/zenrows-mcp MCP server FAQ

What is the Zenrows MCP server?

It's a Model Context Protocol server that gives AI assistants access to web scraping, data extraction, and browser automation capabilities. It handles anti-bot protection, proxy rotation, and session management so you don't have to.

Is it free?

Zenrows offers a free plan with auto-signup. The local stdio mode can auto-create a free account without manual setup. Paid plans are available for higher usage.

How do I install it in Cursor or Claude?

For local setup (Cursor, Claude Desktop, VS Code, Zed, JetBrains): add the config to your MCP servers JSON with `command: npx` and `args: ["-y", "@zenrows/mcp"]`. For remote use (Claude API): pass the server URL `https://mcp.zenrows.com/mcp` with your API key as a Bearer token.

Do I need authentication?

Yes. You can provide a Zenrows API key via the `ZENROWS_API_KEY` environment variable, use a stored key from `~/.zenrows/secrets.json`, or let the local server auto-signup for a free account on first run.

Does it work with protected/anti-bot sites?

Yes. Zenrows MCP is designed to handle sites that block bots. It includes built-in anti-bot handling, proxy rotation, and headless browser orchestration to reliably access protected content.

What transport options are available?

Two options: Remote MCP (Streamable HTTP, hosted at https://mcp.zenrows.com/mcp, no installation needed) or Local MCP (stdio, runs as a subprocess, standard for desktop AI tools and IDE plugins).

README (reference)

Source of truth, from the repository.

<p align="center"> <picture> <source media="(prefers-color-scheme: dark)" srcset="assets/zenrows_light.svg"> <img src="assets/zenrows_dark.svg" alt="Zenrows MCP" width="380"> </picture> </p>

Zenrows MCP Server

The Zenrows MCP (Model Context Protocol) server is the standard way AI systems use Zenrows' web data infrastructure. A single connection gives your AI assistant, agent, or application reliable, real-time access to the live web, including the protected web.

npm version MIT License

📚 Full documentation: docs.zenrows.com/mcp/overview


Why Zenrows MCP

  • Reach sites that normally block bots. Get reliable access to protected sites at scale, without building anti-bot handling yourself.
  • Managed web data infrastructure. Proxy rotation, headless browser orchestration, anti-bot handling, and session management run on Zenrows' infrastructure.
  • Plug into any AI you already use. Works with any MCP client, including AI assistants, agent frameworks, AI SDKs, IDE plugins, and custom applications.
  • Plain English, no scraping code. Describe the task naturally and the AI picks the right tool. No selectors, no proxy management, no anti-bot tuning.

Quick start

Zenrows MCP supports two transport options. Both expose the same set of tools and capabilities. Pick the one that fits your client.

Remote MCP server

Use the hosted Zenrows MCP server when your AI application calls an LLM API directly. The server runs on Zenrows' infrastructure, so there is nothing to install, configure, or update.

Server URL:

https://mcp.zenrows.com/mcp

Transport: Streamable HTTP

Authentication: OAuth or API key as Bearer token. Pass your Zenrows API key in the Authorization header on every request (or complete OAuth in clients that support it).

Authorization: Bearer YOUR_ZENROWS_API_KEY

Most MCP clients accept this through an authorization shorthand field on the tool config and forward it as the Bearer token automatically. Some clients use a free-form headers field instead. Either approach works.

Remote MCP does not auto-create accounts. Use OAuth “Create Free account” in the client, or pass an existing API key.

Example: OpenAI Responses API

import os
from openai import OpenAI

ZENROWS_API_KEY = os.environ["ZENROWS_API_KEY"]
client = OpenAI(api_key=os.environ["OPENAI_API_KEY"])

response = client.responses.create(
    model="gpt-5",
    tools=[
        {
            "type": "mcp",
            "server_label": "zenrows",
            "server_description": "Web scraping MCP server for accessing live web content.",
            "server_url": "https://mcp.zenrows.com/mcp",
            "authorization": ZENROWS_API_KEY,
            "require_approval": "never",
        }
    ],
    input="Visit https://news.ycombinator.com/ and summarize the three most recent posts.",
)

print(response.output_text)

For the full walkthrough with framework-specific examples, see the Remote MCP server docs.

Local MCP server

Use the local stdio configuration when your MCP client runs the server as a local subprocess instead of calling a remote URL. This is the standard setup for desktop AI tools and IDE plugins, including Claude Desktop, Claude Code, Cursor, Windsurf, VS Code, Zed, and JetBrains IDEs.

Package: @zenrows/mcp on npm

Authentication:

  1. ZENROWS_API_KEY environment variable, or
  2. Key previously stored in ~/.zenrows/secrets.json, or
  3. Auto-signup (default): if neither is set, stdio provisions a Free plan account via POST /api/agent/signup, persists the key + claim metadata under ~/.zenrows/ (secrets.json + account.json, mode 0600), and prints a claim URL on stderr. Opt out with ZENROWS_AUTO_SIGNUP=false.

Requirements: Node.js installed (for npx to work).

Configuration (with your own key):

{
  "mcpServers": {
    "zenrows": {
      "command": "npx",
      "args": ["-y", "@zenrows/mcp"],
      "env": {
        "ZENROWS_API_KEY": "YOUR_ZENROWS_API_KEY"
      }
    }
  }
}

Zero-config (auto-signup):

{
  "mcpServers": {
    "zenrows": {
      "command": "npx",
      "args": ["-y", "@zenrows/mcp"]
    }
  }
}

The exact location of this config varies by client. See the per-client setup guides for the file path for your client.


Tools

The Zenrows MCP exposes these tool families:

ToolPurpose
scrapeFull-page content → Markdown, plain text, HTML, PDF, or screenshot (plus helper outputs).
extractStructured JSON (extract=auto, autoparse, or css_extractor) + optional stealth flags. extract=auto is open beta (currently free; billing may apply later).
batch_create / batch_status / batch_results / batch_cancel / batch_waitCloud Batch API fan-out (async.api.zenrows.com). Beta; may return BATCH_ACCESS_DENIED. Not browser_batch.
browser_*30+ tools for full browser automation (navigation, clicks, forms, JS, cookies, tabs, sessions).

The AI selects the right tool from your prompt. You don't call tools directly in code.

See the full tool reference for every tool, parameter, and return value.


Development

git clone https://github.com/ZenRows/zenrows-mcp
cd zenrows-mcp
npm install
cp .env.example .env   # Optional: add your API key (stdio can auto-signup)
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.


Resources


License

MIT

Related MCP servers

CHChatCrystal logo

Local-first AI PKM that turns coding conversations into searchable notes and MCP memory for agents.

34
TypeScript
Apache-2.0
View repository →

Prompt injection + PII detection for LLM apps and agent pipelines. Deterministic, sub-25ms.

0
HTML
View repository →

AI agents replace the CEO of Toys R Us (2006-2017). 17 decisions, 44 quarters. Free entry.

0
JavaScript
View repository →

Sounding checks proposed decisions and returns structured proceed, revise, or pause assessments.

Simulated investment committee: 27 investor lenses read the same filings, debate, and a PM decides.

3
JavaScript
MIT
View repository →

Ziggs delegate MCP: chat, agreements, context, payments via OAuth or operator key.

View repository →