Windsurf Web Scraping Integration — fastCRW [Firecrawl-Compatible]
Integrate fastCRW as an MCP server in Windsurf (Codeium's AI IDE). Configure ~/.windsurf/mcp.json, then scrape, search, crawl, and extract web data from coding sessions. Small single static binary, local-first.
Register fastCRW as an MCP server in Windsurf so the agent can scrape, search, crawl, map, and extract live web pages directly from your coding environment and agentic workflows.
Verdict
Windsurf is Codeium's next-generation AI IDE, designed for multi-agent coding workflows. Unlike single-agent chat IDEs, Windsurf's Cascade multi-turn agent and flow editor let you orchestrate complex agentic behaviors — chain a web search, scrape results, extract structured data, and feed it into code generation. fastCRW integrates as an MCP server, adding five web scraping tools to Windsurf's agent toolkit. The fastCRW runtime is a small single static binary, which means the entire scraping pipeline runs local-first on your laptop without cloud bloat. This is ideal for Windsurf users who want their agents to research APIs, monitor status pages, or extract data from internal wikis during coding sessions.
Who This Is For
- Windsurf users with Cascade multi-agent workflows — your agents need to scrape docs, status pages, or web content to inform code generation.
- Teams using Windsurf's flow editor — build reusable flows that search, scrape, and extract data triggered from the IDE.
- AI-assisted development at scale — Windsurf + fastCRW gives your agent web browsing capability without manual context switching.
- Enterprises self-hosting fastCRW — point Windsurf at your internal fastCRW instance to scrape private wikis, dashboards, and authenticated content.
Setup Steps
1. Install Windsurf
Visit windsurf.dev and download the IDE for your operating system. Open it and authenticate with your Codeium account.
2. Provision a fastCRW API key
Sign up at fastcrw.com and copy your API key (starts with fcrw_). see plan pricing includes 500 one-time lifetime credits (granted once, never resets, not monthly).
3. Create ~/.windsurf/mcp.json
Windsurf reads MCP server configs from ~/.windsurf/mcp.json at startup. Create the file if it doesn't exist:
{
"mcpServers": {
"fastcrw": {
"command": "npx",
"args": ["-y", "crw-mcp"],
"env": {
"FASTCRW_API_KEY": "${FASTCRW_API_KEY}"
}
}
}
}
4. Store your API key securely
Add your fastCRW API key to your shell profile instead of hardcoding it:
# Add to ~/.zshrc or ~/.bashrc
export FASTCRW_API_KEY="fcrw_..."
# Reload
source ~/.zshrc
Verify it's set:
echo $FASTCRW_API_KEY
5. Restart Windsurf
Close all Windsurf windows and reopen. Windsurf will load mcp.json and spawn the fastCRW MCP server. You should see no errors in the output panel.
6. Test in Cascade agent
Open a conversation in Windsurf and ask the Cascade agent to use fastCRW:
@fastcrw Scrape the latest Windsurf documentation from docs.windsurf.dev
and summarize the MCP integration steps for me.
The agent will invoke fastcrw__scrape, fetch the page, and return the Markdown.
Example Agent Prompts
Research APIs for integration
Using fastCRW:
1. Search for "OpenAI API documentation"
2. Scrape the top result
3. Extract the key endpoints and authentication methods
4. Generate TypeScript types for the API
Then write a TypeScript client that uses these types.
Cascade orchestrates search → scrape → extract → code generation in one multi-turn flow.
Monitor competitor features
@fastcrw Compare three competitors:
- Firecrawl (firecrawl.dev)
- Crawl4AI (crawl4ai.com)
- fastCRW (fastcrw.com)
Scrape their homepages and feature lists.
Create a comparison table highlighting speed, pricing, and MCP support.
Your agent pulls live marketing pages and generates competitive analysis.
Build a data pipeline from a public dataset
@fastcrw Crawl example.com/data (depth 2) to find all CSV download links.
Extract the URLs into a JSON array.
Then generate a Python script that:
1. Downloads each CSV
2. Combines them into a single dataset
3. Validates the data
Include error handling and progress logging.
Multi-turn orchestration: crawl → extract → code generation.
Extract structured data from a directory listing
@fastcrw Navigate to jobs.example.com and extract all job postings as JSON.
Schema should include: title, department, seniority, location, apply_url.
Then generate a Svelte component that displays these as a filterable table.
Combines web scraping with UI generation.
Self-hosted internal tool
@fastcrw Scrape our internal wiki at https://wiki.internal.company.com/engineering.
Extract all deployment runbooks and summarize them.
Highlight any outdated procedures (check dates).
Point fastCRW at your private infrastructure for on-demand internal research.
Windsurf Flow Workflow Example
Beyond Cascade agent conversations, you can create reusable flows:
- Open the Flow Editor in Windsurf.
- Add steps:
- Step 1: Call
fastcrw__searchwith a query - Step 2: For each result, call
fastcrw__scrape - Step 3: Call
fastcrw__extractwith a JSON schema - Step 4: Generate code based on results
- Step 1: Call
- Save the flow and trigger it from the keyboard or IDE menu.
This is useful for repetitive research workflows that you run daily (e.g., "find and extract new security advisories").
Troubleshooting
fastCRW tools don't appear in Cascade agent
Problem: You configured mcp.json but the agent can't see fastCRW tools.
Fixes:
- Confirm
~/.windsurf/mcp.jsonexists and is valid JSON. - Check
echo $FASTCRW_API_KEYin your terminal — the environment variable must be set. - Restart Windsurf completely (close all windows).
- Check Windsurf's logs: Help → Show Logs and search for "mcp" or "fastcrw".
"Tool failed: invalid API key"
Problem: Cascade says the fastCRW tool failed with an authentication error.
Fixes:
- Verify your API key is correct at fastcrw.com/dashboard.
- Check that your key hasn't expired (check the dashboard for status).
- Regenerate a new key if needed.
- Make sure the key is set:
echo $FASTCRW_API_KEYshould printfcrw_....
Cascade agent calls fastCRW but gets empty results
Problem: The scrape tool runs but returns no content.
Fixes:
- Test the URL in your browser first — is it publicly accessible?
- Some sites block scrapers. Try a simpler URL (e.g., fastcrw.com vs a JavaScript-heavy app).
- Ask your agent to retry with a simple HTML page like
example.comto confirm the tool works. - For JavaScript-rendered sites, set
renderJs: true(or pinrenderer: "chrome") in the scrape request.
"Command not found: npx"
Problem: Windsurf says npx is not available.
Fixes:
- Install Node.js 20+:
node --versionin terminal. - If using nvm:
nvm useand verifywhich npx. - Update your Windsurf environment in Settings → Environment to include your Node.js path.
Cascades are slow when scraping
Problem: Multi-turn Cascade flows take a long time because each fastCRW call waits for the previous one.
Fixes:
- Reduce crawl depth: use
depth: 1ordepth: 2instead of 5. - Use
scrapefor single pages instead ofcrawlfor entire sites. - For parallel workloads, use Windsurf's flow editor to make simultaneous calls.
- Monitor credit usage at fastcrw.com/dashboard — you may be hitting rate limits.
Self-Hosted fastCRW in Windsurf
For enterprise deployments, self-host fastCRW on your infrastructure and point Windsurf at it:
{
"mcpServers": {
"fastcrw": {
"command": "npx",
"args": ["-y", "crw-mcp"],
"env": {
"FASTCRW_API_KEY": "${FASTCRW_API_KEY}",
"FASTCRW_BASE_URL": "https://crw.internal.company.com"
}
}
}
}
This lets your Cascade agents scrape:
- Internal wikis and knowledge bases
- Private dashboards and monitoring tools
- Authenticated APIs and portals
- Compliance-sensitive content that must stay on-premise
Windsurf vs Cursor vs Cloud IDEs
| Feature | Windsurf | Cursor | GitHub Copilot |
|---|---|---|---|
| MCP support | Yes (native) | Yes (native) | Limited preview |
| Multi-agent flows | Yes (Cascade + Flow Editor) | No (single agent) | No |
| Keyboard shortcut customization | Yes | Yes | Limited |
| Self-hosted models | Yes (Ollama, local) | No | No |
| Price | Free tier + Pro | Free tier + Pro | $10/mo |
Choose Windsurf if: you want multi-agent flows and complex orchestration. Choose Cursor if you prefer simplicity and single-agent chat. Both support MCP equally.
When to Use fastCRW vs Alternatives
fastCRW vs web scraping with code
| Approach | Time to first scrape | Maintenance | Multi-agent |
|---|---|---|---|
| fastCRW + MCP | 2 minutes | None | Yes |
| BeautifulSoup | 30 minutes | You maintain it | Manual |
| Playwright | 1 hour | Complex | Manual |
| Firecrawl API | 5 minutes | Third-party SLA | Limited |
Choose fastCRW if: you want to embed scraping in Windsurf flows without writing custom code. Choose code-based scrapers if you need deep customization.
fastCRW vs Firecrawl
| Feature | fastCRW | Firecrawl |
|---|---|---|
| MCP built-in | Yes | Separate install |
| Multi-agent flows | Works in Windsurf | Manual orchestration |
| Performance | Lower latency in our public benchmark (see /benchmarks) | Slower |
| Browser actions | Planned | Yes (click, type) |
| Free tier | 500 one-time lifetime credits (never resets) | 500 credits |
Choose fastCRW if: you want MCP-first integration with Windsurf. Choose Firecrawl if you need browser automation today.
Related
Continue exploring
More from Integrations
Cline Web Scraping Integration — fastCRW [Firecrawl-Compatible]
LlamaIndex Web Scraping Integration — fastCRW [Firecrawl-Compatible]
MCP Web Scraping Integration — fastCRW [Firecrawl-Compatible]
fastCRW ships an official MCP server (crw-mcp) exposing scrape, search, crawl, map, and extract to any MCP-compatible client. Small single static binary, local-first, self-host free under AGPL-3.0.
Google ADK Web Scraping Integration — fastCRW [Firecrawl-Compatible]
Wire fastCRW into Google's Agent Development Kit as a FunctionTool. Firecrawl-compatible scrape and search, small single static binary, local-first, self-host free under AGPL-3.0.
OpenAI Agents SDK Web Scraping Integration — fastCRW [Firecrawl-Compatible]
Give OpenAI Agents SDK agents a fastCRW scrape and search tool with the @function_tool decorator. Small single static binary, local-first, Firecrawl-compatible API, self-host free under AGPL-3.0.
Related hubs
