firecrawl-mcp 3.23.1 → 3.23.3

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 CHANGED
@@ -15,6 +15,7 @@ A Model Context Protocol (MCP) server that brings [Firecrawl](https://github.com
15
15
  ## Features
16
16
 
17
17
  - Search the web and get full page content
18
+ - Search an index built for coding agents: GitHub issues, merged pull requests, READMEs, and docs
18
19
  - Scrape any URL into clean, structured data
19
20
  - Interact with pages — click, navigate, and operate
20
21
  - Deep research with autonomous agent
@@ -275,6 +276,7 @@ Use this guide to select the right tool for your task:
275
276
  - **If you have multiple known URLs:** call **scrape** for each URL. If you specifically need one bulk API operation, use the Firecrawl API batch endpoint outside MCP.
276
277
  - **If you need to discover URLs on a site:** use **map**
277
278
  - **If you want to search the web for info:** use **search**
279
+ - **If you have a programming question** (a library, an API contract, an error message, a known bug): use **developer search**
278
280
  - **If you need complex research across multiple unknown sources:** use **agent**
279
281
  - **If you want to analyze a whole site or section:** use **crawl** (with limits!)
280
282
  - **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
@@ -290,6 +292,7 @@ Use this guide to select the right tool for your task:
290
292
  | parse | Files and hosted upload refs | markdown, JSON, or document output |
291
293
  | extract | Structured extraction from URLs | JSON structured data |
292
294
  | search | Web search for info | results[] |
295
+ | developer | Programming questions over developer sources | results[] with passages |
293
296
  | agent | Complex multi-source research | JSON (structured data) |
294
297
  | monitor | Recurring page checks | monitor/check metadata and diffs |
295
298
  | research | Paper and GitHub repository research | research results and repo matches |
@@ -937,6 +940,33 @@ Pass `body` when you need crawl targets, JSON change tracking, custom retention,
937
940
  - `firecrawl_monitor_checks`: list checks, optionally filtered by status.
938
941
  - `firecrawl_monitor_check`: get page-level results, including `diff`, `snapshot`, `judgment.meaningful`, and `judgment.meaningfulChanges`.
939
942
 
943
+ ### 14. Developer Search Tool (`firecrawl_developer_search`)
944
+
945
+ Search an index built for coding agents. The index covers GitHub issues, merged pull requests, repository READMEs, and curated documentation sites.
946
+
947
+ **Best for:** A programming question — code behaviour, a library or framework, an API contract, an error message, or a known bug.
948
+
949
+ **Arguments:**
950
+
951
+ ```json
952
+ {
953
+ "name": "firecrawl_developer_search",
954
+ "arguments": {
955
+ "query": "how do I configure retries",
956
+ "k": 10,
957
+ "skills": "only"
958
+ }
959
+ }
960
+ ```
961
+
962
+ - `query` (required): the developer question or search phrase.
963
+ - `k`: number of ranked results. The default is 10 and the maximum is 100.
964
+ - `skills`: set to `"only"` to search agent-skill files alone.
965
+
966
+ **Returns:** Ranked results. Each result carries an ID, a source type (`issue`, `pull_request`, `readme`, or `doc`), a URL, a title, and the matched passages in markdown.
967
+
968
+ `firecrawl_search` with `categories: ["developer"]` searches the same index beside the web results. Use this tool instead when you want the passages and no web results. The search-only endpoint does not expose this tool; it keeps its fixed set of six tools, and `firecrawl_search` reaches the developer index there.
969
+
940
970
  ## Logging System
941
971
 
942
972
  The server includes comprehensive logging:
package/dist/index.js CHANGED
@@ -12,7 +12,7 @@ import { z as z4 } from "zod";
12
12
 
13
13
  // src/developer.ts
14
14
  import { z } from "zod";
15
- var BASE = "/v2/developer/search";
15
+ var BASE = "/v2/search/developer";
16
16
  var ORIGIN_HEADERS = { "X-Origin": "mcp-fastmcp" };
17
17
  var MAX_PASSAGE_CHARS = 1200;
18
18
  function fmtDeveloper(results) {
@@ -39,7 +39,7 @@ function registerDeveloperTools(server2, getClient2) {
39
39
  // Query-only; no writes to external sources or the developer index.
40
40
  },
41
41
  description: `
42
- For a developer question \u2014 code behaviour, a library or framework, an API contract, an error message, or a known bug \u2014 search an index built for coding agents. The index covers GitHub issues, merged pull requests, repository READMEs, and curated documentation sites.
42
+ For a developer question \u2014 code behaviour, a library or framework, an API contract, an error message, or a known bug \u2014 search an index built for coding agents. The index covers GitHub issues, merged pull requests, repository READMEs, and curated documentation sites. Set skills to "only" to limit the search to agent-skill files.
43
43
 
44
44
  Returns ranked results with an ID, source type, URL, title, and the matched passages in markdown.
45
45
  `,
@@ -47,13 +47,15 @@ Returns ranked results with an ID, source type, URL, title, and the matched pass
47
47
  query: z.string().min(1).describe(
48
48
  "Natural-language developer question or search phrase, including the library, error message, or API involved when relevant."
49
49
  ),
50
- k: z.number().int().min(1).max(100).optional().describe("Number of ranked results to return (default 20).")
50
+ k: z.number().int().min(1).max(100).optional().describe("Number of ranked results to return (default 10)."),
51
+ skills: z.enum(["only"]).optional().describe('Set to "only" to search only agent-skill files.')
51
52
  }),
52
53
  execute: async (args2, { session }) => {
53
- const { query, k } = args2;
54
+ const { query, k, skills } = args2;
54
55
  const params = new URLSearchParams();
55
56
  params.append("query", query);
56
57
  if (k != null) params.append("k", String(k));
58
+ if (skills != null) params.append("skills", skills);
57
59
  const client = getClient2(session);
58
60
  const res = await client.http.get(
59
61
  `${BASE}?${params.toString()}`,
@@ -1281,10 +1283,9 @@ var openAiAppsChallengeToken = normalizeHeader(
1281
1283
  );
1282
1284
  var FULL_PROFILE_INSTRUCTIONS = `Firecrawl provides web search, page retrieval, site URL discovery, multi-page collection, structured extraction, monitoring, and asynchronous research. Match the requested operation to the tool boundary: firecrawl_scrape retrieves one supplied page, 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.`;
1283
1285
  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 extraction, monitoring, and asynchronous research. Match the requested operation to the tool boundary: firecrawl_scrape retrieves one supplied page, 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.`;
1284
- 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, call firecrawl_developer_search \u2014 or firecrawl_search with categories: ["developer"] \u2014 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.`;
1286
+ 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.`;
1285
1287
  var SEARCH_PROFILE_TOOLS = /* @__PURE__ */ new Set([
1286
1288
  "firecrawl_search",
1287
- "firecrawl_developer_search",
1288
1289
  "firecrawl_research_search_papers",
1289
1290
  "firecrawl_research_inspect_paper",
1290
1291
  "firecrawl_research_related_papers",
@@ -2988,7 +2989,6 @@ if (searchProfileEnabled) {
2988
2989
  })
2989
2990
  };
2990
2991
  registerResearchTools(searchRegistrar, getClient);
2991
- registerDeveloperTools(searchRegistrar, getClient);
2992
2992
  registerMarketplaceSearchTool(searchRegistrar, getClient);
2993
2993
  try {
2994
2994
  await searchServer.start({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "firecrawl-mcp",
3
- "version": "3.23.1",
3
+ "version": "3.23.3",
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",