{"slug":"firecrawl-research-index","title":"firecrawl-research-index","summary":"Find the papers that answer a research query in Firecrawl's research paper index — a corpus of paper abstracts whose largest share is biomedical and life-science literature (PubMed, bioRxiv, medRxiv), alongside arXiv preprints in CS, physics, and math — using semantic search, sem","platform":"Claude","tags":[],"authorName":"LLM Mart","authorSlug":"llm-mart","score":0,"source":"github","price":null,"verified":false,"createdAt":"2026-10-17T09:07:08.550195Z","repo":{"url":"https://github.com/firecrawl/skills","stars":126,"forks":36,"license":"ISC","updatedAt":"2026-10-17T00:34:48Z"},"bodyHtml":"<hr>\n<h2>name: firecrawl-research-index\ndescription: Find the papers that answer a research query in Firecrawl's research paper index — a corpus of paper abstracts whose largest share is biomedical and life-science literature (PubMed, bioRxiv, medRxiv), alongside arXiv preprints in CS, physics, and math — using semantic search, semantic and structural expansion, and in-body verification. Use this skill for literature-finding and paper-retrieval tasks of any kind, including clinical, biomedical, drug, gene, disease, and other life-science questions, whether the answer is a single paper or a full multi-paper set. The index is reached only through the <code>firecrawl_research_*</code> MCP tools or the <code>firecrawl research</code> CLI subcommands. Calling <code>firecrawl_search</code> with its <code>categories</code> option set to <code>[\"research\"]</code> is a different feature — it filters ordinary web search to research-affiliated websites (the list includes PubMed, bioRxiv, medRxiv, arXiv, and publisher sites) and returns page results from them, without querying the paper records in this index.</h2>\n<h1>Firecrawl Research Index</h1>\n<p>Find the research papers that answer a research query. Some questions have a single answer; many have several — and when in doubt, lean toward returning the fuller relevant set (most relevant first) rather than narrowing to one. A reader is better served seeing the neighboring methods and papers than having them silently dropped.</p>\n<h2>What is in the index</h2>\n<p>Paper abstracts, with full text reachable per paper. The largest share of the corpus is <strong>biomedical and life-science</strong> literature — <strong>PubMed</strong> journal articles plus <strong>bioRxiv</strong> and <strong>medRxiv</strong> preprints — so clinical, drug, gene, disease, epidemiology, and public-health questions are in scope. <strong>arXiv</strong> preprints cover computer science, physics, and mathematics. Coverage outside those sources is thinner: a paper that exists only behind a publisher paywall or in a niche venue may not be indexed, and the general web tools below are the fallback when it isn't.</p>\n<p>There is <strong>no fixed recipe</strong>. Read the query, decide what kind it is, and choose the approach below. Some queries need a single search; others need heavy structural/semantic expansion. Don't run machinery a query doesn't call for.</p>\n<h2>The tools, and what each is uniquely good at</h2>\n<ul>\n<li><p>MCP: <strong><code>firecrawl_research_search_papers(query, k?)</code></strong>\nCLI: <strong><code>firecrawl research search-papers &lt;query&gt; [--k &lt;number&gt;]</code></strong>\nSemantic (HyDE) search over <strong>abstracts</strong>. The natural first move for almost any query.\nIf results look thin or all-alike, re-run with a different framing (sibling domain, rival method, dataset/benchmark name) rather than giving up.</p>\n</li>\n<li><p>MCP: <strong><code>firecrawl_research_related_papers(seed_ids, intent, mode?, k?)</code></strong>\nCLI: <strong><code>firecrawl research related-papers &lt;seedIds...&gt; --intent &lt;intent&gt; [--mode &lt;similar|citers|references&gt;] [--k &lt;number&gt;]</code></strong>\nSemantic and structural expansion, ranked to your <code>intent</code>.\nThis reaches papers semantic search <em>cannot</em>, and it's how you turn one good hit into the rest of a set.\n<code>mode=similar</code> → niche siblings; <code>citers</code> → who uses/builds on the seeds; <code>references</code> → what they build on / compare against.</p>\n</li>\n<li><p>MCP: <strong><code>firecrawl_research_inspect_paper(id)</code></strong>\nCLI: <strong><code>firecrawl research inspect-paper &lt;id&gt;</code></strong>\nCanonical metadata for <strong>one</strong> paper: title, abstract, authors, categories, source ids, and dates.\nUse it after <code>search_papers</code> or <code>related_papers</code> when you need the complete citation/metadata for a candidate, or when you have an id from elsewhere and need to confirm what paper it resolves to.\nThis does <strong>not</strong> read the paper body; use <code>read_paper</code> for specific full-text questions.</p>\n</li>\n<li><p>MCP: <strong><code>firecrawl_research_read_paper(id, question)</code></strong>\nCLI: <strong><code>firecrawl research read-paper &lt;id&gt; --question &lt;question&gt;</code></strong>\nIn-body passages of <strong>one</strong> paper, to verify a load-bearing constraint (a method actually used, a score actually reported, an affiliation, what a paper compares to).\nUse it to settle a specific doubt, not on everything.</p>\n</li>\n<li><p>MCP: <strong><code>firecrawl_search(query, categories: [\"research\"])</code></strong>\nCLI: <strong><code>firecrawl search &lt;query&gt; --categories research</code></strong>\n<strong>Not this index.</strong> This is a <em>website</em> filter: it restricts a normal web search to a short list of research-affiliated domains — the list does include <code>pubmed.ncbi.nlm.nih.gov</code>, <code>biorxiv.org</code>, <code>medrxiv.org</code>, and <code>arxiv.org</code> alongside publisher sites — and returns page results in a <code>research</code> group beside <code>web</code>, each with <code>url</code>, <code>title</code>, <code>description</code> (the matched passage), <code>position</code>, and <code>category: \"research\"</code> — web results carry no <code>category</code>, so that is the field to key on when merging.\nSo it reaches those sites' <strong>web pages</strong>; what it does not do is query their <strong>paper records</strong> in this index — no semantic search over abstracts, no citation-graph or related-paper expansion, no canonical paper metadata, and no in-body passages. The results are ordinary web results.\nUse it when you are <strong>already</strong> running a web search and want those sites weighed in the same call. For anything that is actually a paper-finding task, use <code>firecrawl_research_search_papers</code> and its siblings above.</p>\n</li>\n<li><p>MCP: <strong><code>firecrawl_search(query)</code> / <code>firecrawl_scrape(url)</code></strong>\nCLI: <strong><code>firecrawl search &lt;query&gt;</code> / <code>firecrawl scrape &lt;url&gt;</code></strong>\nGeneral <strong>web</strong> search and page fetch, for facts that don't live in paper abstracts: benchmark <strong>leaderboards</strong>, rankings, \"who scores best / is largest / is most used.\"\nFind the ranking on the web, then map the top entries back to papers with <code>search_papers</code>.\nReach for these only when the corpus can't answer the question on its own.</p>\n</li>\n</ul>\n<h2>Match the approach to the query</h2>\n<ul>\n<li><strong>Single <em>named</em> paper</strong> (\"the Qwen3 report\") → one <code>search_papers</code>, done. This is the only case that truly wants exactly one paper.</li>\n<li><strong>Paper by description / by method or technique</strong> (\"the paper that introduced X\", \"training-free N-gram detection of AI text\") → find the best match, then assume there's a <em>family</em>: expand with <code>related_papers</code> and <strong>include the closely-related methods/papers too</strong>. Even when one paper is the exact literal match, surface and keep its neighbors — don't narrow to the single best hit and reason the rest out. Only treat it as one-answer if the query names a specific paper.</li>\n<li><strong>Enumeration / method-family</strong> (\"papers that do X\", \"alternatives to Adam\", \"benchmarks for Y\") → the answer is a <em>set</em>, and this is where <code>related_papers</code> earns its keep: expand several strong anchors with <code>mode=similar</code>, re-seed from new strong hits. One search is never enough here.</li>\n<li><strong>Exhibiting</strong> (\"papers that <em>use</em> / exhibit property P\") → the relevant papers apply P but their abstracts may not describe it. Go from P's defining paper outward via <code>citers</code>/<code>references</code>, and use <code>read_paper</code> to confirm a candidate actually uses P.</li>\n<li><strong>Superlative / leaderboard</strong> (\"best on benchmark X\", \"largest\", \"most popular\") → the ranking lives on <strong>leaderboards / the web</strong>, not in any single abstract. Use <code>firecrawl_search</code> / <code>firecrawl_scrape</code> to find the benchmark's leaderboard or rankings, read off the top models/papers, then <code>search_papers</code> each to get its paper. As a fallback, search the benchmark and <code>read_paper</code> candidates for reported numbers. The hardest kind — cast wide.</li>\n<li><strong>Org / author filtered</strong> (\"from &lt;org&gt;\", \"by &lt;author&gt;\") → topical match isn't enough; verify the affiliation/authorship (metadata or <code>read_paper</code>) before keeping a paper.</li>\n<li><strong>Compare-against</strong> (\"what does paper X benchmark against / build on\") → the answer is <em>inside</em> paper X: <code>read_paper(X, ...)</code> or <code>related_papers([X], ..., mode=\"references\")</code>.</li>\n</ul>\n<h2>Principles</h2>\n<ul>\n<li><strong>Two different features share the word \"research.\"</strong> The paper index is <code>firecrawl_research_*</code> / <code>firecrawl research</code>. The <code>categories: [\"research\"]</code> option on <code>firecrawl_search</code> is a website filter — it does point web search at PubMed, bioRxiv, medRxiv, arXiv, and publisher sites, but what comes back is their web pages, not paper records. If a task is about finding papers, the tools in this skill are the ones that read the corpus; reaching for <code>categories: [\"research\"]</code> will quietly answer a different question.</li>\n<li><strong>Query shape and subject field are separate.</strong> A clinical-trial question and a machine-learning question take the same shapes above; what differs is only which source the hits come from. Don't send a biomedical or life-science query to the open web on the assumption the corpus is arXiv-only — PubMed, bioRxiv, and medRxiv are the largest part of what <code>search_papers</code> reads.</li>\n<li><strong>When in doubt, include.</strong> For any topic / method / comparison question, return the relevant <em>family</em>, not just the single best match — err toward keeping a plausibly-relevant paper rather than dropping it. The neighboring methods are part of a good answer; don't reason close work out just because one paper is the most exact match.</li>\n<li><strong>Follow the literature, and keep what you find.</strong> The seminal source, the competing methods, the close neighbors are usually a hop away — use <code>related_papers</code>, and <em>include</em> them, not just the first hit. Stopping at one good result is the most common way to leave the reader with half an answer.</li>\n<li><strong>Verify to exclude, not to gatekeep.</strong> Use <code>read_paper</code> to rule a paper <em>out</em> when a hard constraint clearly fails (wrong org/author, doesn't actually report the score). When a paper is plausibly relevant, lean toward keeping it rather than demanding proof.</li>\n<li><strong>Only drop the clearly off-topic.</strong> Don't pad with papers you're confident are unrelated — but that's a high bar; most plausibly-relevant work should make the cut.</li>\n</ul>\n<h2>See also</h2>\n<ul>\n<li><a href=\"https://github.com/firecrawl/skills/tree/main/skills/build/firecrawl-build-search\">firecrawl-build-search</a> — building the paper index into an app instead of querying it here</li>\n</ul>\n","files":[{"path":"SKILL.md","sizeBytes":9821,"isText":true}],"reviewScore":null,"reviewSummary":null,"trust":{"provenance":"trusted-source-unreviewed","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow.","bodySource":null},"bodyLocked":false,"purchaseUrl":null,"sourceUrl":null,"report":{"provenance":"trusted-source-unreviewed","screen":{"ran":true,"outcome":"clean","suspicious":0,"notes":0,"hiddenCharacters":false},"virusScan":{"engine":"clamav","status":"clean","scannedAt":"2026-10-17T09:07:30.532505Z","sha256":"9A1940EF4A5DD922EAE4E9AC28D3563320FB10CF61F61CD3B0DD74726C58C098","sizeBytes":4069},"review":null,"source":{"repositoryUrl":"https://github.com/firecrawl/skills","path":"skills/core/firecrawl-research-index","license":"ISC","commit":"85071566adaf3f47fdec0e00760fa355bb469d71","subtreeSha":"C16715E38CA20FBDD0F16F77D5BF5D3F592256995B1235651C372B2AC9BE82BF","lastSyncedAt":"2026-10-17T09:07:05.843473Z"},"reviewedAt":"2026-10-17T09:08:23.145754Z","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow."},"install":[{"target":"skills-cli","command":"npx skills add https://github.com/firecrawl/skills/tree/main/skills/core/firecrawl-research-index"},{"target":"claude-code","command":"claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install firecrawl-skills@llmmart"},{"target":"git","command":"git clone https://github.com/firecrawl/skills.git"}]}