Skip to content

Scope keyless-unavailable tool pointers to authenticated sessions (stacked on #436) - #437

Merged
rakshith48 merged 2 commits into
mainfrom
keyless-description-scope
Sep 23, 2026
Merged

rakshith48 merged 2 commits into
mainfrom
keyless-description-scope

Conversation

@rakshith48

@rakshith48 rakshith48 commented Sep 23, 2026 •

Copy link
Copy Markdown
Contributor

Stacked on #436.

Problem

Keyless sessions (hosted /v2/mcp without auth, and stdio without a key) list only firecrawl_search, firecrawl_scrape and firecrawl_parse. FastMCP serves one static description per tool, so keyless agents read the same search and scrape copy as authenticated ones, which tells them to:

  • call firecrawl_feedback after an Alexandria task (search and scrape),
  • read contracts with firecrawl_find_tools (search),
  • use Alexandria mode (scrape),
  • reach for firecrawl_map / firecrawl_crawl (scrape).

None of those tools is listed for them. On main the feedback sentences start at characters 4,589 (search) and 3,306 (scrape), past Claude Code's 2,048-character cut, so only Codex saw them. #436 moves them to 1,146 and 1,399, so keyless Claude Code agents would start seeing them too.

Fix

  • Search: "On an authenticated session, tool matches are discovery … or read its full contract with firecrawl_find_tools; after an Alexandria task, call firecrawl_feedback …" plus "Keyless sessions return web results only."
  • Scrape: "Alexandria mode, on an authenticated session with Alexandria access: … and its results include a feedbackTool pointer …", and "on an authenticated session, firecrawl_map lists a site's URLs and firecrawl_crawl collects a set of pages."
  • The scrape-first pointer and the "Authenticated search also returns…" lead were already scoped.

Per-session descriptions would need a FastMCP change (the tools/list handler returns tool.description as registered), so this scopes the wording instead.

Test

The keyless smoke test now fails if any sentence in a keyless-listed description names an unlisted firecrawl_* tool (research tools excepted) or Alexandria mode without saying it applies to authenticated sessions. It caught the map/crawl pointer, which predates #436. Suite 120/120. Descriptions stay under the cap: search 1,872, scrape 1,545.

🤖 Generated with Claude Code


Summary by cubic

Scopes tool descriptions for keyless sessions so unlisted tool references and Alexandria mode pointers only appear in authenticated-session copy.

  • Search and scrape descriptions now qualify firecrawl_find_tools, firecrawl_feedback, firecrawl_map, firecrawl_crawl, and Alexandria mode as authenticated-session features, and search notes keyless sessions get no Alexandria matches in data.tools.
  • The keyless smoke test now fails if any sentence in a keyless-listed description references an unlisted tool or Alexandria mode without an "authenticated" qualifier; it caught the existing map/crawl pointer.

Written for commit 5b6839d. Summary will update on new commits.

Review in cubic

… sessions

Keyless sessions (hosted without auth, stdio without a key) list only firecrawl_search,
firecrawl_scrape and firecrawl_parse, and FastMCP serves one description per tool. The
search and scrape descriptions told them to call firecrawl_feedback, read contracts with
firecrawl_find_tools, use Alexandria mode, and reach for firecrawl_map / firecrawl_crawl.
PR 436 moved the feedback and Alexandria-mode sentences inside Claude Code's 2,048-character
window, so keyless Claude Code agents would now see them.

Each such sentence now says it applies on an authenticated session, and search adds
'Keyless sessions return web results only.' The keyless smoke test fails if any sentence
in a keyless-listed description names an unlisted tool or Alexandria mode without saying so.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Base automatically changed from tool-description-budget to main September 23, 2026 14:53

@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.

All reported issues were addressed across 2 files

Reply with feedback, questions, or to request a fix.

Fix all with cubic | Re-trigger cubic

Comment thread src/index.ts Outdated
…it returns web only

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 2 files

Confidence score: 5/5

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

Requires human review: This PR changes tool descriptions to scope unlisted tool references to authenticated sessions and strengthens a smoke test. It alters user-facing copy for keyless sessions and relies on prior unmerged changes, so human review is warranted.

Re-trigger cubic

@rakshith48
rakshith48 merged commit 7228099 into main Sep 23, 2026
2 checks passed
@rakshith48
rakshith48 deleted the keyless-description-scope branch September 23, 2026 15:27
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