By the fastCRW team · Credit costs and footprint verified against the canonical fact sheet 2026-05-18 · launch pricing ended 2026-06-01; see /pricing for current rates. Verify independently before buying.
Why Cursor's agent needs live web context
To add a Cursor IDE fastCRW MCP plugin you connect the crw-mcp server, and the reason you'd want to is simple: Cursor's agent reasons from its training cutoff plus whatever is in your repo, and neither one knows what a library's docs say today. When the agent guesses an API that changed two releases ago, you get confident, wrong code. Live web context closes that gap by letting the agent fetch the current page instead of recalling a stale one.
What Cursor can and cannot fetch on its own
Cursor indexes your codebase and can read files you open. It does not, by default, run a general-purpose web scraper that turns an arbitrary URL into clean markdown, crawls a whole docs site, or runs a live web search mid-task. Those are exactly the operations an external tool server provides — and that is what MCP is for.
Where MCP fits in the Cursor agent loop
The Model Context Protocol (MCP) lets Cursor's agent discover and call external tools the same way it calls built-in ones. You register a server once; from then on the model sees the tools, reads their schemas, and decides when to call them inside its plan-and-act loop. fastCRW ships an MCP server, crw-mcp, that exposes its scrape/crawl/map/search surface to any MCP client — Cursor included. For the broader pattern, see our guide to MCP web scraping.
What the crw-mcp server gives Cursor
scrape, crawl, map, search tools
The crw-mcp server surfaces fastCRW's core endpoints as agent tools:
- scrape — one URL to clean markdown (
/v1/scrape). - crawl — an async BFS crawl of a whole site, returning a job ID (
/v1/crawl). - map — discover every URL on a site before you crawl (
/v1/map). - search — a live web search, optionally scraping the results (
/v1/search).
That covers the three things an agent actually needs from the web: read one page, read a whole reference site, or find a page it doesn't have the URL for yet. We round up the field in the best MCP servers for web scraping.
Firecrawl-compatible shape, drop-in after a base-URL swap
fastCRW's REST surface is Firecrawl-compatible — same base shape, drop-in after a base-URL swap. If you already wired the Firecrawl MCP server into Cursor, the tool semantics will feel identical; you are mostly changing the endpoint and key. That makes crw-mcp a low-friction Firecrawl MCP server alternative rather than a new mental model.
Step 1: Install and configure crw-mcp in Cursor
Adding the server to Cursor's mcp.json
Cursor reads MCP servers from an mcp.json config (project-level .cursor/mcp.json or your global Cursor config). The published package is crw-mcp@0.6.0 on npm (dist-tag latest), so you can launch it with npx without a global install:
- Add a server entry that runs
npx -y crw-mcp@0.6.0. - Pass your fastCRW endpoint and API key as environment variables (for the managed cloud, an
fastcrw.combase URL plus your key; for self-host, your own host). - Reload Cursor — the scrape/crawl/map/search tools appear in the agent's tool list.
The exact key names follow Cursor's MCP config convention; the load-bearing detail is that crw-mcp is a standard stdio/HTTP MCP server, so any client that speaks MCP — Cursor, Claude Code, Windsurf, Cline — registers it the same way. Our Claude Code web scraping walkthrough shows the same server in a sibling client.
Self-hosted endpoint vs managed fastcrw.com
You point crw-mcp at one of two backends:
- Managed
fastcrw.com— nothing to run; you authenticate with an API key and pay per credit. Best when you want it working in five minutes. - Self-hosted — run the open-core engine yourself and point the MCP server at your own host. fastCRW is a single static Rust binary (~8 MB image, one container), AGPL-3.0, so the same backend Cursor depends on can run locally for the cost of your server.
The tools, schemas, and request shapes are identical either way; only the base URL and billing differ.
Pointing at the /mcp Streamable HTTP transport
fastCRW exposes POST /mcp as a Streamable HTTP MCP transport directly on the engine. If you'd rather not run the npm shim, you can point an HTTP-capable MCP client straight at /mcp on your fastCRW host. Both routes reach the same tool surface — the npm package is the convenience wrapper, /mcp is the native transport.
Step 2: Use the tools in an agent task
Scraping a docs page into clean markdown
Once registered, you don't call the tools manually. You tell Cursor's agent something like "read the current authentication docs at this URL and update our client to match," and the agent calls the scrape tool itself. fastCRW returns clean markdown — the headings, code blocks, and prose without the nav chrome — which is exactly the shape an LLM reasons over best. Extraction quality matters here: the cleaner the markdown, the less the agent has to guess.
Searching the live web mid-task
When the agent hits an unfamiliar error or needs a current answer it doesn't have a URL for, it can call the search tool. /v1/search returns ranked results and can optionally scrape each one, so the agent gets both the links and the content in a single tool call instead of scraping each result by hand.
Crawling a whole reference site
For "learn this entire framework's docs" tasks, the agent can map a site to discover its URLs, then crawl them. /v1/crawl is async and returns a job ID; the agent polls for results. Crawls accept maxDepth (cap 10) and maxPages (cap 1000), so a runaway crawl can't quietly drain your credits.
What it costs per agent run
Credit costs: scrape, search, crawl, browse session
fastCRW meters flatly, which makes an agent run easy to forecast:
| Operation | Credits |
|---|---|
scrape (http / lightpanda renderer) | 1 |
scrape (chrome renderer) | 2 |
| crawl | 1 per page (2 per page when chrome-rendered) |
| search | 1 per query |
| map | 1 |
| browse (MCP session) | 1 per session |
So a typical task — search once, scrape three docs pages — costs about 4 credits. There is no separate JS-render multiplier stacked on top: rendering a page with the headless browser bumps it from 1 to 2 credits, full stop. (Note: any request asking for formats: ["json"] extraction costs 5 credits, so budget for structured extraction explicitly.) Live tier prices live on /pricing rather than hard-coded here; launch pricing ended 2026-06-01, so see /pricing for current rates.
Self-hosting the engine for $0
Because the engine is AGPL-3.0 and self-hostable, you can run the exact same MCP backend on your own box and pay nothing per call — your only cost is the server. For development, CI, and high-volume agent loops where every fetch would otherwise be metered, this removes the per-page bill entirely while keeping the identical Firecrawl-compatible tool surface inside Cursor.
Honest limits inside Cursor
No screenshot output (HTTP 422)
fastCRW does not produce screenshots. A request for formats: ["screenshot"] returns HTTP 422. If your Cursor workflow needs a visual capture of a page, fastCRW is the wrong tool for that specific step — use a dedicated screenshot service. fastCRW's job is turning pages into text the agent can read, not pixels.
Stateless per request; no /v1/agent
Two more honest constraints worth designing around:
- Stateless per request. fastCRW keeps no persistent session between calls. There is no logged-in browser state carried across tool calls; each request stands alone.
- No autonomous agent endpoint. There is no
/v1/agent(Spark-style) or/v1/deep-researchendpoint, and no Fire-engine anti-bot layer. fastCRW gives Cursor's agent the raw web-access tools; the agent loop and reasoning stay inside Cursor, which is exactly where you want them.
None of these block the core use case — give a coding agent current, clean web context — but knowing them up front keeps your expectations honest.
Sources
- fastCRW canonical fact sheet (credit costs, API surface, footprint, honest gaps): github.com/us/crw (README, verified 2026-05-18)
- crw-mcp on npm: npmjs.com/package/crw-mcp (
crw-mcp@0.6.0, dist-taglatest) - Cursor MCP documentation: docs.cursor.com
- Live pricing: /pricing (launch pricing ended 2026-06-01; see /pricing for current rates)
Related: MCP web scraping · Best MCP servers for web scraping · Claude Code web scraping · Firecrawl MCP server alternative
