An Model Context Protocol (MCP) server that retrieves web pages through ZenRows and returns a clean, Markdown‑formatted snapshot—while automatically escalating from the cheapest request mode to more advanced (and expensive) bypass levels only when needed.
- Cost‑aware escalation – starts with the base ZenRows request and retries with Premium Proxy → Stealth (Premium + JS) → Stealth + Wait (2 .5 s) until useful content is obtained.
- LLM‑ready output – delivers Markdown/text instead of raw HTML, ideal for downstream summarisation or analysis.
- Optional selector wait – pass a CSS selector to wait for (implies JS rendering) when working with SPAs or late‑loading content.
- Blocked‑page detection – heuristically recognises captchas/forbidden responses and escalates automatically.
- Cost tier metadata – the final tier used (
basic
,premium
,stealth
, orwait
) is returned inadditionalParams.meta.costTier
. - Zero‑config runtime – ship as an
npx
one‑liner, a slim Docker image, or run directly on Node 22+.
Fetches a web page through ZenRows and returns its Markdown rendition.
Input | Type | Required | Description |
---|---|---|---|
url |
string |
✅ | Fully‑qualified URL to fetch. |
selector |
string |
CSS selector ZenRows must wait for before snapshot (automatically enables JS rendering). |
Output – Plain‑text (Markdown) content of the page. The enclosing MCP response includes
additionalParams.meta.costTier
.
Use zenrowsFetch
whenever you need a lightweight, resilient webpage retriever that:
- Minimises cost by default but adapts when the target site blocks basic scraping.
- Produces clean, LLM‑friendly Markdown with no extra parsing steps.
- Works equally well for simple HTML pages and heavy JavaScript single‑page apps.
Typical scenarios include web‑content summarisation, ad‑hoc research pipelines, and programmatic ingestion of news/article sites.
{
"mcpServers": {
"zenrows-fetch": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"ZENROWS_API_KEY=zenrw_…",
"leonbeckert/mcp-zenrows"
]
}
}
}
{
"mcp": {
"servers": {
"zenrows-fetch": {
"command": "npx",
"args": ["-y", "@leonbeckert/mcp-zenrows"],
"env": {
"ZENROWS_API_KEY": "zenrw_…"
}
}
}
}
}
Or, for Docker:
{
"mcp": {
"servers": {
"zenrows-fetch": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"ZENROWS_API_KEY=zenrw_…",
"leonbeckert/mcp-zenrows"
]
}
}
}
}
# Build minimal production image
docker build -t mcp/zenrows .
This project is licensed under the MIT License—see the LICENSE
file for details.