> ## Documentation Index
> Fetch the complete documentation index at: https://firecrawl-claude-eager-dijkstra-27eiio.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Connect Firecrawl with MCP

> Choose keyless access, OAuth browser sign-in, or an API key for your MCP client.

Choose the setup that matches how the connection will run. You do not need to decide whether you are a human or an agent.

<CardGroup cols={3}>
  <Card title="Try instantly" icon="bolt" href="/mcp-server/keyless-api-key#try-instantly" cta="Start keyless setup" arrow>
    No account or key. Use Search, Scrape, and Parse with a daily limit shared by users on the same public IP.
  </Card>

  <Card title="Sign in with your account" icon="right-to-bracket" href="/mcp-server/oauth" cta="Connect account" arrow>
    Browser sign-in (OAuth) from ChatGPT, Claude.ai, Codex, Claude Code, and other interactive clients. Broader tool access.
  </Card>

  <Card title="Use an API key" icon="key" href="/mcp-server/keyless-api-key#add-an-api-key" cta="Configure an API key" arrow>
    Stable access for agents, CI, and backends. Keep the key outside chat and source control.
  </Card>
</CardGroup>

The hosted keyless and API-key server URL is:

```text theme={null}
https://mcp.firecrawl.dev/v2/mcp
```

<Note>
  This is a server URL for your MCP client, not a page to open directly in a browser. OAuth uses a different server URL and your client starts its browser sign-in flow.
</Note>

If you choose an API key, never put it in an MCP URL, an agent conversation, or a committed project file. Configure it through an environment variable or your client's secret storage.

## Fix a broken connection

Use this section when a Firecrawl error mentions `KEYLESS_QUOTA_EXHAUSTED`, `KEYLESS_TOOL_NOT_AVAILABLE`, `KEYLESS_ACCESS_NOT_AVAILABLE`, `KEYLESS_ELIGIBILITY_UNAVAILABLE`, `CREDENTIAL_INVALID`, `OAUTH_CONNECTION_INVALID`, or a credential that is "invalid or revoked."

* **Keyless limit reached:** wait for the error's `retry_after_seconds` (when present), or ask the human operator to connect with OAuth or configure an API key. Search, Scrape, and Parse remain available after the limit resets.
* **Keyless access unavailable:** for `KEYLESS_ELIGIBILITY_UNAVAILABLE`, retry after the indicated interval. If it persists, or the error is `KEYLESS_ACCESS_NOT_AVAILABLE`, ask the human operator to connect with OAuth or configure an API key.
* **Tool not available on keyless (`KEYLESS_TOOL_NOT_AVAILABLE`):** the tool exists but is not on the keyless surface. Connect with OAuth or configure an API key to use it; Search, Scrape, and Parse keep working keyless.
* **API key invalid or revoked:** the human or system operator must replace the key in the existing server configuration, outside the agent conversation.
* **OAuth connection invalid on `/v2/mcp`:** either add an API key to that existing server or change its URL to `https://mcp.firecrawl.dev/v2/mcp-oauth` and sign in through the client. Do not open that URL directly in a browser.
* **OAuth connection invalid on `/v2/mcp-oauth`:** sign in again through the client's account-connection flow.

After any credential or server-URL change, keep one `firecrawl` server entry, start a new client session, and retry. See [OAuth connection](/mcp-server/oauth#switch-an-existing-keyless-connection) or [API-key setup](/mcp-server/keyless-api-key#add-an-api-key) for exact steps.

## Go deeper

<CardGroup cols={2}>
  <Card title="Choose a tool" icon="wrench" href="/mcp-server/tools">
    Match a job to the right Firecrawl MCP tool and check which tools each connection mode provides.
  </Card>

  <Card title="Run MCP locally" icon="terminal" href="/mcp-server/local">
    Run the open-source MCP server over stdio or Streamable HTTP.
  </Card>
</CardGroup>
