Skip to content

Ignore URL-mode discovery options on Alexandria scrape calls instead of rejecting them - #440

Merged
rakshith48 merged 1 commit into
mainfrom
scrape-ignore-url-options-in-alexandria
Sep 25, 2026
Merged

rakshith48 merged 1 commit into
mainfrom
scrape-ignore-url-options-in-alexandria

Conversation

@rakshith48

@rakshith48 rakshith48 commented Sep 24, 2026 •

Copy link
Copy Markdown
Contributor

Problem

firecrawl_scrape in Alexandria mode accepts only alexandria, requestId and timeout; any other key fails validation:

MCP error -32602: Tool 'firecrawl_scrape' parameter validation failed: root: alexandria cannot be combined with url or other scrape options

Codex hits this with toolDetail. On firecrawl_search, toolDetail: "full" asks for full contracts, so Codex passes the same parameter when it executes the provider it found. On scrape, toolDetail is a URL-mode domain-discovery option whose description did not say so. Across the AX EXP-058 runs (firecrawl/agent-experience):

run Codex Alexandria executions rejected for toolDetail
prod before #431 120 8
#431 build 180 6
hosted smoke after #431 deployed 15 4

Every one was followed by a retry without toolDetail that succeeded, so each cost one wasted call and round trip. Claude did not do this.

Fix

  • The Alexandria-mode refinement also accepts toolDetail and domainTools. The execute path never read them in that mode (it forwards only alexandria, requestId and timeout), so they are ignored rather than rejected. Real scrape options (formats, url, …) are still rejected with alexandria.
  • Both parameter descriptions now start "URL mode only" and end "Ignored with alexandria."
  • Version 3.25.5, so npm also picks up Declare an outputSchema on every MCP tool #431.

Test

New case in tests/mcp-alexandria-scrape.test.mjs: an Alexandria call with toolDetail: "full" and domainTools: true succeeds and the /v2/scrape body carries only alexandria and origin. The existing case that rejects formats alongside alexandria still passes. Suite 122/122.

🤖 Generated with Claude Code


Summary by cubic

Stops firecrawl_scrape from rejecting toolDetail and domainTools on Alexandria calls; it now accepts and ignores them. Agents were carrying toolDetail over from firecrawl_search on 18 of 315 executions, each failing validation and wasting a call before a retry without it.

Real scrape options (url, formats, …) are still rejected with alexandria. Both option descriptions now say they are URL mode only and ignored with alexandria. Version bumps to 3.25.5 and a new test confirms an Alexandria call with both options succeeds and forwards only alexandria and origin.

Written for commit aaf976f. Summary will update on new commits.

Review in cubic

…of rejecting them

firecrawl_scrape in Alexandria mode accepted only alexandria, requestId and timeout,
and failed validation with 'alexandria cannot be combined with url or other scrape
options' for anything else. Codex carries toolDetail over from firecrawl_search, where
it selects contract detail, and sent it on 18 of 315 Alexandria executions across the
AX EXP-058 runs (8/120 on prod before PR 431, 6/180 on PR 431, 4/15 on the hosted
smoke after deploy), each a wasted call before a retry without it.

toolDetail and domainTools are URL-mode discovery options the Alexandria path never
reads, so accept and ignore them there; both descriptions now say so. Version 3.25.5
so npm picks up this and PR 431.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 3 files

Confidence score: 5/5

  • Automated review surfaced no issues in the provided summaries.
  • No files require special attention.

Auto-approved: Fixes Alexandria scrape validation rejecting agent-carried URL-mode options; unknown options are now ignored instead of failing with a wasteful retry. Test pins the corrected behavior and confirms options aren't forwarded.

Re-trigger cubic

@rakshith48
rakshith48 merged commit ec0b1e1 into main Sep 25, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant