Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/ofershap/mcp-server-scraper/web-scrapingnpx skills add ofershap/mcp-server-scraper --skill web-scrapinggit clone --depth 1 https://github.com/ofershap/mcp-server-scraperWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/ofershap/mcp-server-scraper/web-scraping)<a href="https://agentmods.dev/skills/ofershap/mcp-server-scraper/web-scraping"><img src="https://agentmods.dev/badge/skills/ofershap/mcp-server-scraper/web-scraping.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00055 | $0.00492 |
| Opus 5 | $0.00028 | $0.00246 |
| Sonnet 5 | $0.00011 | $0.00098 |
| Haiku 4.5 | $0.00006 | $0.00049 |
Grade A, and why
web-scraping scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
What it actually says
Web Scraping via MCP
Use this skill to extract clean, readable content from any URL. Returns markdown text, links, and metadata. Free alternative to Firecrawl.
Available Tools
| Tool | What it does |
|---|---|
scrape_url |
Extract clean text content from a URL (Readability-powered) |
extract_links |
Get all links with href and anchor text |
extract_metadata |
Get title, description, OG tags, canonical, favicon |
search_page |
Search for a query string within the page content |
scrape_multiple |
Batch scrape multiple URLs, get title + excerpt per URL |
Workflow
scrape_urlfor reading a single page (docs, blog post, article)extract_linksto discover linked resources from a pageextract_metadatafor SEO analysis or link preview datascrape_multipleto survey multiple pages at once
Key Patterns
- Uses Mozilla Readability (Firefox Reader View engine); works best with server-rendered content
- Does NOT handle JavaScript-heavy SPAs (React apps, dashboards); use a browser MCP for those
scrape_multiplereturns title + excerpt per URL, not full content; use for surveyingsearch_pagesearches within the extracted content, not raw HTML
Error Scenarios
- Empty or tiny markdown: page may be SPA-only or behind login; try a browser MCP or a direct API doc export
- HTTP 403/401: site blocks bots; no fix inside this server
- Timeout or DNS errors: retry with a simpler URL or check network
scrape_multiplepartial failures: inspect per-URL errors in the batch result and scrape successes individually
Limitations
- No headless browser — won't execute JavaScript
- Best for: documentation, blogs, articles, news, wikis
- Won't work for: login-gated content, SPAs, dynamically loaded content
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago First seen · 46 lines · 55 tokens per session scan A edf9836e78a1
web-scraping is a skill published in the GitHub repository ofershap/mcp-server-scraper (5 stars, last pushed 25d ago), licensed MIT. It adds 55 tokens to every session and 492 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
firecrawl-build
Integrate Firecrawl into application code whenever a product, agent, or workflow needs web data inside the app — web search, live search results, page scraping, structured extraction, or browser interaction. Use when building any feature that needs data from the web in code, even if the user does not mention Firecrawl…
firecrawl-build-scrape
Integrate Firecrawl /scrape into product code for single-page extraction. Use when an app already has a URL and needs markdown, HTML, links, screenshots, metadata, or structured page output. Prefer this skill over broader crawl patterns when the feature is page-level.
firecrawl-build-interact
Integrate Firecrawl /interact into product code for dynamic pages and browser actions after scraping. Use when a feature needs clicks, form fills, pagination, authentication-aware flows, or other multi-step interactions that plain /scrape cannot complete.
multi-search-engine
Skill "multi-search-engine" from lxinfei5/research-os, covering multi search engine — researchos tier-3 quota-free fallback, where this sits — the web search fallback chain, workflow, engine selection (topic-agnostic) and operators & filters.
web-scraping
Mass crawl/scrape sites incl. anti-bot (Cloudflare, Akamai, DataDome, PerimeterX). Crawl4AI = scale (arunmany, dispatchers, deep crawl, LLM-ready markdown); Camoufox = fingerprint evasion. For: scrape N pages, crawl a site, extract structured data, 403/challenge/bot-detection, captcha.
dev-in-browser
Use your browser to view https://verso.localhost which is tied to livereload dev server which is already running. You can inspect that page (including taking screenshots!) to validate that your changes fixed the issue.