docs: fix Apify MCP server page and its generated .md output - #2850
docs: fix Apify MCP server page and its generated .md output#2850birosrichard wants to merge 2 commits into
Conversation
Nested Tabs in the per-client setup section broke the generated Markdown counterpart (duplicated auth prose, misattributed tab content). Also corrects tool names, defaults, and transport notes against the released @apify/actors-mcp-server package, and reorders the page anonymous-first. Refs #2805
|
✅ Preview for this PR (commit |
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
marekh19
left a comment
There was a problem hiding this comment.
👨 Marek
I've let my clanker do the review, see below. The writing style notes are more on the docs team decision I would say.
I've validated the point with removing apify--rag-web-browser myself and it is really included if you don't select any specific actors in tools.
This is what I got by default:
abort-actor-run
apify--rag-web-browser
call-actor
fetch-actor-details
fetch-apify-docs
get-actor-run
get-dataset-items
get-key-value-store-record
report-problem
search-actors
search-apify-docs
So this content change might be misleading.
Also checked the published package:
package/dist/utils/tools_loader.js:108-109 - when no tools selectors are supplied at all:
// No selectors supplied: use defaults unless actors were explicitly empty
return actorsExplicitlyEmpty ? [] : defaults.actors; // = ['apify/rag-web-browser']and tools_loader.js:204-212 pushes the default categories, then report-problem, then those Actor tools:
for (const cat of toolCategoriesEnabledByDefault) { // = ['actors', 'docs']
result.push(...categories[cat]);
}
result.push(reportProblem);
...
if (actorTools.length > 0) result.push(...actorTools); // ← rag-web-browser lands hereNote
defaults.actors applies only when you don't pass any selectors. ?tools=actors,docs gives you no RAG browser. Which is the "replaces, doesn't add" behavior the PR already documents. So the correct fix isn't just re-adding the tool to the list; it's saying the default set includes it and that naming tools at all drops it.
I think it's worth it to address these points.
🤖 Clanker
Writing style
-
Concept used before it's explained —
content-standards.md"Information ordering" (line 67: "no concept is used before it's explained").mcp.md:60opens the first post-intro section with "when thetoolsquery parameter contains only tools enabled for unauthenticated use", andmcp.md:69hands the reader?tools=search-actors,.... Thetoolsparameter isn't explained until## Tool selection(mcp.md:245), and the load-bearing gotcha — "Thetoolsparameter does not add to the default selection - it replaces it" (mcp.md:271) — sits 200 lines further on. Move thetoolsexplanation above### Anonymous discovery, or link forward from line 60. -
Passive voice —
writing-style.md"Active & inclusive voice";quality-standards.md:35.mcp.md:89"Two methods are available.";mcp.md:267"Tools are grouped into five categories";mcp.md:275"Tools marked auto-injected are added automatically".
Judgement calls
- Mysterious Name —
mcp.md:277renames the column toLoaded by default, then fills it with three values: ✅, blank, andAuto-injected. A yes/no header now carries a third state. Worse,mcp.md:284marksget-actor-runasAuto-injectedwhilemcp.md:275namesget-actor-runas one of the triggers for auto-injection — it injects itself. Split into two columns, or dropget-actor-runfrom the trigger list. - Mysterious Name —
mcp.md:128"The configuration below uses the OAuth form." "Form" reads as a web form. Say "uses OAuth". - Duplicated Code —
mcp.md:50"If your client doesn't support remote MCP servers, run the server locally over stdio instead" is restated verbatim atmcp.md:225. The "authenticate before running Actors" fact appears four times in 40 lines (mcp.md:48, 81, 83, 87). The anonymous URL appears twice back to back (mcp.md:69inline,mcp.md:75in JSON) — drop the inline one. - Shotgun Surgery — the default-tool list is asserted in
mcp.md:247and again inmanus.md:87, forcing both to be edited here. A third copy sits untouched atsources/platform/get-started/agent-onboarding.md:116; it happens to still agree, but it will drift. - Residual
.mdflattening risk — the nested<Tabs>are gone (good), but the outer<Tabs>atmcp.md:130wraps four unlabeled client panels. If the PR's goal is clean llms-txt output, confirm those four don't concatenate into one unmarked run.
Spec
mcp.md:247 now claims "the MCP server loads the actors and docs tool categories, plus report-problem." The released package disagrees. Its README (§Tools configuration) lists defaults as actors, docs, and apify/rag-web-browser, and src/const.ts confirms it: export const defaults = { actors: [RAG_WEB_BROWSER] }.
The PR compounds this by deleting the apify--rag-web-browser row from the tools table (old mcp.md:331, ✅ enabled by default). The README still marks that tool ✅. So the PR removed a correct row and replaced a correct default list with an incomplete one — the exact class of error AC4 exists to prevent. It also leaves the very next line, the example ?tools=actors,docs,apify/rag-web-browser, looking like an arbitrary illustration when it is in fact the default set written out.
Same root cause in manus.md:87: the new text drops web browsing from the default set entirely.
Fixes the MCP server integration page's generated
.mdoutput: nested Tabs inside a TabItem broke the llms-txt plugin's flattening, duplicating the auth explanation five times and misattaching tab content to the wrong client. Also corrects tool names, defaults, and the SSE transport note against the released@apify/actors-mcp-serverpackage, and reorders the page anonymous-first.Also updates
manus.md, which repeated the same staleget-actor-outputclaim in its default-tools list and example walkthrough. Out of the issue's original scope, but the same fix applies.