Skip to main content

Wafle-Scraper — Universal MCP Server for Safe Web Scraping

Wafle-Scraper is an MCP server that lets AI agents (OpenCode, Claude, Cursor) extract data from the web safely and responsibly.

Safety First

Rule Enforcement
No private data Every browser session is incognito — no cookies, no localStorage, no saved passwords
Only what you ask The scraper never mines extra data beyond your explicit request
No localhost Internal/private IPs are blocked by default
Rate limited Minimum 2 seconds between requests — never floods servers
CAPTCHA = human only No automated CAPTCHA solving. If one appears, you solve it interactively
User-Agent rotation Each request looks like a real browser

Quick Start

pip install wafle-scraper
playwright install chromium
wafle-scraper

Configuration

OpenCode / Claude Desktop / Cursor

{
  "mcpServers": {
    "wafle-scraper": {
      "command": "wafle-scraper",
      "description": "Web scraping & browser automation — incognito, audited, safe"
    }
  }
}

CLI Options

wafle-scraper                    # MCP stdio mode (default for agents)
wafle-scraper --http --port 8000 # HTTP SSE mode
wafle-scraper --version          # Show version

MCP Tools

Tool Description Safety
scrape_url Extract text from a static URL (requests + BeautifulSoup) ✅ Read-only, no JS
scrape_browser Navigate a page in isolated incognito browser and extract text ✅ Incognito, no cookies
scrape_reddit Fetch public posts from a subreddit via official API ✅ API, no scraping
extract_emails Find email addresses on a public page ✅ Only what you ask
browser_interact Click, type, scroll, extract, screenshot in live browser ✅ You control the actions

Browser Backend (Playwright)

  • Incognito always: storage_state=None, fresh context per session
  • No permissions: No camera, mic, location access
  • Anti-detection: Rotating UA, viewport, locale, timezone
  • Natural delays: Human-like timing between actions
  • Gradual scroll: Loads lazy content naturally

CAPTCHA Handling

Wafle-Scraper does NOT solve CAPTCHAs automatically. When a CAPTCHA is detected:

  1. The scraper pauses
  2. Prompts you to open the URL in your browser
  3. You solve the CAPTCHA manually
  4. Type done and the scraper continues

This is the only ethical and reliable approach without paid services.

Security

  • Blocked: localhost, 127.0.0.1, private IPs, file://, chrome://
  • Rate limiting (configurable, default 2s min interval)
  • Scope enforcement — only processes what you explicitly request
  • User-Agent rotation
  • Browser isolation — Playwright contexts are fully sandboxed

Requirements

  • Python 3.10+
  • Playwright with Chromium installed (playwright install chromium)
  • Windows, macOS, Linux

Installation from Source

git clone https://github.com/creandoaldia/wafle-scraper.git
cd wafle-scraper
pip install -e .
playwright install chromium

License

MIT

Why "Wafle-Scraper"?

Part of the WAFLE ecosystem (Web AI Framework for Language Ecosystems). Wafle-Scraper gives WAFLE agents the ability to read the live web — safely, transparently, and under your control.

Metadata

Release files for wafle-scraper 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for wafle-scraper 0.1.0
File Size Uploaded Provenance
wafle_scraper-0.1.0.tar.gz 10.8 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for wafle-scraper 0.1.0
File Interpreter ABI Platform
wafle_scraper-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 23.4 kB

Release files / wafle_scraper-0.1.0.tar.gz

Download URL wafle_scraper-0.1.0.tar.gz
Size 10.8 kB
Tags Source
SHA-256 checksum
How to use checksums
325bde5e1b5979da607b743d846e06f3f28d28903ce1e83eb98fa475590f6819
BLAKE2b-256 checksum
How to use checksums
a1068e0eb1414df1a3d0bb6e7d7c72f3852f6092b160ba392e4e029fe47371ce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.5

Release files / wafle_scraper-0.1.0-py3-none-any.whl

Download URL wafle_scraper-0.1.0-py3-none-any.whl
Size 12.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a743f42874b1a0df39a6856e2145637ba02d12969b3b1df17f462fdcca64c3ca
BLAKE2b-256 checksum
How to use checksums
0965bb6f80b7eb6c35afd9562308d9d6b925af2aba1d451f36635e55ca772dab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.5

Security for wafle-scraper 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page