firecrawl-mcp 3.23.8 → 3.24.0
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 +14 -7
- package/dist/index.js +15 -9
- package/package.json +9 -3
package/README.md
CHANGED
|
@@ -291,6 +291,7 @@ Use this guide to select the right tool for your task:
|
|
|
291
291
|
- **If you need to discover URLs on a site:** use **map**
|
|
292
292
|
- **If you want to search the web for info:** use **search**
|
|
293
293
|
- **If you have a programming question** (a library, an API contract, an error message, a known bug): use **developer search**
|
|
294
|
+
- **If you need scientific papers** (biomedical, life-science, clinical, or arXiv literature): use **research tools** — they search paper abstracts and full text. `search` with `categories: ["research"]` is a different thing: a website filter over ordinary web results.
|
|
294
295
|
- **If you need complex research across multiple unknown sources:** use **agent**
|
|
295
296
|
- **If you want to analyze a whole site or section:** use **crawl** (with limits!)
|
|
296
297
|
- **If you need interactive browser automation** (click, type, navigate): use **interact** with a URL for a fresh page, or **scrape** + **interact** when you already scraped the page or need tighter scrape control
|
|
@@ -465,7 +466,7 @@ Search the web and optionally extract content from search results.
|
|
|
465
466
|
{
|
|
466
467
|
"name": "firecrawl_search",
|
|
467
468
|
"arguments": {
|
|
468
|
-
"query": "
|
|
469
|
+
"query": "remote work stipend policies at tech companies",
|
|
469
470
|
"highlights": true,
|
|
470
471
|
"limit": 5,
|
|
471
472
|
"lang": "en",
|
|
@@ -481,13 +482,15 @@ Search the web and optionally extract content from search results.
|
|
|
481
482
|
|
|
482
483
|
Set `highlights` to `true` to request query-relevant highlights or `false` to keep the original search snippets. Omit it to use the API's default behavior.
|
|
483
484
|
|
|
485
|
+
For scientific papers, see [Research Tools](#12-research-tools-firecrawl_research_): they search paper abstracts and full text, while `categories: ["research"]` here filters ordinary web results to research-affiliated websites.
|
|
486
|
+
|
|
484
487
|
**Returns:**
|
|
485
488
|
|
|
486
489
|
- Array of search results (with optional scraped content), plus an `id` field. Pass that `id` to `firecrawl_search_feedback` after you've used the results to refund 1 credit (search costs 2) and improve search quality.
|
|
487
490
|
|
|
488
491
|
**Prompt Example:**
|
|
489
492
|
|
|
490
|
-
> "
|
|
493
|
+
> "Compare remote work stipend policies across tech companies."
|
|
491
494
|
|
|
492
495
|
### 3b. Search Feedback Tool (`firecrawl_search_feedback`)
|
|
493
496
|
|
|
@@ -829,16 +832,20 @@ Stop an interact session for a scraped page when you are done interacting.
|
|
|
829
832
|
|
|
830
833
|
Search and inspect papers and GitHub repositories through the research MCP tools.
|
|
831
834
|
|
|
835
|
+
**Covers:** paper abstracts and full text across biomedical, life-science, and clinical literature (PubMed, bioRxiv, medRxiv) alongside arXiv and other scientific sources.
|
|
836
|
+
|
|
832
837
|
**Available research tools:**
|
|
833
838
|
|
|
834
|
-
- `firecrawl_research_search_papers`: search
|
|
835
|
-
- `firecrawl_research_inspect_paper`:
|
|
836
|
-
- `firecrawl_research_related_papers`:
|
|
837
|
-
- `firecrawl_research_read_paper`: read paper
|
|
838
|
-
- `firecrawl_research_search_github`: search GitHub
|
|
839
|
+
- `firecrawl_research_search_papers`: search paper metadata and abstracts with a natural-language query, with optional author, category, and date filters.
|
|
840
|
+
- `firecrawl_research_inspect_paper`: retrieve canonical metadata for one paper ID (arXiv, PMC, PMID, or DOI).
|
|
841
|
+
- `firecrawl_research_related_papers`: expand from one or more anchor papers through the citation graph.
|
|
842
|
+
- `firecrawl_research_read_paper`: read full-text passages from a specific paper.
|
|
843
|
+
- `firecrawl_research_search_github`: search indexed public GitHub issue, pull-request, and README content.
|
|
839
844
|
|
|
840
845
|
**Best for:** Literature review, paper lookup, and repository discovery workflows where the agent needs a focused research surface instead of general web scraping.
|
|
841
846
|
|
|
847
|
+
`firecrawl_search` with `categories: ["research"]` is a different surface: it filters ordinary web results to research-affiliated websites and returns page snippets, not paper records. Use these tools when the question is about the literature itself, and pass several distinct framings of the same question — they surface different papers than a single query does.
|
|
848
|
+
|
|
842
849
|
### 13. Monitor Tools (`firecrawl_monitor_*`)
|
|
843
850
|
|
|
844
851
|
Create and manage recurring page monitors. Monitors run scheduled scrapes or crawls, diff each result against the last retained snapshot, and can notify by webhook or email.
|
package/dist/index.js
CHANGED
|
@@ -18,8 +18,10 @@ var MAX_PASSAGE_CHARS = 1200;
|
|
|
18
18
|
function fmtDeveloper(results) {
|
|
19
19
|
if (!results || results.length === 0) return "(no results)";
|
|
20
20
|
return results.map((r) => {
|
|
21
|
-
const
|
|
22
|
-
const
|
|
21
|
+
const id = r.id ?? "?";
|
|
22
|
+
const kind = r.id?.split(":", 1)[0];
|
|
23
|
+
const kindLabel = kind ? ` (${kind})` : "";
|
|
24
|
+
const lines = [`## [${id}]${kindLabel} ${r.title ?? "(untitled)"}`];
|
|
23
25
|
if (r.url) lines.push(r.url);
|
|
24
26
|
const body = (r.passages ?? []).map((p) => p.text ?? "").join("\n---\n").trim();
|
|
25
27
|
lines.push(body ? body.slice(0, MAX_PASSAGE_CHARS) : "(no content)");
|
|
@@ -586,7 +588,7 @@ function fmtGithub(results) {
|
|
|
586
588
|
if (!results || results.length === 0) return "(no results)";
|
|
587
589
|
return results.map((r) => {
|
|
588
590
|
const lines = [];
|
|
589
|
-
if (r.
|
|
591
|
+
if (r.number == null && r.pageType == null) {
|
|
590
592
|
lines.push(`[${r.repo ?? "?"}] README`);
|
|
591
593
|
} else {
|
|
592
594
|
const ref = r.number != null ? `#${r.number}` : "";
|
|
@@ -618,7 +620,9 @@ function registerResearchTools(server2, getClient2) {
|
|
|
618
620
|
// Query-only; no writes to external sources or the research index.
|
|
619
621
|
},
|
|
620
622
|
description: `
|
|
621
|
-
|
|
623
|
+
Search paper metadata and abstracts with a natural-language query across the indexed corpus, which spans biomedical, life-science, and clinical literature (PubMed, bioRxiv, medRxiv) alongside arXiv and other scientific sources. Optional author, category, and date filters constrain results.
|
|
624
|
+
|
|
625
|
+
Several distinct framings of the same question surface different papers than a single query does.
|
|
622
626
|
|
|
623
627
|
Returns ranked papers with canonical IDs, titles, authors, and abstracts.
|
|
624
628
|
`,
|
|
@@ -689,7 +693,7 @@ Retrieve canonical metadata for one paper ID, such as an arXiv, PMC, PMID, or DO
|
|
|
689
693
|
server2.addTool({
|
|
690
694
|
name: "firecrawl_research_related_papers",
|
|
691
695
|
annotations: {
|
|
692
|
-
title: "Find related
|
|
696
|
+
title: "Find related papers via citation graph",
|
|
693
697
|
readOnlyHint: true,
|
|
694
698
|
// Finds related papers via citation graph expansion; returns candidates only.
|
|
695
699
|
openWorldHint: true,
|
|
@@ -1280,7 +1284,7 @@ var searchToolBaseFields = {
|
|
|
1280
1284
|
excludeDomains: z4.array(searchDomainSchema).optional(),
|
|
1281
1285
|
sources: z4.array(z4.object({ type: z4.enum(["web", "images", "news"]) })).optional(),
|
|
1282
1286
|
categories: z4.array(z4.enum(["github", "research", "pdf", "developer"])).optional().describe(
|
|
1283
|
-
"Limit results to specific source types. `github` searches GitHub repositories, code, issues, and docs; `research`
|
|
1287
|
+
"Limit results to specific source types. `github` searches GitHub repositories, code, issues, and docs; `research` restricts ordinary web results to research-affiliated websites and returns page snippets, which is separate from the `firecrawl_research_*` tools that search paper abstracts and full text across biomedical (PubMed, bioRxiv, medRxiv) and arXiv literature; `pdf` searches PDF results; `developer` searches an index built for coding agents over GitHub issues, merged pull requests, repository READMEs, and curated documentation sites. `developer` adds a `data.developer` group of `{ url, title, description }` results, where `description` holds the matched passage; the other categories filter `data.web`."
|
|
1284
1288
|
),
|
|
1285
1289
|
enterprise: z4.array(z4.enum(["default", "anon", "zdr"])).optional()
|
|
1286
1290
|
};
|
|
@@ -1319,9 +1323,9 @@ var ConsoleLogger = class {
|
|
|
1319
1323
|
var openAiAppsChallengeToken = normalizeHeader(
|
|
1320
1324
|
process.env.OPENAI_APPS_CHALLENGE_TOKEN
|
|
1321
1325
|
);
|
|
1322
|
-
var FULL_PROFILE_INSTRUCTIONS = `Firecrawl provides web search, page retrieval, site URL discovery, multi-page collection, structured page data, monitoring, and asynchronous research. Match the requested operation to the tool boundary: firecrawl_scrape retrieves one supplied page and can return JSON matching a supplied schema, firecrawl_map enumerates URLs under a site without retrieving their content, and firecrawl_agent starts multi-source research whose result is read with firecrawl_agent_status. Provide only the required inputs and account for stated network or external side effects.`;
|
|
1323
|
-
var KEYLESS_PROFILE_INSTRUCTIONS = `Without authentication, this endpoint exposes Search, Scrape, and Parse with usage limits. An OAuth connection or Authorization bearer API key exposes account tools; unavailable tools return connection guidance. Firecrawl provides web search, page retrieval, site URL discovery, multi-page collection, structured page data, monitoring, and asynchronous research. Match the requested operation to the tool boundary: firecrawl_scrape retrieves one supplied page and can return JSON matching a supplied schema, firecrawl_map enumerates URLs under a site without retrieving their content, and firecrawl_agent starts multi-source research whose result is read with firecrawl_agent_status. Provide only the required inputs.`;
|
|
1324
|
-
var SEARCH_PROFILE_INSTRUCTIONS = `Firecrawl provides web, developer, and research search. Use firecrawl_search to find relevant results across the web and specialized indexes. For a programming question, use firecrawl_search with categories: ["developer"] to search indexed GitHub issues, merged pull requests, READMEs, and documentation. Use the firecrawl_research_* tools to search academic and research literature, expand from anchor papers via the citation graph, read full-text passages from a specific paper, and search public code repositories. All tools are read-only and return ranked results.`;
|
|
1326
|
+
var FULL_PROFILE_INSTRUCTIONS = `Firecrawl provides web search, page retrieval, site URL discovery, multi-page collection, structured page data, monitoring, and asynchronous research. Match the requested operation to the tool boundary: firecrawl_scrape retrieves one supplied page and can return JSON matching a supplied schema, firecrawl_map enumerates URLs under a site without retrieving their content, and firecrawl_agent starts multi-source research whose result is read with firecrawl_agent_status. For biomedical, life-science, clinical, or arXiv literature, the firecrawl_research_* tools search a paper index of abstracts and full text; firecrawl_search with categories: ["research"] is a website filter over ordinary web results and reaches different sources. Provide only the required inputs and account for stated network or external side effects.`;
|
|
1327
|
+
var KEYLESS_PROFILE_INSTRUCTIONS = `Without authentication, this endpoint exposes Search, Scrape, and Parse with usage limits. An OAuth connection or Authorization bearer API key exposes account tools; unavailable tools return connection guidance. Firecrawl provides web search, page retrieval, site URL discovery, multi-page collection, structured page data, monitoring, and asynchronous research. Match the requested operation to the tool boundary: firecrawl_scrape retrieves one supplied page and can return JSON matching a supplied schema, firecrawl_map enumerates URLs under a site without retrieving their content, and firecrawl_agent starts multi-source research whose result is read with firecrawl_agent_status. For biomedical, life-science, clinical, or arXiv literature, firecrawl_search with categories: ["research"] filters ordinary web results to research-affiliated websites; the firecrawl_research_* tools search a separate paper index of abstracts and full text and become available once an OAuth connection or Authorization bearer API key is present. Provide only the required inputs.`;
|
|
1328
|
+
var SEARCH_PROFILE_INSTRUCTIONS = `Firecrawl provides web, developer, and research search. Use firecrawl_search to find relevant results across the web and specialized indexes. For a programming question, use firecrawl_search with categories: ["developer"] to search indexed GitHub issues, merged pull requests, READMEs, and documentation. For a biomedical, life-science, clinical, or arXiv literature question, the firecrawl_research_* tools search the paper index, while categories: ["research"] on firecrawl_search filters ordinary web results to research-affiliated websites. Use the firecrawl_research_* tools to search academic and research literature, expand from anchor papers via the citation graph, read full-text passages from a specific paper, and search public code repositories. All tools are read-only and return ranked results.`;
|
|
1325
1329
|
var SEARCH_PROFILE_TOOLS = /* @__PURE__ */ new Set([
|
|
1326
1330
|
"firecrawl_search",
|
|
1327
1331
|
"firecrawl_research_search_papers",
|
|
@@ -2216,6 +2220,8 @@ Search web, news, or image sources and return ranked results. Operators include
|
|
|
2216
2220
|
|
|
2217
2221
|
For a programming question, add \`categories: ["developer"]\`. It searches an index of GitHub issues, merged pull requests, repository READMEs, and curated documentation sites, and returns the hits in \`data.developer\` beside the web results.
|
|
2218
2222
|
|
|
2223
|
+
\`categories: ["research"]\` restricts these web results to research-affiliated websites and returns page snippets. The \`firecrawl_research_*\` tools are a separate surface that searches paper abstracts and full text across biomedical (PubMed, bioRxiv, medRxiv) and arXiv literature.
|
|
2224
|
+
|
|
2219
2225
|
\`scrapeOptions\` can attach extracted page content; pages fetched this way use a fixed reuse window and ignore \`maxAge\`, so use \`firecrawl_scrape\` when a live fetch is required. Returns source-type result groups and usage metadata. Authenticated responses can include an \`id\` for optional search feedback.
|
|
2220
2226
|
`,
|
|
2221
2227
|
parameters: z4.object({
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "firecrawl-mcp",
|
|
3
|
-
"version": "3.
|
|
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,
|
|
3
|
+
"version": "3.24.0",
|
|
4
|
+
"description": "MCP server for Firecrawl — search, scrape, and interact with the web, and search scientific papers. Supports both cloud and self-hosted instances. Features include web search, scraping, page interaction, batch processing, LLM-powered content analysis, and research paper search over biomedical and arXiv literature (PubMed, bioRxiv, medRxiv, arXiv) with citation-graph expansion and full-text reading.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"mcpName": "io.github.firecrawl/firecrawl-mcp-server",
|
|
7
7
|
"bin": {
|
|
@@ -28,7 +28,13 @@
|
|
|
28
28
|
"firecrawl",
|
|
29
29
|
"web-search",
|
|
30
30
|
"web-data",
|
|
31
|
-
"web-interaction"
|
|
31
|
+
"web-interaction",
|
|
32
|
+
"research",
|
|
33
|
+
"paper-search",
|
|
34
|
+
"literature-search",
|
|
35
|
+
"biomedical",
|
|
36
|
+
"pubmed",
|
|
37
|
+
"arxiv"
|
|
32
38
|
],
|
|
33
39
|
"repository": {
|
|
34
40
|
"type": "git",
|