Skip to content

Commit 5ac34e4

Browse files
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.
1 parent 7214a53 commit 5ac34e4

4 files changed

Lines changed: 38 additions & 7 deletions

File tree

README.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ A Model Context Protocol (MCP) server that brings [Firecrawl](https://github.com
1515
## Features
1616

1717
- Search the web and get full page content
18+
- Search an index built for coding agents: GitHub issues, merged pull requests, READMEs, and docs
1819
- Scrape any URL into clean, structured data
1920
- Interact with pages — click, navigate, and operate
2021
- Deep research with autonomous agent
@@ -275,6 +276,7 @@ Use this guide to select the right tool for your task:
275276
- **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.
276277
- **If you need to discover URLs on a site:** use **map**
277278
- **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**
278280
- **If you need complex research across multiple unknown sources:** use **agent**
279281
- **If you want to analyze a whole site or section:** use **crawl** (with limits!)
280282
- **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:
290292
| parse | Files and hosted upload refs | markdown, JSON, or document output |
291293
| extract | Structured extraction from URLs | JSON structured data |
292294
| search | Web search for info | results[] |
295+
| developer | Programming questions over developer sources | results[] with passages |
293296
| agent | Complex multi-source research | JSON (structured data) |
294297
| monitor | Recurring page checks | monitor/check metadata and diffs |
295298
| 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,
937940
- `firecrawl_monitor_checks`: list checks, optionally filtered by status.
938941
- `firecrawl_monitor_check`: get page-level results, including `diff`, `snapshot`, `judgment.meaningful`, and `judgment.meaningfulChanges`.
939942

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+
940970
## Logging System
941971

942972
The server includes comprehensive logging:

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "firecrawl-mcp",
3-
"version": "3.23.2",
3+
"version": "3.23.3",
44
"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.",
55
"type": "module",
66
"mcpName": "io.github.firecrawl/firecrawl-mcp-server",

server.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"name": "io.github.firecrawl/firecrawl-mcp-server",
44
"title": "Firecrawl MCP Server",
55
"description": "MCP server for Firecrawl — search, scrape, and interact with the web.",
6-
"version": "3.23.2",
6+
"version": "3.23.3",
77
"repository": {
88
"url": "https://github.com/firecrawl/firecrawl-mcp-server.git",
99
"source": "github"
@@ -12,7 +12,7 @@
1212
{
1313
"registryType": "npm",
1414
"identifier": "firecrawl-mcp",
15-
"version": "3.23.2",
15+
"version": "3.23.3",
1616
"transport": {
1717
"type": "stdio"
1818
},

src/developer.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/**
2-
* Firecrawl Developer search tool (experimental).
2+
* Firecrawl Developer search tool.
33
*
4-
* Thin MCP wrapper over the `/v2/developer/search` endpoint (GitHub issues,
4+
* Thin MCP wrapper over the `/v2/search/developer` endpoint (GitHub issues,
55
* merged pull requests, repository READMEs, and curated documentation sites).
66
*
77
* The installed `@mendable/firecrawl-js` predates a `developer` client, so we
@@ -32,7 +32,8 @@ type ClientLike = {
3232
// the callback loosely and narrow to `ClientLike` at each call site.
3333
type GetClient = (session?: SessionData) => unknown;
3434

35-
const BASE = '/v2/developer/search';
35+
// The other mount, /v2/developer/search, may be withdrawn.
36+
const BASE = '/v2/search/developer';
3637
const ORIGIN_HEADERS = { 'X-Origin': 'mcp-fastmcp' };
3738

3839
// 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
104105
.min(1)
105106
.max(100)
106107
.optional()
107-
.describe('Number of ranked results to return (default 20).'),
108+
.describe('Number of ranked results to return (default 10).'),
108109
skills: z
109110
.enum(['only'])
110111
.optional()

0 commit comments

Comments
 (0)