firecrawl_map
Discover and extract URLs from websites using sitemap.xml or HTML link analysis to map site structure and content.
Instructions
Discover URLs from a starting point. Can use both sitemap.xml and HTML link discovery.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Starting URL for URL discovery | |
| search | No | Optional search term to filter URLs | |
| ignoreSitemap | No | Skip sitemap.xml discovery and only use HTML links | |
| sitemapOnly | No | Only use sitemap.xml for discovery, ignore HTML links | |
| includeSubdomains | No | Include URLs from subdomains in results | |
| limit | No | Maximum number of URLs to return |
Implementation Reference
- src/index.ts:179-213 (schema)Tool schema definition for 'firecrawl_map', including name, description, and input schema.const MAP_TOOL: Tool = { name: 'firecrawl_map', description: 'Discover URLs from a starting point. Can use both sitemap.xml and HTML link discovery.', inputSchema: { type: 'object', properties: { url: { type: 'string', description: 'Starting URL for URL discovery', }, search: { type: 'string', description: 'Optional search term to filter URLs', }, ignoreSitemap: { type: 'boolean', description: 'Skip sitemap.xml discovery and only use HTML links', }, sitemapOnly: { type: 'boolean', description: 'Only use sitemap.xml for discovery, ignore HTML links', }, includeSubdomains: { type: 'boolean', description: 'Include URLs from subdomains in results', }, limit: { type: 'number', description: 'Maximum number of URLs to return', }, }, required: ['url'], }, };
- src/index.ts:965-981 (handler)Handler logic for executing the 'firecrawl_map' tool: validates input, calls Firecrawl client.mapUrl, processes response links, and formats output.case 'firecrawl_map': { if (!isMapOptions(args)) { throw new Error('Invalid arguments for firecrawl_map'); } const { url, ...options } = args; const response = await client.mapUrl(url, options); if ('error' in response) { throw new Error(response.error); } if (!response.links) { throw new Error('No links received from FireCrawl API'); } return { content: [{ type: 'text', text: response.links.join('\n') }], isError: false, }; }
- src/index.ts:862-874 (registration)Registration of all tools including MAP_TOOL ('firecrawl_map') in the ListToolsRequestHandler.server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: [ SCRAPE_TOOL, MAP_TOOL, CRAWL_TOOL, BATCH_SCRAPE_TOOL, CHECK_BATCH_STATUS_TOOL, CHECK_CRAWL_STATUS_TOOL, SEARCH_TOOL, EXTRACT_TOOL, DEEP_RESEARCH_TOOL, ], }));
- src/index.ts:621-628 (helper)Type guard helper function 'isMapOptions' used to validate arguments for the firecrawl_map handler.function isMapOptions(args: unknown): args is MapParams & { url: string } { return ( typeof args === 'object' && args !== null && 'url' in args && typeof (args as { url: unknown }).url === 'string' ); }