MCP server for Firecrawl web scraping integration. Supports both cloud and self-hosted instances. Features include web scraping, search, batch processing, structured data extraction, and LLM-powered content analysis.
Input schema is present with 13 parameters, all typed, but parameter descriptions are minimal or missing for most fields. Output schema is not documented. The tool description is LLM-optimized with WHEN/HOW guidance, but parameter-level descriptions lack the specificity needed for reliable LLM invocation (e.g., 'formats' array lacks enum values, 'actions' array lacks valid action types). No error handling guidance provided.
Scrape content from a single URL with advanced options. This is the most powerful, fastest and most reliable scraper tool, if available you should always default to using this tool for any web scraping needs. **Best for:** Single page content extraction, when you know exactly which page contains the information. **Not recommended for:** Multiple pages (call scrape multiple times or use crawl), unknown page location (use search). **Common mistakes:** Using markdown format when extracting specific data points (use JSON instead). **Other Features:** Use 'branding' format to extract brand identity (colors, fonts, typography, spacing, UI components) for design analysis or style replication. **CRITICAL - Format Selection (you MUST follow this):** When the user asks for SPECIFIC data points, you MUST use JSON format with a schema. Only use markdown when the user needs the ENTIRE page content. **Use JSON format when user asks for:** - Parameters, fields, or specifications (e.g., "get the header parameters", "what are the required fields") - Prices, numbers, or structured data (e.g., "extract the pricing", "get the product details") - API details, endpoints, or technical specs (e.g., "find the authentication endpoint") - Lists of items or properties (e.g., "list the features", "get all the options") - Any specific piece of information from a page **Use markdown format ONLY when:** - User wants to read/summarize an entire article or blog post - User needs to see all content on a page without specific extraction - User explicitly asks for the full page content **Handling JavaScript-rendered pages (SPAs):** If JSON extraction returns empty, minimal, or just navigation content, the page is likely JavaScript-rendered or the content is on a different URL. Try these steps IN ORDER: 1. **Add waitFor parameter:** Set `waitFor: 5000` to `waitFor: 10000` to allow JavaScript to render before extraction 2. **Try a different URL:** If the URL has a hash fragment (#section), try the base URL or look for a direct page URL 3. **Use firecrawl_map to find the correct page:** Large documentation sites or SPAs often spread content across multiple URLs. Use `firecrawl_map` with a `search` parameter to discover the specific page containing your target content, then scrape that URL directly. Example: If scraping "https://docs.example.com/reference" fails to find webhook parameters, use `firecrawl_map` with `{"url": "https://docs.example.com/reference", "search": "webhook"}` to find URLs like "/reference/webhook-events", then scrape that specific page. 4. **Use firecrawl_agent:** As a last resort for heavily dynamic pages where map+scrape
Parameter descriptions incomplete or missing. 'formats', 'parsers', 'actions', 'location' lack enum values or valid option lists. LLMs cannot infer valid values without explicit constraints.
Output schema not documented. Tool description does not specify what fields are returned or their types. LLMs cannot plan downstream operations without knowing response structure.
Tool description exceeds 1024 character baseline (1200+ chars). While content is valuable, excessive length wastes tokens and buries key details. Recommend splitting into summary + detailed guidance.
No error handling guidance. Tool description lacks recovery hints (e.g., 'If JSON extraction returns empty, try waitFor parameter' is mentioned but not as error guidance). LLMs need explicit 'what to do if this fails' instructions.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2026-07-28+ | v2 |
Parameter 'location' is an object type but lacks schema definition. Subfields (country, languages) are mentioned in description but not formally defined in the schema.