Skip to main content
Tutorial

Cursor + fastCRW: Live Web Context via MCP

Wire fastCRW into Cursor with the crw-mcp server so your AI coding agent scrapes, crawls, and searches the live web. Setup, config, and credit costs explained.

fastcrw
June 9, 20268 min readLast updated: June 2, 2026

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.com base 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:

OperationCredits
scrape (http / lightpanda renderer)1
scrape (chrome renderer)2
crawl1 per page (2 per page when chrome-rendered)
search1 per query
map1
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-research endpoint, 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-tag latest)
  • 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

FAQ

Frequently asked questions

How do I add the fastCRW MCP server to Cursor?
Add a server entry to Cursor's mcp.json (project-level .cursor/mcp.json or your global config) that runs the published crw-mcp@0.6.0 package, e.g. via npx -y crw-mcp@0.6.0, and pass your fastCRW endpoint plus API key as environment variables. Reload Cursor and the scrape, crawl, map, and search tools appear in the agent's tool list. You can also point an HTTP MCP client directly at the engine's POST /mcp Streamable HTTP transport.
What tools does crw-mcp expose to Cursor's agent?
Four core tools: scrape (one URL to clean markdown via /v1/scrape), crawl (an async BFS crawl of a whole site via /v1/crawl), map (discover every URL on a site via /v1/map), and search (a live web search, optionally scraping results, via /v1/search). The shape is Firecrawl-compatible, so it behaves like the Firecrawl MCP server you may already know.
Can I run the fastCRW MCP server locally instead of the cloud?
Yes. fastCRW is a single static Rust binary (~8 MB image, one container) under AGPL-3.0, so you can self-host the engine and point crw-mcp at your own host instead of the managed fastcrw.com cloud. The tools, schemas, and request shapes are identical; only the base URL and billing change. Self-hosting costs nothing per call — you pay only for your own server.
How many credits does a Cursor web-scraping task cost?
fastCRW meters flatly: a scrape is 1 credit (2 when chrome-rendered), search is 1 per query, crawl is 1 per page, and map is 1. So a task that searches once and scrapes three docs pages costs about 4 credits. A request asking for JSON extraction (formats: ["json"]) costs 5 credits, so budget for structured extraction explicitly. See /pricing for live tier prices.
Does fastCRW support screenshots inside Cursor?
No. fastCRW does not produce screenshot output — a request for formats: ["screenshot"] returns HTTP 422. fastCRW's role is turning live pages into clean markdown your Cursor agent can read, not capturing images. For a visual capture step, use a dedicated screenshot service alongside it.

Get Started

Try CRW Free

Self-host for free (AGPL) or use fastCRW cloud with 500 free credits — no credit card required.

Continue exploring

More tutorial posts

View category archive