Anyone can fetch a page; getting a usable page is the problem. Main-content-only extraction, tag include and exclude lists, a wait for client-rendered content, ad and cookie-popup blocking, and country and language headers are the settings that decide whether the result is the article or the chrome around it. Mapping before crawling is the other habit worth forming — read the structure, then crawl only the paths that matter, instead of paying for a whole site.
An MCP server over the Firecrawl API covering the whole web-data path: pull one page, search for content, crawl a site recursively, map its structure, or extract structured records from a list of URLs against a schema.
- `scrape_url` — one page with real control: `formats` for markdown, html, rawHtml or links, `onlyMainContent` to drop headers and navs, `includeTags` and `excludeTags`, `waitFor` for a delay before fetching, `mobile` for device emulation, `blockAds` for ad and cookie popups, and a `location` with country and languages
- `search_content` — a search with `limit`, `lang`, `country`, `location` and a timeout, with scrape options applied to the results
- `crawl` — recursive crawling with `maxDepth`, `includePaths` and `excludePaths`, `limit`, `ignoreSitemap`, `ignoreQueryParameters`, external and backward link toggles, and a `webhook` for progress
- `map` — the site's structure, optionally filtered by a `search` term, with `includeSubdomains`, `sitemapOnly`, and a `limit` defaulting to 5000 links
- `extract` — structured data from several URLs at once against a `schema`, with a `prompt` for guidance and `enableWebSearch` to pull in context
- Structured extraction on a single page too, through `jsonOptions` with a prompt, schema and system prompt
A Firecrawl API key from the developer portal, set as `FIRECRAWL_API_KEY` — the server's env block is the reliable place for it. The README's install line names `@modelcontextprotocol/mcp-server-firecrawl`, which npm does not have; package.json declares version 1.0.0. Optional environment variables tune the client: `FIRECRAWL_API_BASE_URL` for a custom endpoint, `FIRECRAWL_TIMEOUT`, `FIRECRAWL_MAX_RETRIES`, `FIRECRAWL_RETRY_DELAY`, and `DEBUG` for verbose logging. Rate limiting uses exponential backoff with automatic retries. MIT licensed.
