us/crw

๐Ÿ”Ž Search & Data Extraction
0 Views
0 Installs

๐ŸŽ–๏ธ ๐Ÿฆ€ ๐Ÿ  โ˜๏ธ ๐ŸŽ ๐ŸชŸ ๐Ÿง - fastCRW โ€” open-source (AGPL-3.0), self-hostable Rust web crawler & search API for AI agents. Tools: scrape, crawl, map, and SearXNG-backed search. Single 6MB static binary; reproducible 1K-URL benchmarks faster than hosted alternatives. Hosted MCP at fastcrw.com/mcp (Streamable HTTP, OAuth) or self-host.

Quick Install

One-Click IDE Configuration
claude_desktop_config.json
{
  "mcpServers": {
    "us-crw": {
      "command": "npx",
      "args": [
        "-y",
        "us-crw"
      ]
    }
  }
}
Or

Using an AI coding agent (Claude Code, Cursor, etc.)? Copy a ready-made prompt that tells it to fetch the setup instructions and install this server for you.

Documentation Overview

fastCRW

fastCRW

The web data API for AI agents โ€” search, scrape, map, and crawl any site into clean markdown or JSON.

Use the managed cloud for zero infra, or self-host the same open-source engine. Start with Python, TypeScript, cURL, or MCP โ€” you never touch Rust.

Beats Firecrawl and Crawl4AI on truth-recall โ€” measured on Firecrawl's own public dataset.

Start free

Quickstart ยท Docs ยท Pricing

crates.io PyPI npm crw-mcp CI OpenSSF Best Practices OpenSSF Scorecard License GitHub Stars

Works with Claude Code ยท Cursor ยท Windsurf ยท Cline ยท Codex ยท Gemini CLI


Quickstart โ€” your first scrape in 30 seconds

Get a free API key โ†’ fastcrw.com/register โ€” 500 free credits (1 credit โ‰ˆ 1 page), no card.

export CRW_API_KEY="crw_live_..."
# cURL โ€” works anywhere, no SDK
curl -X POST https://api.fastcrw.com/v1/scrape \
  -H "Authorization: Bearer $CRW_API_KEY" -H "Content-Type: application/json" \
  -d '{"url":"https://example.com","formats":["markdown"]}'
PythonNode.js
pip install crw
from crw import CrwClient

crw = CrwClient()  # reads CRW_API_KEY from your env
page = crw.scrape("https://example.com",
                  formats=["markdown"])
print(page["markdown"])
npm install crw-sdk
import { CrwClient } from "crw-sdk";

const crw = new CrwClient();  // reads CRW_API_KEY from your env
const page = await crw.scrape("https://example.com",
                              { formats: ["markdown"] });
console.log(page.markdown);

In both SDKs page is a plain object (markdown, metadata, contentType, โ€ฆ), so page["markdown"] / page.markdown is clean content:

# Example Domain

This domain is for use in documentation examples without needing permission. Avoid use in operations.

[Learn more](https://iana.org/domains/example)

Over cURL you get the same fields wrapped in {"success": true, "data": { โ€ฆ }}.

Prefer no SDK? Every example works over plain HTTP against https://api.fastcrw.com. That first scrape spent 1 of your 500 free credits โ€” see plans โ†’ when you need more.

Got one page? Crawl the whole site: crw.crawl("https://docs.example.com") returns every page โ€” then search, map, and extract in Core operations. Full docs: Quickstart โ†’ ยท API reference โ†’

fastCRW vs Crawl4AI vs Firecrawl on Firecrawl's public 1,000-URL dataset: fastCRW leads truth-recall, unique recoveries, median latency, install size and recall depth

Firecrawl's own public 1,000-URL dataset, with all three tools run through the same matcher (diagnose_3way.py): a fairness control, not a looser number. The panel is generated from the run of record, not drawn by hand: scripts/bench-radar.py. Full table and one-command repro โ†“

Why fastCRW?

  • Most accurate โ€” the highest truth-recall (how much of the real page content it captures): 63.7% on 819 labeled URLs in Firecrawl's public dataset, vs Firecrawl 56.0% and Crawl4AI 60.0% โ€” and it recovers 34 pages both miss.
  • Fast median, tunable latency โ€” the fastest median latency (p50 1914 ms โ€” a statistical tie with Crawl4AI's 1916 ms, ahead of Firecrawl's 2305 ms). Recall mode maximizes accuracy; fast mode trades the recall tail for lower latency. One config toggle โ€” pick accuracy or latency.
  • Lighter โ€” one static binary, ~50 MB RAM idle. No Redis, no Node, no Chromium heap in the request path โ€” it runs on a $5 VPS.

Search, map, and crawl run on the same engine โ€” built-in web search (a free self-hostable search backend), so there's no separate search vendor and no per-query search-API bill. See the full benchmark โ†’

Open source (AGPL-3.0), passing OpenSSF Best Practices, and published on PyPI ยท npm ยท crates.io ยท Homebrew ยท APT โ€” with a benchmark you can rerun yourself, not marketing math.

What you get

  • Any URL โ†’ LLM-ready output. Clean markdown, HTML, links, or schema-validated JSON โ€” no HTML soup, no boilerplate.
  • One API, six operations. search the web and scrape a page, or map / crawl / extract / monitor a whole site โ€” see below.
  • Drop-in Firecrawl compatibility. Migrate existing Firecrawl code by changing one base URL.
  • Managed or self-hosted, same API. No exit cost โ€” develop against the free open-source binary, ship to the cloud, or the reverse. Nothing changes but the base URL.

Use it in your AI agent (MCP)

fastCRW ships a built-in MCP server, so any MCP host can search/scrape/crawl with no glue code.

# Claude Code โ€” managed
claude mcp add crw \
  -e CRW_API_URL=https://api.fastcrw.com -e CRW_API_KEY=$CRW_API_KEY \
  -- npx -y crw-mcp

# Claude Code โ€” embedded (no server, no key โ€” runs the engine locally, on your machine)
claude mcp add crw -- npx -y crw-mcp

Per-client recipes (Cursor, Windsurf, Cline, Continue.dev, Codex, Gemini CLI): docs.fastcrw.com/mcp-clients/

Agent Skills

Reusable instruction packs that teach coding agents when and how to use each verb. Install all 13 into every detected agent with one command:

npx skills add us/crw            # all skills, every detected agent
npx skills add us/crw@crw-scrape # just one
npx skills add -g us/crw         # global (user-level)

crw (hub) ยท crw-search ยท crw-scrape ยท crw-map ยท crw-crawl ยท crw-parse ยท crw-extract ยท crw-watch ยท crw-research ยท crw-dynamic-search (biggest token-saver) ยท crw-best-practices ยท crw-migrate ยท crw-self-host. Full catalog: skills/.

Core operations

VerbEndpointDoes
SearchPOST /v1/searchWeb search (own search backend), optionally scrape each result
ScrapePOST /v1/scrapeOne URL โ†’ markdown / HTML / links / schema JSON
MapPOST /v1/mapDiscover every URL on a site, fast
CrawlPOST /v1/crawlAsync crawl of a whole site (returns a job id you poll)
ExtractPOST /v1/extract (async, multi-URL) or POST /v1/scrape formats:["json"] (inline, one URL)Structured fields from a JSON Schema
MonitorPOST /v1/change-tracking/diffDiff a page vs a snapshot โ€” the change-tracking building block behind scheduled monitoring

SDK return shapes: scrape / extract โ†’ one object ยท map โ†’ list of URLs ยท crawl โ†’ list of result objects ยท search โ†’ list, or a dict grouped by source when sources=[...] is set. Full reference: docs.fastcrw.com/#rest-api.

SDKs & integrations

pip install crw          # Python package: crw
npm install crw-sdk      # Node / TypeScript package: crw-sdk (not crw)
from crw import CrwClient

client = CrwClient()   # reads CRW_API_KEY; set CRW_LOCAL=1 for local embedded mode
client.scrape("https://example.com", formats=["markdown", "links"])
# .search() .map() .crawl() .extract() โ€” one method per operation in the table above
import { CrwClient } from "crw-sdk";

const crw = new CrwClient();  // reads CRW_API_KEY; new CrwClient({ apiUrl }) for self-host
await crw.scrape("https://example.com", { formats: ["markdown", "links"] });
// .search() .map() .crawl() .extract() โ€” same methods, all typed

The TypeScript client is typed and zero-dependency; its cloud path is pure fetch, so it runs on Node 18+, Bun, Deno, and edge runtimes. The Python client is synchronous โ€” wrap long calls like crawl() / extract() in asyncio.to_thread inside async code. Both client SDKs (crw, crw-sdk) are MIT-licensed โ€” installing them imposes nothing on your code; AGPL-3.0 covers only the engine.

LangChain and CrewAI integrations ship in the package:

from crw.integrations.langchain import CrwLoader          # pip install crw[langchain]
from crw.integrations.crewai import CrwScrapeWebsiteTool   # pip install crw[crewai]

All integrations โ†’ ยท SDK examples โ†’

Managed cloud vs self-host

Same binary, same API in both modes โ€” switch anytime by changing the base URL. Most teams run on the managed cloud: it scales with your traffic, rotates proxies, and stays patched, so you ship features instead of operating a scraper.

Managed โ€” api.fastcrw.com ย ยทย  recommended for most teamsSelf-host
Best forShipping fast at any scale, with zero infrastructure to runData-residency, air-gapped, or compliance-bound deployments
ScaleGrows with you โ€” 500 free credits to millions of pages/month, higher concurrency per tier, no capacity planningYou size, scale, and monitor the machines yourself
Proxies & renderingManaged global proxy network + rendering, rotated for you to get through blocked pagesBring your own proxy pool and browser tier
Ops & reliabilityFully managed โ€” dashboard, usage metering, API keys, monitored infra; nothing to patch or babysitYou run, patch, upgrade, and monitor it
StartSign up โ€” 500 free credits, no carddocker run -p 3000:3000 ghcr.io/us/crw
CostFree tier, then plans from $11/mo โ€” pricing$0 license โ€” you pay for the infra and your team's time
LicenseYou call an API โ€” no copyleft on your codeAGPL-3.0 โ€” copyleft if you bundle the engine or run a modified public service

Air-gapped note: the crw engine itself makes no telemetry calls. The default Docker Compose stack disables the LightPanda renderer's third-party telemetry (LIGHTPANDA_DISABLE_TELEMETRY=true). If you run a fully air-gapped deployment, verify egress for any renderer sidecars you enable and pin their images to a digest. See self-hosting hardening.

Self-host in one command

docker run -p 3000:3000 ghcr.io/us/crw
curl http://localhost:3000/v1/scrape \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com"}'

Or install the CLI and scrape straight from your shell:

brew install us/crw/crw                            # macOS & Linux
curl -fsSL https://apt.fastcrw.com/setup.sh | sudo sh   # Debian & Ubuntu
curl -fsSL https://fastcrw.com/install | sh        # any platform, no package manager

crw scrape https://example.com

Prefer Cargo, Docker Compose with a stealth tier, or building from source? All install paths and production hardening: docs.fastcrw.com/installation/ ยท self-hosting guide โ†’

Start free
Skip the setup โ€” 500 free credits on the managed cloud, no card.

Why it's fast (built in Rust)

You don't need Rust to use fastCRW โ€” it's why the numbers below are what they are. The engine is a single static binary: no Redis, no Node runtime, no Python venv, no headless-browser sidecar parked in the request path. Cold start is sub-second and idle RAM sits around ~50 MB, so one process saturates a $5 VPS instead of a multi-container stack. An agent that fires N scrapes per task pays the network floor N times โ€” fastCRW strips process-spawn, JIT-warmup, and browser-navigation overhead out of every one.

Benchmark

The numbers above come from Firecrawl's own public 1,000-URL dataset, run identically across all three tools with the same matcher โ€” a fairness control, not a looser number. Reproducible, not marketing math. Full table, methodology, and the repro harness: BENCHMARKS.md ยท fastcrw.com/benchmarks.

Migrating from Firecrawl

New projects use native /v1. Existing Firecrawl v2 SDK code works against the /firecrawl/v2/* compatibility layer โ€” often just a base-URL swap (point your existing Firecrawl client at api.fastcrw.com, the address it sends requests to):

from firecrawl import FirecrawlApp
app = FirecrawlApp(api_url="https://api.fastcrw.com", api_key="YOUR_CRW_API_KEY")

Compatibility reduces migration work, not every behavioral difference โ€” check request bodies, response fields, and unsupported features before moving production traffic. Field-by-field diff: COMPATIBILITY-firecrawl.md.

Security

SSRF protection (blocks loopback, private IPs, cloud metadata, non-HTTP schemes), optional constant-time Bearer auth, RFC 9309 robots.txt, token-bucket rate limiting, and resource caps (1 MB body, depth 10, 1,000 pages). Hardening guide โ†’

Contributing

Issues and PRs welcome. make hooks installs the pre-commit hook; make check runs the same checks as CI. Setup, architecture, and crate layout: CONTRIBUTING.md.

Contributors

us santhreal adambenhassen paoloantinori mj520

Everyone who has landed a commit, refreshed weekly from the contributor graph.

License

Open source under AGPL-3.0. Calling the API over the network โ€” managed or self-hosted โ€” imposes nothing on your own code. AGPL only applies if you bundle the engine's code directly inside your own app (not just call its API) or run a modified copy as a public service; for those cases the managed offering at fastcrw.com includes a commercial carve-out, and standalone commercial licenses are available โ€” hello@fastcrw.com.

Links

Docs ยท API reference ยท MCP setup ยท Benchmarks ยท Pricing ยท Changelog ยท Discord ยท X

Star History

Star History Chart

It is the sole responsibility of end users to respect websites' policies when scraping. By default, fastCRW respects robots.txt directives.

Related MCP Servers

linxule/mineru-mcp

๐Ÿ“‡ โ˜๏ธ - MCP server for MinerU document parsing API. Parse PDFs, images, DOCX, and PPTX with OCR (109 languages), batch processing (200 docs), page ranges, and local file upload. 73% token reduction with structured output.

๐Ÿ”Ž Search & Data Extraction1 views
0xdaef0f/job-searchoor

๐Ÿ“‡ ๐Ÿ  - An MCP server for searching job listings with filters for date, keywords, remote work options, and more.

๐Ÿ”Ž Search & Data Extraction0 views
Aas-ee/open-webSearch

๐Ÿ ๐Ÿ“‡ โ˜๏ธ - Web search using free multi-engine search (NO API KEYS REQUIRED) โ€” Supports Bing, Baidu, DuckDuckGo, Brave, Exa, and CSDN.

๐Ÿ”Ž Search & Data Extraction0 views
ac3xx/mcp-servers-kagi

๐Ÿ“‡ โ˜๏ธ - Kagi search API integration

๐Ÿ”Ž Search & Data Extraction0 views

Engagement

Views
0
Installs
0
Upvotes
0

Views and upvotes are unique per visitor network (hashed IP). Installs count copy actions.

Status

Health: Not checked yet

We have not completed a health check for this listing yet.

No check timestamp yet.

Unclaimed listing (imported or pending owner verification). Claim it โ†’
โ˜… Spotlight Slot

Feature Your MCP Server

Get maximum visibility for your server across our directory, search results, and detail pages.

Spotlight Your Server

Own this project?

This directory is pre-filled from public sources. Claim via GitHub README, site badge, or DNS TXT to get the verified badge and attach your website.

Claim this listing

Promote this listing

Optional paid placement. Free listings stay free forever.

Share & Embed

Add our SVG badge (dark/light directory styles) or embeddable widget to your site.