firecrawl-mcp 3.20.0 → 3.20.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/dist/index.js +15 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -428,6 +428,7 @@ Scrape content from a single URL with advanced options.
|
|
|
428
428
|
```
|
|
429
429
|
|
|
430
430
|
**Branding format:** Extracts comprehensive brand identity (colors, fonts, typography, spacing, logo, UI components) for design analysis or style replication.
|
|
431
|
+
**Privacy:** Set `redactPII: true` to return content with personally identifiable information redacted.
|
|
431
432
|
|
|
432
433
|
**Returns:**
|
|
433
434
|
|
|
@@ -565,7 +566,8 @@ Search the web and optionally extract content from search results.
|
|
|
565
566
|
"country": "us",
|
|
566
567
|
"scrapeOptions": {
|
|
567
568
|
"formats": ["markdown"],
|
|
568
|
-
"onlyMainContent": true
|
|
569
|
+
"onlyMainContent": true,
|
|
570
|
+
"redactPII": true
|
|
569
571
|
}
|
|
570
572
|
}
|
|
571
573
|
}
|
package/dist/index.js
CHANGED
|
@@ -187,11 +187,19 @@ const server = new FastMCP({
|
|
|
187
187
|
protectedResourceMetadataUrl: getOAuthProtectedResourceMetadataUrl(),
|
|
188
188
|
},
|
|
189
189
|
authenticate: async (request) => {
|
|
190
|
-
|
|
190
|
+
// FastMCP invokes `authenticate(undefined)` for the stdio transport
|
|
191
|
+
// because there is no HTTP request context. Without this null guard,
|
|
192
|
+
// accessing `request.headers` throws a TypeError, FastMCP silently
|
|
193
|
+
// swallows it, and every subsequent tool call fails with
|
|
194
|
+
// "Unauthorized: API key is required when not using a self-hosted
|
|
195
|
+
// instance" even though `FIRECRAWL_API_KEY` is set in env.
|
|
196
|
+
const headerCred = request?.headers
|
|
197
|
+
? await resolveCredentialFromHeaders(request.headers)
|
|
198
|
+
: undefined;
|
|
191
199
|
const envCred = resolveCredentialFromEnv();
|
|
192
200
|
if (process.env.CLOUD_SERVICE === 'true') {
|
|
193
201
|
if (!headerCred) {
|
|
194
|
-
throw new Error('Firecrawl credentials required: OAuth access token (Authorization: Bearer fco_
|
|
202
|
+
throw new Error('Firecrawl credentials required: OAuth access token (Authorization: Bearer fco_...) or API key (x-firecrawl-api-key)');
|
|
195
203
|
}
|
|
196
204
|
return { firecrawlApiKey: headerCred };
|
|
197
205
|
}
|
|
@@ -205,7 +213,7 @@ const server = new FastMCP({
|
|
|
205
213
|
process.exit(1);
|
|
206
214
|
}
|
|
207
215
|
if (httpStreaming && !credential && !process.env.FIRECRAWL_API_URL) {
|
|
208
|
-
console.error('HTTP MCP transport requires FIRECRAWL_API_URL and/or credentials (OAuth: Authorization Bearer fco_
|
|
216
|
+
console.error('HTTP MCP transport requires FIRECRAWL_API_URL and/or credentials (OAuth: Authorization Bearer fco_..., or FIRECRAWL_API_KEY / FIRECRAWL_OAUTH_TOKEN)');
|
|
209
217
|
process.exit(1);
|
|
210
218
|
}
|
|
211
219
|
return { firecrawlApiKey: credential };
|
|
@@ -372,6 +380,7 @@ const scrapeParamsSchema = z.object({
|
|
|
372
380
|
})
|
|
373
381
|
.optional(),
|
|
374
382
|
onlyMainContent: z.boolean().optional(),
|
|
383
|
+
redactPII: z.boolean().optional(),
|
|
375
384
|
includeTags: z.array(z.string()).optional(),
|
|
376
385
|
excludeTags: z.array(z.string()).optional(),
|
|
377
386
|
waitFor: z.number().optional(),
|
|
@@ -517,6 +526,7 @@ If JSON extraction returns empty, minimal, or just navigation content, the page
|
|
|
517
526
|
**Branding format:** Extracts comprehensive brand identity (colors, fonts, typography, spacing, logo, UI components) for design analysis or style replication.
|
|
518
527
|
**Performance:** Add maxAge parameter for 500% faster scrapes using cached data.
|
|
519
528
|
**Lockdown mode:** Set \`lockdown: true\` to serve the request only from the existing index/cache without any outbound network request. For air-gapped or compliance-constrained use where the request URL itself is considered sensitive. Errors on cache miss. Billed at 5 credits.
|
|
529
|
+
**Privacy:** Set \`redactPII: true\` to return content with personally identifiable information redacted.
|
|
520
530
|
**Returns:** JSON structured data, markdown, branding profile, or other formats as specified.
|
|
521
531
|
${SAFE_MODE
|
|
522
532
|
? '**Safe Mode:** Read-only content extraction. Interactive actions (click, write, executeJavascript) are disabled for security.'
|
|
@@ -1353,6 +1363,7 @@ if (process.env.CLOUD_SERVICE !== 'true') {
|
|
|
1353
1363
|
})
|
|
1354
1364
|
.optional(),
|
|
1355
1365
|
onlyMainContent: z.boolean().optional(),
|
|
1366
|
+
redactPII: z.boolean().optional(),
|
|
1356
1367
|
includeTags: z.array(z.string()).optional(),
|
|
1357
1368
|
excludeTags: z.array(z.string()).optional(),
|
|
1358
1369
|
removeBase64Images: z.boolean().optional(),
|
|
@@ -1394,6 +1405,7 @@ This is the fastest and most reliable way to extract content from a document on
|
|
|
1394
1405
|
|
|
1395
1406
|
**Supported file types:** .html, .htm, .xhtml, .pdf, .docx, .doc, .odt, .rtf, .xlsx, .xls
|
|
1396
1407
|
**Unsupported options:** actions, screenshot/branding/changeTracking formats, waitFor > 0, location, mobile, proxy values other than "auto" or "basic".
|
|
1408
|
+
**Privacy:** Set \`redactPII: true\` to return content with personally identifiable information redacted.
|
|
1397
1409
|
|
|
1398
1410
|
**CRITICAL - Format Selection (same rules as firecrawl_scrape):**
|
|
1399
1411
|
When the user asks for SPECIFIC data points from a document, you MUST use JSON format with a schema. Only use markdown when the user needs the ENTIRE document content.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "firecrawl-mcp",
|
|
3
|
-
"version": "3.20.
|
|
3
|
+
"version": "3.20.2",
|
|
4
4
|
"description": "MCP server for Firecrawl — search, scrape, and interact with the web. Supports both cloud and self-hosted instances. Features include web search, scraping, page interaction, batch processing, and LLM-powered content analysis.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"mcpName": "io.github.firecrawl/firecrawl-mcp-server",
|