fastCRW MCP

A Rust server that turns pages into Markdown or JSON: search, scrape, site map, crawl and PDF through MCP, a CLI and a Firecrawl-compatible API

  • 1,172 ★ on the repository
  • Last commit
  • AGPL-3.0
MCP serverOfficial

Extended access

Why this level

  • Fetches addresses the agent supplies and, in cloud mode, sends them and search queries to the fastcrw.com server
  • The installer writes the MCP server and skills into the settings of detected agents and keeps the key in a config file
All reasons and checks

fastcrw/crw

Install

Manual install

npx -y crw-mcp@latest install

Installs the skill and MCP server into detected agents, in local mode without a key. Needs Node.js 18 or newer.

Access and checks

How we review

Extended accessThe tool runs code or makes network calls and only reads external data.

  • Fetches addresses the agent supplies and, in cloud mode, sends them and search queries to the fastcrw.com server
  • The installer writes the MCP server and skills into the settings of detected agents and keeps the key in a config file

This is third-party code. Review the repository files before installing.

What it does

fastCRW is a single Rust binary with an engine for working with web pages. Give it a URL and it returns Markdown, HTML, a list of links, images or JSON matching your schema. Plain pages are fetched with an ordinary request, and for pages built by scripts the engine switches to a built-in lightweight browser or Chrome. The command `npx -y crw-mcp@latest install` puts both the `crw` MCP server and a set of skills into the agents it finds on your machine; without a key the server runs locally in embedded mode. The MCP server gives the agent `crw_scrape`, `crw_crawl` with progress polling through `crw_check_crawl_status`, `crw_map`, `crw_search`, `crw_extract` and `crw_parse_file`. The map tool collects addresses from the sitemap and links without downloading content. A crawl runs breadth first from a start URL and follows `robots.txt` by default. `crw_parse_file` turns a base64 PDF into Markdown. By default a response is cut to 15,000 characters so it does not flood the agent's context, and `maxLength: 0` lifts the cut. The repository holds thirteen skills built around one ladder of steps: search first, then scrape a single page, map, crawl, parse a PDF, extract by schema and watch for changes. Separate skills cover moving from Firecrawl by swapping the base URL and standing up your own server in Docker. The same operations are available from the `crw` command line, from Python and Node.js SDKs and over REST. The cloud needs a key from fastcrw.com, while local mode is free.

Who it is for. For developers and analysts whose agents in Claude Code, Cursor or Codex read sites, documentation and search results, and for anyone who wants the page collector on their own server.

Good fit when

  • The agent needs a documentation page as Markdown without navigation and footer, and a plain request returns an empty shell
  • You have to collect a whole site's documentation for RAG: `crw_map` estimates the size first, then `crw_crawl` fetches the pages
  • Your code already uses the Firecrawl SDK and you want to move to your own server by changing the base URL
  • You need to track a price or text change on a page: the `crw-watch` skill compares two snapshots

Not a fit when

  • You need an interactive browser with clicks and form filling: `crw-mcp` has none, it lives in a separate `crw-browse` binary
  • You run Windows: the npm package `crw-mcp` ships binaries for macOS and Linux only, and on Windows you are left with the install script or a build from source
  • You embed the engine in a closed product: it is AGPL-3.0, only the SDKs are MIT, and the author issues an embedding license separately
  • You want search to work out of the box in local mode: embedded mode searches only when a search backend is connected

Example request

Collect the documentation from docs.example.com as Markdown: first show how many pages there are, then fetch the first fifty

MCP

Transport
stdio
Authentication
not required

Environment variables

CRW_API_KEY secret
fastcrw.com cloud key; without it the server runs locally
CRW_API_URL
API address, https://api.fastcrw.com for the cloud

Limitations

  • The engine and MCP server are AGPL-3.0, while the Python and TypeScript SDKs are MIT. For embedding in a closed product the author asks you to write by email.
  • Cloud mode is paid by credits: an account gets 1000 free credits once, not monthly. The key can be stored in `~/.config/crw/config.toml` and is not copied into each agent's settings.
  • `crw_extract` and the `json` and `summary` formats of `crw_parse_file` need a connected language model: your own provider key or a model on the server.
  • To keep agent settings untouched, set `CRW_NO_AGENTS=1`; without it the installer with a key registers the server in Claude Code, Cursor, Codex, Gemini CLI, OpenCode and Windsurf by itself.
  • Available features depend on the deployment: the `/v1/capabilities` address returns the list. Crawl and map follow `robots.txt`, and respecting site rules is up to the user.

How to disable. Remove the `crw` entry from your agent's MCP configuration and the `crw*` skill folders from its skills directory. The `crw` binary placed by the install script sits in `/usr/local/bin` or the folder from `CRW_INSTALL_DIR`; deleting it is enough. The key and settings are kept in `~/.config/crw/config.toml`.

FAQ

Do I need a key to start working with fastCRW?

No. After `npx -y crw-mcp@latest install` the server starts in local mode without a key and scrapes pages on your machine. A key from fastcrw.com is needed for the cloud with managed proxies, script rendering and built-in search.

How does connecting fastCRW differ from Firecrawl?

The `/v1` and `/v2` interface is compatible with Firecrawl, so code on its SDK usually switches by changing the base URL. The `crw-migrate` skill describes the move. Responses differ between deployments, and `/v1/capabilities` shows how.

How does fastCRW handle pages built with JavaScript?

The engine detects that a page is built by scripts and steps from a plain request to a lightweight browser and then to Chrome. You can force rendering with `renderJs: true` and set a pause after load with `waitFor`.

How much of a page does the agent receive?

By default about 15,000 characters from `crw_scrape` and crawl results, with `truncated: true` in the response when something is cut. The `maxLength: 0` parameter turns the cut off. A site map returns at most 100 addresses unless you pass `limit: 0`.

Can I run fastCRW as my own API server?

Yes. The `crw serve` command or the `ghcr.io/fastcrw/crw` image brings up a server on port 3000. The `crw-self-host` skill covers the separate `crw-server` binary, the configuration file, proxies and connecting a language model for extraction.

How do I check what changed on a page?

The server stores nothing between calls. You scrape the page, save the snapshot, scrape again later and send both to `/v1/change-tracking/diff`. A response with the `changed` status can be tied to a scheduled alert.

Discussion

No questions or reviews yet.

Official

Official Firecrawl MCP server: web search, page scraping to Markdown, site crawling and in-page actions

MCP serverExtended access7.7KRepository stars
Editors’ pick

The Firecrawl command-line client with agent skills: web search, scraping, crawling, URL mapping and page interaction

CLIExtended access661Repository stars

An MCP server that opens pages in headless Chromium through Playwright and hands the agent the main text as Markdown, even from JavaScript-heavy sites

MCP serverExtended access1.1KRepository stars
Official

An open-source crawler that turns websites into clean Markdown for AI agents: install from PyPI, run in Docker and connect to Claude Code over MCP

MCP serverExtended access86.1KRepository stars

Local-first Rust tool for web extraction: scrape, crawl and structured data for LLMs, with a CLI, REST API and MCP server

CLIExtended access2.4KRepository stars

DrissionPage MCP: browser control

DrissionPage MCP Server

A Python MCP server for Codex, Claude Code and Cursor: 69 atomic tools for driving Chromium on top of DrissionPage, with page and network observation

MCP serverBroad access484Repository stars

Comparison with similar tools

Entries that share the main search query, and how they differ.

EntryOfficialAuthenticationRepository starsMain difference
fastCRW (this entry)yesnot required1,172
Firecrawl MCP ServeryesAPI key7,672the official MCP server of the Firecrawl cloud, needs an API key and has page actions
Tavily MCP ServeryesAPI key2,454the official Tavily MCP server: web search, page text extraction, site map and crawl
Crawl4AIyesAPI key86,076a Python crawler installed from PyPI and run in Docker

README in short

The repository holds the engine sources split into Rust crates (server, CLI, MCP, search, rendering, page comparison), a Python SDK, thirteen skills, plugin manifests for Claude Code, Codex and Cursor, speed benchmarks with their methodology, and blog articles. The front page opens with a one-command install and a table of operations, followed by a choice between the cloud and your own server and links to the docs.

README badge

Report a problem

Foxx AIfastCRW
Foxx AI

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.