crw-mcp
MCP (Model Context Protocol) server for the CRW web scraper.
Overview
crw-mcp is a self-contained MCP server that gives any MCP-compatible AI client (Claude Code, Claude Desktop, Cursor, Windsurf, Cline, Continue.dev, OpenAI Codex CLI) 4 web scraping tools. No external server needed — just add and go.
Two modes:
| Mode | When | Setup |
|---|---|---|
| Embedded (default) | No --api-url set |
Self-contained, zero setup |
| Proxy | --api-url provided |
Forwards to remote CRW server |
4 MCP tools:
| Tool | Description |
|---|---|
crw_scrape |
Scrape a single URL → markdown, HTML, JSON, links |
crw_crawl |
Start an async BFS crawl (returns job ID) |
crw_check_crawl_status |
Poll crawl job status and retrieve results |
crw_map |
Discover all URLs on a website |
Installation
Quick Start (Embedded Mode)
No server to run. Just add crw-mcp to your AI client:
# Claude Code
# With custom config via env vars
Proxy Mode (Remote Server)
Connect to fastcrw.com or any remote CRW instance:
# Cloud server
# Local crw-server on custom port
Or use the HTTP transport directly (no crw-mcp binary needed):
CLI Options
| Flag | Env Var | Description |
|---|---|---|
--api-url |
CRW_API_URL |
Remote server URL (enables proxy mode) |
--api-key |
CRW_API_KEY |
Bearer token for remote server auth |
--config |
CRW_CONFIG |
Config file path (embedded mode only) |
| — | RUST_LOG |
Log level (default: crw_mcp=info, logs go to stderr) |
Embedded mode configuration
In embedded mode, crw-mcp loads configuration the same way as crw-server: config.default.toml → config.local.toml → environment variable overrides. Env vars use CRW_ prefix with __ as separator:
CRW_CRAWLER__MAX_CONCURRENCY=5
CRW_RENDERER__LIGHTPANDA__WS_URL=ws://127.0.0.1:9222
CRW_CRAWLER__USER_AGENT="MyBot/1.0"
Feature Flags
| Feature | Default | Description |
|---|---|---|
embedded |
on | Self-contained scraping engine (pulls in crw-server) |
Build a slim proxy-only binary without the embedded engine:
Setup by Client
Claude Code
Claude Desktop
Edit your config file:
| OS | Path |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
| Linux | ~/.config/Claude/claude_desktop_config.json |
Cursor
Edit ~/.cursor/mcp.json (global) or .cursor/mcp.json (project):
Windsurf
Edit ~/.codeium/windsurf/mcp_config.json:
Cline (VS Code)
Continue.dev (VS Code / JetBrains)
Edit ~/.continue/config.yaml:
mcpServers:
- name: crw
command: crw-mcp
OpenAI Codex CLI
Edit ~/.codex/config.toml:
[]
= "crw-mcp"
Any MCP client
Tip: For clients that support HTTP transport, you can still use
http://localhost:3000/mcpdirectly with a runningcrw-server— no stdio binary needed.
With Proxy Mode Authentication
Part of CRW
This crate is part of the CRW workspace — a fast, lightweight, Firecrawl-compatible web scraper built in Rust.
| Crate | Description |
|---|---|
| crw-core | Core types, config, and error handling |
| crw-renderer | HTTP + CDP browser rendering engine |
| crw-extract | HTML → markdown/plaintext extraction |
| crw-crawl | Async BFS crawler with robots.txt & sitemap |
| crw-server | Firecrawl-compatible API server |
| crw-cli | Standalone CLI (crw binary) |
| crw-mcp | MCP server binary (this crate) |
License
AGPL-3.0 — see LICENSE.