Skip to main content

What is OpenClaw?

OpenClaw is an open-source, self-hosted AI agent gateway that connects your messaging apps to a persistent AI agent. It runs a single Gateway process on your own machine or server, which acts as the bridge between any messaging app (Telegram, WhatsApp, Slack, Discord, iMessage, Microsoft Teams, Signal, and more) and an always-available AI assistant with access to tools, including file read/write, shell execution, web search, external APIs, and persistent memory across sessions.

Key benefits of using ZenRows as OpenClaw’s search backend

  • No more broken schedules: When OpenClaw’s built-in tools hit a blocked page mid-run, your entire automation fails silently. ZenRows handles those requests transparently, so your daily competitor monitoring, price-tracking digests, and scheduled reports run every time without manual intervention.
  • Read pages the way a browser does: Many competitor sites and dashboards load content dynamically via JavaScript. ZenRows renders the full page before returning it, so your agent sees the complete content rather than an empty HTML shell. You can also instruct the agent to click, scroll, fill forms, and navigate across pages, all in plain English, no code required.
  • Full scraping infrastructure, zero code: Proxy rotation, anti-bot evasion, browser orchestration, and session management all run on ZenRows’ infrastructure. Just describe the task to your agent in Telegram, WhatsApp, or Slack, and ZenRows handles the rest in the background.
  • Automate multi-step browser workflows: For sites that require interaction before data surfaces, such as clicking through pagination, filling in search fields, or navigating across multiple pages, instruct your agent in plain English. ZenRows handles the browser session while OpenClaw delivers the result to your messaging app.
  • LLM-friendly output that keeps token usage in check: Raw HTML is full of boilerplate (navigation menus, scripts, ads, and markup) that adds tokens without adding value. ZenRows strips all of that and returns clean, structured content by default. Your agent gets straight to the useful data, and since LLM APIs charge per token processed, less noise means lower costs per automation run.

What can you do with this integration?

  • Track competitor pricing and get notified of changes: Ask your agent to check a competitor’s pricing page every morning and send you a Telegram message when something changes, so you always know without visiting the site yourself.
  • Build a daily industry briefing delivered to your phone: Point your agent at a list of news sites, blogs, or forums and have it pull the top stories each morning and summarize them into a single message in your WhatsApp or Slack.
  • Get the best deals delivered to your phone every day: Ask your agent to scan Amazon, eBay, and other e-commerce sites for deals matching your criteria and send you a curated list each morning before you start your day.
  • Monitor job boards for sales prospects: Set up your agent to check LinkedIn, Indeed, or niche job boards daily for companies hiring for roles that signal buying intent, such as Head of Sales or VP of Marketing, and deliver the leads directly to your chat.
  • Dedicate separate agents to different tasks from a single Gateway: Set up one OpenClaw agent dedicated to competitor monitoring via Telegram and another handling deal alerts via WhatsApp, both running from a single Gateway. Each agent has its own context, memory, and instructions, so they stay focused without mixing tasks or sessions.

ZenRows as OpenClaw’s search backend

OpenClaw natively supports MCP (Model Context Protocol) server connections. You can register any MCP-compatible server directly in your openclaw.json config file, and your agent gains access to its tools immediately. This guide walks through adding the ZenRows MCP server in that config file, so your agent can scrape any website and deliver results to your messaging app of choice.

Prerequisites

Before you begin, make sure you have:
  • Your ZenRows API key from the ZenRows dashboard.
  • A messaging app to connect to OpenClaw (Telegram is the fastest to set up).
  • An Anthropic API key or that of any LLM provider you choose.
1

Install OpenClaw

OpenClaw requires Node.js 24 (recommended) or Node.js 22.19+. If you don’t have Node.js installed, download it from nodejs.org before continuing.Install via npm:
npm install -g openclaw@latest
If you don’t have npm available, use the installer script for your operating system instead.macOS / Linux / WSL2:
curl -fsSL https://openclaw.ai/install.sh | bash -s -- --no-onboard
Windows (PowerShell):
& ([scriptblock]::Create((iwr -useb https://openclaw.ai/install.ps1))) -NoOnboard
Check the OpenClaw installation page for more installation options.
2

Configure OpenClaw's AI agent and messaging channel

This guide uses Telegram as the chat channel. Set it up before continuing:
  • Open the app on your PC or phone and start a chat with @BotFather.
  • Run /newbot. Follow the prompt to obtain a bot token, then copy it.
You can use any other supported channel. Check OpenClaw’s supported channels page for setup instructions per platform.To start the interactive onboarding process, run:
openclaw onboard --install-daemon
During onboarding, follow the prompts for these key steps:
  • Model/auth provider: Select Anthropic or any other AI model provider.
  • Anthropic auth method: Pick the API key option and enter your API key.
  • Default model: Choose your preferred model (e.g., anthropic/claude-sonnet-4-6).
  • Select channel: Choose Telegram, then enter the bot token you copied from @BotFather. Check OpenClaw’s Telegram setup for more information.
Once onboarding is complete, click or tap the bot URL provided in the @BotFather response to initiate a chat with your new bot.
3

Add ZenRows MCP to OpenClaw's configuration

OpenClaw config lives at ~/.openclaw/openclaw.json. Open this file and add the following ZenRows MCP connection configuration to the mcp block:
"mcp": {
  "servers": {
    "zenrows": {
      "type": "url",
      "url": "https://mcp.zenrows.com/mcp",
      "transport": "streamable-http",
      "headers": {
        "Authorization": "Bearer <YOUR_ZENROWS_API_KEY>"
      },
      "timeout": 30000
    }
  }
}
In the same file, find the mcporter configuration and ensure it is set to true:
"mcporter": {
  "enabled": true
}
Confirm the MCP integration by running:
openclaw mcp list
The above command returns - zenrows, confirming you’ve successfully integrated OpenClaw with the ZenRows MCP.
4

Start the OpenClaw server

Launch OpenClaw’s local server:
openclaw gateway start

Getting started: Basic usage

Open the bot you created in Telegram and send a scrape message to your AI agent:
Go to https://www.scrapingcourse.com/antibot-challenge and summarize the page.
OpenClaw’s Gateway receives the Telegram message, passes it to the AI agent, which then uses the ZenRows MCP to fetch the page and bypass its anti-bot protection. The scraped content is summarized by your configured model and sent back to you in Telegram.
Output
Here's the summary:

Page: scrapingcourse.com/antibot-challenge
Title: Antibot Challenge

It's a demo page from ScrapingCourse designed to test whether a scraper/bot can bypass anti-bot protections (like Cloudflare's JS challenge). When accessed, the page initially shows a "Please wait..." screen while it runs bot detection.

Once bypassed successfully, it displays a single success message:

You bypassed the Antibot challenge! :D

That's essentially the whole content — it's a minimal test page whose sole purpose is to verify that a scraping tool can get past bot detection and reach the actual page content. ZenRows handled it cleanly.

Advanced usage: Scheduling scraping jobs with OpenClaw and ZenRows

OpenClaw natively supports cron-style scheduling, so you can instruct your agent to run any scraping task on a recurring schedule directly from your chat. Open your Telegram bot and send:
Every day at 9AM, scrape https://www.amazon.com/s?k=headset, get the top 3 best deals based on price and ratings, and send me a summary.
OpenClaw’s agent registers the schedule and runs it automatically at the specified time each day. At 9:00 AM, it fetches the Amazon search page via ZenRows, bypassing Amazon’s anti-bot protection and rendering the JavaScript-loaded results, then extracts the top deals and delivers a formatted summary to your Telegram chat without any manual input.
Output
Done! Cron job set up:

• Schedule: Every day at 9:00 AM
• Task: Scrapes Amazon for headset, picks the top 3 best deals by price + ratings
• Delivery: Summary sent directly to you here on Telegram
• Next run: Tomorrow morning at 9 AM

Each morning you'll get a breakdown with product name, price, rating, review count, and a link.
When the schedule runs, here is what a sample response looks like:
Output
Here's today's summary of the top 3 headset deals from Amazon

Top 3 Headset Deals on Amazon — June 1, 2026

#1 — Logitech H390 Wired USB Headset
$15.99 $24.99 (36% off)
4.4/5 — 68,300+ reviews
Wired USB-A, noise-cancelling mic, in-line controls, Chromebook compatible
amazon.com/dp/B000UXZQ42

Why it's #1: Lowest price, highest rating, and massively battle-tested with 68k reviews. Best bang for buck, full stop.

# ...further responses truncated for brevity
To view your active schedules, send the following message via Telegram:
List my active scheduled tasks.
The agent returns a list of all scheduled jobs currently running on your Gateway:
Output
You've got 1 active scheduled task:

Daily Amazon Headset Deals
• Every day at 9:00 AM (<local time>)
• Scrapes Amazon for top 3 headset deals by price + ratings
• Delivered to you on Telegram
• Next run: Tomorrow, Jun 2 at 9 AM

Local vs. remote OpenClaw

By default, OpenClaw runs the Gateway on your local machine, which means the agent is only active while that machine is on and connected. This works fine for manual tasks but means scheduled jobs like your daily ZenRows scraping tasks will stop running if your machine sleeps or goes offline. For always-on scraping schedules, OpenClaw supports running the Gateway on a persistent remote host such as a VPS or home server, with your devices connecting to it over Tailscale or an SSH tunnel. This keeps the agent running continuously so ZenRows tasks execute at the scheduled time regardless of whether your local machine is active. For remote setup instructions, see the OpenClaw remote access guide.

Troubleshooting

WSL issues on Windows

If you installed OpenClaw inside WSL but are running Node.js from Windows (or vice versa), npx may not be found because the two environments have separate PATH configurations. Run which npx inside WSL to confirm it resolves correctly. If it doesn’t, install Node.js directly inside WSL via nvm rather than relying on a Windows installation.

McpError: MCP error -32001: Request timed out

This happens when OpenClaw cannot complete the MCP handshake with mcp.zenrows.com within the default timeout window. Common causes:
  • Invalid or missing API key: Confirm your key is active in the ZenRows dashboard and that YOUR_ZENROWS_API_KEY has been replaced with the actual value in your config.
  • Slow network conditions: If the connection succeeds sometimes and fails at other times, the handshake is timing out intermittently. Increase the timeout value in your MCP server config to give it more time. Intermittent timeouts on a remote MCP server are often due to transient network issues rather than a config problem.
  • Check ZenRows MCP connection status: Run openclaw doctor to check the ZenRows MCP connection status for any errors or warnings.
  • Check mcporter configuration: Ensure that mcporter is set to enabled: true in your openclaw.json.
  • Gateway restart timing: If the Gateway hasn’t fully started before attempting the MCP connection, the handshake times out. Wait a few seconds after openclaw gateway start before testing.

SSE error: undefined

OpenClaw is attempting to connect using SSE transport instead of Streamable HTTP. Make sure both "type": "url" and "transport": "streamable-http" are set together in your config. Using only one of them can cause OpenClaw to fall back to an incompatible transport.

web_fetch failed: Web fetch failed (403)

The agent is using OpenClaw’s built-in web fetcher instead of ZenRows, and the target page is blocking the request. This usually means the ZenRows MCP server has not connected successfully. Run openclaw mcp list to confirm the ZenRows MCP server is listed as active. If the connection is working but the 403 error persists, explicitly instruct the agent:
Use ZenRows to scrape this page.

No response is returned in Telegram

  • Check that your bot token is correct and the bot was created via @BotFather.
  • Make sure dmPolicy is set to "pairing" or "open" in your Telegram channel config in openclaw.json, as a restrictive policy can silently drop messages from unpaired users.
  • Confirm you are messaging the correct Telegram bot. You can verify the bot token value inside the channels configuration of your openclaw.json file.

FAQ (Frequently asked questions)

It depends on your use case. Running locally is simpler to set up and works well for on-demand tasks that you trigger manually. If you rely on scheduled scraping jobs, such as daily competitor monitoring or deal alerts, a remote setup on a VPS or home server is the better choice, since the Gateway runs continuously regardless of whether your local machine is on.
OpenClaw supports remote Gateway access via Tailscale or an SSH tunnel. You run the Gateway on a persistent host and connect your devices to it over your tailnet or a forwarded port. See the OpenClaw remote access guide for setup instructions.
Yes. OpenClaw includes built-in search providers such as Brave, Tavily, Exa, and Perplexity, as well as a web fetch tool powered by Firecrawl. These work well for general search but can fail when the agent tries to read pages protected by anti-bot systems. ZenRows fills that gap by handling pages that block standard requests.
OpenClaw is a Gateway that connects messaging apps to an AI agent. The agent runs persistently, maintains memory across sessions, and has access to tools including file operations, shell execution, web search, and MCP servers. It can take actions autonomously based on your instructions.
OpenClaw supports models from Anthropic, OpenAI, Google Gemini, and others via a provider/model format in your config. You can set a different model for each agent, enabling you to use a faster model for everyday tasks and a more capable one for complex research workflows.
Yes, but it requires Node.js to be installed and npx to be accessible from the environment OpenClaw’s Gateway runs in. If you installed OpenClaw as a background daemon, it may not inherit your shell’s PATH, which can cause a spawn npx ENOENT error. To fix this, either provide the full path to npx in your config or use the hosted remote MCP server with Streamable HTTP instead (as done in this guide), which avoids the local subprocess entirely.
Yes. ZenRows MCP registers as one tool provider among many. Your agent can combine ZenRows scraping with OpenClaw’s built-in tools such as file write, shell execution, and search providers in the same task. For example, the agent can scrape a page via ZenRows, process the data, and write the output to a file in a single uninterrupted workflow.
OpenClaw supports Telegram, WhatsApp, Slack, Discord, Signal, iMessage, Microsoft Teams, and more. Each channel is configured under its own key in openclaw.json, and you can run multiple channels simultaneously, routing different conversations to different agents if needed.