# Reported issues for CRW Web Scraper by fastcrw

Pod holds 17 of 17 GitHub reports that passed its relevance review. This can include external user reports, maintainer-confirmed bugs, and concrete feature gaps. Treat them as evidence to inspect, not a count of distinct defects.

Back to [CRW Web Scraper by fastcrw](/mcp/crw-web-scraper-by-fastcrw).

## Most discussed

### renderJs: false appears to still use Lightpanda when Lightpanda is configured

## Summary

When a Lightpanda container is configured in Docker Compose, `renderJs: false` appears to produce the same result as `renderJs: true`.

Based on my understanding, I would expect `renderJs: false` to skip JavaScript rendering entirely and return the raw HTML result.

## Environment

- Self-hosted FastCRW
- Docker Compose with a Lightpanda container

## Request

```bash
curl -X POST http://localhost:4050/v2/scrape \
  -H "Content-Type: application/json" \
  -d '{…

[Read the thread](https://github.com/fastcrw/crw/issues/346) · 2026-07-22 · closed · external user · 5 comments

### Missing --user-data-dir: Chromium profile dirs leak into %TEMP% (104 dirs / 1.5 GB in ~3 days), orphaned Chrome processes never reaped

### Summary

`crw-mcp` launches its headless Chromium **without `--user-data-dir`**. When that flag is absent, Chromium creates a fallback profile directory in the OS temp folder named `HeadlessChrome<pid><timestamp>`. It is never cleaned up, and the spawned browser processes are not reaped when the MCP server exits.

Two consequences: the disk fills up quickly, and orphaned browser trees keep running.

### Environment

- `crw-mcp`: **0.35.1** (npm, launched via `npx crw-mcp`)
- OS: Windows…

[Read the thread](https://github.com/fastcrw/crw/issues/594) · 2026-09-30 · closed · external user · 4 comments

### Firecrawl /v2 Support

## Summary

The official `firecrawl-py` SDK (v2+) routes all requests to `/v2/scrape`, `/v2/search`, etc. crw currently only implements `/v1/*` endpoints, causing all requests from the current SDK to return 404.

## Steps to Reproduce

1. Run crw self-hosted (tested on v0.10.0)
2. Set `FIRECRAWL_API_URL=http://crw:3000` and `FIRECRAWL_API_KEY=local`
3. Use the official `firecrawl-py` SDK (v4.x):
```python
   from firecrawl import FirecrawlApp
   app = FirecrawlApp(api_url="http://crw:3000",…

[Read the thread](https://github.com/fastcrw/crw/issues/62) · 2026-05-29 · closed · external user · 4 comments

### Scrape does not work with crw-mcp

Scrape does not work with crw-mcp.exe, every time the error is "Target unavailable: could not be reached...", but map and crawl works

with crw.exe Scrape works

Win64  (without cloud api key)

[Read the thread](https://github.com/fastcrw/crw/issues/24) · 2026-04-15 · closed · external user · 4 comments

### Crw mcp chrome not found windows

## Summary
 
On Windows 11, `crw-mcp` (embedded mode) reports that no browser was found and disables JS rendering, even though Google Chrome is installed and reachable. The renderer falls back to HTTP-only mode, which breaks scraping of any JavaScript-rendered / SPA page.
 
## Environment
 
| | |
|---|---|
| OS | Windows 11 |
| Package | `crw-mcp` |
| Version | `v0.24.0` (embedded mode) |
| Invocation | `npx crw-mcp` |
| Browser | Google Chrome, installed at `C:\Program…

[Read the thread](https://github.com/fastcrw/crw/issues/280) · 2026-07-14 · closed · external user · 3 comments

### security: apply SSRF protection and path validation to browse mode

## Human speaking here

Hi there. Thanks for this project. I was asking AI to perform a security assessment on it to be able to fully trust it. The review came out positive overall, with this as the most actionable recommendation. I don't have the full context to really form an opinion on this, so I'm reporting it as is in case you might find it helpful.

## Summary

The browse mode MCP server (`crw browse`) currently has weaker input validation than the REST API server. Two gaps were…

[Read the thread](https://github.com/fastcrw/crw/issues/61) · 2026-05-25 · closed · outside contributor · 3 comments

### JSON schema error at #/properties/actions/items: schema must be an object

# Symptom

Any chat-completion request to a llama.cpp endpoint that includes the crw `script` tool in its
`tools` list fails with:

```
HTTP 500
{"error":{"code":500,"message":"JSON schema error at #/properties/actions/items: schema must be an object","type":"server_error"}}
```

The whole request fails (500) so any agent session that carries the
full crw tool list cannot talk to the model at all while the schema is present.

# Root cause

The `script` tool (exposed by **both** `crw` and…

[Read the thread](https://github.com/fastcrw/crw/issues/578) · 2026-09-23 · closed · external user · 2 comments

### MCP search tools: mismatch between outputSchema and server response make call fails

## Bug
When the agent call the search tool, response always fails:
```
MCP error -32602: Structured content does not match the tool's output schema: data/data must be object
```

### Root Cause
I did some digging and I think I found the issue. The `outputSchema` declared for the `crw_search` tool requires `data` to be an object containing a `results` field. However, when i send request directly to server. the response returns `data` as an array.

**crw_search** schema - in…

[Read the thread](https://github.com/fastcrw/crw/issues/391) · 2026-08-02 · closed · external user · 2 comments

## Most recent

### npm launcher cannot start on Windows behind restricted networks: win32 has no npm fast path, GitHub release download fails (ECONNRESET/ETIMEDOUT)

### Summary

On Windows, `npx crw-mcp` (v0.37.1) **cannot start at all** behind a restricted network. The npm package is a JS launcher that resolves the native binary in three steps; on win32 the first two always fail, so it must download from GitHub Releases — and that download is exactly what gets blocked.

The launcher's own stderr:

```
crw-mcp: could not locate or download the win32-x64 binary.
  could not fetch SHA256SUMS for v0.37.1: read ECONNRESET
  (retry) could not fetch SHA256SUMS…

[Read the thread](https://github.com/fastcrw/crw/issues/597) · 2026-09-30 · closed · external user · 1 comment

### MCP spec conformance: 1 requirement(s) violated (via @hasmcp/mcp-spec-test) — spec 2025-11-25

Running `@hasmcp/mcp-spec-test` against `npx -y crw-mcp@latest` on MCP spec revision **2025-11-25**, when a client explicitly requests the 2025-11-25 revision at handshake, the server settles on `2025-06-18` instead — a revision outside the negotiated window — so downstream capability checks can't be verified against the revision actually under test.

## Conformance report

# MCP 2025-11-25 conformance report

**Verdict: not conformant** — 1 requirement violated.

| | |
| --- | --- |
| Target |…

[Read the thread](https://github.com/fastcrw/crw/issues/466) · 2026-08-24 · closed · external user · 1 comment

### MCP spec conformance: 7 requirement(s) violated (via @hasmcp/mcp-spec-test) — spec 2026-07-28

Running `@hasmcp/mcp-spec-test` against `npx -y crw-mcp@latest` on MCP spec revision **2026-07-28**, the server does not implement `server/discover` (returns "method not found"), and when offered the 2025-11-25 revision at handshake it settles on 2025-06-18 instead, outside the negotiated window.

## Conformance report

# MCP 2026-07-28 conformance report

**Verdict: not conformant** — 7 requirements violated.

| | |
| --- | --- |
| Target | `npx -y crw-mcp@latest` |
| Transport | stdio |
|…

[Read the thread](https://github.com/fastcrw/crw/issues/465) · 2026-08-24 · closed · external user · 1 comment

### MCP spec conformance: 1 requirement(s) violated (via @hasmcp/mcp-spec-test) — spec 2025-11-25

Companion issue to the 2026-07-28 report filed separately (results differ per revision, so filing individually rather than merging). When `crw-mcp` is tested against the 2025-11-25 revision, the one concrete violation is that the server always negotiates down to `2025-06-18` at handshake regardless of what the client offers, even though it also advertises `2025-11-25` and `2026-07-28` support. That mismatch then makes 13 further checks unverifiable, since the suite can't test…

[Read the thread](https://github.com/fastcrw/crw/issues/464) · 2026-08-24 · closed · external user · 1 comment

### MCP spec conformance: 7 requirement(s) violated (via @hasmcp/mcp-spec-test) — spec 2026-07-28

When `crw-mcp` (via `npx -y crw-mcp@latest`) is tested against the 2026-07-28 MCP spec revision with `@hasmcp/mcp-spec-test`, the server does not implement `server/discover` (returns `-32601 method not found: server/discover`), and separately always negotiates down to `2025-06-18` at handshake regardless of the version a client offers — outside its own advertised supported window of (2026-07-28, 2025-11-25). Since `server/discover` never resolves, 22 further checks that depend on it can't be…

[Read the thread](https://github.com/fastcrw/crw/issues/463) · 2026-08-24 · closed · external user · 1 comment

### MCP extract tools: outputSchema mismatches server response — crw_extract and crw_check_extract_status always fail client validation

> **Note: This bug report was generated by an AI agent (Sisyphus, running via OpenCode) as part of diagnosing a broken MCP integration. The analysis is based on reading the crw v0.25.2 source code and testing against a live self-hosted instance. All technical claims below are verifiable against the source.**

## Bug

Both extract-related MCP tools declare `outputSchema` values that don't match what the server actually returns, causing every extract call to fail MCP client-side schema…

[Read the thread](https://github.com/fastcrw/crw/issues/318) · 2026-07-18 · closed · external user · 2 comments

### [Bug]: Wrong default searxng_url in config.docker.toml causes search tool to be unavailable

**Description**
The default `config.docker.toml` ships with `searxng_url = "http://searxng-internal:8080"` under `[search]`. That hostname doesn't match the service name used in the reference Docker Compose setup, so the search health check fails and the `crw_search` MCP tool is never registered. The error message points users toward setting `CRW_SEARCH__SEARXNG_URL` env var, but that variable isn't set anywhere in the provided compose config -- leaving no obvious path forward.

**Steps to…

[Read the thread](https://github.com/fastcrw/crw/issues/90) · 2026-06-04 · closed · external user · 2 comments

### MCP Server `crw` — `outputSchema` mismatch: declares structured output, returns text-only payload

## Summary

Hi! The `crw` MCP server declares `outputSchema` (structured output) for its tools (e.g. `crw_search`), but the actual response bundles all data into a **plain string** inside `data.text` instead of placing it in the declared structured fields. This causes failures in MCP clients that strictly validate responses against the declared schema.

## Affected tools

- `crw_search`
- (potentially `crw_crawl`, `crw_check_crawl_status`)

## What the server **declares** (outputSchema)…

[Read the thread](https://github.com/fastcrw/crw/issues/89) · 2026-06-04 · closed · external user · 1 comment

### Unable to force JS rendering, the crawler cannot fetch the webpage at https://baidu.com.

# I tested it with Dify MCP.
```
{"crw_scrape": {"url": "https://baidu.com"}}

{"crw_scrape": "{\"markdown\": \"\", \"metadata\": {\"description\": null, \"elapsedMs\": 610, \"renderedWith\": \"http\", \"sourceURL\": \"https://baidu.com\", \"statusCode\": 200, \"title\": null}}"}
```

# config.default.toml

```
[server]*
host = "0.0.0.0"
port = 3000
request_timeout_secs = 120
rate_limit_rps = 10              # Max requests/second (global). 0 = unlimited.

[renderer]
mode = "chrome"…

[Read the thread](https://github.com/fastcrw/crw/issues/28) · 2026-04-23 · closed · external user · 1 comment

The remaining reports are on [the project's issue tracker](https://github.com/fastcrw/crw/issues).
