About Crawl
Crawl is an MCP server in the Scraping category: aI-powered web crawler — self-hosted Firecrawl alternative. Crawl, extract, render JS, search. CLI + MCP + REST API + Dashboard.
Install
claude mcp add crawl -- npx -y @hasna/crawlnpx -y @hasna/crawlThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about Crawl
Powered by Claude · Grounded in docs
Security checks
- ✓README presentThe repository ships documentation.
5 checks have not been run yet.
README
What It Is
crawl is organized into three layers:
sdk: the full Python capability surfacecli: direct command-line access to the SDKmcp: a smaller workflow-oriented server for AI agents
The SDK is the source of truth. The CLI wraps most of it. The MCP layer intentionally exposes fewer tools so agents do not get flooded with schemas.
Install
Editable install:
python -m pip install -e .
Pinned dependencies:
python -m pip install -r requirements.txt
Entry Points
Repo-root entrypoints:
python cli.py --help
python server.py
Installed scripts:
crawl-cli --help
crawl-mcp
Documentation
Highlights
- Search providers:
google,searxng,auto,hybrid - Browser-capable SDK and MCP paths support
headless - Consent handling and resource blocking are built into browser workflows
- Structured extraction, article extraction, forms, feeds, contacts, and technology fingerprinting are all in the SDK
- The MCP server exposes a compact tool surface:
search_webinspect_urldiscover_siteextract_structuredcapture_screenshot
Quick Examples
SDK:
import asyncio
from crawl.sdk import fetch_page, websearch
async def main() -> None:
search_payload = await websearch("python async browser automation", provider="auto")
page_payload = await fetch_page("https://example.com", mode="browser", headless=True)
print(search_payload["count"])
print(page_payload["final_url"])
asyncio.run(main())
CLI:
python cli.py websearch "python async browser automation" --provider auto --max-results 5 --pages 1
python cli.py fetch-page https://example.com --mode browser --include-html
MCP:
- run
python server.py - connect your MCP client to the stdio server
- use the compact workflow tools documented in docs/mcp.md
README copy captured when this server was indexed; it may lag the repository. The original is authoritative.