fix(mcp): clarify Alexandria execution and feedback metadata - #438
Conversation
There was a problem hiding this comment.
All reported issues were addressed across 3 files
Reply with feedback, questions, or to request a fix.
Fix all with cubic | Re-trigger cubic
There was a problem hiding this comment.
All reported issues were addressed across 6 files (changes from recent commits).
Reply with feedback, questions, or to request a fix.
Fix all with cubic | Re-trigger cubic
There was a problem hiding this comment.
0 issues found across 4 files (changes from recent commits).
Confidence score: 5/5
- Automated review surfaced no issues in the provided summaries.
- No files require special attention.
Requires human review: Auto-approval blocked by 1 unresolved issue from previous reviews.
Re-trigger cubic
There was a problem hiding this comment.
All reported issues were addressed across 3 files (changes from recent commits).
Requires human review: Auto-approval blocked by 1 unresolved issue from previous reviews.
Re-trigger cubic
There was a problem hiding this comment.
All reported issues were addressed across 2 files (changes from recent commits).
Tip: Review your code locally with the cubic CLI to iterate faster.
Fix all with cubic | Re-trigger cubic
There was a problem hiding this comment.
0 issues found across 3 files (changes from recent commits).
Confidence score: 5/5
- Automated review surfaced no issues in the provided summaries.
- No files require special attention.
Requires human review: Auto-approval blocked by 1 unresolved issue from previous reviews.
Re-trigger cubic
There was a problem hiding this comment.
All reported issues were addressed across 5 files (changes from recent commits).
Tip: Review your code locally with the cubic CLI to iterate faster.
Fix all with cubic | Re-trigger cubic
There was a problem hiding this comment.
1 issue found across 1 file (changes from recent commits).
Confidence score: 4/5
- In
src/alexandria.ts, thefirecrawl_searchdescription omits key billing distinctions, so full-profile users may be unclear about which searches incur per-request charges; document the billing semantics, including that Alexandria-only discovery is free.
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="src/alexandria.ts">
<violation number="1" location="src/alexandria.ts:108">
P2: The `firecrawl_search` tool description still omits billing semantics, so full-profile users cannot tell that web, developer, and research searches are billed per request, Alexandria-only discovery is free, and scrape execution uses URL or listed capability pricing. Add that guidance here.
(Based on your team's feedback about search billing semantics.)</violation>
</file>
Tip: Review your code locally with the cubic CLI to iterate faster.
Fix all with cubic | Re-trigger cubic
|
|
||
| export const ALEXANDRIA_SEARCH_INSTRUCTIONS = | ||
| 'Authenticated search combines web results, semantic tool summaries and domain matches. Use sources: ["alexandria"] for semantic tools only, or sources: ["web"] for web only. domainTools: false disables domain matching. Tool matches describe available structured-data capabilities, not executed data. toolDetail: "compact" (default) returns only provider, capability and description; "summary" adds metadata; "full" includes their input and output contracts. Execute a matched tool through firecrawl_scrape with an alexandria body; use firecrawl_find_tools to browse the catalogue or read a full contract.'; | ||
| 'Authenticated search combines web results, semantic tool summaries and domain matches. Use sources: ["alexandria"] for semantic tools only. ' + ALEXANDRIA_SOURCES_OPT_OUT + ' Tool matches describe available structured-data capabilities, not executed data. toolDetail: "compact" (default) returns only provider, capability and description; "summary" adds metadata; "full" includes their input and output contracts. firecrawl_scrape with an alexandria body executes a selected capability; firecrawl_find_tools provides catalogue browsing and full contracts.'; |
There was a problem hiding this comment.
P2: The firecrawl_search tool description still omits billing semantics, so full-profile users cannot tell that web, developer, and research searches are billed per request, Alexandria-only discovery is free, and scrape execution uses URL or listed capability pricing. Add that guidance here.
(Based on your team's feedback about search billing semantics.)
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At src/alexandria.ts, line 108:
<comment>The `firecrawl_search` tool description still omits billing semantics, so full-profile users cannot tell that web, developer, and research searches are billed per request, Alexandria-only discovery is free, and scrape execution uses URL or listed capability pricing. Add that guidance here.
(Based on your team's feedback about search billing semantics.) </comment>
<file context>
@@ -105,4 +105,4 @@ export function withFindToolsNavigation(envelope: any) {
export const ALEXANDRIA_SEARCH_INSTRUCTIONS =
- 'Authenticated search combines web results, semantic tool summaries and domain matches. Use sources: ["alexandria"] for semantic tools only, or sources: ["web"] with domainTools: false for web only. Tool matches describe available structured-data capabilities, not executed data. toolDetail: "compact" (default) returns only provider, capability and description; "summary" adds metadata; "full" includes their input and output contracts. firecrawl_scrape with an alexandria body executes a selected capability; firecrawl_find_tools provides catalogue browsing and full contracts.';
+ 'Authenticated search combines web results, semantic tool summaries and domain matches. Use sources: ["alexandria"] for semantic tools only. ' + ALEXANDRIA_SOURCES_OPT_OUT + ' Tool matches describe available structured-data capabilities, not executed data. toolDetail: "compact" (default) returns only provider, capability and description; "summary" adds metadata; "full" includes their input and output contracts. firecrawl_scrape with an alexandria body executes a selected capability; firecrawl_find_tools provides catalogue browsing and full contracts.';
</file context>
|
@cubic-dev-ai review this PR |
@Max17190 I have started the AI code review. It will take a few minutes to complete. |
There was a problem hiding this comment.
1 existing issue remains and no new issues found across 10 files
Confidence score: 4/5
- In
src/alexandria.ts, thefirecrawl_searchdescription omits that web, developer, and research searches are billed per request while Alexandria-only discovery is free, so full-profile users may be unclear about charges — document these billing semantics.
Requires human review: Auto-approval blocked by 1 unresolved issue from a previous review of this commit.
Fix all with cubic | Re-trigger cubic
There was a problem hiding this comment.
0 issues found across 2 files (changes from recent commits).
Confidence score: 5/5
- Automated review surfaced no issues in the provided summaries.
- No files require special attention.
Requires human review: Auto-approval blocked by 1 unresolved issue from previous reviews.
Re-trigger cubic
Why
Alexandria metadata combines capability descriptions with directions to execute providers, retry requests, accept provider terms, and submit feedback after a task. Describe the capability contracts and authorization requirements clearly. Keep optional feedback beside results and in its dedicated tool, where it is relevant to the completed task.
Summary
alexandriaandrequestIdparameter descriptions.confirmed:true.The changes are limited to metadata and README wording, an unused guidance constant, and tests. Runtime handlers, validation rules, registered tools, and safety annotations are unchanged.
Description comparison
The baseline below is the production app metadata observed on September 23, 2026, with the app wrapper removed. It differs from the condensed source already on main. The proposed descriptions reflect this branch's
tools/listdefinitions.Current observed production tool descriptions
firecrawl_scrapefirecrawl_searchfirecrawl_find_toolsfirecrawl_feedbackProposed full/account tool descriptions
firecrawl_scrapefirecrawl_searchfirecrawl_find_toolsProposed execution and request-identity parameter descriptions
alexandriarequestIdTest Plan
pnpm test: all 121 tests passed, including the build.pnpm exec tsc --noEmit: passed.pnpm exec eslint src/index.ts src/alexandria-feedback.ts: passed.src/alexandria.tsreports the same pre-existing unusedexpandbinding at line 97 as main; baseline and branch diagnostics were compared and are identical.git diff --check: passed.domainTools: true, and a selected research contract omitsrequiresOneOfand a cursor input.Publication verification
After deployment, refresh the connector's registered metadata and verify the descriptions delivered to a new session. Client approval behavior still requires an end-to-end check with the updated metadata and the relevant approval settings; unit and integration tests do not establish warning removal.
Plugin skills are distributed separately from this repository. The matching skill wording is updated in firecrawl/cli#281; a plugin version containing that skill is needed for consistent behavior.