Skip to main content

Wafle-Scraper — universal MCP server for safe web scraping with browser automation. Incognito, isolated, audited.

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wafle_scraper-0.1.0.tar.gz (10.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

wafle_scraper-0.1.0-py3-none-any.whl (12.6 kB view details)

Uploaded Python 3

File details

Details for the file wafle_scraper-0.1.0.tar.gz.

File metadata

  • Download URL: wafle_scraper-0.1.0.tar.gz
  • Upload date:
  • Size: 10.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.5

File hashes

Hashes for wafle_scraper-0.1.0.tar.gz
Algorithm Hash digest
SHA256 325bde5e1b5979da607b743d846e06f3f28d28903ce1e83eb98fa475590f6819
MD5 45a059f3aea5a6ba2c1128e2a2bc3cd7
BLAKE2b-256 a1068e0eb1414df1a3d0bb6e7d7c72f3852f6092b160ba392e4e029fe47371ce

See more details on using hashes here.

File details

Details for the file wafle_scraper-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: wafle_scraper-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 12.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.5

File hashes

Hashes for wafle_scraper-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a743f42874b1a0df39a6856e2145637ba02d12969b3b1df17f462fdcca64c3ca
MD5 a82e6df5d3f7dc9c429db6b68cd6f28d
BLAKE2b-256 0965bb6f80b7eb6c35afd9562308d9d6b925af2aba1d451f36635e55ca772dab

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page