firecrawl / firecrawl/firecrawl-mcp-server

Firecrawl MCP Server times out with URLs containing @ symbol

Open
#135 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
7.5k
Forks
884
Avg merge
1d 11h
Merged PRs (30d)
14

Description

## Description
The firecrawl-mcp-server times out when processing URLs containing the `@` symbol in the path (specifically npm scoped packages), while identical operations succeed with URLs without this character.

## Steps to Reproduce

1. Send a URL with `@` symbol to Firecrawl MCP via n8n:
https://www.npmjs.com/package/@fancyheat/n8n-nodes-redis-enhanced
**Result**: MCP error -32001 Request timed out (60000ms)

2. Send the same content via GitHub URL without `@`:
https://github.com/fancyHeat/n8n-nodes-redis-enhanced
**Result**: ✅ Success (execution completes normally)

## Expected Behavior
Both URLs should be processed without timing out. The `@` symbol is a valid URL character (used in npm scoped packages: `@scope/package-name`) and should be handled transparently.

## Actual Behavior
URLs containing `@` symbols trigger a 60-second MCP protocol timeout, causing the request to fail.

## Reproducible Example

**Execution 2599** (fails):
- Input: npm URL with `@fancyheat`
- Error: `McpError: MCP error -32001: Request timed out`
- Duration: 60000ms timeout

**Execution 2579** (succeeds):
- Input: GitHub URL without `@`
- Result: Success
- Duration: ~5000ms

## Environment
- firecrawl-mcp-server: v3.6.2 (latest)
- n8n: latest
- Transport: HTTP_STREAMABLE_SERVER mode

## Possible Root Cause
The `@` symbol may not be properly URL-encoded when Firecrawl MCP prepares the request to scrape, causing the Firecrawl API or the MCP protocol layer to hang or error out silently before timing out.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reproducing the failure in HTTP_STREAMABLE_SERVER mode with the npm URL containing @, then compare its request path with the successful GitHub URL. Trace how the MCP server prepares and sends the URL, and consider the issue resolved when the scoped npm URL completes without the 60-second timeout while the existing GitHub case still succeeds.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
api, backend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.