fix(annotations): align firecrawl_search readOnlyHint with scrapeOptions.actions - #369
Open
syf2211 wants to merge 1 commit into
Open
fix(annotations): align firecrawl_search readOnlyHint with scrapeOptions.actions#369syf2211 wants to merge 1 commit into
syf2211 wants to merge 1 commit into
Conversation
…s allowed The full-surface firecrawl_search tool accepts scrapeOptions.actions (click, write, executeJavascript) but advertised readOnlyHint: true, which lets MCP clients skip confirmation prompts incorrectly. Keep the search-profile variant at readOnlyHint: true since it rejects scrapeOptions entirely. Fixes firecrawl#311
There was a problem hiding this comment.
No issues found across 3 files
Auto-approved: Tightly scoped annotation fix: readOnlyHint now reflects that firecrawl_search accepts scrapeOptions.actions, with regression tests pinning both variants. No schema or behavior change; simple metadata correction with no human-owned tradeoff.
Re-trigger cubic
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.
Summary
Set
readOnlyHint: falseon the full-surfacefirecrawl_searchtool because it acceptsscrapeOptions.actions(click, write, executeJavascript) that can mutate pages visited during search result scraping.Motivation
Fixes #311
MCP clients that honor
readOnlyHint: truemay skip confirmation prompts for tools that can drive browser interactions. The fullfirecrawl_searchschema includesscrapeOptions.actions, but the annotation claimed read-only — inconsistent withfirecrawl_scrapeand other tools that expose the same action surface.Changes
readOnlyHintfromtruetofalseon the mainfirecrawl_searchregistration insrc/index.tsfirecrawl_searchvariant atreadOnlyHint: true(it rejectsscrapeOptionsvia a strict schema)tests/mcp-smoke.test.mjsandtests/mcp-search-profile.test.mjsTests
npm run build node --test tests/mcp-smoke.test.mjs -t "local keyless stdio" node --test tests/mcp-search-profile.test.mjslocal keyless stdio omits feedback tools...— passes, asserts full-surfacereadOnlyHint === falsemcp-search-profiletests — pass, including search-profilereadOnlyHint === trueNote: three pre-existing failures in
mcp-smoke.test.mjson this environment (keyless tool filtering / deprecated extract registration) are unrelated to this change.Notes
firecrawl_scrapeby usingreadOnlyHint: SAFE_MODEwhen cloud safe mode stripsactionsfrom the schemaSummary by cubic
Aligns the
firecrawl_searchannotation with its behavior by setting readOnlyHint to false when the tool acceptsscrapeOptions.actions. Previously it claimed read-only, which let MCP clients skip confirmation for actions that can mutate visited pages.src/index.tsto set readOnlyHint: false for the full-surfacefirecrawl_search. Keep the search-profile variant at readOnlyHint: true because its schema rejectsscrapeOptions.tests/mcp-smoke.test.mjs(expects false) andtests/mcp-search-profile.test.mjs(expects true) to prevent regressions.Written for commit 9e53c85. Summary will update on new commits.