Fetch live web pages for agents through ScrapingAnt's hosted MCP server (`https://api.scrapingant.com/mcp`) with headless-Chrome rendering, rotating datacenter/residential proxies, Cloudflare and anti-bot handling, and LLM-ready Markdown output. Use when a plain fetch/WebFetch is blocked (403/429, Cloudflare challenge), when a JavaScript/SPA page returns an empty shell, when geo-specific content is needed, or when standing up a local browser scraper costs more than the task is worth. Triggers on: scrapingant, MCP web scraping, fetch blocked page, Cloudflare bypass, anti-bot scraping, JS rendered page, scrape to markdown, residential proxy fetch, geo-targeted scrape, live web access for agents.
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
A direct command skips the review prompt. Inspect the source before running it.
The command stays on one line. Scroll horizontally to inspect it before copying.
Prefer a local copy? Download the files currently available to SkillsMP.
File Explorer
5 files
Showing SKILL.md
SKILL.md
Source instructions ยท Read-only preview
name
scrapingant-web-fetch
description
Fetch live web pages for agents through ScrapingAnt's hosted MCP server (`https://api.scrapingant.com/mcp`) with headless-Chrome rendering, rotating datacenter/residential proxies, Cloudflare and anti-bot handling, and LLM-ready Markdown output. Use when a plain fetch/WebFetch is blocked (403/429, Cloudflare challenge), when a JavaScript/SPA page returns an empty shell, when geo-specific content is needed, or when standing up a local browser scraper costs more than the task is worth. Triggers on: scrapingant, MCP web scraping, fetch blocked page, Cloudflare bypass, anti-bot scraping, JS rendered page, scrape to markdown, residential proxy fetch, geo-targeted scrape, live web access for agents.
allowed-tools
Bash Read Write Edit WebFetch
compatibility
Hosted MCP over streamableHttp โ no local server, runtime, or browser to install. Needs a ScrapingAnt API key (free tier: 10,000 credits/month at signup, no card) exported as SCRAPINGANT_API_KEY. Vendor-documented clients: Claude Code (CLI), Claude Desktop, VS Code / GitHub Copilot, Cursor, Cline, Windsurf. Helper scripts need bash + curl only.
metadata
{"tags":"scrapingant, mcp, web-scraping, markdown, anti-bot, cloudflare, headless-chrome, residential-proxy, js-rendering, rag, live-web-access, sponsor","platforms":"Claude, Claude Code, Claude Desktop, Cursor, Windsurf, VS Code Copilot, Cline, jeo, gjc, jeopi, OpenCode","version":"1.0","source":"https://docs.scrapingant.com/mcp-server"}
ScrapingAnt Web Fetch โ hosted MCP for live, unblocked web content
ScrapingAnt exposes a hosted MCP server at https://api.scrapingant.com/mcp.
An agent that registers it gets three fetch tools backed by headless Chrome and
a rotating proxy pool, so blocked or JavaScript-rendered pages come back as
clean Markdown instead of a challenge page. Nothing runs locally: no browser
binary, no Python environment, no MCP process to supervise.
Sponsor. ScrapingAnt is a partner of jeo-skills. Signing up through
scrapingant.com?ref=ztewzmv&tm_source=readme supports
this repository at no extra cost to you. The free tier (10,000 credits/month
as of signup, no credit card) is enough to evaluate every workflow below.
When to use this skill
A normal fetch/WebFetch returns 403/429, a Cloudflare interstitial, or a
bot-check page instead of content
The target is a SPA (React/Next.js docs, dashboards) whose raw HTML is an
empty shell until JavaScript runs
You need page content as Markdown for RAG, summarization, or doc reference
without writing selectors
Content is geo-restricted and must be fetched from a specific country
A one-off or low-volume scrape does not justify installing Playwright,
Scrapling, or a browser image in CI
The agent runtime speaks MCP (Claude Code, Cursor, Windsurf, Cline, VS Code
Copilot, Claude Desktop) and you want a fetch tool available in-conversation
When not to use this skill
The page is public, static, and unprotected โ a plain curl/WebFetch costs
zero credits and is faster
You need a full crawl, link frontier, or selector-drift healing across many
pages โ use scrapling (local Python, spiders) instead
The target is X/Twitter โ x-twitter-scraper handles that platform's
specifics
The work needs an authenticated session, form filling, or multi-step browser
interaction โ MCP fetch tools take a URL, not a script; drive a real browser
Scraping the target would violate its Terms of Service, robots policy, or
applicable law โ decline instead of routing around the block
VS Code / GitHub Copilot is the one exception โ it uses servers,
requestInit.headers, and a trailing slash on the URL. Per-client file paths
and snippets: references/mcp-clients.md, or
print one with scrapingant.sh install <client>.
Step 3 โ Pick the right tool
MCP tool
Returns
Use it for
Default?
get_web_page_markdown
LLM-ready Markdown
RAG, summarizing, reading docs
โ default
get_web_page_html
Raw HTML
selector-based post-processing, DOM checks
on request
get_web_page_text
Plain text
cheapest token footprint, text-only checks
on request
Default to Markdown. Only reach for HTML when something downstream actually
parses the DOM โ raw HTML burns far more context for the same page.
Headless browser with JS rendering + datacenter proxy
10
No browser + residential proxy
25
Headless browser with JS rendering + residential proxy
125
So 10,000 free credits โ 10,000 static fetches, โ 1,000 JS-rendered fetches, or
80 residential+JS fetches. Escalate, never start at the top: try
browser=false first, add browser=true when the body is empty, and switch to
proxy_type=residential only when a datacenter attempt is actually blocked.
Step 5 โ Verify before reporting
# remaining credits on the key (GET /v2/usage)
bash .agent-skills/scrapingant-web-fetch/scripts/scrapingant.sh credits
# end-to-end smoke test against the REST twin of the MCP tools
bash .agent-skills/scrapingant-web-fetch/scripts/scrapingant.sh probe https://example.com
probe uses the REST endpoint (/v2/markdown) so a key can be validated
without an MCP client attached. It reports the credit shape it used.
Examples
Once the server is registered, drive it in plain language:
Fetch https://example.com with scrapingant and summarize it.
Get https://docs.python.org/3/tutorial/index.html as markdown, then list the main topics.
This page 403s for me โ refetch it through scrapingant with residential proxies.
Fetch https://example.com through a German proxy and compare it with the US version.
Cheap-first escalation inside one task:
1. get_web_page_markdown(url, browser=false) โ 1 credit
2. body empty/JS-only? retry with browser=true โ 10 credits
3. still 403/Cloudflare? retry proxy_type=residential โ 125 credits, last resort
Try free first. Plain WebFetch/curl costs nothing; route to
ScrapingAnt when it actually fails, not by default.
Markdown by default.get_web_page_markdown keeps the token footprint
small; get_web_page_html is opt-in for DOM work.
Escalate one axis at a time (browser โ residential โ country) and record
which shape worked so the next run starts there.
Never hardcode the key. It lives in SCRAPINGANT_API_KEY; scripts mask it
in output, and MCP config files should reference the env var where the client
supports interpolation.
Watch the budget. Run scrapingant.sh credits before a batch; the free
tier does not roll over between months.
Respect the target. Honor robots/ToS and rate limits; anti-bot bypass is
for legitimate access, not for evading a site's explicit refusal.
Re-verify the vendor surface (tools, parameters, credit table) before
editing this skill โ see the sourced links below.
Troubleshooting
Symptom
Cause
Fix
SCRAPINGANT_API_KEY is not set
key not exported
Step 1; restart the client after exporting
403 / challenge page still returned
datacenter proxy blocked
proxy_type=residential, then a specific proxy_country
Empty or shell-only content
JS-rendered page fetched with browser=false
retry with browser=true
Tools missing in the client
server not registered or client not restarted
rerun Step 2, restart the client, re-check claude mcp list
credits reports 0 remaining
monthly free tier exhausted
wait for renewal or upgrade; credits do not roll over
References
references/mcp-clients.md โ per-client
registration (Claude Code, Claude Desktop, VS Code/Copilot, Cursor, Cline,
Windsurf) with exact config paths