Connects Claude and other MCP clients to ZenRows' scraping infrastructure to fetch content from any website without hitting bot detection. You get two tool families: a single `scrape` call that returns Markdown, HTML, JSON, or screenshots via the Universal Scraper API, and 30+ `browser_*` tools for full automation like clicking, form filling, and session management through their Scraping Browser. Works as either a remote HTTPS server or local stdio process. Useful when you need an AI to pull live data from sites that would normally block automated requests, or when you want to hand off the proxy rotation and anti-bot headaches to managed infrastructure instead of wrestling with Playwright or Puppeteer yourself.
Public tool metadata for what this MCP can expose to an agent.
scrapeScrape any webpage and return its content using ZenRows. Use this tool to fetch webpage content for analysis. By default it returns clean markdown, which is ideal for LLM processing. When to enable options: - js_render: page uses React/Vue/Angular, loads content dynamically, o...14 paramsScrape any webpage and return its content using ZenRows. Use this tool to fetch webpage content for analysis. By default it returns clean markdown, which is ideal for LLM processing. When to enable options: - js_render: page uses React/Vue/Angular, loads content dynamically, o...
urlstringwaitintegeroutputsstringwait_forstringautoparsebooleanjs_renderbooleanscreenshotbooleancss_extractorstringpremium_proxybooleanproxy_countrystringresponse_typestringmarkdown · plaintext · pdf · htmldefault: markdownjs_instructionsstringscreenshot_fullpagebooleanscreenshot_selectorstring
The ZenRows MCP (Model Context Protocol) server is the standard way AI systems use ZenRows. A single connection gives your AI assistant, agent, or application real-time access to any website.
📚 Full documentation: docs.zenrows.com/integrations/mcp/mcp-overview
ZenRows MCP supports two transport options. Both expose the same set of tools and capabilities. Pick the one that fits your client.
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-based. Pass your ZenRows API key as a Bearer token in the Authorization header on every request.
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.
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.
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: API key via the ZENROWS_API_KEY environment variable.
Requirements: Node.js installed (for npx to work).
Configuration:
{
"mcpServers": {
"zenrows": {
"command": "npx",
"args": ["-y", "@zenrows/mcp"],
"env": {
"ZENROWS_API_KEY": "YOUR_ZENROWS_API_KEY"
}
}
}
}
The exact location of this config varies by client. See the per-client setup guides for the file path for your client.
The ZenRows MCP exposes two families of tools:
scrape: single-request fetch returning Markdown, plain text, HTML, JSON, PDF, or screenshot. Backed by the Universal Scraper API.browser_*: 30+ tools for full browser automation including navigation, clicks, form fills, JavaScript execution, cookies, tabs, and persistent sessions. Backed by the Scraping Browser.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.
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.
ZENROWS_API_KEY*secretYour ZenRows API key from https://app.zenrows.com/account/settings