feat(core): add firecrawl devsearch tool - #49176
Open
erikengervall wants to merge 1 commit into
Open
erikengervall wants to merge 1 commit into
erikengervall wants to merge 1 commit into
Conversation
Adds a connection-gated `devsearch` tool backed by Firecrawl's `firecrawl_developer_search` MCP tool. It searches an index of repositories, GitHub issues, merged pull requests, READMEs, and curated documentation and returns the matched passages. It is a separate tool rather than a web search provider, so it never replaces `websearch` or joins the provider pool. Sessions only see it once the Firecrawl integration has an active connection (saved key or FIRECRAWL_API_KEY). The Firecrawl MCP request code is shared with the existing web search provider through `WebSearchFirecrawl.call`. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
6 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Issue for this PR
None. Follow-up to #41042 (Firecrawl web search provider). Replaces #46534, which added the developer index as a second web search provider; review feedback asked for a separate, connection-gated tool instead.
Type of change
What does this PR do?
Adds a
devsearchtool backed by Firecrawl'sfirecrawl_developer_searchMCP tool. It searches an index built for coding agents (repositories, GitHub issues, merged pull requests, READMEs, curated documentation) and returns the matched passages, so the model gets the relevant docs excerpt or issue thread rather than a page summary.Shape, per the feedback on #46534:
websearchand takes no part in provider selection or the random pool.context,compactionandgeneratehooks drop it until the Firecrawl integration has an active connection (a saved key via/connect, orFIRECRAWL_API_KEY). If a stale tool list still calls it, it fails with a clear "connect Firecrawl" message instead of sending a keyless request.WebSearchFirecrawl.call, which both the web search provider and the new tool use.The rest wires
devsearchthrough the same surfaceswebsearchuses: session-ui renderer and error label, TUI inline display and permission title, ACP permission title, thepermission.devsearchconfig key, the Explore agent allow rule, and the tools and permissions docs.How did you verify your code works?
bun run typecheckinpackages/core(including tests),packages/tui,packages/session-ui,packages/ui,packages/clibun run test test/tool-devsearch.test.ts test/tool-websearch.test.ts test/plugin/websearch.test.ts test/tool-webfetch.test.ts test/location-layer.test.tsinpackages/corebun testfor the TUI permission and tool-display tests and the session-ui unit testsbun run lint, plus Prettier on the changed filesfirecrawl_developer_searchis registered on the authenticated/v2/mcpsurface and only hidden from keyless sessions, so the gated tool reaches it through the same endpoint the provider already usesScreenshots / recordings
No UI change beyond the new "Developer Search" tool row in the TUI and session UI.
Checklist
🤖 Generated with Claude Code