
PyreCrawl
io.github.SanggonBoyPublished by GitHub account SanggonBoyv0.8.1Updated Oct 24, 2026
Web scraping + research toolkit for AI agents: scrape, crawl, monitor URLs with anti-bot bypass.
Overview
Self-hosted web scraping and research toolkit that lets an AI assistant scrape, crawl, search, extract and monitor web pages without API keys.
- What you can do
- Scrape single URLs into LLM-ready markdown, with automatic escalation from plain HTTP to a stealth browser to bypass bot protection and render JavaScript pages, and evaluate JS expressions or wait conditions on the live page. Extract structured data from a page using a CSS schema, and convert PDF, DOCX and PPTX documents to markdown. Map a site's internal URLs and crawl multiple pages with path filters and depth limits, or batch-scrape many URLs in one parallel call. Search the web via DuckDuckGo and academic papers via arXiv and Crossref, and run a deep research pass that returns an evidence pack with numbered citations. Monitor a URL for content changes with persisted snapshots and diffs,,
- When to use it
- Useful when an assistant needs to read or collect content from live websites, especially pages behind Cloudflare or heavy JavaScript, or when you want repeatable research with citations, bulk page collection for a knowledge base, or change tracking on a page. It suits users who prefer a self-hosted tool over a paid hosted scraping API.
- Requirements
- Runs locally as a stdio process, launched with uvx from the pyrecrawl PyPI package; uv must be installed and on PATH. A one-time setup command installs Chromium and stealth browser engines. No API keys or accounts are required. Network access is needed for scraping, search and the startup version check.
Installation
In SourceWeft
- Open PyreCrawl in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
🔥 PyreCrawl — Web Browsing Superpowers for Your AI Agent
[License: MIT] [MCP] [Python 3.10+] [PyPI] [GitHub stars] [Downloads / 30d] [Active users / 30d]
One command gives any AI agent the whole web. Scrape, extract, crawl, map, and search — self-hosted, no API keys, no rate limits, no subscription.
PyreCrawl speaks MCP (Model Context Protocol), the standard tool interface for Claude, Cursor, VS Code, Codex, OpenCode, Hermes, and any MCP-compatible agent.
A smart auto-fallback ladder always picks the cheapest method that succeeds:
⚡ Tools exposed
MCP Resources (read-only state without a tool call):
pyrecrawl://cache/stats · pyrecrawl://sessions · pyrecrawl://monitors
MCP Prompts (ready-made playbooks): research(topic) · rag_ingest(site) · watch_page(url)
Env flags
prefer options: "auto" (default ladder) · "fast" (HTTP only) · "stealth" (CF bypass) · "llm" (deep processing).
🚀 Install & Use (one-liner)
1. Install
UV (recommended — one command, zero Python setup)
UV is a fast Python package manager that handles Python itself — no need to install Python separately. Get it once:
Then run PyreCrawl directly — no venv, no pip install, no Python download:
Or via uv tool install (persistent, recommended for regular use)
Or via pipx (alternative)
Or via pip into a venv
2. One-time browser engines
This installs Chromium + stealth browser engines (~2 min, one-time).
3. Register with your AI agent
Supported agents: claude-desktop, claude-code, cursor, vscode, codex, opencode, hermes.
4. Start chatting
After installing + registering, restart your agent (or start a new session). Then ask:
"Scrape https://example.com and summarize it."
Available tools:
Plus 3 guided prompts: research, rag_ingest, watch_page.
Quick examples
Ask your agent naturally — no special syntax needed:
🧠 Skills — Maximize Your Agent's Research Quality
PyreCrawl tools give your agent hands (scrape, crawl, search). But the agent still needs a brain — instructions on when to use which tool, how to chain research passes, and what anti-hallucination rules to follow.
That's what PyreCrawl Skills provides.
Quick setup:
Without skills: Your agent has powerful tools but improvises usage. With skills: Your agent follows a proven research protocol with anti-hallucination guardrails.
📚 Manual config (if pyrecrawl install doesn't match your setup)
Claude Desktop
Config file
- Linux:
~/.config/Claude/claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%AppData%\Claude\claude_desktop_config.json
Claude Code
Config file: project-scoped .mcp.json
Cursor
Config file: ~/.cursor/mcp.json
VS Code / Copilot
Config file: .vscode/mcp.json (project-scoped)
Codex CLI
Config file: ~/.codex/config.toml
OpenCode
Config file: ~/.config/opencode/opencode.json
Hermes
Config file
- Linux/macOS:
~/.hermes/config.yaml - Windows:
%LocalAppData%\hermes\config.yaml
Windows note:
uvxmust be on PATH. If not, use the full path touvx.exe(e.g.C:\Users\<you>\AppData\Local\hermes\bin\uvx.exe).
🧠 How the ladder chooses
PyreCrawl runs each request through three tiers, stopping at the first one that returns a complete, LLM-ready result:
The agent never has to pick. prefer="auto" does it every call.
Live DOM data with js and wait_for
Some sites keep the data you want in a DOM property (e.g. an <input>'s .value)
that JS writes after an XHR — it never appears in the serialized HTML. The
scrape tool accepts two stealth-tier params for exactly this:
wait_for— a JS predicate expression polled until truthy (bounded bytimeout). Use it instead of guessing a sleep for anything that arrives asynchronously.js— a JS expression evaluated once the page settles; the value comes back inmeta.js_result. Errors are captured inmeta.js_error(the page result is still returned, never a crash).
📊 Compared to Firecrawl (hosted)
🔧 Development
Run tests
📦 Publish
Maintainers only:
GitHub Actions builds + uploads to PyPI via trusted publishing.
🔔 Stay up to date
PyreCrawl checks PyPI on every startup and reports the latest version — your
MCP agent sees this automatically via the health() tool response and can
notify you inline.
To check manually:
To upgrade:
Get notified of new releases: click Watch → Releases only at the GitHub repo to receive email notifications when a new version is published.
[!NOTE] PyreCrawl sends one anonymous usage ping per 24 h at server startup — see Privacy for exactly what's sent and how to opt out.
🔒 Privacy — anonymous usage ping
PyreCrawl phones home once per 24 h with a tiny anonymous ping when the MCP server starts, so we can count real users (DAU/MAU) instead of raw downloads.
Client code: src/pyrecrawl/telemetry.py (~90 lines, stdlib only) ·
Collector: workers/telemetry/ — a self-hostable Cloudflare Worker + D1, no third-party analytics service.
Opt out any time:
📜 Uninstall
🛡️ License
MIT — see LICENSE.
Source: README.md at commit 657ad65
Tools
0Version history
3- v0.8.1LatestSep 22, 2026
- v0.8.0Sep 19, 2026
- v0.7.5Sep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts