Skip to main content

Run Firecrawl MCP locally

Start and configure the open-source Firecrawl MCP server over stdio or Streamable HTTP.
2 min read

Run Firecrawl MCP locally when a client needs to launch a local process, when you need a local HTTP transport, or when the MCP server must connect to a self-hosted Firecrawl API. For the managed service, start with Get Started.

Prerequisites#

  • Node.js 22 or newer
  • npm and npx, included with Node.js
  • A Firecrawl API key for the cloud API, or a self-hosted Firecrawl API URL

Confirm the installed Node.js version:

Start the server#

Use stdio when the MCP client launches Firecrawl as a local process:

Configure the client to run npx -y firecrawl-mcp@3.23.7 and provide FIRECRAWL_API_KEY through the client's protected environment or secret mechanism.

Configure the Firecrawl API#

Environment variablePurpose
FIRECRAWL_API_KEYAuthenticates to the Firecrawl cloud API. It is optional only when a self-hosted API does not require authentication.
FIRECRAWL_API_URLSends requests to a self-hosted Firecrawl API instead of the cloud API.
HTTP_STREAMABLE_SERVERSet to true to start the local Streamable HTTP transport instead of stdio.
Note

Direct local-file parsing with firecrawl_parse requires FIRECRAWL_API_URL pointing to a self-hosted Firecrawl API. A local MCP server connected only to the cloud API cannot upload a local file through that tool; the hosted server uses a signed upload handoff instead.

Install globally#

Use npx for the shortest setup. To install the same reviewed release globally instead:

Then run:

Troubleshooting#

The client reports spawn npx ENOENT

Install Node.js 22 or newer, confirm that npx is on the client's PATH, and fully restart the client. On Windows, run where npx in Command Prompt and configure the client to use the returned npx.cmd path.

The HTTP client cannot connect

Confirm that HTTP_STREAMABLE_SERVER=true, then call http://localhost:3000/health. Use http://localhost:3000/mcp as the client endpoint, not the hosted /v2/mcp path.

A tool is unavailable

Tool availability depends on the Firecrawl services enabled in the target deployment. Compare the connection in Tools and check the local process output for registration or authentication errors.

The server is rate-limited

Rate limits are enforced by the connected Firecrawl API. Review the current rate limits and the limits configured for a self-hosted deployment.