From 5ac34e45f998bc4bd6cbea8946044c0ec0594871 Mon Sep 17 00:00:00 2001 From: Karan Lokchandani Date: Wed, 5 Aug 2026 00:20:22 +0530 Subject: [PATCH] chore(developer): call /v2/search/developer and document the tool The developer tool called /v2/developer/search, the path that may be withdrawn. Call /v2/search/developer, the public path. The API returns 10 results by default, not 20. Correct the parameter description. Developer search leaves beta, so document the tool in the README beside the other tools and drop the experimental note. Bump to 3.23.3 in package.json and both server.json fields. --- README.md | 30 ++++++++++++++++++++++++++++++ package.json | 2 +- server.json | 4 ++-- src/developer.ts | 9 +++++---- 4 files changed, 38 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 752af3c..24f10c8 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,7 @@ A Model Context Protocol (MCP) server that brings [Firecrawl](https://github.com ## Features - Search the web and get full page content +- Search an index built for coding agents: GitHub issues, merged pull requests, READMEs, and docs - Scrape any URL into clean, structured data - Interact with pages — click, navigate, and operate - Deep research with autonomous agent @@ -275,6 +276,7 @@ Use this guide to select the right tool for your task: - **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. - **If you need to discover URLs on a site:** use **map** - **If you want to search the web for info:** use **search** +- **If you have a programming question** (a library, an API contract, an error message, a known bug): use **developer search** - **If you need complex research across multiple unknown sources:** use **agent** - **If you want to analyze a whole site or section:** use **crawl** (with limits!) - **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: | parse | Files and hosted upload refs | markdown, JSON, or document output | | extract | Structured extraction from URLs | JSON structured data | | search | Web search for info | results[] | +| developer | Programming questions over developer sources | results[] with passages | | agent | Complex multi-source research | JSON (structured data) | | monitor | Recurring page checks | monitor/check metadata and diffs | | 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, - `firecrawl_monitor_checks`: list checks, optionally filtered by status. - `firecrawl_monitor_check`: get page-level results, including `diff`, `snapshot`, `judgment.meaningful`, and `judgment.meaningfulChanges`. +### 14. Developer Search Tool (`firecrawl_developer_search`) + +Search an index built for coding agents. The index covers GitHub issues, merged pull requests, repository READMEs, and curated documentation sites. + +**Best for:** A programming question — code behaviour, a library or framework, an API contract, an error message, or a known bug. + +**Arguments:** + +```json +{ + "name": "firecrawl_developer_search", + "arguments": { + "query": "how do I configure retries", + "k": 10, + "skills": "only" + } +} +``` + +- `query` (required): the developer question or search phrase. +- `k`: number of ranked results. The default is 10 and the maximum is 100. +- `skills`: set to `"only"` to search agent-skill files alone. + +**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. + +`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. + ## Logging System The server includes comprehensive logging: diff --git a/package.json b/package.json index 1d727eb..e1335ad 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "firecrawl-mcp", - "version": "3.23.2", + "version": "3.23.3", "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.", "type": "module", "mcpName": "io.github.firecrawl/firecrawl-mcp-server", diff --git a/server.json b/server.json index 2fb1c51..a610b91 100644 --- a/server.json +++ b/server.json @@ -3,7 +3,7 @@ "name": "io.github.firecrawl/firecrawl-mcp-server", "title": "Firecrawl MCP Server", "description": "MCP server for Firecrawl — search, scrape, and interact with the web.", - "version": "3.23.2", + "version": "3.23.3", "repository": { "url": "https://github.com/firecrawl/firecrawl-mcp-server.git", "source": "github" @@ -12,7 +12,7 @@ { "registryType": "npm", "identifier": "firecrawl-mcp", - "version": "3.23.2", + "version": "3.23.3", "transport": { "type": "stdio" }, diff --git a/src/developer.ts b/src/developer.ts index 8330644..31bcabe 100644 --- a/src/developer.ts +++ b/src/developer.ts @@ -1,7 +1,7 @@ /** - * Firecrawl Developer search tool (experimental). + * Firecrawl Developer search tool. * - * Thin MCP wrapper over the `/v2/developer/search` endpoint (GitHub issues, + * Thin MCP wrapper over the `/v2/search/developer` endpoint (GitHub issues, * merged pull requests, repository READMEs, and curated documentation sites). * * The installed `@mendable/firecrawl-js` predates a `developer` client, so we @@ -32,7 +32,8 @@ type ClientLike = { // the callback loosely and narrow to `ClientLike` at each call site. type GetClient = (session?: SessionData) => unknown; -const BASE = '/v2/developer/search'; +// The other mount, /v2/developer/search, may be withdrawn. +const BASE = '/v2/search/developer'; const ORIGIN_HEADERS = { 'X-Origin': 'mcp-fastmcp' }; // Cap the matched passages per result so a page of hits stays within the MCP @@ -104,7 +105,7 @@ Returns ranked results with an ID, source type, URL, title, and the matched pass .min(1) .max(100) .optional() - .describe('Number of ranked results to return (default 20).'), + .describe('Number of ranked results to return (default 10).'), skills: z .enum(['only']) .optional()